使用tcpdump分析TCP的三次握手和四次挥手

本文通过实践操作,利用tcpdump分析了TCP的三次握手和四次挥手过程,包括建立连接、数据传输和断开连接的详细报文解释,加深了对TCP协议的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用tcpdump分析TCP的三次握手和四次挥手

自我感觉网络基础太薄弱了,最近打算恶补一下,先从TCP的建立连接和断开连接开始吧。

理论知识

从课本上我们都学过TCP建立连接的三次握手和断开连接的四次挥手,网络上相关的介绍博客也很多,推荐一个博客计算机之间是如何进行通信的?;详解三次握手和四次挥手,介绍得非常透彻易懂,感谢作者。

建立TCP server和client

使用python写了两个脚本:server.py和client.py,分别使用python socket实现TCP的server端和client端,脚本非常简单,直接照搬Python 网络编程| 菜鸟教程

server.py

import socket
import sys
import time

if __name__ == '__main__':
    port = int(sys.argv[1])

    s = socket.socket()
    host = socket.gethostname()
    print host
    s.bind((host, port))

    s.listen(5)
    while True:
        c, address = s.accept()
        print 'client address:', address
        print '\n'
        print c.recv(1024)
        c.send('reply')
        time.sleep(1)
        c.close()

client.py

import socket
import sys

if __name__ == "__main__":
    port = int(sys.argv[1])

    s = socket.socket()
    host = socket.gethostname()
    s.connect((host, port))
    s.send('query')
    print s.recv(1024)
    s.close()

抓包工具

我是在Linux测试,使用的是tcpdump,命名行

$ tcpdump -S tcp -i lo port {port}
  • tcp表示抓取TCP协议报文
  • -i lo是抓取localhost的报文,如果不用-i lo,默认无法抓取本地环回地址(127.0.0.1)的报文。lo是ifconfig命令返回的本地环回地址网卡标记。
  • port 抓取固定端口上的报文

抓包步骤

  1. 在第一个terminal中运行tcpdump -S tcp -i lo port {port}。
  2. 在第二个terminal中运行python
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值