【实验目的】
1、理解 IP 层的作用以及 IP 地址的分类方法;
2、理解子网的划分和子网掩码的作用;
3、掌握 IP 数据包的组成和网络层的基本功能;
实验拓扑图:
【实验内容】
1、学会根据 IP 地址的分类方式区分各类 IP 地址;
2、掌握 IP 数据报的格式、长度以及各字段的功能;
3、学会利用子网掩码确定 IP 地址的网络号、子网号和主机号;
4、学会分析给定数据包的 IP 首部信息;
5、学会手工计算 IP 校验和的方法;
【实验流程】
1、安装wireshark;
2、熟悉软件使用;
3、分析IP数据包格式;
4、抓包分析http、ping等协议。
【实验原理】
网际协议 IP 是 TCP/IP 协议栈的心脏,也是网络层中最重要的协议。目前几乎所有的上层 网络协议都是基于 IP 协议。在接收数据的时候,网络层接收由数据链路层发送的数据包进 行解封装,并把该数据包发送到更高层——传输层,在发送数据的时候,网络层接受由传输 层发送的数据包进行 IP 封装,然后把数据报交给下层——数据链路层。
IP 协议处于 TCP/IP 协议栈的网际层,用于管理数据通信中源端和目的端之间的报文传送,
是互联网最重要的网际协议。IP 地址是也叫逻辑地址,用于在网络中标识主机。在 IP网络
中,主机之间进行通信时使用 IP 地址来指定接收端的主机地址。 数据进行封装过程中,IP层负责将数据封装成 IP包,IPv4数据包报文格式如下图所示。
如上图所示,在 IP 包中,各字段含义如下所述:
版本:长度为 4 比特,含义为版本号,对于 IPv4 来说,版本号为 4。
报头长度:报头长度字段为 4 比特,用于表示 IP 报头长度,在 IPv4 中,由于选项字段长度可变,因此,报头长度并不固定,报头字节长度为这一字段值的 4 倍。
业务类型:业务类型字段长度为 8 比特,主要用于标识 QOS 服务等级。
总长度:总长度字段共 16 比特,因此 IP 报的最大长度为 65535 字节。
标识符(Identifier):长度 16 比特。该字段和标识及分段偏移字段联合使用,对大的上层数据包进行分段(fragment)操作。
标记(Flags):长度 3 比特。该字段第一位不使用,第二位是 DF 位,DF 位设为1 时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发, 则路由器会丢弃该上层数据包并返回一个错误信息。第三位是 MF位,当路由器对一个上层 数据包分段,则路由器会在除了最后一个分段的 IP 包的包头中将 MF 位设为 1。
分段偏移(Fragment Offset):长度 13 比特。用于指明分片 IP 包在原 IP 包中的 偏移量。由于 IP 包在网络上传送的时候不一定能按顺序到达,这个字段保证了目标路由器 在接受到 IP 包之后能够还原分段的上层数据包。当某个包含分段的上层数据包的 IP 包在 传送时丢失,则整个一系列包含分段的上层数据包的 IP 包都会被要求重传。
生存时间(TTL):长度 8 比特。当 IP 包进行传送时,先会对该字段赋予某个特定的 值。当 IP 包经过每一个路由器的时候,路由器会将 IP 包的 TTL 值减少 1。如果TTL 减 少为 0,则该 IP 包会被丢弃。这个字段可以防止由于路由故障而导致 IP 包在网络中不停 被转发。
协议号(Protocol):长度 8 比特。标识了上层所使用的协议。 报头校验和(Header Checksum):长度 16 位,由于 IP 包头是变长的,所以提供一个头部校验来保证 IP 包头中信息的正确性。
源和目标地址(Source and Destination Addresses):这两个地段都是 32 比特。标识了这个 IP 包的起源和目标地址。 可选项(Options):这是一个可变长的字段。该字段由起源设备根据需要改写。
【实验步骤】
步骤一:设定实验环境
1、参照实验拓扑连接网络拓扑;
2、配置 PC 机及路由器 IP 地址;
步骤二:wireshark安装使用
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark 了。
为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。
wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS 中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler,其他协议比如TCP,UDP 就用 wireshark。
wireshark 开始抓包
开始界面
wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。因为连接的是学校的局域网,所以我选择的网卡是WLAN,抓取的是学校官网的数据。
WireShark 主要分为这几个界面
Display Filter(显示过滤器), 用于过滤
Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。
Packet Details Pane(封包详细信息), 显示封包中的字段 4. Dissector Pane(16进制数据)
Miscellanous(地址栏,杂项)
使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千 甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。
以学校的IP地址作为源地址或者目的地址进行过滤
wireshark与对应的5层模型
从下图可以看到wireshark捕获到的TCP包中的每个字段
用wireshark实际分析下三次握手的过程。
打开wireshark, 打开浏览器输入某个网站,例如www.hdu.edu.cn 在wireshark中输入http过滤, 然后选中GET / HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",
第一次握手数据包
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
第二次握手的数据包
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置 为客户的I S N加1以.即0+1=1, 如下图
第三次握手的数据包
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序 号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
就这样通过了TCP三次握手,建立了连接
步骤三:wireshark捕获IP数据包格式分析
步骤四:wireshark捕获完整HTTP、ping数据流
【思考问题】
结合实验过程中的实验结果,问答下列问题:
1、实验所用主机的 IP 地址、子网掩码、网络号、子网号分别是多少?该主机的 IP 地
址属于哪类?
本机IP: 162.9.20.18
子网掩码: 255.255.255.0
网络号:162.9.0.0
子网号:162.9.20.0
主机的 IP 地址属于:B类地址
2、IP 数据包在从源主机出发到达目的主机的过程中,IP 首部中的 IP 源地址和目的
地址字段是否发生变化?
会发生变化,一般用局域网上网的的用户都知道,一个路由器端口,都有一个路由器子分配的IP地址,就像上海闵行区的电信是:192.168.1.1如果路由器里分配的的时候自然就成了:192.168.1.100 192.168.1.101等。