计算机网络复习运输层(第五章)
运输层
运输层属于面向通信部分的最高层,同时也是用户功能中的最低层。

运输层提供两个进程间的逻辑通信。

运输层与网络层协议的主要差别:运输层提供进程间的通信,对整个报文进行差错检验。
运输层协议主要有有两种:UDP(用户数据报协议)、TCP(传输控制协议)

UDP只在IP数据报服务上面加入了复用与分用的功能、差错检验功能。

UDP
UDP的特点:1)无连接、尽最大努力交互、没有拥塞控制 2)面向报文,一次交付完整的报文,既不合并也不拆分。
UDP的首部格式:

检验和的计算方法与IP首部检验和相同使用反码运算。
实际发出的UDP数据报只有首部+数据(无伪首部、凑整的0字节)
TCP
TCP的特点:1)面向字节、可靠交付、全双工 2)面向字节流,将应用程序交下来的数据看成一连串字节流根据网络情况来确定报文包含多少字节

TCP的连接的端点叫做套接字或者插口,每一条tcp连接唯一地被通信两端的两个端口(即两个套接字)所确定。
可靠传输
停止等待协议
没法送完一个分组就停止发送,就等待对方确认。在确认后再发送下一个分组。

为了应对发送方一直没有收到确认,设置一个超时计时器,进行超时重传。
当因为各种原因产生确认晚到后,接收方收到重复的报文时将丢弃多余的报文、发送方收到重复的确认也将会丢弃。
停止等待协议的优点是简单、缺点是信道利用率低

为了提高信道利用率可以采用流水线运输,发送发可连续发送多个分组,不必没发完一个分组就停顿下来等待对方的确认。
连续ARQ协议
发送方一次可以发送多个分组,使用滑动窗口控制发送方与接收方所能发送与接受的分组的数量与编号。每接受到一个确认,发送方就将发送窗口向前滑动。

滑动窗口协议
发送方与接受方分别位置发送窗口与接受窗口

累计确认协议:
接收方一般采用累计确认的方式:即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认。
Go-Back-N(回退N)
某个分组等待确认超时,需退回来重传这个分组以及之后所发送的所有N个分组。
TCP格式

端口(16bits*2):源端口、目的端口。表示发送该报文段的应用进程的源端口和接受进程的目的端口号。
数据偏移(4bits):以4字节为单位来计算,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远
保留(6bits):未使用,置0.
序号(32bits):传送的字节流的每个字节都按照顺序编号、发送双方各自随机产生一个初始序号、序号字段的值指的是本字段所发送的数据的第一个字节的序号。
确认号(32bits):期望收到对方下一报文段的数据的第一字节的序号。
确认ACK(1bits):仅当ack等于1的时候才有效,TCP规定在建立连接后所有的报文段都必须吧ACK置为1.
紧急URG(1bits):当URG=1的时候才有效,TCP会将紧急数据插入到本报文段数据的最前端。
紧急指针(16bits):指出报文段中紧急数据有多少字节。
推送PSH(1bits):当PSH=1,接收后会尽快交付接受应用进程。
复位RST(1bits):RST=1时,表明出现严重差错,将会释放连接并重新建立连接。
同步SYN(1bits):SYN=1,表示这是一个连接请求或者连接接受报文。
终止FIN(1bits):用来释放一个连接。
窗口(16bits):发送本报文段一方的接收窗口,指出允许对方发送的数据量。
检验和(16bits):检验的范围包括首部和数据两部分,方法同UDP检验、IP首部检验。
选项(长度可变):最大段长度(MSS)我的缓存所能接受的报文段的数据字段的最大长度;窗口扩大去,用于扩大接收窗口的值;时间戳,计算RTT;选择确认。
滑动窗口


注意3点
- 同一时刻,接受窗口与发送窗口不一定一样大
- 不按序到达的数据先临时存放
- 接收方需有累计确认的功能、也可以自己有数据发送时捎带确认



流量控制
让发送方的发送速率不要太快,要让接受方来得及接收
发送零窗口通知后,新窗口通知报文又丢失将导致死锁。
所以每一连接设一持续计时器,收到零窗口通知启动;时间到了后就发送一个零窗口探测报文段。
TCP报文段的发送时机的控制机制
1)缓存数据达到MSS字节时,就组装发出一个TCP报文段
2)由发送方的发送进程指明发送---推送操作
3)发送方的计时器时间到了就发送
糊涂窗口综合症

拥塞控制
防止过多的数据发送到网路中,这样使得网络中的路由器或载路不致过载

拥塞窗口
TCP发送方维持一个拥塞窗口 cwnd,大小取决于网络的拥塞状况。
控制原则
- 只要网络没有出现拥塞,拥塞窗口就可以增大
- 但只要出现网络拥塞,就要将拥塞窗口减小一些
四种拥塞控制方法:1)慢开始 2)拥塞避免 3)快重传 4)快恢复
有了拥塞窗口,发送窗口应取决于接受窗口与拥塞窗口的较小值。
拥塞控制算法的表诉:1)精确表诉,窗口大小以字节为单位,条件与结论趋于丰富。2)简单表诉,窗口大小以报文段为单位,条件与结论趋于单一
慢开始
由小到大逐渐增大拥塞窗口的值,发送方没收到一个对新报文段的确认就将cwnd加1,所以每经过一个往返时间,cwnd就加倍。


拥塞避免
让拥塞窗口缓慢增大,避免出现拥塞
每经过一个往返时间RTT,拥塞窗口加1,按线性规律缓慢增加,也称“加法增大”
当网络出现拥塞时,无论处于慢开始阶段还是避免拥塞阶段,只要发送方判断网络出现拥塞(重传定位器超时)
都按照下方操作

示例:

快重传算法
发送方只要收到3个重复确认,应当立即进行重传。

快恢复算法
当发送端收到3个重复确认时,执行快恢复算法

注意:2、3条与超时处理情况不同,cwnd不是从1开始而是从新的慢开始门限开始的且执行拥塞避免算法。
示例:

TCP拥塞控制流程图:

TCP的运输连接
TCP是面向连接的协议

建立连接时,要使每一方都能知道对方的存在,要允许双方协商一些参数、能够对运输实体资源进行分配。
TCP的连接采用三报文握手。

而TCP连接的释放则是采用四报文握手


浙公网安备 33010602011771号