目录

 

 

一、     主机的IP地址配置与连通性测试

1.1IP地址配置

1.2连通性测试

1.3网络地址规划表

 

二、     数据链路层抓包分析

2.1 MAC帧格式

2.2 MAC地址分析

 

三、     网络层抓包分析

3.1 IP报文

3.2 ARP协议

3.3 ICMP协议

 

四、     传输层抓包分析

4.1 TCP协议3次握手

4.2 TCP协议4次挥手

4.3 UDP协议

 

五、     应用层抓包分析

5.1 www (HTTP协议)分析

5.2 直播

 

六、总结


 

一、     主机地址的IP地址配置与连通性测试

1.1     IP地址配置

根据学校校园网自动配置给我们的网关地址:172.24.48.1,推算出子网掩码应该设为255.255.240.0,同时计算出以学号命名最后一位的IP地址172.24.48.31为有效地址,因此配置使用此地址为主机地址。

具体配置操作如下:

首先打开“网络与Internet”设置,找到自己的网卡,我的电脑的网卡为图中的以太网。

双击以太网查看以太网状态,点击属性

在属性中找到IPV4地址的配置选项,双击打开

根据之前的计算,我将我的主机IP地址配置为172.24.48.31,子网掩码为:255.255.240.0,网关为:172.24.48.1。随后进行连通性测试。

 

1.2     连通性测试

配置好主机的IP地址后,我对其进行连通性测试,打开Windows的命令提示符,输入指令:ping www.baidu.com,用来测试主机与百度的连通性,结果如下图。

根据图片可知,主机与百度成功连通,连通性测试通过!!!

 

1.3     网络地址规划表

 

源地址

目标地址

域名

172.24.48.31

183.232.231.174

www.baidu.com

172.24.48.31

112.17.1.202

www.iqiyi.com

10.137.0.2

172.24.48.31

 

 

二、   数据链路层抓包分析

2.1 MAC帧格式


MAC帧的帧头包括三个字段。前两个字段分别为6字节长的目的地址字段和源地址字段,目的地址字段包含目的MAC地址信息,源地址字段包含源MAC地址信息。第三个字段为2字节的类型字段,里面包含的信息用来标志上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议。

MAC帧的数据部分只有一个字段,其长度在46到1500字节之间,包含的信息是网络层传下来的数据。MAC帧的帧尾也只有一个字段,为4字节长,包含的信息是帧校验序列FCS(使用CRC校验)。

 

2.2 MAC地址分析

MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里。

我使用了wireshark抓包软件,对MAC地址进行了抓包分析,抓包结果如下图:

根据报文可以看到,源地址为Caswell_eb:09:4a,其MAC地址为:08:35:71:eb:09:4a;目的地址为Hewlettp_40:9b:e4,其MAC地址为:48:ba:4e:40:9b:e4

 

 

三、   网络层抓包分析

3.1 IP报文分析

使用wireshark抓包软件抓包,得到以下结果:

根据抓包结果,IP地址的报文含义为:

1.  Version是版本,证明此IP地址为IPV4的地址;

2.  Header Length是头部长度,这里头部长度为20字节;

3.  Differentiated Services Field就是服务类型,3位优先权字段(现在已弃用),4位TOS字段,和一位保留字段,4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本,四个相互冲突,只能选择其一;

4.  Total Length是总长度,此报文长度为60字节

5.  Identification为位标识,唯一的标识主机发送的报文,如果IP数据报在数据链路层被分片了,那么每一个片里面的这个id都是相同的;

6.  Flags为标识,第一位保留,第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文,第三位表示“更多分片”,如果分片的话,最后一个分片置为1,其他是0,类似于一个结束标记。

7.  TTL协议 检验和这几个部分,上层协议为TCP,再下是头部检验和。

8.  源地址和目的地址,此报文的源地址为:172.24.48.31,目的地址为:183.232.231.172

 

3.2 ARP协议

ARP协议是地址解析协议,是已知目标主机的IP地址,,解析对应的MAC地址。其工作机制为:

1.  首先在广播域中发送一份称作ARP请求的以太网数据帧,域内每一台主机都能收到。ARP请求数据真中包含目的主机的IP地址及请求者自身的MAC地址,请求目的IP的主机答复。

2.  目的IP主机收到ARP请求后,会将自身的IP地址和MAC打包成数据帧,答复请求。

使用wireshark进行对ARP的抓包分析,结果如下:

在第30帧中,我的主机发起了ARP请求,源地址为172.24.48.31,源MAC地址为:48:ba:4e:40:9b:e4,目的地址为172.24.48.1。对其发送ARP请求帧。

 

在第31帧中,目的地址172.24.48.31收到ARP请求数据帧后,做出应答,打包回复自身MAC地址。这里源地址为:172.24.48.1,MAC地址为:08:35:71:eb:09:4a,目的地址为:172.24.48.31,MAC地址为:48:ba:4e:40:9b:e4。

 

3.3 ICMP协议

ICMP的全称是 Internet Control Message Protocol ,Internet控制消息协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

同时,ping协议是ICMP中的一个重要的协议,所以使用Ping协议来对ICMP协议分析。

 

选用了Ping百度的域名(www.baidu.com)来进行抓包,根据DNS解析可以得到百度的IP为183.232.231.172。根据ICMP协议,type=8为Ping请求,Code=0,Checksum=0x4bf8为校验和,ICMP的报文数据为32bytes。

 

Type = 0则为应答报文,Code=0,Checksum=0x53f8为校验和,ICMP的报文数据为32bytes。


 

四、   传输层抓包分析

4.1 TCP 3次握手

TCP是面向连接的传输层协议,所谓面向连接就是在真正的数据传输开始前要完成的连接建立的过程,否则不会进入真正的数据传输阶段。

TCP 的连接建立过程称为三次握手。

在此,我对百度进行了抓包,分析主机与百度建立连接的过程。根据DNS服务器的解析,百度(www.baidu.com)使用了代理服务器,其IP地址为183.232.231.172、183.232.231.174。

第一次握手:在第5帧中,可以看到我的主机172.24.48.31,向百度183.232.231.174发出了请求报文,查看报文,其首部的同部位SYN=1,并选择序号seq=0。

第二次握手:在第7帧中,可以看到百度183.232.231.174,向主机172.24.48.31发出了确认报文。ACK=1,返回确认号ack=0+1=1。同时,百度向主机发起连接请求,SYN=1,其选择的序号seq=0。

第三次握手:在第8帧中,主机收到了百度发出的连接请求报文段后,给百度给出确认报文,ACK=1,确认号ack=0+1=1。同时,主机的TCP通知应用层的进程,连接已经建立可以开始通信。

随后,主机会与百度进行HTTP协议的通信。

 

4.2 TCP 4次挥手

TCP连接是全双工的,因此每个断开连接的话必须每个方向单独进行关闭。一方结束数据传输就发送FIN来终止这个方向传输,对方收到FIN也要通知应用层这个方向的传输已终止,因此TCP断开连接需要四个过程。

因为试了很多次,都不能抓包到释放与百度的TCP连接的报文,只好选用其他网站的。

这次抓包是IP地址为10.137.0.2对我的主机172.24.48.31发起的终止连接请求,具体分析如下:

第一次挥手:在第22帧中,10.137.0.2使连接释放报文段的FIN=1,ACK=1,seq=1向主机172.24.48.31发出连接释放报文,等待主机确认。

 

第二次握手:在第25帧中,我的主机172.24.48.31收到10..137.0.2的连接释放报文后,向其发送确认号ACK=1,ack=1+1=2,seq=1的确认报文,确认连接释放,同时通知应用层的进程,连接已关闭。此时,TCP连接处于半关闭状态。

第三次挥手:在第54帧中,我的主机没有需要传输的数据了,因此我的主机172.24.48.31向10.137.0.2发送FIN=1,ACK=1,ack=1+1=2,seq=1的连接释放报文。

第四次挥手:在第57帧中,10.137.0.2收到主机172.24.48.31发出的连接释放报文段后,做出确认,使ACK=1,ack=1+1=2,seq=1+1=2,向主机发出确认报文,在此TCP 完成释放。

 

4.3 UDP协议

UDP协议全称用户数据报协议,提供了不面向连接的通信,通信是不需要接力连接,且不对传输送数据包进行可靠的保证,可靠性由应用层来负责。

因为DNS服务器使用的就是UDP协议,所以抓包分析DNS解析就可以分析UDP协议。

可见,DNS使用的是UDP协议,其中

Source port为源端口,用于发送数据包的端口

Destination port为目的端口,数据包要送达的端口

Length为UDP长度,数据包的字节长度

Checksum为校验和,用来确保UDP的首部和数据部分的完整性

五、   应用层抓包分析

5.1 www(HTTP协议)分析

在之前的TCP三次握手建立好连接后,主机就开始与百度通信,与其建立HTTP连接。

在第9帧中,主机172.24.48.31与183.232.231.174建立HTTP协议的连接,请求方法为GET,请求版本为HTTP/1.1,域名为www.baidu.com

 

5.2 直播

直播抓包选用了爱奇艺的网站:www.iqiyi.com

根据DNS服务器的解析,www.iqiyi.com有两个IP地址分别为:112.17.1.202和112.13.64.135

通过抓包可以知道,直播类网站也是先进行TCP 3次握手连接,连接后使用HTTP协议进行通信的。

 

 

六、   总结

经过了大概半个学期的IP通信的学习,我感觉自己对IP通信有了比较深入的理解。这次的网络抓包作业对于我还是挺有挑战的,网络的抓包还是第一次尝试。上课讲了理论知识在这儿全都能用的上,但是要能熟练的使用还是有点困难的。这次的抓包作业,我觉得最大的问题就是抓包很难抓到想要的数据,有很多时候抓到的数据都是不完整的,所以我也是尝试了很多次才抓到想要的数据的。这次的抓包作业让我学会很多技能,使我更加深入的了解IP通信在各个层面的功能,同时也巩固了我的基础知识,收获很大。