网络基础——TCP协议

TCP协议的全称为“传输控制协议”,是一种面向连接的、可靠的、基于字节流的运输层通信协议,主要是对数据的传输进行一个详细的控制。

  • TCP协议段格式

                

源/目的端口号:表示数据是从哪个进程来,到哪个进程去;

序号:指TCP数据段中的“数据”部分的第一个字节的编号。在一个TCP连接中,传送的数据字节流的每一个数据字节都要按顺序进行编号,在“数据段头”中标识的只是每个数据段的第一个数据字节的编号。整个要传送的字节流的起始序号必须在建立连接时设置。

确认号:指期望接收到对方下一个数据段中“数据”部分的第一个字节序号。

注:序号和确认号两个字段共同用于TCP服务中的差错控制,确保TCP数据传输的可靠性。

4位TCP报头长度:表示该TCP头部有多少个32位bit(有多少个四字节)。所以TCP头部的最大长度为15*4=60。

保留:为将来应用而保留的六个比特位,目前应全部设置为0。

6位标志位:

    (1)URG:紧急指针是否有效;

    (2)ACK:确认控制位,指示确认号是否有效。在数据通信期间,ACK要设置为有效;

    (3)PSH:提示接收端应用程序立即从TCP缓冲区把数据读走;

    (4)RST:重置控制位,用于重置、释放一个已经混乱的传输连接,然后重新建立新的传输连接。

    (5)SYN:同步控制位,用于在传输建立时同步传输连接序号。

    (6)FIN:结束控制位,用于通知对方,本端要关闭了。

窗口大小:用来描述当前接收能力的字段,即缓冲区剩余能力的大小。

校验和:对“数据报头”、“数据”和“伪头部”三部分进行校验,“伪头部”包括源/目标主机的32位IP地址、TCP协议号以及TCP数据段长度。

紧急指针:仅当URG控制位置1时有效,标识了哪部分数据是紧急数据。

选项:“可选项”字段是可选的,且长度可变,最长可达40字节。

数据:应用层的应用进程提交的数据。


阅读更多
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

网络基础——TCP协议

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭