三次握手,四次挥手基本概念及其抓包演示

目录

1.tcp三次握手

2.tcp四次挥手

3.思考问题(面试常考)

3.1 三次握手时可能出现什么攻击?

3.2 为什么是三次握手,可不可以是两次,为什么?

​编辑3.3 四次挥手的过程可以用三次完成吗?

4.抓包演示三次握手四次挥手


1.tcp三次握手

tcp协议特点:面向连接的,可靠的,流式服务,

udp协议特点:无连接的,不可靠的,数据报服务

TCP协议提供的是:面向连接的,可靠的,字节流服务.使用TCP协议通信的双方必须先建立连接,才能开始数据的读写.双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输.TCP连接是全双工的,双方的数据可以通过一个连接进行读写,完成数据交换之后,通信双方都必须断开连接以释放系统资源.

三次握手发生在发起链接 connect 的时候:

tcp协议报头:

6位标志位包含如下几项:
URG标志:表示紧急指针(urgent pointer)是否有效,

ACK标志:表示确认号是否有效.我们称携带ACK标志的TCP报文段为确认报文段

PSH标志:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲区中).

RST标志:表示要求对方重新建立连接,我们称携带RST标志的TCP报文段为复位报文段

SYN标志:表示请求建立一个连接.我门称携带SYN标志的TCP报文段为同步报文段

FIN标志:表示通知对方本端要关闭连接了.我们称携带FIN标志的TCP报文段为结束报文段

2.tcp四次挥手

什么时候开始挥手?服务器或者客户端执行close的时候;

刚好被动断开方收到要关闭的报文的时候也执行了close;也就是双方同时close,那么此时四次挥手也就演变为了三次挥手.否则,一定是需要四次挥手的.

3.思考问题(面试常考)

3.1 三次握手时可能出现什么攻击?

1.SYN洪泛攻击(SYN Flood Attack)客户端不断向服务器端发送连接请求,而不执行三次握手的第三步操作,就是只完成了三次握手的前两步操作,存在大量的半开连接,消耗服务器的连接资源。

防御:服务器端在分配资源时检查一下客户端是否是合法用户

2.DDOS攻击(分布式拒绝服务)

随着技术的进步,服务器端分配资源的时候会判断是否合法,以防止洪泛攻击,DDOS攻击是伪造合法用户。

3.2 为什么是三次握手,可不可以是两次,为什么?

不可以,原因1:因为容易受到攻击,参考第一问;如果不考虑攻击的话,原因:为了防止已经失效的连接请求报文段突然又传到了服务器端,具体如下:


3.3 四次挥手的过程可以用三次完成吗?

可以,第二步和第三步合在一起(没有时间差)。刚好被动断开方收到要关闭的报文的时候也执行了close;也就是双方同时close,那么此时四次挥手也就演变为了三次挥手.否则,一定是需要四次挥手的.

4.挥手时,可能受到什么攻击?

第三步容易受到攻击,第三步发FIN的时候,是被动断开,主动断开方最先发送结束报文想要断开链接,发送后主动方进入到TIME_WAIT状态(持续大概两分钟),在此期间,被动方不同意断开连接,不停的发FIN。主动方就认为,被动方没有收到ACK,这个连接就一直存在,无法断开。但是这种情况需要封装底层报文,一般不会这么做,除非是专门做攻击。

4.抓包演示三次握手四次挥手

使用tcpdump可以抓包观察TCP连接的建立与关闭.该命令需要管理员权限,格式如下:

(假设两个测试用的主机IP地址为192.168.6.104和192.168.6.146)

sudo tcpdump -i ens33 -nt '(src 192.168.6.104 and dst 192.168.6.146) or (src 192.168.6.146 and dst 192.168.6.104 )'

ens33表示是虚拟机 

注意:这里如果是用回环地址测试,可以这样写:sudo tcpdump -i lo

三次握手抓包过程:

四次挥手抓包过程:

抓包数据的Flag含义:

S:SYN;同步;表示开始会话请求

F:FIN ;结束; 结束会话

R:RST;复位;中断一个连接

P:PUSH;推送: 数据包立即发送

U:URG;紧急

E:ECE;显式拥塞提醒回应

W:CWR;拥塞窗口减少

. :没有Flag(除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值