文章目录
一.UDP协议解析
UDP协议报头
UDP
协议是全双工通信协议,CS
两端都没有发送缓冲区,只有接收缓冲区
- 由于
CS
双方的UDP
报文都是在单次调用写接口的过程中发送完成的,即一次写接口的调用就可以发送一个完整的应用层报文,同样,一次读接口的调用就可以获取一个完整的应用层报文,因而UDP
协议被称为数据报传输协议
二.认识TCP协议报文
TCP
协议是基于连接的传输控制协议,面向字节流通信,为了实现传输控制,CS
双方内核中都有一个发送缓冲区和一个接收缓冲区,报文的发送和接收过程由CS
双方的操作系统内核自主控制完成(内核自主决定应用层数据报文的发送时间,传输字节数和差错处理等等)
TCP报文结构
- 双方内核传输数据的速度由双方内核接收缓冲区的剩余空间决定,通过
TCP
报头中的16
位窗口大小通信双方都可以得知彼此的接收缓冲区剩余空间 - 6位报头类型标识中各字段的含义:
URG
: 紧急指针是否有效(若有效则紧急数据会被对端应用层优先读取)ACK
: 确认序号是否有效(标识应答报文)PSH
: 提示接收端应用程序立刻从TCP
缓冲区把数据读走RST
: 发送报文时发现对端机器通信状态异常,则会发送RST
报文要求重新建立连接- 对端通信机器发生硬件异常时,
TCP
具有连接保活机制,本端机器可以在一定时间内维持连接状态(内核中的连接结构体暂时不销毁)
- 对端通信机器发生硬件异常时,
SYN
: 请求建立连接; 我们把携带SYN
标识的称为同步报文段(握手协商报文)FIN
: 通知对方, 本端要关闭了, 我们称携带FIN
标识的为结束报文段(挥手协商报文)
三.TCP协议确保数据高效稳定传输的机制
1.数据稳定传输的核心机制:确认应答机制
- 确认应答机制贯穿整个
TCP
协议的设计 - 数据发送方向另一端发送报文,数据接收方收到报文后向数据发送方回应一个
ACK
报文进行应答,数据发送方接收到