- IPv4 分组收发实验 IPv4 协议是互联网的核心协议,它保证了网络节点(包括网络设备和主机)在网络层能够按照标准协议互相通信。IPv4 地址唯一标识了网络节点和网络的连接关系。在我们日常使用的计算机的主机协议栈中,IPv4 协议必不可少,它能够接收网络中传送给本机的分组,同时也能根据上层协议的要求将报文封装为 IPv4 分组发送出去。本实验通过设计实现主机协议栈中的 IPv4 协议,让学生深入了解网络层协议的基本原理,学习IPv4协议基本的分组接收和发送流程。另外,通过本实验,可以初步接触互联网协议栈的结构和计算机网络实验系统,为后面 进行更为深入复杂的实验奠定良好的基础。
- IPv4 分组转发实验 通过前面的实验,我们已经深入了解了IPv4 协议的分组接收和发送处理流程。本实验需要将实验模块的角色定位从通信两端的主机转移到作为中间节点的路由器上,在IPv4分组收发处理的基础上,实现分组的路由转发功能。网络层协议最为关注的是如何将 IPv4 分组从源主机通过网络送达目的主机,这个任务就是由路由器中的 IPv4 协议模块所承担。路由器根据自身所获得的路由信息,将收到的 IPv4 分组转发给正确的下一跳路由器。如此逐跳地对分组进行转发,直至该分组抵达目的主机。IPv4 分组转发是路由器最为重要的功能。本实验设计模拟实现路由器中的 IPv4 协议,可以在原有 IPv4 分组收发实验的基础上,增加 IPv4 分组的转发功能。对网络的观察视角由主机转移到路由器中,了解路由器是如何为分组选择路由,并逐跳地将分组发送到目的主机。本实验中也会初步接触路由表这一重要的数据结构,认识路由器是如何根据路由表对分组进行转发的。
实验内容:
概述本次实验的主要内容,包含的实验项等。 - IPv4分组收发实验
- 实现 IPv4 分组的基本接收处理功能对于接收到的 IPv4 分组,检查目的地址是否为本地地址,并检查 IPv4 分组头部中其它字段的合法性。提交正确的分组给上层协议继续处理,丢弃错误的分组并说明错误类型。
- 实现 IPv4 分组的封装发送 根据上层协议所提供的参数,封装 IPv4 分组,调用系统提供的发送接口函数将分组发 送出去。
- IPv4分组转发实验
- 设计路由表数据结构。设计路由表所采用的数据结构要求能够根据目的 IPv4 地址来确定分组处理行为(转发情况下需获得下一跳的 IPv4 地址)。路由表的数据结构和查找算法会极大的影响路由器的转发性能,有兴趣的同学可以深入思考和探索。
- IPv4 分组的接收和发送。对前面实验(IP 实验)中所完成的代码进行修改,在路由器协议栈的 IPv4 模块中能够 正确完成分组的接收和发送处理。具体要求不做改变,参见“IP 实验”。
- IPv4 分组的转发。对于需要转发的分组进行处理,获得下一跳的 IP 地址,然后调用发送接口函数做进一步处理。
实验过程:
以文字描述、实验结果截图等形式阐述实验过程,必要时可附相应的代码截图或以附件形式提交。
IPv4分组收发实验
发送函数:在接口函数stud_is_Upsend()中,需要完成如下处理:
① 根据所传参数(如数据大小),来确定分配的存储空间的大小并申请分组的存储空间。
② 按照 IPv4 协议标准填写 IPv4 分组头部各字段 ,标识符(Identification)字段可以使用一个随机数来填写。(注意:部分字段内容需要转换成网络字节序)
③ 完成 IPv4 分组的封装后,调用 ip_SendtoLower( )接口函数完成后续的发送处理工作,最终将分组发送到网络中。
发送函数流程图如下:

讯享网
讯享网


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/195054.html