首页 理论教育TCP报文格式及特点

TCP报文格式及特点

【摘要】:图4-10 TCP报文格式3)顺序号:本次发送的数据的首字节的编号。5)头长度:TCP头部以32字节为一个表示单位。在建立连接时,TCP采用的是三次握手方法。TCP释放连接是双向的。2)TCP采用定时确认重传机制。3)TCP使用校验和检测数据在传输过程中的变化。4)TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。

TCP报文的格式如图4-10所示。

1)源端口:发送方TCP端口号

2)目的端口:接收方TCP端口号。

说明:在绝大多数操作系统中,采用32位IP地址和16位端口地址的组合来确认一个接口。源接口和目的接口的组合就定义了一个连接。最低的1024个端口是常用的,它们是系统为特定的应用层协议所保留的默认设置。例如默认状态下,HTTP使用端口80,而POP3使用端口110。

978-7-111-45076-4-Chapter04-10.jpg

图4-10 TCP报文格式

3)顺序号:本次发送的数据的首字节的编号。

4)确认号:希望接收的下一字节的编号。

5)头长度:TCP头部以32字节为一个表示单位。头长度用于表示头部包含的32字节组的个数。

6)URG、ACK、PSH、RST、SYN、FIN用1位表示的标志位。

●URG:紧急标志,说明发送的数据是特殊数据,这种数据充当中断报文的作用。

●ACK:置位表明确认号有效,否则确认号无意义。

●PSH:表示接收方收到数据后立即送往应用程序,而不必等待缓冲区装满后再传送。

●RST:置位表示复位TCP连接。(www.chuimin.cn)

●SYN:用于建立TCP连接时同步序号。

●FIN:用于释放TCP连接时,表明发送方再无数据发送。

7)窗口大小:表示在确认的字节之后可发送的字节数,当窗口大小为0时,表示请求发送方暂缓发送数据,以此实现流量控制。

8)校验和:对头部、数据进行计算的校验和。

9)头部可选项:用于提供增加额外设置的方法,例如设置TCP数据段长度。

10)紧急指针:当URG有效时,指明紧急数据的位置,即从当前顺序号算起的偏移量

在建立连接时,TCP采用的是三次握手方法。其过程为:发送方发送连接请求,以SYN(SEQ=x)表示;接收方收到请求后,发送一个应答报文SYN(SEQ=y,ACK=x+1)表示接收序号为x的连接请求,允许从序号x+1开始发送数据,本方的序号为y;发送方收到应答后,向接收方发送一个应答报文SYN(SEQ=x+1,ACK=y+1)表示同意从x+1开始发送数据,并从y+1开始接收数据,连接建立。

TCP释放连接是双向的。每方都可以发送一个FIN=1的报文以指明本方数据发送完毕,当该报文被确认后,相应连接即关闭,然而此时可以继续接收数据。通常,释放连接需要4个报文,即每个连接方向上1个FIN报文和相应的应答报文。

TCP通过下列方式保证数据传输的可靠性

1)TCP将应用层数据分割成长度合适的报文段(Segment)传递给IP层。

2)TCP采用定时确认重传机制。当发出一个报文段后,TCP会启动一个定时器,等待接收方发回“收到该报文段”的确认报文。如果不能及时收到确认报文,发送方将重发这个报文段。

3)TCP使用校验和检测数据在传输过程中的变化。如果收到的检验和有差错,TCP将丢弃这个报文段,并不确认收到此报文段,这样将引发定时器超时并重发该报文段。

4)TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。接收方只允许发送方传送接收方缓冲区所能接纳的数据。这将防止速度较快的发送方致使接收方的缓冲区溢出。