最近在linux下做项目,学习使用libnet实现对网络数据包的构造及发送。正如我们所知,libnet是linux下的一个接口函数库,封装性好,使用也比较简单。今晚在虚拟机上做实验,验证了TCP的三次握手过程。
准备:虚拟机下安装两个ubuntu10.10和xp三个操作系统,其中一个ubuntu上装上libnet,具体编译安装网上有很多教程,也很简单。xp上安装wireshark,wireshark是一个网络包分析软件,能够捕获经过某块网卡的数据包并对数据包进行解析。注意,虚拟机上的系统一定要设置成独立联网,而不是和主机共享ip。这个实验是在局域网内部进行的,主机上的ip和虚拟机上的ip都是局域网内部手动分配的。安装完后,开始用libnet的接口函数构造一个简单的数据包。对了,libnet是用c实现的,因此封装完数据包之后在shell下用gcc编译,然后运行。
(xp上wireshark能够对经过网卡上的数据包进行捕获,过滤条件为 ip.dst == 192.168.1.127,表示捕获目的ip为192.168.1.127的所有数据包)
一、三台主机同时在线,其中服务器为另外一台PC,ip分别为192.168.1.127(服务器),192.168.1.172(客户端1 ubuntu1),192.168.1.160(客户端2 ubuntu2)
使用libnet进行TCP三次握手验证
最新推荐文章于 2023-07-15 21:03:27 发布