笔记 - tcp三次握手四次挥手

ACK : acknowledge - 确认、告知已收到

SYN: Synchronize - 同步,这里是客户端同步连接

FIN:Finall的意思,断开连接

用wireshark抓包查看是否正确:

自己ip : 192.168.1.4  目标ip : 115.182.41.180

1、三次握手

2、4次挥手:

第一次[FIN,ACK] 或 只有[Fin] ,客户端请求断开连接

第二次[FIN,ACK], 这里FIN和ACK一般分开来,服务端要准备断开的工作,才会发ACK包。但这次FIN和ACK同时发过来(可能是因为目标服务器的确没有东西发过来了)

第三次[ACK],被称为 Last ACK

最后发起方进入超时等待……

为什么有3次握手

每当建立一个TCP/IP连接的时候都要经历3次握手,这是为了保证建立一个可靠,保险的连接。

为什么有4次挥手

保证断开FIN包能互相收到,比握手多一次是在建立连接时SYN,ACK可以同时发过来,但是断开连接时,被挥手方(服务端)并不来得及断开,先发ACK包,然后做完所有工作(查看是否已发送完全部包)后再断开,然后发FIN回应。

举例:

3次握手

上图中的三次挥手说的是,客户端向服务器发请求,服务器接收请求,服务器接收请求之后发送一个连接标志,客户端接收连接标志之后也向服务器发送一个连接标志,至此连接完成。用打电话类比的话就是: 
小明拨打小红的电话 
小红按下通话键并说了声,喂 (一次握手) 
小明听到小红的回应,也说了声,喂 (二次握手) 
小红接收到小明的回应 (三次握手)

4次挥手

为什么有4次挥手呢,4次挥手的作用就是断开连接,之所以要断开连接是因为TCP/IP协议是要占用端口的,而计算机的端口是有限的,所以一次传输完成之后是要断开连接的,断开连接的方式就是4次挥手。 
连接是由客户端发起的,所以断开连接也要有客户端发起,因为服务器是被动的。上图的最后一部分就是4次挥手,还是用小明和小红打电话来类比, 
小明:我这没事儿了,你还有事儿吗? (1次挥手) 
小红:我也没事儿了,你确定没事儿了吗? (2次挥手) 
小红:我要挂电话了。 (3次挥手) 
小明:好吧,你挂吧。 (4次挥手)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值