• 【计算机网络】TCP协议


    实验目的

    应用所学知识:

    1. 熟悉 TCP 的协议格式。

    2. 理解 TCP 对序列号和确认号的使用。

    3. 理解 TCP 的流量控制算法和拥塞控制算法。

    实验步骤与结果

    1.任务一:

    将Alice.txt上传到服务器:

    使用wireshark捕获数据包,看到计算机和gaia.cs.umass.edu之间的一系列 TCP 和 HTTP 通信,包括TCP初始三次握手建立连接:

    以及包含FIN的TCP连接关闭请求:

    2.任务二:

    (1)源IP地址为192.168.1.102 ; TCP端口号为1161。

    (2)gaia.cs.umass.edu 的IP地址为128.119.245.12,在端口号80上发送接收连接。

    3.任务三:

    按照实验指导的操作过滤数据包,把相对序列号改为绝对序列号:

    (1)查看三次握手的数据包:

    用于在客户端计算机和 gaia.cs.umass.edu 之间启动 TCP 连接的 TCP SYN 报文段的序列号(sequence number)是232129012,TCP SYN 报文段的作用是开始三次握手,主机发送SYN请求服务器建立连接。

    (2)查看第二次握手返回的数据包信息:

    gaia.cs.umass.edu发送给客户端计算机以回复 SYN 的 SYN-ACK 报文段的序列号是883061785,SYNACK报文段中的 Acknowledgment number 栏位的值是232129013,Ack 字段用于表示确认字段中的值是有效的, TCP SYN-ACK 报文段的作用是说明服务器成功接收了我们发出的连接请求。

    (3)找到包含 HTTP POST 命令的 TCP 报文段:

    查看其序列号为232129013:

    (4)编号3和4的TCP报文段的序列号相同,均为232129013:

    编号4的报文段表示开始传输数据,使用的序列号从第三次握手发送的数据包序列号开始。

    (5)找到这个 TCP 连接中前六个用于数据发送的 TCP 报文段:

    可见编号(No.)分别为4、5、7、8、10、11。

    序列号分别为232129013、232129578、232131038、232132498、232133958、232135418。

    如图分别查看发送时间:

    可知发送时间分别为:

    Aug 21, 2004 21:44:20.596858000 中国标准时间、

    Aug 21, 2004 21:44:20.612118000 中国标准时间、

    Aug 21, 2004 21:44:20.624407000 中国标准时间、

    Aug 21, 2004 21:44:20.625071000 中国标准时间、

    Aug 21, 2004 21:44:20.647786000 中国标准时间、

    Aug 21, 2004 21:44:20.648538000 中国标准时间。

    (6)找到收到的对应前六个数据发送 TCP 报文段的确认 ACK:

    编号(No.)分别为6、9、12、14、15、16。

    查看可知接收时间分别为:

    Aug 21, 2004 21:44:20.624318000 中国标准时间、

    Aug 21, 2004 21:44:20.647675000 中国标准时间、

    Aug 21, 2004 21:44:20.694466000 中国标准时间、

    Aug 21, 2004 21:44:20.739499000 中国标准时间、

    Aug 21, 2004 21:44:20.787680000 中国标准时间、

    Aug 21, 2004 21:44:20.838183000 中国标准时间。

    (7)如图所示查看每个报文段的RTT:

    可见RTT分别为0.027460000 seconds、0.035557000 seconds、0.070059000 seconds、0.114428000 seconds、0.139894000 seconds、0.189645000 seconds。

    使用公式EstimatedRTT = (1 - a) × EstimatedRTT + a × SampleRTT,a取推荐值0.125

    计算出前六次的加权平均往返时延为0.072514242 seconds。

    另外还可以查看wireshark为TCP报文段绘制的RTT图表:

    (8)依次查看前六个数据发送 TCP 报文段的长度:

    可见长度分别为565、1460、1460、1460、1460、1460。

    (9)对于整个抓包过程,收到的服务器声明的最小可用接收缓冲区空间(接收窗口)大小是6780:

    整个过程中声明的接收缓冲区空间限制了发送方传送 TCP 报文段。

    (10)在wireshark的统计->TCP流图形中检查数据包的时间序列:

    可见序列号与时间呈线性关系,因此没有发生重传。

    (11)接收方通常在 ACK 中确认收到的序列号。

    可以识别接收方每隔一个接收到的报文段才发送确认 ACK 的情况,如图所示:

    (12)计算公式为平均吞吐量(每单位时间传输的字节数)=传输数据的字节数÷ 接收方接收所有数据所用时间

    从wireshark的统计->TCP流图形->吞吐量可以查看吞吐量:

    4.任务四:

          使用 Wireshark 的 TCP 图形工具查看时间序列图:

    (1)慢启动是指连接开始时,发送速率呈指数增长,在图中可以看出:

    可见,从第一个TCP区段(分组5)发送时开始慢启动,在分组13时结束了慢启动,并进入了拥塞避免阶段。

    (2)我们在书本中研究的 TCP 的理想化行为是建立在数据包大小较大的情况下进行传输的,所以对于较小的数据包传输,我们的设定在某种方面可能制约了网络传输,例如慢启动等设定。

  • 相关阅读:
    计算机毕业设计之java+ssm王道考研购物网站
    【JUC系列-04】精通Synchronized底层的实现原理
    笔试题详解(C语言进阶)
    java毕业设计仓库管理系统mybatis+源码+调试部署+系统+数据库+lw
    leetcode刷题
    Pandas中的五种数据查询方法--【数值,列表,区间,条件,函数查询】
    jQuery
    大数据从入门到实战-HDFS-JAVA接口之删除文件
    Iris for mac 好用的录屏软件
    Python对于有空值的数据,按列进行求平均
  • 原文地址:https://blog.csdn.net/Mitchell_Donovan/article/details/126312024