目录
一、UDP
1、UDP的报文格式
🍔注意:一个UDP报文的最大长度就是64KB
校验和存在的意义,就是用来判定一下,当前传输的数据是否出错。校验和出错,传输的数据一定发生了改变;校验和正确,传输的数据也有可能发生改变
2、UDP的特点
- 无连接
- 不可靠
- 面向数据报
- 全双工
相对来说内容比较少,软柿子捏完了,接下来看看TCP
二、TCP
1、TCP的特点
报文格式:
- 有连接
- 可靠传输(TCP的初心,最核心的机制)
- 面向字节流
- 全双工
2、如何实现可靠传输
1、确认应答

对于网络传输过程中可能会出现后发先至的情况,针对这一问题,TCP进行了处理,每一个socket都有一块缓冲区,可以在这里进行 "整队" ,处理了这个问题
2、超时重传
网络传输会出现"丢包"现象,如果包丢了,接收方就收不到发送方发来的数据,自然就不会返回ACK应答报文了。如果发送方迟迟没有收到接收方发来的ACK报文,就会视为 "丢包" ,就会再发一遍
对于丢包,有两种情况:
1、数据直接丢了,接收方没有接收到数据,自然不会发送ACK应答报文,超时重传
2、返回的ACK丢了,此时接收方会收到两份相同的数据(会存在问题),TCP会到接收缓冲区当中查找是否有相同序号的数据,自动去重
TCP针对多个包丢失,处理思路:
继续超时重传,每丢包一次,超时等待时间变长(重传的频率降低),连续多次重传,都无法得到ACK,此时TCP就会重置连接,如果重置连接也失败了&