《计算机网络》复习笔记_传输层

四.传输层
(1)可靠传输
①处理包出错
引入序列号机制
《计算机网络》复习笔记_传输层_第1张图片
②处理丢包
引入超时重传机制(会导致冗余传输,以序列号区分,要求序列号空间足够大)
《计算机网络》复习笔记_传输层_第2张图片
③流量控制
Stop and Wait方式的传输效率太低
滑动窗口机制:
GO-BACK-N重传机制
按序号接受,乱序的包不接受
在这里插入图片描述
Example:
《计算机网络》复习笔记_传输层_第3张图片
Selective-repeat重传机制
哪个丢重传哪个
在这里插入图片描述
Example:
《计算机网络》复习笔记_传输层_第4张图片

(2)UDP(用户数据报协议)
《计算机网络》复习笔记_传输层_第5张图片
UDP格式:
《计算机网络》复习笔记_传输层_第6张图片
UDP校验和:
最高位的进位1要加到checksum尾部再计算一次
《计算机网络》复习笔记_传输层_第7张图片
(3)TCP(传输控制协议)
①TCP包头
《计算机网络》复习笔记_传输层_第8张图片
序列号:
发送序列号:整个segment的第一个byte的序列号
ACK序列号:下一个想要接收的字节的序列号
《计算机网络》复习笔记_传输层_第9张图片
②估计RTT
在这里插入图片描述

③TCP连接建立与终止
建立:
《计算机网络》复习笔记_传输层_第10张图片
Step1:
TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态;
Step2:
TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。
Step3:
TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。
Step4:
TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。
当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。

终止:
四次挥手后还要等待一个TIME_WAIT时间
《计算机网络》复习笔记_传输层_第11张图片
《计算机网络》复习笔记_传输层_第12张图片
④TCP的流控制
动态的滑动窗口(信用量机制)
《计算机网络》复习笔记_传输层_第13张图片
对于发送方,在接收到ACK后去读RWND,会根据需要移动窗口来保证发送大小不超过接收方缓冲区
⑤TCP的拥塞控制
RWND只考虑了端设备的缓冲区,没有考虑网络状态
《计算机网络》复习笔记_传输层_第14张图片
(i)慢启动阶段
每收到一个ACK.拥塞窗口大小加一,等效于每经过一次RTT,拥塞窗口大小乘二
《计算机网络》复习笔记_传输层_第15张图片
在这里插入图片描述
(ii)拥塞避免阶段
方法:“加性增,乘性减”(AIMD)
加性增:超过阈值后,每次加一
在这里插入图片描述
乘性减:若丢包(不太严重),则阈值和拥塞窗口都减半,进入拥塞避免阶段;若超时(严重),则阈值为CWND的一半,CWND直接减为1,进入慢启动阶段
《计算机网络》复习笔记_传输层_第16张图片
(iii)快恢复
《计算机网络》复习笔记_传输层_第17张图片

你可能感兴趣的:(《计算机网络》复习笔记_传输层)