导图社区 CN 第五章 传输层
本人2023年研究生招生考试408分数129,将王道知识体系下的计网传输层重要考点第五章 传输层整理于此。
本人2023年研究生招生考试408分数129,将王道知识体系下的计网计算机网络体系结构重要考点整理于此。
本人2023年研究生招生考试408分数129,将王道知识体系下的计网物理层重要考点第二章 物理层整理于此
本人2023年研究生招生考试408分数129,将王道知识体系下的计网应用层重要考点第六章 应用层整理于此
社区模板帮助中心,点此进入>>
马克思主义原理
考研数学重点考点知识总结归纳!
数据结构
法理学读书笔记
思维导图带你认识马克思主义原理
建筑光学基本知识
考研英语一写作
教育学考研:教育学原理第八章教学内容整理
考研三步翻译技巧
东方文明古国的教育
传输层
功能
端到端通信
流量控制
拥塞控制
差错控制
检查报文的数据和首部
数据链路层LAN的以太网和WAN的PPP协议的FCS都检验首部+数据
网络层IPv4分组的首部校验和只检验首部
复用分用
发送方不同进程可使用同一个传输层协议
接收方去除首部后将数据正确交付给不同进程
UDP提供
TCP提供
定义
端口号
16bit,0~65535
只有本地意义
因特网中不同主机的相同端口号没有联系
因特网中没有两个相同IP的主机(全球意义)
分类
熟知端口号
0~1023
登记端口号
1024~49151
客户端口号
49152~65535
进程运行时动态选择,结束后回收
套接字
Socket=IP:port
一个套接字唯一标识一台主机上的一个进程
UDP
特点
在IP数据报基础上提供差错控制和复用分用
无需建立连接,支持一对一、一对多和多对多通信
没有流量控制
可靠性在应用层实现
面向报文
UDP对应用层报文添加首部后交付给网络层
网络层不能分片报文(应用层需要选择合适大小的报文)
报文首部(固定8B)
源端口号(2)|目的端口号(2)|总长度(2)|校验和(2)
总长度
单位为B
最小值为8(报文仅有首部)
校验和字段可选,源主机不想校验时将校验和置全0
计算校验和
先令校验和为全0
在数据报开头添加12B的伪首部
在数据部分添0使总长度为2B的整数倍
添加部分不作为实际报文的一部分传输,仅用于计算校验和
把伪首部+首部+数据+填充分成2B的字,所有字反码求和的结果按位取反得校验和
检验时将伪首部+首部+数据+填充反码求和,结果全1时报文无差错
TCP
面向连接,一对一全双工
可靠传输
面向字节流
把应用程序交下来的数据当作无结构字节流
把说到的报文段化为字节流交给上层应用
通信双方都有发送缓存和接收缓存
TCP首部
序号和确认号
本报文段第一个数据字节序号和期望收到对方第一个数据字节序号
数据偏移4bit
本报文段数据部分距离报文段起始的距离
单位为4B(TCP首部最大长度为60B)
IPv4偏移用于分片
标志位
SYN和ACK
URG
RST
RST=1时出现差错,需释放连接
PSH
PSH=1的报文不等接收缓存满即交付
FIN
作为发送方数据发送完毕
窗口2B
表明作为接收方的接收缓存空间大小
校验和2B
和UDP一样
紧急指针
URG=1时生效
本报文段中紧急数据有多少字节
选项
MSS,规定本报文段数据部分最大长度
出现MSS意味着使用了拥塞控制
填充
使得首部长度为4B整数倍
TCP连接
客户/服务器模式
TCP连接的两端只能是套接字(不是进程)
每条TCP连接被两端套接字唯一确定
建立
服务器资源在完成第2次握手时分配
第1、2次握手都不携带数据,但都会消耗1个序号
第3次握手可以携带数据(此时消耗1个序号),不携带则不消耗
释放
第2次挥手后客户端不能发送数据了,TCP半关闭
第4次挥手后TCP连接没有立即释放,需等待2MSL(最长报文段寿命)
避免旧TCP报文段干扰后续连接
每次挥手都会消耗序号
序号和确认
发送和接收方都有缓冲区(类似SR)
使用累积确认(类似GBN)
GBN确认的是已收到的按序帧,TCP确认号的字节接收方还未收到
重传
超时
只重传超时的帧(类似SR)
每个报文段设置计时器,超时时间采用自适应算法
冗余确认
比期望序号ack大的失序报文到达时发送冗余ACK(类似GBN)
发送方收到ack相同的3个冗余ACK时,认为序号为ack的报文段丢失,重传
即使此时该报文段的计时器未超时
称为“快速重传”
发送方根据接收窗口和拥塞窗口动态调整发送窗口
接收窗口rwnd为接收方报文段窗口字段
拥塞窗口cwnd为发送方根据网络拥塞估计的窗口值
假设rwnd足够大,只考虑拥塞窗口cwnd
慢开始
刚开始传送数据时令cwnd=1,之后每过1RTTcwnd加倍
某次加倍前有cwnd*2>ssthresh(慢开始门限)时令cwnd=ssthresh
执行拥塞避免算法
拥塞避免
每过1RTTcwnd+1
数据报超时时认为拥塞,令ssthresh=cwnd/2,cwnd=1
执行慢开始算法
快恢复
当发送方收到3个ack相同的冗余ACK时,认为序号为ack的数据报丢失
认为发生拥塞,快速重传该数据报,且令ssthresh=cwnd/2,cwnd=ssthresh
乘法减小,加法增大
第四次握手后2MSL才释放连接
发送方向接收方发送的FIN-ACK报文可能丢失
接收方未收到确认后会重发FIN报文
发送方发送FIN-ACK后(即第四次握手后)需要等待 接收方超时且重发报文到达发送方 的时间,即为2MSL
TCP拥塞控制的慢开始
慢开始阶段实际上接收方会对发送方的每一个报文段发确认报文
发送方每收到一个确认报文后将cwnd+1
但如果cwnd>1,则发送方在下一个RTT中会收到cwnd个报文段的确认
所以认为发送方每过一个RTT将cwnd*2,且cwnd*2>ssthresh时令cwnd=ssthresh
UDP校验和反码求和
有进位:0111+0001=1000
如果最高位产生进位,将最低位+1:1111+0001=0001