html 门户网站,杭州 高端网站 开发,企业网站建设 广州,杏坛餐饮网站建站#x1f308; 个人主页#xff1a;十二月的猫-CSDN博客 #x1f525; 系列专栏#xff1a; #x1f3c0;计算机网络_十二月的猫的博客-CSDN博客 #x1f4aa;#x1f3fb; 十二月的寒冬阻挡不了春天的脚步#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录
1. 前言
2.… 个人主页十二月的猫-CSDN博客 系列专栏 计算机网络_十二月的猫的博客-CSDN博客 十二月的寒冬阻挡不了春天的脚步十二点的黑夜遮蔽不住黎明的曙光 目录
1. 前言
2. 实验目的
3. 实验需求
4. 实验过程
4.1 Tracert命令
4.2 Inspect the trace
4.3 IP Packet Structure
4.4 Internet Paths
4.5 Header Checksum
5. 总结 1. 前言
本系列重点针对山东大学-软件学院-计算机网络实验的任务。
希望通过实验一方面加强大家对理论知识的认识另一方面提升大家的动手能力。
也希望我的博客能够给学弟学妹们的学习提供一些帮助。
2. 实验目的 了解 IP互联网协议的详细信息。IP 是整个互联网使用的网络层协议。我们将研究 IP 第 4 版因为它已普遍部署而 IP 第 6 版只是部分部署。
3. 实验需求 Wireshark本实验使用Wireshark软件工具来捕获和检查数据包跟踪。数据包跟踪是对网络上某个位置的流量的记录就好像对通过特定线路的所有位拍了快照一样。数据包跟踪记录每个数据包的时间戳以及组成数据包的位从低层报头到高层内容。Wireshark可以在大多数操作系统上运行包括Windows、Mac和Linux。它提供了一个图形用户界面显示数据包的顺序以及解释为协议报头和数据的位的含义。它根据包的类型对包进行颜色编码并有多种方法来过滤和分析包让您调查网络协议的行为。Wireshark广泛用于排除网络故障。 wget / curl 本实验室使用 wgetLinux 和 Windows和 curlMac来获取网络资源。wget 和 curl 是命令行程序可让你获取 URL。与获取和执行整个网页的网页浏览器不同wget 和 curl 可让你精确控制获取的 URL 以及获取的时间。在 Linux 下可以通过软件包管理器安装 wget。在Windows下wget以二进制形式提供请在http://www.gnu.org/software/wget/ 上查找下载信息。在 Mac 下curl 会随操作系统一起安装。两者都有很多选项请尝试使用 “wget --help” 或 “curl --help” 查看但只需使用 “wget URL ”或 “curl URL ”就能获取URL。 wget获取网页并不解释网页同时可以获取时间准确位置等URL信息 traceroute / tracert 本实验室使用 “traceroute ”来查找从计算机到远程互联网主机的路由器级路径。traceroute 是一种标准的命令行工具用于查找计算机使用的互联网路径。它广泛用于网络故障排除。它预装在 Window 和 Mac 上在 Linux 上可以使用软件包管理器进行安装。在 Windows 上它被称为 “tracert”。它有多种选项但只需发出 “traceroute www.uwa.edu.au ”命令计算机就会找到并打印出远程计算机的路径此处为 www.uwa.edu.au。
4. 实验过程
4.1 Tracert命令 在远程服务器上选择一个 URL例如 http://www.uwa.edu.au/然后检查是否能用 wget 或 curl 抓取内容例如 “wget http://www.uwa.edu.au/”或 “curl http://www.uwa.edu.au/”。这将获取资源并将其写入文件wget或屏幕curl。使用 wget 时需要一个状态代码为 “200 OK ”的响应。如果获取失败请尝试不同的 URL请记住您可能是用快捷方式引用 URL而浏览器必须通过操作才能找到想要的内容例如http://mit.edu 可能实际上是 http://web.mit.edu/index.html。如果任何 URL 似乎都不起作用那么请调试 wget/curl 的使用或网络连接。 假定你的计算机具有 IPv4 连接则按以下步骤捕获跟踪或者你也可以使用提供的跟踪。我们要收集的跟踪是一个从远程服务器获取的简单网页这将导致计算机发送和接收 IP 数据包然后对远程服务器进行跟踪路由以找到它在互联网上使用的路径。 对同一远程服务器进行跟踪路由检查是否能发现网络路径信息。在 Windows 上键入 “tracert www.uwa.edu.au”。在 Linux / Mac 上键入 “traceroute www.uwa.edu.au”。如果你使用的是 Linux / Mac 系统并且在 NAT 后面如大多数家庭用户或虚拟机用户那么在 traceroute 中使用 -I 选项大写 i例如“traceroute -I www.uwa.edu.au”。这将使 traceroute 发送类似 tracert 的 ICMP 探测而不是通常的 UDP 探测ICMP 探测能更好地通过 NAT 盒。下面是一个成功的例子请保存输出结果因为后面的步骤会用到它。请注意traceroute 的运行时间可能长达一分钟。每一行都显示了从运行 traceroute 的计算机到目标目的地的下一 IP 跳的信息。带 “*”的行表示网络没有回应无法识别互联网路径中的该网段。一些未识别的网段是意料之中的。但是如果 traceroute 无法正常工作那么几乎所有路径都会出现 “*”。在这种情况下请尝试不同的远程服务器、试验 traceroute 或使用提供的跟踪。 这里我执行的命令是 wget https://www.sdu.edu.cn/ tracert www.sdu.edu.cn wget https://www.sdu.edu.cn/ ip.addr 202.194.7.118 : tracert www.sdu.edu.cn ip.addr 202.194.7.118 icmp 使用 tcp port 80 过滤数据包得到Http和Web服务器的数据包 4.2 Inspect the trace Version: 版本号0100即为ipv4
Header length: IP报头长度20字节
Differentiation Services包含位标志表示数据包是否应该是处理路由器的服务质量和拥塞指示。
Total Length: IP包总长这里是92字节。
Identification: 用于分组片段当一个大的IP数据包作为多个更小的片段发送称为片段。
Flags偏移量字段也与碎片相关。观察它们共享字节。
Fragment Offset: 片偏移这里是0。表示该IP包在该组分片包中位置接收端靠此来组装还原IP包。
Time to Live: 生存时间这里是2。当IP包进行传送时先会对该字段赋予某个特定的值。当IP包经过每一个沿途的路由器的时候每个沿途的路由器会将IP包的TTL值减少1。如果TTL减少为0则该IP包会被丢弃。这个字段可以防止由于路由环路而导致IP包在网络中不停被转发。
Protocol: 协议这里是0x06表示TCP协议
Header Checksum: 头部校验这里是0x0000。16bit的首部校验和字段用来使接收端检验收到的报文是否正确。该字段只对IP首部计算校验和不包含后面的数据字段。原因是IP的上层协议比如ICMP、IGMP、TCP、UDP协议的各自首部中均含有同时覆盖首部和数据的校验和。
Source: 源地址
Destination: 目的地址
4.3 IP Packet Structure 问题1What are the IP addresses of your computer and the remote server 我的计算机IP地址10.27.196.173 ,远程服务器地址10.27.255.254 问题2Does the Total Length field include the IP header plus IP payload, or just the IP payload? 包括IP报头和IP有效载荷 问题3 How does the value of the Identification field change or stay the same for different packets? For instance, does it hold the same value for all packets in a TCP connection or does it differ for each packet? Is it the same in both directions? Can you see any pattern if the value does change? 在TCP连接的不同数据包之间标识字段通常会有所变化。这是因为标识字段的目的是帮助接收方将分段的数据包重新组装成完整的数据流。通过改变标识字段的值接收方能够识别并正确组装数据包。标识字段在同一方向上的数据包中会保持连续的递增序列但在不同方向上的数据包之间可能会有不同的值。这就是TCP协议三次握手的内容标识字段双方一开始是由自己确定的但是seq会影响对方的ack彼此牵制。 问题4What is the initial value of the TTL field for packets sent from your computer? Is it the maximum possible value, or some lower value? 初始值为254。我认为是可能的最大值。 问题5 How can you tell from looking at a packet that it has not been fragmented? Most often IP packets in normal operation are not fragmented. But the receiver must have a way to be sure. Hint:you may need to read your text to confirm a guess. 根据DF位Don’t fragment来判断若其为1则不分片禁止分片 问题6What is the length of the IP Header and how is this encoded in the header length field? Hint: notice that only 4 bits are used for this field, as the version takes up the other 4 bits of the byte.You may guess and check your text. Ip报头长度为20byte0101表示5由于IP头部长度是以4字节为单位进行编码的所以实际的IP头部长度需要将该字段的值乘以4才能得到正确的长度。即5*420byte 4.4 Internet Paths traceroute是一种用于发现网络路径的实用工具。它通过向源主机到目标主机的每一跳路由器发送请求ICMP TTL超时消息然后逐跳地获取响应。响应中会标识出每个路由器的IP地址。traceroute的输出通常每行打印一跳的信息包括往返时间、路由器的IP地址和DNS名称。DNS名称有助于确定路由器所属的组织。由于traceroute利用了常见的路由器实现方式因此不能保证在路径上的所有路由器上都能正常工作当某些部分无法正常工作时通常会看到*的响应。 4.5 Header Checksum 现在我们将通过验证数据包来查看 IP 报头校验和计算。校验和算法每次增加 16 位的报头字节。重新计算整个 IP 报头的和(包括校验和值)将产生零的结果。对我们来说一个复杂的因素是这是使用 1s 补数运算完成的而不是通常用于计算的 2s 补数运算。
将字段分成10个2Byte。使用常规加法将这 10 个单词相加。要计算到目前为止的加法的1 位补和取任何前导数字(超过单词大小的4位)并将它们加回余数。例如:5a432 将变成 a432 5 a437。最终的结果 应该是 0xfff。这实际上是0的1s补码形式或者更准确地说 0xffff 是 -0(负零 )而 0x0000 是 0(正零)。
分组结果为4500 0028 53d6 4000 2606 431e 6ef2 4634 0a1b fe9a
相加结果为76f1f
取出超过16位的前导数字并加回余数f1f 7 f26
最终结果应该是0xffff-0的形式。结果不是校验和错误。与wireshark中显示的结果相同
5. 总结
本文到这里就结束啦~~ 如果觉得对你有帮助辛苦友友点个赞哦~