目录:
TCP 协议;
一:TCP协议段格式
二:确认应答(ACK)机制
三 : 超时重传机制
四:连接管理机制
五:滑动窗口
六:流量控制
七:拥塞控制
八:延迟应答
九:捎带应答
十:面向字节流
十一:粘包问题
十二:TCP异常情况
UDP协议
1.协议段格式
2.UDP特点
TCP 协议(Transmission Control Protocol)
**TCP可靠性的内容:**校验和,序列号(按序到达),确认应答,超时重发,连接管理,流量控制,拥塞控制
**TCP提高性能的内容:**滑动窗口,快速重传,延迟应答,捎带应答
前置知识:端口号:端口号(Port)标识了一个主机上进行通信的不同的应用程序;
在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看);
一:TCP协议段格式*
源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;
32位序号/32位确认号:
4位TCP报头长度: 表示该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最大长度是15 * 4 = 60
6位标志位:
URG: 紧急指针是否有效
ACK: 确认号是否有效
PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走
RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段
SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段
FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段
16位窗口大小: 后面再说
16位校验和: 发送端填充, CRC校验. 接收端校验不通过, 则认为数据有问题. 此处的检验和不光包含TCP首部, 也
包含TCP数据部分.
16位紧急指针: 标识哪部分数据是紧急数据;
40字节头部选项
二:确认应答(ACK)机制
TCP将每个字节的数据都进行了编号. 即为序列号.