linux四次断开的工作原理,tpc三次握手和四次断开的过程讲解

tpc三次握手和四次断开的过程讲解

发布时间:2014-08-20 20:59:55来源:红联作者:小小295813080

马哥Linux讲解,tpc三次握手和四次断开的过程,面试过程中经常会被问到。希望对大家有所帮助。

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:

SYN(synchronous同部位),tcp握手的第一次

ACK(acknowledgement 确认位),建立连接时用到的

PSH(push) 推送位,若为1,代表要求对方立即传送缓冲区内的其他对应封包,

FIN(finish结束)

RST(reset重置)

URG(urgent紧急),为1表示紧急的报文封包

Sequence number序列号

Acknowledge number确认号

三次握手:

第一次握手:client发送位码为syn=1,随机产生seq number=1000的数据包到服务器,server由SYN=1知道,client要求建立联机请求,

第二次握手:sever收到请求后要确认联机信息,向client发送ack number=(client的seq+1),syn=1,ack=1,随机产生seq=6777的数据包

第三次握手:client收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,

若正确,client会再发送ack number=(server的seq+1),ack=1(syn=0),server收到后确认seq值与ack=1则连接建立成功。

完成三次握手,双方开始传送数据。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接:

第一次握手:当客户端要建立连接时,首先发送syn=1,并随机产生一个序列号的报文到服务器,并进入SYN_SEND状态,等待服务器确认, 这时服务器是LISTEN状态

第二次握手:服务器收到报文请求,由SYN=1知道客户端要建立链接请求,向客户端发送ack number(客户端序列号+1),ack=1,syn=1,同时自己也发送一个SYN包(syn=k),

即SYN+ACK包,此时服务器进入SYN_RECV状态,

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(服务器的序列号+1),ack=1,server收到后确认seq值与ack=1,客户端和服务器进入 ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据.

一个完整的三次握手也就是请求---应答---再次确认

四次断开:

file:///C:/Users/ADMINI~1/AppData/Local/Temp/Wiz/edeefdb9-b623-414f-8636-d5f33984d8eb_4_files/a136a60725f6498ae69c5d7d567ddb48.png

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

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

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

首先进行关闭的一方是主动断开方,而另一方是被动断开方。

四次断开过程:

1、客户端发送一个FIN,用来关闭客户端到服务器的数据传送,此时客户端进入TIME_WAIT1状态

2、服务器收到这个FIN,它发回一个ACK,确认号为收到的序号加1,和SYN一样,一个FIN将占用一个序号,此时服务器进入CLOSE_WAIT状态,客户端端进入TIME_WAIT2

3、当服务器端也没有要传送的数据时,服务器关闭与客户端的连接,发送一个FIN给客户端A,服务器进入LAST_ACK

4、客户端发回ACK报文确认,并将确认号设置为收到序号加1,客户端进入TIME_WAIT,等待2MSL--120s,服务器端接后进入CLOSED

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值