97 lines
4.0 KiB
TeX
97 lines
4.0 KiB
TeX
\documentclass[../public/实验报告模板]{subfiles}
|
||
|
||
\renewcommand{\mydate}{2023年12月15日}
|
||
\renewcommand{\mylabname}{用户数据报协议(UDP)}
|
||
\renewcommand{\mychapternum}{5}
|
||
|
||
\begin{document}
|
||
\mytitle
|
||
\begin{enumerate}
|
||
\myitem{实验目的}{
|
||
\item 掌握 UDP 协议的报文格式
|
||
\item 掌握 UDP 协议校验和的计算方法
|
||
\item 理解 UDP 协议的优缺点
|
||
\item 理解协议栈对 UDP 协议的处理方法
|
||
\item 理解 UDP 上层接口应满足的条件
|
||
}
|
||
\myitem{实验设备或环境}{
|
||
\item 采用网络拓扑结构一
|
||
}
|
||
\myitem{实验原理}{
|
||
\item 进程到进程的通信
|
||
\item 面向连接的服务与面向无连接的服务
|
||
\item UDP协议简介
|
||
\item UDP报文格式
|
||
\item UDP封装
|
||
\item UDP校验和
|
||
\item UDP应用
|
||
\item 协议栈实现代码解析
|
||
\item 各模块推荐流程
|
||
}
|
||
\myitemx[label=练习\arabic*\ ]{实验步骤}{
|
||
\item 编辑并发送 UDP 数据报
|
||
\item UDP 单播通信
|
||
\item UDP 广播通信
|
||
\item UDP 数据报发送与接收
|
||
\item UDP 报文的上层投递的设计与实现
|
||
}
|
||
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
|
||
\item 编辑并发送 UDP 数据报
|
||
|
||
UDP在计算校验和时包括伪首部、UDP首部以及从应用层来的数据。
|
||
|
||
\thinkingquestion{
|
||
\item 为什么UDP协议的“校验和”要包含伪首部?
|
||
|
||
确保此数据包确实是发送给自己的,并且确保这个数据包是属于UDP。
|
||
|
||
\item 比较UDP和IP的不可靠程度?
|
||
|
||
UDP和IP都是不可靠的协议,IP只验证首部,因此数据字段出现问题了也无法知道;而UDP会验证数据字段,因此IP比UDP更不可靠。
|
||
}
|
||
|
||
\item UDP单播通信
|
||
|
||
主机C上的“UDP工具”能够接收到主机A发送的UDP报文。
|
||
|
||
\begin{figure}[H]
|
||
\includegraphics[width=1\linewidth]{imgs/2024-01-02-19-04-14.png}
|
||
\caption{主机C接收到主机A的UDP报文}
|
||
\end{figure}
|
||
|
||
UDP不是基于连接的协议,此特性的优点是能更快发送数据,缺点是可能不够安全。
|
||
|
||
UDP报文交互中没有确认报文,此特性的优点是占用资源更少,信道利用率更高,缺点是发送包可能不知道有数据包出错了。
|
||
|
||
主机E上的UDP通信程序接收到此数据包,UDP可以使用0作为校验和,即代表不校验。
|
||
|
||
\item UDP广播通信
|
||
|
||
主机B、C、D、E、F都能接收到主机A发送的UDP报文。
|
||
|
||
\begin{figure}[H]
|
||
\includegraphics[width=1\linewidth]{imgs/2024-01-02-19-08-50.png}
|
||
\caption{接收到的报文}
|
||
\end{figure}
|
||
|
||
主机A发送的报文的目的MAC地址和目的IP地址都表示广播。
|
||
|
||
\thinkingquestion{
|
||
\item 如果将目的 MAC 地址从广播地址换成某一个主机的 MAC 地址,是
|
||
否所有的主机还会受到这种报文?
|
||
|
||
否。
|
||
|
||
\item 如果将目的 MAC 地址设置成广播地址,目的 IP 设置成某一主机的
|
||
IP 地址,结果怎样?
|
||
|
||
同一网段内的主机都能收到报文,但IP地址不是目的IP的主机解封装到IP层的时候会发现目的IP与自己的IP不一样从而丢弃报文。
|
||
|
||
\item 在可靠性不是最重要的情况下,UDP 可能是一个好的传输协议,试给
|
||
出这种特定情况的一些示例。
|
||
|
||
例如流媒体传输,或DNS、SNMP等应用层协议。
|
||
}
|
||
}
|
||
\end{enumerate}
|
||
\end{document} |