西工大计算机网络实验四
13页1、实 验 报 告实验四、解析实验四、解析 IP 分组分组一、实验目的一、实验目的1、IP 分组是网络层传输的基本单元,通过接受和解析 IP 分组,了解 IP分组基本结构,与 IP 协议基本功能;2、输出 TCP 报文数据,以 16 进制输出,建立 TCP 连接,分析 TCP 的三次握手。二、实验过程二、实验过程(1)实验流程(2)实验原理:想要抓取网络中的 IP 数据包,必须对网卡进行编程,我们使用套接字(socket)进行编程。但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式出发的数据包。对于其他形式的数据包,如已到达网络接口但却不是发送到此地址的数据包,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。我们要想获取流经网络设备的所有数据包,就需要将网卡设置为混杂模式。本程序主要由三部分构成:初始化原始套接字,反复监听捕获数据包和解析数据包。1)使用原始套接字套接字分为三种,即流套接字(Stream Socket) 、数据报套接字(Datagram Socket)和原始套接字(Raw Socket)
2、 。要进行 IP 数据包的接受与发送,应使用原始套接字。在 WSASoccet 函数中,第一个参数指定通信发生的区字段,AF_INET 是针对Internet 的,允许在远程主机之间通信。第二个参数是套接字的类型,AF_INET 地址族下,有 SOCK_STREAM、SOCK_DGRAM、SOCK_RAW 三种套接字类型。在这里,我们设置为 SOCK_RAW,表示我们声明的是一个原始套接字类型。第三个参数依赖于第二个参数,用于指定套接字所用的特定协议,这里使用 IP 协议。第四个参数为 WSAPROTOCOL_INFO 位,该位可以置空,永远置 0。第六个参数是标志位,WSA_FLAG_OVERRLAPPED 表明可以使用发送接收超时设置,本课程设计也可以把这个标志位设置为 NULL,因为本设计不用考虑超时情况。创建原始套接字后,IP 头就会包含在接收的数据中。然后,我们可以设置IP 头操作选项,调用 sotscockpot 函数。其中 flag 设置为 TRUE,并设定IP_HDRINCL 选项,表明用户可以亲自对 IP 头进行处理。之后,完成对 socket的初始化工作。填写 so
3、ckaddr_in 的内容时,其地址值应填写为本机 IP 地址可以通过gethostbyname()函数获取;端口号可以随便填写,但不能与系统冲突;协议族应填写为 AF_INET。注意,sockaddr_in 结构的值必须是以网络字节顺序表示的值,而不能直接使用本机字节顺序的值,使用 htoms()函数可以将无符号短整型的主机数据转换为网络字节的顺序的数据。最后使用 bind()函数将socket 绑定到本地网卡上。绑定网卡后,需要 WSAIoctl()函数把网卡设置为混杂模式,使网卡能够接收所有网络数据,如果接收的数据包中的协议类型和定义的原始套接字匹配,那么接收到的数据就拷贝到套接字中。因此,网卡就可以接收所有经过的 IP 包。2)接收数据包在程序中可使用 RECV()函数接收经过的 IP 包。该函数有四个参数,第一个参数接收操作所用的套接字描述符;第二个参数接收到缓冲区的地址;第二个参数接收缓冲区的地址;第三个参数接收缓冲区的大小,也就是所要接收的字节数;第四个参数是一个附加标志,如果对所发送的数据没特殊要求,直接设为 0。因为 IP 数据包的最大长度是 65536B,因此缓冲区
4、的大小不能小于65535B。设置缓冲区后,可利用循环来反复监听接收 IP 包,用 recv()函数接收。然后定义 IP 头部的数据结构。程序需要定义一个数据结构表示 IP 头部这时我们只考虑 IP 头部结构,不考虑数据部分。在捕获 IP 数据包后,可以通过指针把缓冲区的内容强制转化为 IP_HEADER 数据结构。3)解析 IP 数据包解析 IP 数据包的字段有两种策略。针对长度为 8 位、16 位和 32 位的字段 (或子字段)时,可以利用 IP_HEADER 的成员指教获取。要解析长度不是 9 位倍数的字段(或子字段)时,可以利用 C 语言中的位移以及与、或操作完成。下面给出了通过 IP_HEADER 解析 IP 头各个字段的代码。(3)IP 源代码 #include “winsock2.h“ #include “ws2tcpip.h“ #include “iostream“ #include “stdio.h“ #pragma comment(lib,“ws2_32.lib“)using namespace std;static const int NumOfData = 8;t
《西工大计算机网络实验四》由会员lizhe****0001分享,可在线阅读,更多相关《西工大计算机网络实验四》请在金锄头文库上搜索。
亚龙YL-235A光机电一体化实训与考核设备的使用
2016年第三讲比较文学研究对象、种类和范畴
《导游学》第九章导游人员的讲解技能
《施工图识读与会审》3.0.1.1钢结构工程施工图识读与会审
北京嘉利国际商住项目公关活动策划方案
平面解析几何椭圆
植物学第三章第三节叶
财政学第六章财政投资支出和社会保障支出
计算机控制系统(英文版)Chapter1ComputerControlTheoryandDesign
现代物流学第九章电子商务物流
学校管理学第十五章教学媒体的管理
北大《空间探测信息处理技术(IDL)》第7章图像处理(中)
化工基础第二章传热过程
初中英语:上好一堂课的22个关键要素
《田径运动》技术课-跳高2背越式跳高孤线助跑起跳技术
《建筑室内设计》第七章办公空间设计
《城市规划原理》第十章城市历史文化遗传保护与城市更新
《国际金融》Leture4国际金融体系与汇率制度的选择
《中医内科学》第五章肾系病证黄疸
石家庄苹果城商务楼营销策划方案
2024-03-05 77页
2024-03-05 50页
2024-02-29 54页
2024-02-29 75页
2024-02-29 52页
2024-02-29 54页
2024-02-29 125页
2024-02-29 74页
2024-02-29 61页
2024-02-29 56页