TCP协议
TCP协议特点
-
面向连接
- 应用程序在使用TCP协议之前,必须先建立TCP连接
- 在数据传输完毕后,必须释放已经建立的TCP连接
- 类似于打电话
-
点对点通信
- TCP协议就像打电话,只能一对一,不能一对多或多对多
-
可靠传输
- TCP协议能够保证传输的数据无差错,不丢失,不重复,不乱序
-
全双工通信
- TCP协议允许双方同时接收和发送数据
-
面向字节流
- TCP协议传输的数据以字节为单位,以流的形式传输
TCP报文首部格式
-
结构图
-
序号示意图
组成 | 说明 |
---|---|
序号 | 每个数据包的第一个字节位置在全数据中的位置 |
源端口 | 发送方端口 |
目的端口 | 接收方端口 |
确认号 | 期待接收的下一个数据包的序号 |
数据偏移 | 指TCP报文数据部分开始位置,即TCP报文首部占用空间大小 数据偏移占4位,单位为"4字节",即TCP报文首部最大为15*4=60字节 而TCP报文首部固定部分大小为20字节,即TCP首部可选部分最大为40字节 |
保留 | 保留,暂时没用 |
紧急URG | 告诉发送发应优先发送 |
确认ACK | ACK=1时有效,用于建立TCP连接 |
推送PUSH | 告诉接收方应优先接收 |
窗口 | 占2字节,范围[0,2^16-1],用于TCP流量控制和拥塞控制 |