脚本宝典收集整理的这篇文章主要介绍了[ 网络协议篇 ] TCP三次握手四次挥手深度解析,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
目录
1. TCP报文的头
2. 三次握手过程
3. 三次握手过程(状态机)
4. 实例观察tcpdump命令
5. 从实例看三次握手过程
6. 精品文章分享
看不懂的地方可以查看我给的传送门,相信你看完之后会学到很多,不仅仅是tcp三次握手四次挥手,主要是学习思路可以得到很大的提升。
TCP 的三次握手和四次挥手是大厂常见的面试考题,具有一定的水平区分度。
如果你的回答不符合面试官期待的水准,有可能就直接凉凉。
那么,之前我是分享过TCP三次握手和四次挥手的,之前我是站在一个常见面试题的角度去进行的分享,讲的比较浅。主要讲了为什么不能两次握手,半连接队列是什么,SYN Flood攻击是什么,四次挥手为什么是十四次以及12种状态机。传送门
那么这篇文章将从其他的角度来进行分享
要彻底掌握三次握手和四次挥手我们就需要了解TCP报文的头部结构,如下图所示:
需要用到的字段:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有 DATA数据传输,RST表示连接重置
(在此不做详细讲解,可看传送门)
(在此不做详细讲解,可看传送门)
使用tcpdump观察如下:因为都是在本机同时运行client和server
所以命令为: tcpdump -i lo port 5555
只能监听回路lo接口,结果如下:
如图用红色圈起来的就是3次握手
但是为什么最后一次握手,为什么ack = 1,而不是369535922 呢
这是因为这里的第三次握手tcpdump显示的是相对的顺序号。
但是为了便于观察我们需要把tcpdump的顺序号变为绝对的顺序号。
命令只需要加-S(大写)便可,即:tcpdump - i lo port 5555 -S
从tcpdump的数据,可以明显的看到三次握手的过程是: 第一次握手:client SYN=1, Sequence number=2322326583 —> server 第二次握手:server SYN=1,Sequence number=3573692787; ACK=1, Acknowledgment number=2322326583 + 1 —> client 第三次握手:client ACK=1, Acknowledgment number=3573692787 + 1 -->server
[ 网络模型篇 ]大白话告诉你什么是OSI七层模型
[ 网络协议篇 ] 一篇文章让你掌握神秘的 ACL
[ 网络协议篇 ] 一篇文章让你掌握神秘的 NAT
[ 网络协议篇 ] 一篇文章让你掌握神秘的 DHCP(一)
[ 应急响应 ]服务器(电脑)受到攻击该如何处理?(三)
睡觉:
以上是脚本宝典为你收集整理的[ 网络协议篇 ] TCP三次握手四次挥手深度解析全部内容,希望文章能够帮你解决[ 网络协议篇 ] TCP三次握手四次挥手深度解析所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。