Linux——TCP协议(三次握手(从数据包名,双方连接状态,包序管理分析),四次挥手(从数据包名,双方连接状态分析))


前言

TCP协议的连接是面向连接,可靠传输,面向字节流的,而TCP之所以能保持可靠传输是因为三次握手四次挥手

1. 三次握手

1.1 从数据包名称连接双方状态分析三次握手

首先我们通过数据包名连接双方的连接状态来了解三次握手的过程

如下图所示
在这里插入图片描述
客户端在发送SYN数据包后客户端的状态变为SYN_SENT,当服务端接收到客户端发送的SYN数据包后,服务端的状态变为SYN_RECV,当客户端接收到服务端的SYN数据包和ACK数据包后,客户端的状态变为ESTABLISHED,当服务端接收到客户端发送的ACK数据包时,服务端的状态变为ESTABLISHED,此时客户端和服务端已完成三次握手,即建立了双向连接。

【问题一】为什么要三次握手,而两次握手不行呢?

三次握手可以保证通信双方都是有连接的,若只进行两次连接服务端回复客户端的应答并发送SYN数据报,客户端不作出回应,并不能确保客户端接收到来自服务端的数据,因此两次握手只能保证客户端到服务端的连接是有效的,并不能保证服务端到客户端的连接有效

1.2 包序管理

1.2.1 抓网络数据包

  • 在windows平台下,可以使用wireshark软件来抓取网络数据包
  • 在linux平台下,使用 tcpdump 来抓取网络数据,TCP和UDP的包都可以使用此
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值