参考自B站王道考研视频
UDP
仅在IP数据报服务之上增加了复用分用和差错检测功能。
UDP特点
- UDP是无连接的,减少开销和发送数据之前的时延。
- UDP使用最大努力交付,即不保证可靠交付。
- UDP是面向报文的,适合一次性传输少量数据的网络应用,比如QQ和微信 (传输大文件时除外)。
- UDP无拥塞控制,适合很多实时应用,比如在线直播,视频会议。
- UDP首部开销小,只有8B,而TCP的首部有20B。
UDP首部格式
UDP首部包含四个部分,其中源端口不是必须的,而目的端口是必须的,长度为首部加数据的总长度,校验和用于检测整个UDP数据报是否有错。伪首部只有在计算校验和时才出现,不向下传送也不向上递交,它是伪IP首部。
UDP校验
发送端:
- 填上伪首部
- 全0填充校验和字段
- 全0填充数据部分,要保证长度为4B的整数倍,但是只是计算时填充
- 伪首部+首部+数据部分采用二进制反码求和,溢出部分进位到最低位。
- 把和求反码填入校验和字段(0变1,1变0,即相加后全为1)
- 去掉伪首部,发送
接收端:
- 填上伪首部
- 伪首部+首部+数据部分采用二进制反码求和
- 结果全为1则无差错,否则丢弃数据报/交给应用层并附上出差错的警告。
TCP
TCP特点
- TCP是面向连接(虚连接)的传输层协议。
- 每一条TCP连接只有两个端点,只能是点对点的。
- TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重。
- TCP提供全双工通信。发送缓存保存的是准