传输层的基本服务
(一)传输层的基本功能
功能:传输层寻址、对应用层报文进行分段和重组、对报文进行差错检测、实现进程间的端到端可靠数据传输控制、面向应用层实现服用与分解、实现端到端的流量控制、拥塞控制等
(二)传输层寻址与端口
传输层是为应用进程之间提供端到端的逻辑通信服务
方法:在传输层使用协议端口号,通常简称为端口,在全网范围内利用“IP” 地址 + 端口号“唯一标识一个通信端口
(三)无连接服务与面向连接服务
传输层提供的服务可以分为无连接服务协议为UDP和面向连接服务协议为TCP两大类
传输层的服用与分解
(一)无连接的多路复用与多路分解
方法:1.创建一个UDP套接字时,传输层自动地为该套接字分配一个端口号(通常1024-65535)
2.创建一个UDP套接字后,通过调用bind()函数为该套接字绑定一个特点的端口号
(二)面向连接的多路服用与多路分解
TCP与UDP不同,需要基于源AP地址、目的IP地址、源端口号和目的端口号四元祖唯一标识一个TCP套接字(即一个TCP连接)
停-等协议与滑动窗口协议
(一)可靠数据传输基本原理
理想传输信道是不产生差错(即比特跳变)并提供按序交付服务的锋无力或逻辑信道,措施:差错检测、缺、重传、序号、计时器
(二)停-等协议
特点:每发送一个报文段后停下来等待接收方的确认
基本工作工程:发送方发送经过差错编码和编号的报文段,等待接收方的缺;接收方如果正确接收报文段,即差错检测无误且序号正确,则接收报文段,并向发送方发送ACK,否则丢弃报文段,并向发送方发送NAK;发送方如果收到ACK,则继续发送后续报文段,否则丢弃报文段,并向发送方发送NAK
存在需要讨论的细节:差错检查,关于序列号,关于ACK和NAK,关于ACK或NAK差错
(三)滑动窗口协议
(流水线协议)滑动窗口协议对分组连续编号,发送方按流水线方式依序发送分组;接收方接收分组,按分组序号向上有序提交,并通过确认发送方通告正确接收的分组序号。发送方根据收到ACK的序号和计时器等,或者向接收方继续发送新的分组,或者重发已发送的某个分组
典型协议:GBN协议,SR协议
用户数据报协议(UDP)
(一)UDP数据报结构
UDP首部只有4个字段,每个字段由两个字节组成。源和目的端口号用于UDP实现复用与分解
(二)UDP校验和
对所有参与运算的内容按16位求和,求和过程中遇到的任何益处都被回卷。最后得到的和取反码,就是UDP的校验和,填入UDP数据报的校验和字段。UDP在生成校验和时,校验和字段取全0
参与UDP校验和计算的内容:UDP伪首部、UDP首部和应用层数据
传输控制协议(TCP)
(一)TCP报文段结构
构成:首部字段和一个数据字段
源端口号与目的端口号字段分别占16位
序号字段与确认序号字段分别占32位
首部长度字段占4位,
保留字段占6位,供今后使用
URG、ACK、PSH、RST、SYN、FIN字段各占1位,共6位
接收窗口字段占16位
校验和字段占16位
紧急指针字段占16位
选项字段的长度可变
填充字段可变
(二)TCP连接管理
TCP连接建立通过“三次握手”过程、TCP采用四次挥手断开连接
(三)TCP可靠数据传输
TCP提供可靠的数据传输服务,是通过以下工作机制实现
应用数据被分割成TCP认为最适合发送的数据块(通常是MSS),封装成TCP段,传递给IP
当TCP发出一个段后,启动一个计时器,等待目的端缺接收到这个报文段
TCP首部设有校验和字段
由于TCP报文段封装到IP数据报中传输,而IP数据报的到达可能会经过不同的路径从而造成顺序的错误,因此TCP报文段的到达也可能会失序
由于存在网络延迟和重传机制,TCP的接收端可能会受到多个重复的报文段,这时接收端需要根据序号把重复的报文段丢弃
TCP能够提供流量控制
(四)TCP流量控制
流量控制的目的是协调协议发送方与接收方的数据发送与接收速度,避免因发送方发送数据太快,超出接收方的数据接收和处理能力,导致接收方被数据“淹没”,即数据到达速度超出接收方的接收、缓存或处理能力,致使数据在接收方被丢弃
方法:等-停协议,滑动窗口协议
(五)TCP拥塞控制
拥塞是指太多主机以太快的速度向网络中发送太多的数据,超出了网络处理能力,导致大量数据分组“拥挤”在网络中间设备队列中等待转发,网络性能显著下降的现象
拥塞控制就是通过合理调度、规范、调整向网络中发送数据的主机数量、发送速率或数据量,以避免拥塞或尽快消除已发送的拥塞。
拥塞控制可以在不同层实现,比较典型的是在网络层和传输层进行拥塞控制