终止序列
终止序列
在TCP协议中,TCP连接建立过程叫做三次握手,TCP连接释放过程叫做四次握手。终止连接的四次握手一般由客户机启动,客户机通过发送第一个段启动终止序列,这个段称为FIN段,这个段的标识符已经被设置。在计算机通信中,终止序列简单来说是指通信双方终止通信的序列。
简介
数学上,序列是被排成一列的对象(或事件);这样,每个元素不是在其他元素之前,就是在其他元素之后。这里,元素之间的顺序非常重要。在离散时间信号中,若令相继时刻t(k+1)与tk之间的间隔为时间常数T,则离散信号只在均匀离散时刻t=...,-2T,-T,0,T,2T,...时有定义,它可以表示为f(kT),这样的离散信号也常称为序列。
在TCP协议中,TCP连接释放过程叫做四次握手。终止连接的四次握手一般由客户机启动,客户机会发送第一个段启动终止序列,这个段称为FIN段,因为会话标识符字段中的FIN标识符已经设置,设置FIN标识符的目的是通知服务器,客户希望终止客户机到服务器方向上的连接。终止序列简单来说是指通信双方终止通信的序列,是通信双方都认可的且能够被计算机所识别的序列。
TCP
基本信息
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元( MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
首部格式
TCP的首部格式图右图1所示:
---Source Port是源端口,16位。
TCP首部
TCP首部
---Destination Port是目的端口,16位。
---Sequence Number是发送数据包中的第一个字节的序列号,32位。
---Acknowledgment Number是确认序列号,32位。
---Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4。
---标志位: 6位,URG表示Urgent Pointer字段有意义:
ACK表示Acknowledgment Number字段有意义
PSH表示Push功能,RST表示复位TCP连接
SYN表示SYN报文(在建立TCP连接的时候使用)
FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)
Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。
---Checksum是校验和,16位。
---Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(Sequence Number字段的值)的偏移。
TCP连接的终止
(1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节(包含终止序列),表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。
既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。
注意:
(1) “通常”是指,某些情况下,步骤1的FIN随数据一起发送,另外,步骤2和步骤3发送的分节都出自执行被动关闭那一端,有可能被合并成一个分节。
(2) 在步骤2与步骤3之间,从执行被动关闭一端到执行主动关闭一端流动数据是可能的,这称为“半关闭”(half-close)。
(3) 当一个Unix进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程的信号)终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个FIN。
计算机通信
计算机通信是一种以数据通信形式出现,在计算机与计算机之间或计算机与终端设备之间进行信息传递的方式。计算机通信的基本原理是将电信号转换为逻辑信号,其转换方式是将高低电平表示为二进制数中的1和0, 再通过不同的二进制序列来表示所有的信息。也就是将数据以二进制中的0和1的比特流的电的电压做为表示,产生的脉冲通过媒介(通讯设备)来传输数据,达到通信的功能,这个是osl的物理层,也就是通信的工作原理。
OSI参考模型将整个协议垂直地分为7个层次 7、应用层 与用户应用进程的接口6、表示层 数据格式的转换 5、会话层 会话管理与数据传输的同步 4、传输层 端到端经网络透明地传送报文 3、网络层 分组传送,路由选择和流量控制 2、数据链路层 在链路上无差错地传送帧 1、物理层 经物理媒体透明传送比特流。
参考资料
最新修订时间:2022-08-25 12:41
目录
概述
简介
参考资料