TCP如何建立/拆除连接的方法

TCP如何建立连接

图 1TCP 首部格式中SYN 标志位仅使用在建立TCP 连接的过程中,TCP 建立连接的过程被称为“三路握手“连接,即一般通信双方共需要传输三个数据包方能成功建立一个TCP 连接。我们通常将建立连接作为使用TCP 协议理所当然的前导过程,但很少去质疑这样一个建立连接过程的必要性。

实际上,使用TCP 协议必须首先建立一个连接是保证TCP 协议可靠性数据传输的基本前提(当然由于TCP 协议是一个有状态协议,必须通过某种机制进行通信双方状态上的同步,而建立连接就是这样一种机制)。

至于为何需要三个数据包,原因是建立连接过程中信息的交换必须至少使用三个数据包,从下文的分析来看,建立连接最多需要使用四个数据包。需要再次提到的是:SYN 标志位只是用在建立连接的三个(或者四个)数据包中,一旦连接建立完成后,之后发送的所有数据包不可设置SYN 标志位。单从保证数据可靠性传输角度而言,TCP 协议需要在正式数据传输之前首先进行某些信息的交换,这个信息即是双方的初始序列号(另外的一些信息包括最大报文长度通报等)。

诚如前文所述,序列号的使用对于 TCP 协议而言至关重要,在正式数据传输之前,双方必须得到对方的初始字节数据的编号,这样才有可能对其所接收数据的合法性进行判断,才有其它的对数据重复,数据重叠等一系列问题的进一步判别和解决。故交换各自的初始序列号必须在正式数据传输之前完成,我们美其名曰这个过程为连接建立过程。至于双方TCP 协议各自状态的更新主要是软件设计上可靠性保证的一个辅助,并非这个所谓的建立过程所主要关注的问题。

初始序列号的交换从最直接的角度来说需要四个数据包:

1> 主机 A 向主机B 发送其初始序列号。

2> 主机 B 向主机A 确认其发送的初始序列号。

3> 主机 B 向主机A 发送其初始序列号。

4> 主机 A 向主机B 确认其发送的初始序列号。

我们将<2><3>两步合为一步,即B 向A 确认其(A 之前发送的)初始序列号的同时发送其(即B 自己的)初始序列号。所谓确认数据包即将数据包的ACK 标志位设置为1 即可。注意这三个(或四个)数据包中SYN 标志位设置为1,而且SYN 标志位也仅在这三个(或四个)数据包中被设置为1。

此处有一个问题:即A,B 主机在通报各自初始序列号的同时能否传输一些正常数据,原理上可以(TCP 协议规范上并没有说不可以),但是大多数实现在通报初始序列号时都不附带正常数据,而是将其作为一个单独的过程,由此正式确立建立连接一说。

TCP如何拆除连接

当前连接的双方都可以发起拆除连接操作,但简单的拆除连接可能会造成数据丢失。为此,TCP采用四次握手的方式拆除连接。

四次握手与三次握手类似:

①1发拆除请求

②2收到请求,并发确认,1收到该确认后,不再发送数据,但任然会接收数据(半连接)

③2发拆除请求

④1收到请求,并确认,到此拆除完成

(0)

相关推荐

  • 建立宽带连接的方法

    建立宽带连接的方法如下: 步骤一、首先我们点击网络连接,然后打开了一个网络窗口,在窗口的左上找到“创建一个新的连接”按钮,点击打开它即可。如图所示: 步骤二、然后弹出了新建连接向导的窗口,点击“下一步 ...

  • XP系统电脑建立本地连接的方法

    XP系统电脑建立本地连接的方法 步骤如下: 1.在桌面找到"网络连接"的图标,打开它,然后在左边的网络任务上点击"创建一个新的连接"按钮; 2.然后弹出了新建连 ...

  • 建立宽带连接设置方法

    ADSL用户想上网首先得建立一个宽带链接,今天小编就带大家来学习怎样建立宽带连接和宽带连接的相关设置方法(以WINXP系统为例) 首先在桌面上用鼠标左键点击网上邻居,选择属性,出来网络连接的文件夹,现 ...

  • 怎么在电脑中建立远程连接

    有的小伙伴在使用电脑过程中,遇到了一些问题,因此想要好友远程操控电脑,来解决电脑中的问题,需要建立远程连接,但是却不知道如何建立,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,右击计算机图标, ...

  • 怎么重新建立宽带连接

    网络现在已经进入了我们的日常生活,成为我们对外的一大重要窗口.那如何建立"宽带连接"来进行拨号上网呢?今天小编就告诉你建立"宽带连接"的方法. 操作方法 01 ...

  • Windows7下手动建立VPN连接的详细方法 (图文教程)

    大幅度改进了网络功能的Windows7系统,让众多刚接触Windows7系统的新手有些无所适从。今天来教大家在Windows7系统中建立及管理VPN(virtual private network,虚 ...

  • Win7系统手动建立VPN连接方法教程

    Windows7大幅度改进了网络功能,这让许多刚接触Windows7系统的新手有些无所适从。今天我们讲的就是在Windows7系统中建立及管理VPN(virtual private network,虚 ...

  • Windows7下手动建立VPN连接的详细方法

    大幅度改进了网络功能的Windows7系统,让众多刚接触Windows7系统的新手有些无所适从。今天来教大家在Windows7系统中建立及管理VPN(virtual private network,虚 ...

  • CentOS上搭建PPTP VPN及使用pptpsetup建立连接的方法

    安装PPP,PPTP 复制代码 代码如下: # yum install -y ppp# rpm -ivh http://static.ucloud.cn/pptpd-1.3.4-2.el6.x86_6 ...