TCP的三次握手及四次断开

我们知道TCP和UDP是两种传输协议,那么TCP的优点是可靠性高,传输数据量大,而UDP的优点是传输速度快,他们各有所长,看情况而使用吧。

下面介绍一下TCP的三次握手与四次断开。刚接触这个,应该对一些缩写并不知道,那么首先了解几个名词吧

ACK,意思是“确认字符”,TCP报头的控制位之一,对数据进行确认.确认由目的端发出,用它来告诉发送端这个序列号之前的数据段;

SYN 是同步序列号,TCP建立连接时将这个位置1;

FIN意思是终止结束(finall),是发送端完成发送任务位,当TCP完成数据传输需要断开时,提出断开连接的一方将这位置1

三次握手:是指TCP建立连接的过程

我们假设有两台主机,主机A和主机B

第一次:主机A向主机B发送一个数据段,向主机B请求连接

            主机A通过这个数据段告诉主机B两件事情:1、我想要和你通信了;2、你要用哪个序列号为起始数据段来回应我呢?

第二次:主机B收到主机A的请求后,用一个数据段来回应主机A,数据段包括:确认应答(ACK)和同步序列号(SYN)

            主机B通过数据段也告诉主机A两件事情:1、我已经收到了你的请求,你可以传输数据了;2、你要用哪个序列号为起始数据段来回应我呢?

扫描二维码关注公众号,回复: 1315608 查看本文章

第三次:主机A收到主机B的回应后,再发送一个确认应答(ACK)

            主机A告诉主机B:我要开始传输数据了。

四次断开:是指终止连接的过程

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。

当一方完成它的数据发送任务后就发送一个FIN来终止这个方向的连接。

收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。

首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

第一次:主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求

第二次:主机B收到FIN后,对其作出相应,将ACK置1,确认这一方向上的TCP连接将要关闭

第三次:主机B向主机A提出关闭请求,将FIN置1

第四次:主机A相应主机B,对主机B的请求进行确认,将ACK置1,此时双方连接均关闭

从TCP的三次握手、四次断开可以看出TCP的数据传输具有较高的可靠性吧。

猜你喜欢

转载自981875739.iteye.com/blog/1681839