UDP 是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个 UDP 数 据报,并组装成一份待发送的 IP 数据报。
TCP 是面向流字符,应用程序产生的全体数据与真正发送的单个 IP 数据报可能没什么联系。
UDP 的校验和要计算首部和数据部分。首部还包括伪首部。
多了 12 个字节的伪首部。
注意点:UDP 长度计算两次。
如果检验和有错,则 UDP 数据报被悄悄丢弃,不产生任何差错报文。
目的是让 UDP 两次检查数据是否已经正确到达目的地。
IP 接受正确的目的地址,传送到正确的上层程序。
所有伪首部包括:源 IP 地址,目的 IP 地址,0,协议号,UDP 长度
UDP(TCP)检验和:是根据 UDP(TCP)数据报和伪报头计算得到的差错检测值。 伪报头包含源和目的 IP 地址,以及来自 IP 数据报报头的协议值。IP 数据报在网络中传送时 包含 UDP 数据报。
伪报头并不会在网络中传送,校验和中所包含的伪报头内容可以避免目的端错误地接收错误 路由的数据报。校验和值的计算方法和 IP 报头检验和的计算方法类似
3 次握手:防止已过期的连接请求报文突然又传送到服务器,因而产生错误
4 次挥手:确保数据能够完成传输,但关闭连接时,当收到对方的 FIN 报文通知时,它 仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以 未必会马上会关闭 SOCKET,也即你可能还需要发送一些数据给对方之后,再发送 FIN 报文 给对方来表示你同意现在可以关闭连接了,所以它这里的 ACK 报文和 FIN 报文多数情况下 都是分开发送的
主要是下面的四种机制:
慢启动(慢开始):
拥塞避免:
拥塞避免并非完全能够避免拥塞,是说在拥塞避免阶段将拥塞窗口控制为按线性规律增 长,使网络比较不容易出现拥塞。
思路:让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞控 制窗口加一。
无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有 收到确认,虽然没有收到确认可能是其他原因的分组丢失,但是因为无法判定,所以都当做 拥塞来处理),就把慢开始门限设置为出现拥塞时的发送窗口大小的一半。然后把拥塞窗口 设置为 1,执行慢开始算法。 如图所示:
快速重传:
快速恢复:
原文:https://www.cnblogs.com/Weber-security/p/12707359.html