第一范文网 - 专业文章范例文档资料分享平台

计算机网络课程实验6 - 图文

来源:用户分享 时间:2025/5/24 21:58:31 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图6-5 UDP校验和的计算过程

2. 在接收端的校验和计算

接收端按以下6个步骤计算校验和是否正确:

(1)把伪首部加到UDP用户数据报上。 (2)若需要,就增加填充。 (3)把数据报按16位长度分段。

(4)把所有16位的分段使用反码算术运算相加。 (5)把得到的结果取反码。

(6)若得到的结果是全零,则丢弃首部和填充,并接受这个用户数据报。若结果是非零,就丢弃这个用户数据报。

校验和是可选使用的,若不计算校验和,则校验和字段就填入0。

七. UDP应用

下面列出了UDP协议的一些用途:

● UDP适用于这样的进程,它需要简单的请求——响应通信,而较少考虑流量控制和差

错控制。对于需要传送成块数据的进程,如FTP,则通常不使用UDP; ● UDP适用于具有内部流量控制和差错控制机制的进程; ● 对多播和广播来说,UDP是个比较合适的传输层协议; ● UDP可用于管理进程,如SNMP协议;

● UDP可用于某些路由选择更新协议,如路由信息协议(RIP协议,参考实验17)。

八. 协议栈实现代码解析

本实验将通过对netproto_udp_student.h、netproto_udp_shudent.c、netproto_udpif_student.h、

netproto_udpif_student.c四个文件进行编码,完成协议栈中UDP协议的实现。

netproto_udp_student.h和netproto_udp_shudent.c文件用于实现UDP数据包发送和接收。其中,netproto_udp_student.h文件中定义了UDP协议实现相关数值以及UDP的负载内容、负载长度,关键代码如下所示:

这段代码定义了5个宏,他们代表的含义如下表所示:

表6-2 netproto_udp_student.h中定义的宏

在实验的编码过程中,应该使用这些宏对相应的变量进行赋值。

netproto_udp_shudent.c文件是协议栈中UDP数据包发送和接收的实现部分,其中定义了2个函数。下面介绍这些协议栈的实现部分。

函数netp_udp_output_student的功能是构造并发送一个UDP数据包,其高层协议为自定义协议类型,负载内容为自定义负载。这个函数的编码工作需要由学生完成。

当有数据到达本机网络接口时,函数netp_udp_input_student将被调用,并传递给这个函数原始数据。在该函数中,需要判断一些条件值来确定接收到的数据包为自定义UDP数据,如果是自定义UDP数据包,则输出负载内容,如果不是,则返回NETP_PUSH_TO_LWIP交给协议栈继续处理。

netproto_udpif_student.h和netproto_udpif_shudent.c文件用于实现UDP上层投递的功能,即为高层使用UDP协议提供了接口。其中,netproto_udpif_student.h文件中并没有定义太多内容。netproto_udpif_shudent.c文件是协议栈中UDP上层投递的功能的实现部分,其中定义了一个全局变量recv_port和2个函数。

全局变量recv_port的作用很简单,它记录了发送UDP数据报时的源端口号作为接收UDP数据报的过滤条件。

函数netp_send_udp通过IP层接口发送UDP数据报,该函数功能需要学生完成。 函数netp_udp_input_student处理输入数据包,如果输入的数据报满足过滤条件,则投递给上层协议使用。该函数功能需要学生完成。

在编码过程中可能会设计到一些结构体、宏和函数,下表是对他们进行和介绍:

表6-3 实验涉及的结构体、宏和函数

搜索更多关于: 计算机网络课程实验6 - 图文 的文档
计算机网络课程实验6 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c34xdm730eu1xkfx974lz_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top