北邮计网实验协议数据的捕获与解析Word文档下载推荐.docx
- 文档编号:17460735
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:21
- 大小:485.81KB
北邮计网实验协议数据的捕获与解析Word文档下载推荐.docx
《北邮计网实验协议数据的捕获与解析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《北邮计网实验协议数据的捕获与解析Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
ping192.168.0.1),远程主机地址可以是本机地址、网关路由器地
址,也可以是域名(如)。
将捕获到的数据保存为文件。
2.使用Windows中ping命令的-l选项(例如:
ping-l8000192.168.0.1),制作大于8000字
节的IP包并发送,捕获后分析其分段传输的包结构。
捕获DHCP协议数据
1.使用ipconfig命令释放计算机的IP地址(c>
ipconfig-release);
2.使用ipconfig命令重新申请IP地址(c>
ipconfig-renew)。
此时wireshark窗口中可以捕获到完整的DHCP地址分配的流程,将捕获到的数据保存为文件。
捕获ARP协议数据
采用与捕获DHCP协议数据相同的方法释放IP地址并重新申请,在wireshark窗口中可以捕获到ARP请求和响应消息,保存为文件。
捕获TCP协议数据
打开浏览器,输入一个页面内容较简单网页URL,如;
网页全部显示后关
闭浏览器。
(3)协议分析
运行Wireshark软件,打开所捕获的数据文件,完成下列分析工作:
1.IP包头分析:
对于采用ping命令-l选项捕获的ICMP消息,对承载ICMP消息的IP包进行分析,记录包头各字段的值,对照讲义和教材分析各字段的功能,并对于校验和和分段进行验证;
对于WindowsVista和Windows7操作系统,需要以管理员身份运行;
2.ICMP消息分析:
记录并分析ICMP消息中分析各字段的功能;
3.DHCP消息分析:
针对一次地址分配过程(TransactionID相同的4个消息),分析其通信过程,
画出地址分配的消息序列图,并记录采用DHCP协议配置的各个参数。
4.ARP消息分析:
对照讲义理解ARP的操作过程,记录并分析消息中各字段的功能。
5.TCP报头及消息分析:
针对TCP连接建立、连接释放、数据和应答报文段,对照讲义和教材分
析各字段的功能;
针对一次完整的TCP通信过程,画出消息序列图,应包含连接建立、数据传
送和连接释放阶段。
上述分析工作应在实验报告中进行详细描述,具体要求参见第9节。
(4)撰写实验报告
按要求撰写实验报告,对于捕获到的数据进行认真分析,归纳各协议的工作原理和实现要点。
五、实验分析
1.IP协议分析
1)采用ping命令-l选项捕获的ICMP消息
字段
报文(16进制)
内容
包头长度
45
包头长20字节
服务类型
00
正常时延,正常吞吐量,正常可靠性
总长度
05DC
数组分组长1500字节
标识
14a0
标识为5280
标志
01
MF=1DF=0,允许分片,为第一片,
片偏移
偏移量为0
生存周期
40
每跳生存时间为64秒
协议
携带数据来自ICMP协议
头部校验和
6530
IP头部校验和为6530
源地址
c0a80166
源地址为192.168.1.102
目的地址
D34445fe
目的地址为211.68.69.254
MF=1DF=0,允许分片,为第二片,
05cb
偏移量为1480
6477
IP头部校验和为6477
MF=1DF=0,允许分片,为第三片,
0b90
偏移量为2960
63be
IP头部校验和为63be
MF=1DF=0,允许分片,为第四片,
1158
偏移量为4440
6305
IP头部校验和为6305
MF=1DF=0,允许分片,为第五片,
1720
偏移量为5920
624c
IP头部校验和为624c
0274
数组分组长628字节
MF=0DF=0,允许分片,为最后一片
1ce8
偏移量为7400
84fb
IP头部校验和为84fb
2)
IP包头校验和的校验原理
当数据到达时,所有的16位(半字)累加起来,然后再取结果的补码。
003c
数组长度60字节
148a
标识为5258
8ae6
IP头部校验和为8ae6
4
5
0a62
1
192.168.1.102
211.68.69.254
4,5and0------->
0100010100000000
003c------->
0000000000111100
148a------->
0001010010001010
00and0------->
0000000000000000
40and1------->
0100000000000001
8ae6------->
1000101011100110
192.168------->
1100000010101000
1.102------->
0000000101100110
211.68------->
1101001101000100
69.254------->
0100010111111110
简单求和后发现结果为:
1111111111111111符合条件,是正确的包,即IP头部校验和为8ae6是正确的。
..(。
。
)
3)
IP包分段原理:
首先同一个数据报的所有分段包含同样的Identification(标识)值,同时每一个分段使用DF、MF和offset来表示该分段的信息。
DF代表不分段(DontFragment),它让路由器不要分割该数据报,因为目标主机无法将分片重组回原来的数据报,而数据报在分段后,此位置0;
MF表示更多的分段(MoreFragment),除了最后一个分段以外其他所有的分段必须设置这一位,将其置1,最后一个分段置0;
Fragmentoffset分段偏移域指明了该分段在当前数据报中的什么位置上。
除了一个数据包的最后一个分段以外,其他所有的分段必须是8字节的倍数,这里8字节是基本分段单位。
由截获的数据报来看,一共六段,除第一段offset为0外,其他各段偏移量为1480的倍数,也即前边每一段数据报(除包头)的长度,1480也为8的倍数,由此指明了各段在当前数据包中的位置。
同时,除最后一段MF为0外,其他各段MF为1,表明各段不是一个完整的数据报,而是分割之后形成的分段。
2.ICMP协议分析
1)ICMP的功能
ICMP报文被封装在IP包里,并且ICMP协议数据包对IP分组在传送时出现的异常情况进行报告,对IP报文传输时出现的差错、拥塞、路由改变、以及路由器或主机信息的获取等情况,向源端主机提交报告,由源主机采取相应措施,改进传输质量。
其中有Destinationunreachable、timeexceeded、sourcequench、redirect、
ECHOandECHOreply、timestamprequestandreply几种不同功能的ICMP报文。
2)记录ICMP的包格式,自己查找资料总结各字段的功能。
ICMP协议包构成:
前8字节由报文类型(1字节)、代码(1字节)、校验和(2字节),选项部分(4字节)。
ICMP报文分为两大类——差错报告报文与询问报文,差错报文共有五种、询问报文有两种
下图为ICMP请求包
TYPE类型为8code代码为0checksum校验和为4d2cIdentifier(大端表示)为1
(小端表示)为256sequencenumber序列号(大端表示)为47,(小端表示)为12032
下图ICMP应答包
TYPE类型为0code代码为0checksum校验和为552cIdentifier(大端表示)为1
由此可见,请求和应答数据包的区别在于类型,请求包为Type8,而应答包为Type0。
ICMP与IP协议同处于TCP/IP模型的网际层,但ICMP报文是封装在IP数据报的数据部分进行传输的。
3.DHCP协议分析
1)对照讲义和教材理解DHCP的功能,观察DHCPACK消息的各字段,自己查找资料理解各字段的功能,总结采用DHCP协议可以提供哪些配置参数。
DHCP是动态主机配置协议(Dynamichostconfigurationprotocol)的简称,它提供对于远程主机的自动配置,包括IP地址、路由地址、子网掩码、DNS服务器地址,是一个应用层上的协议。
作为BOOTP的拓展,它的作用是给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
它也是client-server的范例。
下图是DHCPACK消息包含的各字段
Messagetypebootreply
(2)操作码
HardwaretypeEthernet硬件类型
Hardwareaddresslength6硬件地址长度
Hops0跳数
TransactionID0xe4c5866c事务标识
Secondselapsed0过去的秒数
ClientIPaddress0.0.0.0客户IP
YourIPaddress192.168.1.108你的主机IP地址
NextserverIPaddress0.0.0.0下一个服务器的IP地址
RelayagentIPaddress0.0.0.0中介代理的IP地址
ClientMACaddress58:
94:
6b:
4a:
cd:
28客户MAC地址
DHCPmessagetypeDHCPACK(5)DHCP消息类型
Serveridentifier192.168.1.1供应商标识符
Subnetmask255.255.255.0子网掩码
Router192.168.1.1路由
IPaddressleasetime2hoursIP地址的租用时间
DomainNameserver:
10.3.9.4/10.3.9.5域名服务器
DHCP向网络主机提供配置参数,它由两个基本部分组成:
一部分是向网络主机传送专用的配置信息,另一部分是给主机分配网络地址。
DHCP是用于向客户传送配置信息的,客户从DHCP服务器那里获得配置信息后应该可以和Internet上任何一台主机通信。
在初始化一台主机时并不需要配置所有这些参数,客户和服务器可以通过一种商讨机制决定传送哪些参数。
DHCP允许(不要求)客户参数配置不直接与IP协议相关,而且它也不将最加入的主机加入域名系统(DNS)中。
2)根据捕获到消息,画出DHCP地址分配过程的消息序列图。
注意DHCP是采用client-server模式工作的,你捕获到的消息中,DHCPserver是否由路由器充当?
是否有DHCPRelay?
1.执行ipconfig/renew更新所有适配器,由于本地主机没有被分配到IP地址,并且也不知道DHCP服务器的地址,所以发送DHCPDiscover报文时,源地址为0.0.0.0,目的地址为255.255.255.255。
本地网络上的所有主机都能收到DHCPDiscover报文。
2.只有DHCP服务器收到这个DHCP,Discover报文后,向网络广播DHCPOffer报文作为回复。
3.本地主机(0.0.0.0)收到DHCPOffer报文后,向DHCP服务器发送DHCPRequest报文
4.DHCP(192.168.1.1)服务器收到DHCPRequest报文后,回复DHCPACK报文,给本地主机分配一个IP地址。
本地主机就得到了一个临时IP地址(192.168.1.108)。
至此四次握手完成。
在我捕获到的消息中,DHCPsever由路由器充当,无DHCPrelay,因为在同一网段内。
4.ARP协议分析
1)根据捕获到的消息,对照讲义,理解ARP的功能和操作原理。
本地局域网内的主机用广播的方式发送ARP报文,来获取彼此的硬件地址。
ARP基本功能:
在以太网协议中规定,同一局域网中的一台主机要和另一台主机迚行直接通信,必须要知道目标主机的MAC地址。
而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。
这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。
于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。
这就是ARP协议要做的事情。
所谓地址解析(addressresolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
2)记录ARP的包格式,自己查找资料总结各字段的功能。
ARP报文的格式:
①硬件类型:
指明硬件的类型,以太网是1。
②协议类型:
指明发送者映射到数据链路标识的网络层协议的类型;
IP对应0x0800。
③硬件地址长度:
也就是MAC地址的长度,单位是字节,这里是6。
④协议地址长度:
网络层地址的长度,即IP地址长度,单位是字节。
⑤操作:
指明是ARP请求
(1)还是ARP应答
(2)⑥剩下的字段都比较简单,不作说明
5、TCP协议分析
1)对照讲义和教材理解TCP报文段的首部各字段的功能,以表格的方式总结每个字段的名字、长度和功能。
源端口和目的端口域标明了一个连接的两个端点(16位)+(16位)
序列号发送TCP包的序列(32位)
确认号指定下一个期望的字节(32位)
TCP头长度指明在头部TCP头部包含多少个32位的字
(4位)+后边的(6位保留位)+(6位标志域)
URG用来指示出紧急数据在当前数据段中的位置
ACK表示是否包含确认信息
PUSH表示这是带有PUSH标志的数据
RST被用于重置一个已经混乱的连接
SYN被用于建立连接的过程
FIN被用于释放一个连接
窗口大小表示接收方的窗口大小(16位)
校验和提供额外可靠性(16位)
紧急指针16位,指向后面是优先数据的字节,在URG标志设置了时才有效
可选项:
长度不定,但长度必须以字节。
如果没有选项就表示这个一字节的域等于0。
数据的开始处偏移量能够被32整除,一般额外的零以保证TCP头是32位的整数倍。
针对连接建立消息和连接释放消息,分析相应标志位和序号的作用,参照讲义中的示例画出连接建立和连接释放过程的消息序列图,在图上标出对应的标志位和序号。
建立连接:
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:
建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:
服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据
释放连接:
虽然TCP连接是全双工的,但可将其视为一对单工连接,每个连接单独释放,两个单工之间独立。
步骤:
(1)客户端1发送一个FIN,用来关闭1到2的数据发送
(2)服务器2收到这个FIN,它发回一个ACK,确认序号为收到的序号+1,和SYN一样,一个FIN将占用一个序号
(3)服务器2关闭与客户端1的连接,发送一个FIN给客户端1
(4)客户端1发回ACK报文确认,并将确认信号设置为收到序号+1
2)针对TCP的数据传输过程中的数据报文段和应答报文段,分析发送序号、应答序号、应答标志位、窗口大小、数据长度、MSS等字段的作用,参照讲义中的示例画出数据传输过程的消息序列图,其中应包括数据校验错和数据丢失导致的数据重传情形,在图上应标出对应的序号、标志位和窗口大小。
每个TCP报文头部都包含源端口号(sourceport)和目的端口号(destinationport),用于标识和区分源端设备和目的端设备的应用进程。
在TCP/IP协议栈中,源端口号和目的端口号分别与源IP地址和目的IP地址组成套接字(socket),唯一的确定一条TCP连接。
序列号(Sequencenumber)字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第一个数据字节。
如果将字节流看作在两个应用程序间的单向流动,则TCP用序列号对每个字节进行计数。
序列号是一个32bits的数。
既然每个传输的字节都被计数,确认序号(Acknowledgementnumber,32bits)包含发送确认的一端所期望接收到的下一个序号。
因此,确认序号应该是上次已成功收到的数据字节序列号加1。
TCP的流量控制由连接的每一端通过声明的窗口大小(windowssize)来提供。
窗口大小用数据包来表示,例如Windowssize=3,表示一次可以发送三个数据包。
窗口大小起始于确认字段指明的值,是一个16bits字段。
窗口大小可以调节。
校验和(checksum)字段用于校验TCP报头部分和数据部分的正确性。
最常见的可选字段是MSS(MaximumSegmentSize,最大报文大小)。
MSS指明本端所能够接收的最大长度的报文段。
当一个TCP连接建立时,连接的双方都要通告各自的MSS协商可以传输的最大报文长度。
我们常见的MSS有1024(以太网可达1460字节)字节。
3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮计网 实验 协议 数据 捕获 解析