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

89 lines
4.0 KiB
TeX
Raw Permalink Normal View History

\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年12月15日}
\renewcommand{\mylabname}{传输控制协议TCP}
\renewcommand{\mychapternum}{6}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握 TCP 协议的报文格式
\item 掌握 TCP 连接的建立和释放过程
\item 掌握 TCP 数据传输中编号与确认的过程
\item 掌握 TCP 协议校验和的计算方法
\item 理解 TCP 重传机制
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构一
}
\myitem{实验原理}{
\item TCP协议简介
\item TCP报文格式
\item TCP封装
\item TCP校验和
\item TCP连接建立与释放
\item 流量控制
\item 差错控制
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 察看TCP连接的建立和释放
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 察看TCP连接的建立和释放
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{cccc}
\toprule
字段名称 & 报文1 & 报文2 & 报文3 \\
\midrule
序列号 & 23308859 & 4100194079 & 263308860 \\
确认号 & 0 & 263308860 & 4100194080 \\
ACK & 0 & 1 & 1 \\
SYN & 1 & 1 & 0 \\
\bottomrule
\end{tabular}
\end{table}
TCP 连接建立时前两个报文的首部都有一个“最大字段长度”字段它的值是1460作用是防止报文被分片。根据IEEE 802.3 协议规定的以太网最大帧长度MTU为1500字节而TCP头部一般为20字节IP头部一般也为20字节所以这里的最大字段长度为$1500-20-20=1460$
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{ccccc}
\toprule
字段名称 & 报文4 & 报文5 & 报文6 & 报文7 \\
\midrule
序列号 & 263308860 & 4100194080 & 263308861 & * \\
确认号 & 4100194080 & 263308861 & 4100194081 & * \\
ACK & 1 & 1 & 1 & * \\
FIN & 1 & 1 & 0 & * \\
\bottomrule
\end{tabular}
\end{table}
这里只有三个报文是因为报文5把FIN和ACK合并了而且报文4的ACK也为1猜测可能也是捎带确认的原因。
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-24-05.png}
\caption{握手与挥手}
\end{figure}
结合步骤 3、5 所填的表,理解 TCP 的三次握手建立连接和四次握手的释放连接过程,理解序号、确认号等字段在 TCP 可靠连接中所起的作用。
三次握手过程为SYN、ACK+SYNACK四次挥手过程为FIN、ACK、FIN、ACK。序号、确认号在TCP可靠连接中用于确保分组正确以及不乱序。
\thinkingquestion{
\item 为什么在 TCP 连接中需要 3 次握手,如不这样做可能会出现什么情况?
假设A与B建立连接如果只有2次握手那么B不知道A接收报文的功能是否正常也就是B的SYN发出去后A不一定收到可能由于被防火墙拦截了或超时了等原因但此时B已经认为建立连接了使用三次握手就可以避免这种情况让B确认连接能够建立。
\item 解释TCP协议的释放过程
假设A与B建立连接A发送FIN数据包B发送ACK确认B发送FIN数据包A发送ACK确认。
}
}
\end{enumerate}
\end{document}