• Wireshark抓包分析TCP“三次握手,四次挥手”


    Wireshark抓包分析TCP“三次握手,四次挥手”

    1.目的

    客户端与服务器之间建立TCP/IP连接,我们知道是通过三次握手,四次挥手实现的,但是很多地方对这个知识的描述仅限于理论层面,这次我们通过网络抓包的方式来看一下实际的TCP/IP传输过程。

    2.什么是抓包?

    网络传输信息是通过层层打包,最终到达客户端物理层,经过网线等设备传输到服务器端后,再进行层层拆包,最后获取信息。而抓包的“包”就是这个打包了信息的“包。抓包(packet capture)就是将网络传输发送与接收的数据包进行截获,来进行分析的过程。

    3.如何进行抓包?

    我们可以利用现成的网络抓包软件Wireshark,进行抓包,从而分析TCP/IP传输过程。
    Wireshark软件下载:Wireshark软件官网下载,一定要下载下图中的”Windows Installer(64-bit)
    image

    4.抓包分析TCP/IP传输过程(“三次握手”)

    4.1第一步:浏览器打开网页https://www.hit.edu.cn/ (其他的网页也没问题)

    image

    4.2第二步:打开命令行窗口,输入:ping www.tencent.com,查看IP地址(切记:千万不要把https/http加进去)

    image
    这里我们得到的IP地址是61.167.60.70

    4.3第三步:打开Wireshark软件

    4.3.1先双击“WLAN”

    image

    4.3.2得到下图

    image

    4.3.3在下图方框位置输入:ip.addr==61.167.60.70,按下回车键,稍等片刻

    (如果没反应,重新在浏览器输入网址,并重新获取IP地址,也就是重复1,2步操作)
    image

    4.3.4显示如下图所示

    image
    注意!!:如果第一步访问的是一些比较大的网站,例如腾讯之类的,这步会出不来,因为这些大网站往往有多个主机,你用ping访问到的ip地址和浏览器访问到的ip地址会出现不一致的情况,导致这一步只有ping的包。也就是说建议大家不要选择大网站测试,可以像我这样,用自己学校网址或者一些小的网站测试。

    5.分析“三次握手”抓包结果

    首先是抓包结果图(把上一步得到的结果划到最上面看)如下:
    image
    方框处也就是“三次握手的结果。

    • 第一次的标志是“[SYN]”,序列号seq为0, 代表客户端请求建立连接
    • 第二次的标志是“[SYN, ACK]”,序列号Seq为0,Ack值为客户端发送过来的Seq加1,也就是1,表示服务器可以正常接收客户端数据包。
    • 第三次的标志是“[ACK]”,客户端表示可以正常接收服务器数据包,这是为了保证可以全双工通讯,接下来就可以正常发送数据。

    6.“四次挥手”抓包及分析

    首先我们需要把浏览器的页面关闭,也就是断开TCP/IP连接,之后等待几分钟。会出现下面的画面,方框就是“挥手”过程。
    image
    四次挥手标志分别为:

    • "[FIN, ACK]"
    • "[ACK]"
    • "[FIN, ACK]"
    • "[ACK]"

    这里,我们需要注意两点:
    (1)客户端与服务器端传输时全双工的,因此断开请求既可以由客户端发起,也可以由服务器端发起。只要找准第一次出现"[FIN, ACK]"的位置,就是第一次挥手位置。
    (2)为什么我们抓包抓到的不是“四次挥手”,而是“三次挥手”呢?
    这里涉及到LInux的TCP时延机制,当被挥手端(这里是12672端口)第一次收到挥手端(这里是443端口)的“FIN”请求时,并不会立即发送ACK,而是会经过一段延迟时间后再发送,但是此时被挥手端也没有数据发送,就会向挥手端发送“FIN"请求,这里就可能造成被挥手端发送的“FIN”与“ACK”一起被挥手端收到,导致出现“第二、三次挥手”合并为一次的现象,也就最终呈现出“三次挥手”的情况。

  • 相关阅读:
    ireport字体无效处理
    java web调用打印机打印pdf文件
    Extjs中如何在一行textfield后面增加文字提示
    java 压缩文件
    filter加载springbean
    Elasticsearch问题记录
    dubbo管控台的安装记录及dubbo开发调试记录
    mysql索引整理
    fastdfs集群搭建3
    fastdfs集群搭建2
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/16611322.html
Copyright © 2020-2023  润新知