TCP的连接与终止-三次握手和四次挥手

当使用TCP协议的应用程序需要向服务器获得资源的时候,就需要通过TCP协议去建立一种关系,这个关系维系了客户端与服务器之间的通信。握手的主要目的,就是为了提供高可靠的信息沟通机制!确保沟通的顺畅!防止失效的连接对服务器造成困扰!

当我们打电话的时候,往往都是这样子:

张三:你好我是张三!请问是李四么,

李四:你好张三,我是李四!你有什么事么???

张三:你好李四,我想问你个问题!XXXXXX。。。


下面我们用图来说明TCP建立连接的步骤!例如我用电脑浏览器,访问www.liujinghui.com。

第一步:客户端发送请求连接服务器的报文


报文:
ACK(确认序号有效标记位):0
SYN(发起一个新连接):1

seq(标明我当前发送数据包的序列号):x

第二步:服务器监听程序收到了客户端发来的请求报文


报文:
ACK(确认序号有效标记位):1
SYN(发起一个新连接):1
seq(标明我当前发送数据包的序列号):y

ack(确认对方序列号并希望获得下一个序列号的数据包) =x+1

第三步:客户端收到了服务器发来的回话!进行最后一次确认!


报文:
ACK(确认序号有效标记位):1
seq(标明我当前发送数据包的序列号,+1表示下一个数据包):x+1

ack(确认对方序列号并+1表示希望获得下一个序列号的数据包) =y+1

======上述活动完成后tcp连接即可建立!======

========通信ing......=======

========通信ing......=======

========通信ing......=======

========通信ing......=======

========通信ing......=======

======上述通信完成后断开tcp连接!      ======

第一步:客户端给服务器发送FIN包,要求关闭客户端到服务器的数据连接。


报文:
FIN(要求释放连接):1
ACK(确认序列号有效):1
seq(当前的数据包):m

ack(期待获得的服务器数据包):n

第二步:服务器收到FIN后,发回一个标志位ACK=1,确认序号为收到的序号加1,希望获得回复,本次发送序号为收到的客户端发来的确认序号n。


报文:
ACK(序列号有效):1
seq(本报文包序列号):n
ack(希望获得的确认包序列号):m+1

第三步:服务器接着发送FIN报文包,希望断开连接,并等待收到客户端回复


报文:
FIN(要求释放连接):1
ACK(确认序列号有效):1
seq(发送自己新的序列号):x
ack(希望客户端回复包的序列号):m+1

第四步:客户端确认过眼神 是该分手的人!


报文:
ACK(确认序列号有效):1
seq(发送自己的回复包序列号):m+1

ack(对方确认包序列号):x+1


到此为止,连接就中断了!====

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值