首页 > 编程知识 正文

ip网络扩展综合实验报告,计算机网络实验报告1

时间:2023-05-05 02:06:33 阅读:137602 作者:4577

计算机课程设计——IP数据包分析实验报告

分析IP数据报实验报告目录21、课程设计目的. 22、课程设计要求. 23、相关知识. 24、 课程设计分析. 64.1网卡设置64.2使用套接字74.2.2接收数据包74.3定义IP报头数据结构84.4 IP数据包分析. 94.5协议定义94.6捕获处理. 95、运行结果106汇总117、117 课程设计的目的本课程设计的目的是设计分析IP数据包的程序,基于该程序说明IP数据包的结构和IP协议的相关问题,以便更好地理解和认识IP层的工作原理。 2、课程设计中,本设计的目标是捕获网络中的IP数据包,分析数据包的内容,将结果显示在标准输出中,同时写入日志文件。 程序的具体要求如下。 1 )以命令行形式执行。 IP密码日志文件。 其中ipparse是程序名称,logfile是要记录结果的日志文件。 2 )捕获的IP包的版本、报头长度、服务类型、包全长、包标识、段标志、段偏移值、生存时间、上层协议类型、报头校验和、源IP地址和目标IP地址3 )程序接收到键盘输入Ctrl C后结束。

3、相关知识互联网络层是TCP/IP协议参考模型的重要部分。 IP协议将从传输层发送的消息组装成IP分组,并将IP分组发送到数据链路层。 IP协议在TCP/IP协议族中处于核心地位,IP协议为了消除一个通信子网的差异制定了统一的IP包格式。 在编写此程序之前,首先需要了解IP数据包的格式。 图1显示了IP协议的数据包格式。 IP数据包的第一个字段是版本字段,4位,表示要使用的IP协议的版本。 当前版本为IPV4,版本字段值为4,下一代版本为IPV6。 版本值为6。 本程序主要以版本为IPV4的数据包的分析为对象。 标头长度字段为4位,用于定义IP数据包的消息长度,单位为4B。 标头中除了选项字段和填充域字段外,其他字段都是固定长度。 因此,IP数据包的报头长度在20—40B之间, 是可变的.0 4 8 16 19 24 31版本头长度服务类型全长标识标志片偏移生存时间协议头和源IP地址目标IP地址选项嵌入域数据部分图1的IP包的格式服务类型字段共计8比特如图2所示,该字段长度包含4比特服务类型(TOS )子字段和3比特优先子字段,1比特是预留比特。 该字段结构如图2所示。 B7B6B5B3B1B0优先级D T R C 0图2服务类型字段结构的优先级共有8种,优先级越高表示数据包越重要。 表1显示了各优先顺序所表示的含义。 表1的优先子域说明比特数(b7b6b5)含义111网络控制器110网络间控制器101关键(CRITIC/ECP ) 100即时、优先010即时001优先000普通4比特服务类型子域中b4、b3 表2显示了服务器类型自身域的配置。 位数) b4b3b2B1)语义1111安全级别最高1000延迟最小0100吞吐量最高0001金钱成本最低0000一般服务总长度字段为2b,用于定义数据包的总字节数。 IP数据包的最大长度为65535B。 识别字段的长度为16位,用于识别IP数据包的编号。 每个数据包都需要一个标识值,目的地主机才能确定新数据属于哪个数据包。 标题中的标志字段如图7-3所示,标志字段共有3位,最高有效位为0。 平铺禁止标志df(donotfrrot DF值为0表示可以进行切片。 “切片标志MF”值为1,表示它不是最后一个切片。 MF值为0时,接收到的是最后的片段。 片偏移字段总共为13位,指示片在整个分组中的相对位置。 因为以8B为单位计数片段偏移值,所以所选择的片段的长度必须为8B的整数倍。 生存时间(TTL )字段为8比特,用于设置因特网上分组传输过程的寿命。 通常受一个数据包可以通过的路由器跳数的最大限制。 协议字段为8位,表示使用此IP数据包的上层协议类型,常用协议编号如表3所示。 序列号协议名称协议名称序列号协议名称12468 icmpigmpipiniptcpegp 17414689 UDP IPv6 rsvpospfa表3中的典型协议编号校验和字段为16位,用于存储的范围为整个IP分组的校验和的计算方法如下。 1 )将标题校验和字段设置为0。 2 )以16位为单位将标题部分的所有数据相加。 加法方式求异或。 3 )磁头校验和将累积的结果转换为反码。 当接收到一个IP数据包时,为了检查报头是否有错误,以16位为单位累计报头中的所有数据,如果累计的结果为0,则消息没有错误。 地址字段包含源地址和目标地址。 源地址和目标地址的长度均为32位,分别表示发送包的源主机和目标主机的IP地址。 可选字段的长度为0到40b,主要用于控制和测试。 在使用选项字段时,有可能

出现报头部分的长度不是 32 位的整数倍的情况。如果出现这种情况,就需要通过填充位来凑齐。4、课程设计分析4.1 网卡设置为了获取网络中的 IP 数据包,必须对网卡进行编程,在这里使用套接字(socket)进行编程。但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。对于其他形式的数据包,如已到达网络接口,但却不是发送到此地址的数据包,网络接口在骓投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。我们要想获取网络设备的所有数据包,就是需要将网卡设置为混杂模式。4.2 使用套接字套接字分为三种,即流套接字(Stream socket)、数据报套接字(Datagram Socket)和原始套接字(Raw Socket)。要进行 IP 层数据包的接收和发送,

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。