TCP

来源:互联网 发布:刘美麟因为爱情网络 编辑:程序博客网 时间:2024/06/06 20:24

1、TCP的特性:①、TCP以流方式处理数据,即TCP使一个字节一个字节地接收数据,而不是一次性接收一个数据块。TCP把接收到的数据组成长度不定的块,然后传到网络层。

②、重新排序:如果数据以错误的顺序到达,TCP可以将顺序重新排序来恢复原始顺序。

③、流量控制:确保数据传输不会超过目的计算机的接收能力。

④、适当的关闭:确保在连接关闭之前,所有数据段都被发送和接收了。

2、TCP/IP的分层协议系统信息交换是发送端的每一层和接收端的相应层进行通信。

3、TCP数据格式:源端口(16位):源计算机应用程序端口号

-目的端口(16位):目的计算机应用程序端口号

-序列号(32位):控制标记位的SYN标记不为1时,这是当前数据段的第一个字节地序列号;如果SYN的值为1,这个字段值为初始序列值(ISN),第一个字节地序列号比这个字段值大1.

-确认号(32位):其值是接收计算机即将接收的下一个序列号,也就是下一个接收的字节地序列号加1

-数据偏移(4位):报头长度,告诉我们需要发送或接收的数据的位置从哪里开始

-保留(6位):为0

-控制标记(分别占用1位)“URG:为1表示当前数据分段是紧急的;ACK:为1表示确认号字段有意义;PSH:为1时让TCP软件把收到的所有数据都传给接收程序;RST:为1时重置连接;SYN:为1时表示序列号将被同步,说明这是一个连接的开始;FIN:为1 表示发送端计算机已经没有数据要发送,用于关闭一个连接

-窗口(16位):用于流量控制的参数,定义了发送端计算机的发送序列号可以超过最后一个已确认序列号的数量。这意味着发送方不必等待每个数据段被确认接收后才发送下一个数据分段,允许已经确认接收的序列号和正在发送的序列号有一定差别。

-校验和(16位):用于检验数据分段的完整性。

-紧急指针(16位):是一个偏移量指针,指向标记紧急信息开始的序列号。

-选项:指定可选设置的某一项。

-填充:填充额外的0,确保数据是从32位的边界开始

-数据:数据分段的数据。

关于序号的详解:

    发送序号。当资料要从一台主机传送去另一台主机的时候发送端会为封包建立起一个初始号码然後按照所传送的位元组数依次的递增上去那麽下一个封包的序号就会使用递增之後的值来作为它的序号了。这样接收端就可以根据序号来检测资料是否接收完整了。 
      回应序号。当接收端接收到TCP封包之後通过检验确认之後然後会依照发送序号产生一个回应序号发出一个回应封包给发送端这样接收端就知道刚才的封包已经被成功接收到了。 

0 0