SchoolWork-LaTeX/计算机网络/实验报告/实验6.tex
2024-09-23 22:05:13 +08:00

89 lines
4.0 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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