SchoolWork-LaTeX/计算机网络/实验报告/实验5.tex

97 lines
4.0 KiB
TeX
Raw Normal View History

\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}