⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜
✏️write in front✏️
📝个人主页:陈丹宇jmu
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
🙉联系作者🙈by QQ:813942269🐧
🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事顺意🏳️🌈
✉️少年不惧岁月长,彼方尚有荣光在 🏆
💡一、实验目的
熟练掌握Wireshark常用抓包工具的使用,读懂数据包结构。
💡二、实验内容与设计思想
实验内容:
安装并使用Wireshark抓包分析工具抓取数据包,分析TCP三次握手、ARP协议数据单元的格式;使用Snmputilg或Snmputil进行网管操作,抓取分析SNMP数据包。
💡三、实验要求:
1)安装Wireshark和WinPcap程序;
2)设置抓包过虑器;
3)抓包分析并验证TCP三次握手建立连接时三次握手工作过程;
4)分析并验证ARP协议数据单元的格式;
5)用snmputilg或snmputil读取被管理站的管理数据,在被管理站抓包分析。
💡四、实验使用环境
操作系统: Microsoft Windows 7/8/10/11
设计环境: Wireshark 3.4.0, Windows 11 snmp简单邮件协议,snmputil,snmputilg工具
抓包分析并验证TCP三次握手建立连接时三次握手工作过程
验证与百度服务器三次握手的建立过程:
过滤命令:
tcp && ip.dst ==14.215.177.38
验证在路由环境下的三次握手过程:
实验仿真为R2远程登录R1路由器,验证TCP的三次握手建立连接过程。
TCP三次握手的原理:
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。
进行三次握手:
- 第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
- 首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
- 第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态。在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
- 第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接。
确认报文段ACK=1,确认号ack=y+1,序号seq=x+1(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。发送第一个SYN的一端将执行主动打开(active open),接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。
socket编程中触发三次握手
在socket编程中,客户端执行connect()时,将触发三次握手。
🚩结尾
考虑到阅读篇幅,更多实验内容参考本专栏中的其他文章
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
🌈写给读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事顺意🏳️🌈