TCP协议详解

本文详细介绍了TCP协议的数据包头结构,包括源端口、目标端口、序列号、确认号等关键字段。接着,重点讲解了TCP的三次握手和四次挥手过程,阐述了其设计理念和状态转换。最后,列举了TCP连接的11种状态,如LISTEN、ESTABLISHED、FIN_WAIT_2和TIME_WAIT等,并解释了它们的意义。
摘要由CSDN通过智能技术生成

数据包头

在这里插入图片描述

源端口:占16位,也就是说最大端口数65535个

目标端口:占16位,也就是说最大端口数65535个

序列号:seq序号,占32位,用来表示从tcp源端像目标端发送的字节流,发起方发送数据时对此进行标识。

确认号:ack序号,占32位,只有ACK标识位为1时,确认序号字段才有效。

数据偏移:占4位,表示数据开始的地方离TCP段的起始处有多远。实际上就是TCP段首部的长度。由于首部长度不固定,因此数据偏移字段是必要的。

标识位:共6个,即URG、ACK、PSH、RST、SYN、FIN,具体含义如下:

  • URG:紧急位,为1时,紧急指针(urgent pointer)有效,表示数据需要优先处理。紧急指针指出在TCP段中的紧急数据的最后一个字节的序号,使接收方可以知道紧急数据共有多长。

  • ACK:确认位,为1时,确认序号有效。

  • PSH:推位,为1时,接收方应该尽快将这个报文交给应用层。

  • RST:复位标志,为1时,复位连接,一般在出错或关闭连接时使用。

  • SYN:同步位,在建立连接时使用,当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,在发回的报文段中使SYN=1和ACK=1。

  • FIN:结束位,为1时,表示发送方完成了数据发送。

窗口:占16位,表示报文段发送方期望接收的字节数,可接收的序号范围是从接收方的确认号开始到确认号加上窗口大小之间的数据。

检验和:占16位,包含了伪首部、TCP首部和数据,校验和是TCP强制要求的,由发送方计算,接收方验证。

紧急指针:URG标志为1时,紧急指针有效&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值