TCP链接——三次握手和四次断开

1.面向链接服务器

TCP是一个面向链接的协议,面向链接是指任何一方向对方发送数据前必须先创建通道,好比像打电话同样:必需要等到对方的手机响铃,而且对方接听电话时,才能与对方通讯。而UDP则不是面向链接的协议,基于UDP协议的通讯双方不须要事先与对方协商创建链接,也无论对方的IP地址与端口号是否存在,就发送数据,这个处理方式有点像手机发短信,无论对方手机是否欠费或关机,咱们就只管发送信息。并发

2.三次握手


第一次握手:客户端发送SYN包(序列号seq=100,等待服务器的确认。ide

第二次握手:服务器收到SYN包以后,必须确认客户端,因此就要发送ACK包(ACK=101,同时,服务器必须还必须发送SYN包(序列号seq=300)等客户端的确认。spa

第三次握手:客户端接收到SYN+ACK包以后,向服务器发送确认包(ACK=301),次包发送完毕以后,二者就能够进行数据交换了。xml

简单的来讲:it

C(客户端) S(服务器)class

C:发送SYNS请求

S:若是成功,返回给C(SYN+ACK)程序

C:若是成功,返回给S(ACK)im

还可用个形象的例子说下:TCP的 三次握手过程能够当作是某男生追某女生的过程。第一次握手就比如是:男生向女生告白,说我喜欢你,而后男生等待女生的回应,第二次握手就比如是:女生收到 男生的告白,并且该女生也喜欢次男生,她就能够给男生回应,说:我也喜欢你。第三次握手:男生收到该女生的回应,大喜,又发送消息过去,那咱们正式交往 吧!

3.四次断开

1.客户端发送数据完毕以后,提出要断开链接

2.服务器收到FIN包后,对其做出反应,发送ACK包,确认这一方向的链接将关闭,

3.等服务器的应用程序作好关闭准备时,服务器反方向发送FIN包,请求关闭链接请求,

4.客户机对服务器发送的请求进行确认,并发送ACK

也可简单的概述:

C(客户端) S(服务器)

C:发送FINS

S:若是成功,返回给C(ACK)

S:应用程序作好关闭程序准备,发送FINC

C:若是成功,返回给S(ACK)

一样也能够用个形象的例子说明:这个过程至关于男女双方分手的过程:1,女方向男方提出分手,等待男方的回应2,男方听到这个消息后,就给女方回应说:好吧!分就分3,过段时间,男方忽然以为很没面子,想:“我一个大老爷们,应该是我提出分手”,因而,男方跟女方说:咱们分手吧!4,这时,女方就直接骂了句“神经病”。

相关文章
相关标签/搜索