TCP的建立连接和释放(三次握手,四次挥手)

Tcp三次握手连接和四次挥手断开过程详解

参考的文章:https://baijiahao.baidu.com/s?id=1596016296668694374&wfr=spider&for=pc

https://mp.weixin.qq.com/s?__biz=MjM5OTA1MDUyMA==&mid=2655444247&idx=1&sn=9a7e6117180cf888195c2a12699f44cb&chksm=bd7311608a049876ac89b1cec881858d8aac575248eb1ea0e07114ff051201df647c217cf08b&mpshare=1&scene=1&srcid=01220lyhJezxOjDhu9a59EBg#rd

TCP是一种面向连接单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。

所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如ip地址、端口号等。

TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。

TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接。采用四次挥手关闭一个连接。

 

ACK —— 确认,使得确认号有效。

RST —— 重置连接(经常看到的reset by peer)就是此字段搞的鬼。

SYN —— 用于初如化一个连接的序列号。

FIN —— 该报文段的发送方已经结束向对方发送数据。

 

TCP的连接建立是一个三次握手过程,目的是为了通信双方确认开始序号,以便后续通信的有序进行。

主要步骤如下:

1. 连接开始时,连接建立方(Client)发送SYN包,并包含了自己的初始序号a;

2. 连接接受方(Server)收到SYN包以后会回复一个SYN包,其中包含了对上一个a包的回应信息ACK,回应的序号为下一个希望收到包的序号,即a+1,然后还包含了自己的初始序号b;

3. 连接建立方(Client)收到回应的SYN包以后,回复一个ACK包做响应,其中包含了下一个希望收到包的序号即b+1。

TCP终止连接的四次握手过程如下:

1. 首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到这个FIN)执行被动关闭。

2. 当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

3. 同时TCP服务器还向应用程序(即丢弃服务器)传送一个文件结束符。接着这个服务器程序就关闭它的连接,导致它的TCP端发送一个FIN。

4. 客户必须发回一个确认,并将确认序号设置为收到序号加1。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值