图4-10 TCP报文格式3)顺序号:本次发送的数据的首字节的编号。5)头长度:TCP头部以32字节为一个表示单位。在建立连接时,TCP采用的是三次握手方法。TCP释放连接是双向的。2)TCP采用定时确认重传机制。3)TCP使用校验和检测数据在传输过程中的变化。4)TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。......
2023-11-25
TCP 报文共分为两部分:TCP 首部和TCP 数据,如图8.3所示。TCP 首部的前20 个字节是固定的,后面有4 ×N 个字节的选项(N 为整数),因此,TCP 首部的最小长度是20 个字节。
图8.3 TCP 报文格式
TCP 首部各字段的含义如下:
(1)源端口和目的端口
这两个字段分别表示源端口和目的端口。将TCP 报文中源和目的端口字段加上IP 报文中源和目的IP 地址字段,便构成了唯一标识一个TCP 连接的四元组(源端口、源IP 地址、目的端口、目的IP 地址)。
(2)发送序号、确认序号和通告窗口字段
这三个字段都在TCP 滑动窗口机制中用到。因为TCP 是面向字节流的协议,所以报文段中的每个字节都有编号。发送序号字段给出了该TCP 报文段中携带的数据第一个字节分配的编号(SYN 标志位为“0”)。如果在TCP 报文中SYN 标志位为“1”,则序号字段表示初始序号。确认序号给出了接收方希望接收的下一个TCP 报文段中数据流的第一个字节的编号。确认字段只有在ACK 标志位为“1”时有效,而一旦TCP 连接建立好,则这个确认序号字段一直有效。通告窗口字段给出了接收方返回给发送方关于接收缓存大小的情况。
(3)首部长度字段
该字段给出TCP 报文段首部的长度,即TCP 报文段的数据起始处距离TCP 报文段起始处有多远。此字段也称为数据偏移,占四个二进制位,表示十进制数的范围为0 ~15。由于数据偏移的单位为32 位字(即以4 字节长的字为计算单位),因此,数据偏移的最大值为60 个字节,这也是TCP 首部的最大长度。
(4)6 位标志位字段
这些标志位字段用于区分不同类型的TCP 报文。目前用到的标志位有SYN、ACK、FIN、RST、PSH 和URG。(www.chuimin.cn)
SYN:这个标志位用于TCP 连接的建立。SYN 与ACK 配合使用,当请求连接时,SYN=1,ACK=0;当响应连接时,SYN=1,ACK=1。
ACK:ACK 标志位为“1”时,意味着确认序号字段有效。
FIN:发送带有FIN 标志位的TCP 报文后,TCP 连接将被断开。
RST:这个标志位表示连接复位请求,用来复位那些产生错误的连接。
PSH:这个标志位表示push 操作。当TCP 报文到达接收端以后,若此报文的PSH 为“1”,则会将数据尽快交付给接收端的应用进程,而不再等到整个缓存都填满后再向上交付。
URG:URG 标志位为“1”时,表示TCP 报文的数据段中包含紧急数据,紧急数据在TCP 报文数据段的位置由紧急指针字段给出。
(5)校验和字段
此字段与UDP 中的校验和字段用法完全相同,它通过计算TCP 首部、TCP 数据以及伪首部(来自IP 报头的源地址、目的地址、协议和TCP 长度字段构成)得出结果。
(6)选项
此字段长度可变。TCP 最常用的选项字段为最大分段长度(Maximum Segment Size,MSS),即最大的数据分段长度。MSS 告诉对方TCP“我的缓存所能接收的报文段其数据字段的最大长度是MSS 个字节”。每个TCP 连接的发起方在第一个报文中会指明这个选项的内容,其值通常是发送方主机所连接的物理网络最大传输单元(MTU)减去TCP 首部长度和IP首部长度,这样可避免发送主机对IP 报文进行分段。
有关计算机网络技术的文章
图4-10 TCP报文格式3)顺序号:本次发送的数据的首字节的编号。5)头长度:TCP头部以32字节为一个表示单位。在建立连接时,TCP采用的是三次握手方法。TCP释放连接是双向的。2)TCP采用定时确认重传机制。3)TCP使用校验和检测数据在传输过程中的变化。4)TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。......
2023-11-25
直到1982年,TCP/IP协议的具体规范才被最终定下来,并于1984年或为互联网唯一指定的协议。与OSI参考模型不同,TCP/IP模型更侧重于互联设备间的数据传送,而不是严格的功能层次之分。因此,OSI参考模型在解释互联网络通信机制上比较合适,但TCP/IP成为互联网络协议的市场标准。通常所说的TCP/IP协议实际上包含了大量的协议和应用,由多个独立定义的协议组合在一起。因此,TCP/IP并不是指TCP和IP两个协议,而是表示Internet所使用的体系结构或整个协议簇。......
2023-10-22
TCP 连接的建立是从客户向服务器发送一个主动打开请求而启动的。当其中一方发送完数据后,就会关闭它这一方的连接,同时向对方发送撤销TCP 连接的报文。TCP 连接的建立使用了三次握手机制。实际上,TCP 要求建立连接的每一方随机地选择一个初始序号,这样可防止黑客容易猜测到初始序号而进行TCP 连接劫持攻击。收到一个FIN 只意味着这一方向上没有数据流动,一个TCP 连接在收到一个FIN 后仍然能够发送数据。......
2023-10-19
ICMP 报文格式及数据封装方式如图6.11所示。图6.11ICMP 报文格式ICMP 报文首部的前4 个字节各部分的含义如下:类型(8 位)指出了报文的主要类型。ICMP 报文主要有差错报告报文和询问报文两种类型,表6.5 为ICMP 报文主要类型的类型值与所属类型的对应关系。表6.5ICMP 报文主要类型的类型值与类型对应关系代码(8 位)提供报文的某些信息,以便进一步区分某种报文类型的几种不同情况。......
2023-10-19
与TCP配合使用的网络层协议是IP,人们常常称这些相关协议为TCP/IP协议。虽然TCP和IP不是OSI标准,但已被公认为当前的工业标准,称为目前最流行的传输层协议。下面将TCP/IP和相应的OSI层次进行对比,如图3—31所示。图3—31TCP/IP和OSI层次对比对应于OSI的5~7层,相应的高层协议有:SMTP,简单邮件传输协议,关于电子邮件方面的。对应于OSI的第四层的协议有三个:TCP传输控制协议,是面向连接的协议,也是最主要的协议。......
2023-10-22
UDP 报文由数据字段和首部字段两部分组成,其格式如图8.1所示。图8.1UDP 数据报格式其中,首部包含源端口、目的端口、长度和校验和四个字段,每个字段都是16 位长度。UDP 协议通过校验和来确保报文被送到正确的目的端。所谓伪首部,是因为它并不是UDP报文的真正首部,只是在计算校验和时临时与UDP 报文拼接在一起参与校验和的计算。在接收方,将收到的UDP 数据报连同伪首部一起按二进制反码求这些16 位字的和。图8.2UDP 计算检验和......
2023-10-19
TCP是传输控制协议,它是TCP/IP协议簇中的一个重要协议。图2-9显示出了从发送方的高层协议通过TCP到达接收方的高层协议数据传输的完整过程。TCP允许两个应用程序建立一个连接,然后发送完数据并终止连接。总之,TCP协议使两台计算机上的程序通过互联网以类似于电话的方式进行通信成为可能。TCP将自动检测丢失的数据包,并且要求对方计算机在数据丢失时重发数据。......
2023-11-04
TCP 是可靠的传输层协议,当应用进程将数据交给TCP 后,TCP 就能无差错地交给目的端的应用进程。TCP 使用差错控制机制保证数据的可靠传输,主要的差错控制机制即确认和重传。每个TCP 连接传输数据的第一个字节序号是建立TCP 连接时初始序号加“1”。以字节为单位的滑动窗口TCP 通过滑动窗口机制实现传输的控制。......
2023-10-19
相关推荐