SharedCourses/docs/undergraduate/软件工程学院/计算机网络/lab/lab1/lab1.md

4.5 KiB
Raw Blame History

华东师范大学软件学院实验报告

一、实验目的

  1. 学会使用curl与wget指令

  2. 学会通过Wireshark获取数据包

  3. 了解协议层数据包的结构

  4. 学会计算并分析协议开销

二、实验内容与实验步骤

  1. 在控制台中输入"curl http://1st.moe/",并观察到"200 OK"

  2. 启动Wireshark选择监听以太网并将捕获过滤器设置为tcp port

    80关闭混杂模式并启用"enable network name resolution"选项

  3. 关闭所有浏览器窗口后开始捕获

  4. 重新在控制台输入"curl http://1st.moe/"

  5. 停止Wireshark捕获

三、实验环境

B226机房电脑

四、实验过程与分析

  1. 实验过程

    1. 捕获内容如图所示

{width="17.007cm" height="5.3cm"}

    1. 分析协议包的内容

{width="8.504cm" height="3.6cm"}{width="8.504cm" height="3.579cm"}{width="8.504cm" height="3.556cm"}{width="8.504cm" height="3.489cm"}

根据如上四张图片,可以发现各个协议所占的字节数为

+---------------------------------------+-------------+ | > 协议 | > 字节数 | +---------------------------------------+-------------+ | > Ethernet (eth) | > 14 bytes | +---------------------------------------+-------------+ | > Internet Protocol Version 6 (ipv6) | > 40 bytes | +---------------------------------------+-------------+ | > Transmission Control Protocol (tcp) | > 20 bytes | +---------------------------------------+-------------+ | > Hypertext Transfer Protocol (http) | > 128 bytes | +---------------------------------------+-------------+

则包的结构大致如下

+-------------------+--------------------+------------+-------------+ | > eth | > ip | > tcp | > http | +-------------------+--------------------+------------+-------------+ | > 14 bytes | > 40 bytes | > 20 bytes | > 128 bytes | +-------------------+--------------------+------------+-------------+ | > Ethernet Header | > Ethernet Payload | | | +-------------------+--------------------+------------+-------------+ | > IP Header | > IP Payload | | | +-------------------+--------------------+------------+-------------+

  1. 问题

    1. 分析协议开销

一个GET本身的大小为128 bytes而其相应产生的SYN、ACK请求也应算入其开销中。根据图片

{width="17.096cm" height="1.281cm"}

可以计算得出由于协议产生的总开销为86+74+(202-128)+74=308 bytes从而计算得出比值约为0.4156,考虑到信息传输的稳定性,协议开销是值得的。

    1. 以太网头部中哪一部分是解复用键并且告知它的下一个高层指的是IP在这一包内哪一个值可以表示IP

根据图片

{width="17.096cm" height="2.009cm"}

{width="17.096cm" height="3.667cm"}

可以直观看出ipv6对应的分解键为0x86ddtcp对应的分解键为6

  1. 故障分析

在实验过程中出现了控制台有反馈但Wireshark没有捕获的情况经排查后发现是由于控制台指令输入错误误将http输入为https所致。

五、实验结果总结

  1. 实验完成了对一个HTTP包的拆解与分析其大体结构大致如下

+-------------------+--------------------+------------+-------------+ | > Eth | > ip | > tcp | > http | +-------------------+--------------------+------------+-------------+ | > 14 bytes | > 40 bytes | > 20 bytes | > 128 bytes | +-------------------+--------------------+------------+-------------+ | > Ethernet Header | > Ethernet Payload | | | +-------------------+--------------------+------------+-------------+ | > IP Header | > IP Payload | | | +-------------------+--------------------+------------+-------------+

  1. 实验通过curl指令与Wireshark软件完成在其中熟悉网络工具的使用并体会到其强大之处

  2. 通过查询相关资料,了解开销、分解键等概念

六、附录