北航研究生计算机网络实验_实验三 网络层实验
实验三 网络层实验
- 将执行命令的结果填入下表:
2.6.1中步骤2中的执行结果 |
|
2.6.1中步骤4中的执行结果 |
|
2.6.2中步骤11中的执行结果 |
|
2.分析2.6.1步骤3中截获的报文,统计“Protocol”字段填空:有 2 个ARP报文,有 8 个ICMP报文。在所有报文中,ARP报文中ARP协议树的“Opcode”字段有两个取值1,2,两个取值分别表达什么信息?
答:Opcode 字段的取值1,2分别对应的信息为: request(1), reply(2)
3.根据2.6.1步骤6分析ARP报文结构:选中第一条ARP请求报文和第一条ARP应答报文,将ARP请求报文和ARP应答报文中的字段信息填入下表:
字段项 |
ARP请求数据报文 |
ARP应答数据报文 |
链路层Destination项 |
ff:ff:ff:ff:ff:ff(broadcast) |
00:0c:29:70:fc:f5 |
链路层Source项 |
00:0c:29:70:fc:f5 |
00:0c:29:85:69:df |
网络层Sender MAC Address |
00:0c:29:70:fc:f5 |
00:0c:29:85:69:df |
网络层Sender IP Address |
192.168.1.22 |
192.168.1.21 |
网络层Target MAC Address |
00:00:00:00:00:00 |
00:0c:29:70:fc:f5 |
网络层Target IP Address |
192.168.1.21 |
192.168.1.22 |
4.(1)比较ping1-学号中截获的报文信息,少了什么报文?简述ARP Cache的作用。
答:少了arp报文,ARP Cache的作用是存储ARP协议,而ARP协议适用于匹配MAC地址和设备的硬件地址的。在通信前,主机会通过arp将IP地址解析出对应的mac地址,存放在arp表中,以便进行通信。
(2)按照图-4重新进行组网,并确保连线正确。修改计算机的IP地址,并将PC A的默认网关修改为192.168.1.10,PC B的默认网关修改为192.168.2.10。考虑如果不设置默认网关会有什么后果?
答:如果不设置默认网关的话,会无法访问不同网段的主机,但是仍能访问同一网段内的主机。
5.根据2.6.2步骤12分析ARP报文结构:选中第一条ARP请求报文和第一条ARP应答报文,将ARP请求报文和ARP应答报文中的字段信息与上表进行对比。与ARP协议在相同网段内解析的过程相比较,有何异同点?
答:区别在于网关的作用,不在同一网段内就不能直接投递,需通过默认网关间接发送。
|
相同网段 |
不同网段 |
请求报文网络层 Target IP Address |
PCB的IP |
PCA的默认网关 |
应答报文链路层 Source |
PCB的MAC地址 |
PCA的默认网关S1 E1/0/1的MAC地址 |
应答报文网络层 Sender MAC Address |
PCB的MAC地址 |
PCA的默认网关S1 E1/0/1的MAC地址 |
应答报文网络层 Sender IP Address |
PCB的IP |
PCA的默认网关的IP |
6. 根据3.6.1步骤2——在PC A 和 PC B上启动Wireshark软件进行报文截获,然后PC A ping PC B,分析截获的ICMP报文: 共有 8 个ICMP报文,分别属于哪些种类?对应的种类和代码字段分别是什么?请分析报文中的哪些字段保证了回送请求报文和回送应答报文的一一对应?
答:
种类 |
代码字段 |
request |
Type: 8 (Echo (ping) request) |
reply |
Type: 0 (Echo (ping) reply) |
网络层的Source和Destination字段保证了回送请求报文和回送应答报文的一一对应。
7. 根据3.6.1步骤3——在PC A 和 PC B上启动Wireshark软件进行报文截获,运行pingtest程序,设置地址掩码请求报文参数,分析截获报文填写下表:
地址掩码请求报文 |
地址掩码应答报文 |
||
ICMP字段名 |
字段值 |
ICMP字段名 |
字段值 |
Type |
17 |
Type |
18 |
Code |
0 |
Code |
0 |
Checksum |
0xe3ff |
Checksum |
0xe3fe |
Identifier(BE) |
2560 (0x0a00) |
Identifier(BE) |
2560 (0x0a00) |
Identifier(LE) |
10 (0x000a) |
Identifier(LE) |
10 (0x000a) |
Sequence number (BE) |
256 (0x0100) |
Sequence(BE) |
256 (0x0100) |
Sequence number (LE) |
1 (0x0001) |
Sequence(LE) |
1 (0x0001) |
Address mask |
0.0.0.0 (0x00000000) |
Address mask |
255.255.255.0 (0xffffff00) |
8.根据3.6.1步骤4——在PC A 和 PC B上启动Wireshark软件进行报文截获,运行pingtest程序,设置时间戳请求报文参数,分析截获报文填写下表:
时间戳请求报文 |
时间戳应答报文 |
||
ICMP字段名 |
字段值 |
ICMP字段名 |
字段值 |
Type |
13 |
Type |
14 |
Code |
0 |
Code |
0 |
Checksum |
0xe7ff |
Checksum |
0x1c96 |
Identifier(BE) |
2560 (0x0a00) |
Identifier(BE) |
2560 (0x0a00) |
Identifier(LE) |
10 (0x000a) |
Identifier(LE) |
10 (0x000a) |
Sequence number (BE) |
256 (0x0100) |
Sequence(BE) |
256 (0x0100) |
Sequence number (LE) |
1 (0x0001) |
Sequence(LE) |
1 (0x0001) |
Originate timestamp |
0 seconds after midnight UTC |
Originate timestamp |
0 seconds after midnight UTC |
Receive timestamp |
0 seconds after midnight UTC |
Receive timestamp |
13 hours, 54 minutes, 42.281 seconds after midnight UTC |
Transmit timestamp |
0 seconds after midnight UTC |
Transmit timestamp |
13 hours, 54 minutes, 42.281 seconds after midnight UTC |
通过上述实验,仔细体会ICMP询问报文的作用。
9. 根据3.6.2中步骤5回答:
(1) 请比较这两种情况有何不同?
答:首先,由于ping的IP地址都与PCA不同网段,因此PCA会将报文发送给默认网关S1的E1/0/1。
对于第一种情况:ping 10.1.3.20,10.1.3.20在S1的E1/0/23端口的子网内,因此S1会将报文发送到E1/0/23端口。
对于第一种情况:ping 10.1.4.10,10.1.4.10不在S1的路由表中,因此S1认为10.1.4.10是不可达的,因此会回复Destination unreachable。
(2) 截获了哪种ICMP差错报文?其类型和代码字段值是什么?此报文的ICMP协议部分又分为了几部分?其作用是什么?
答:截取了终点不可达差错报文,类型为Destination unreachable,代码字段为3。此报文的ICMP协议部分又包括:Code,值为0代表网络不可达;封装的源Echo请求ICMP报文的IP层和ICMP层,表示该差错报文来自来源于一个从10.1.2.10到10.1.4.10的Echo请求。
10.根据3.6.2中步骤6回答:
(1) 结合报文内容,简述tracert的工作过程。
答:首先,PCA运行tracert向目的地址PCB发送具有不同IP生存时间(TTL,Time To Live)的ICMP Echo请求报文,在PCA到PCB的路径上的每个路由都要在转发该ICMP报文时将其TTL值-1。
当TTL = 0时,路由器向源主机PCA发送ICMP超时差错报文。
而PCA通过向PCB发送TTL为1,2,......,n的Echo报文就可以获得PCA到PCB的所有路径信息
(2) 截获了哪种ICMP差错报文?其类型和代码字段值是什么?
答:截获到的是超时报文,类型为11:Time-to-live exceeded ,代码字段为0(Time to live exceeded in transit);封装的源Echo请求ICMP报文的IP层和ICMP层,表示该差错报文来自来源于一个从10.1.2.10到10.1.4.10的Echo请求。
11.根据4.6中步骤1,,写出tracert命令用到了IP协议报文的哪几个字段?
答:tracert命令用到的IP协议报文的字段有:IP生存时间TTL(Time To Live)。
12.根据4.6中步骤2回答:观察PC A和 PC B能否 ping通,结合截获报文分析原因。
答:无法ping通,PCA上截获了ARP的广播请求报文,询问10.1.3.10的物理地址(Who has 10.1.3.10),而PCB上没有截获到任何相关报文。
这是因为改变地址掩码后,PCB的IP地址 & PCA的子网掩码 = PCA的IP地址 & PCA的子网掩码(& 指代按位取与)。因此PCA和PCB经过PCA子网掩码mask之后的网络地址是一样的,从而PCA到PCB的报文会直接交付到本网络,因此,PCA会直接发送ARP请求PCB的物理地址,这种行为显然是不会有应答的,因此PCA不能ping通PCB。
13. 根据4.6中步骤3填写下表:
Destination/Mask |
Protocol |
Pre |
Cost |
Nexthop |
Interface |
10.1.2.0/24 |
Direct |
0 |
0 |
10.1.2.1 |
Vlan2 |
10.1.2.1/32 |
Direct |
0 |
0 |
127.0.0.1 |
InLoop0 |
10.1.3.0/24 |
Direct |
0 |
0 |
10.1.3.1 |
Vlan3 |
10.1.3.1/32 |
Direct |
0 |
0 |
127.0.0.1 |
InLoop0 |
127.0.0.0/8 |
Direct |
0 |
0 |
127.0.0.1 |
InLoop0 |
127.0.0.1/32 |
Direct |
0 |
0 |
127.0.0.1 |
InLoop0 |
14. (1)按照实验2的5.5节(PPP协议实验)图18配置路由器,两个路由器相互ping,看能否ping通。根据R1上的debug显示信息,画出IPCP协议在协商过程中的状态转移图(事件驱动、状态转移)。
答:
shutdown
undo shutdown
(2)将路由器R2的接口S0/0的IP地址改为10.0.0.1/24,两台路由器能否ping通?并解释为什么?注意体会IPCP协议的特点。(查看IPCP协议协商过程的debug信息)
答:可以ping通。因此为IPCP协议负责建立、使能和终止IP模块,并给用户分配一些上网必须的参数。地址修改后,IPCP重新协商再次达到打开状态,使得链路联通。
15. 根据5.6中步骤5:(选做)
(1)在截获报文中,有 3 个ARP报文, 10 个ICMP:Echo报文, 5 个ICMP:Echo Reply报文, 15 个IP报文。
(2)据ping命令执行过程的分析,将本属于同一个数据报文信息的报文截取出来,例如下列的报文,从信息栏中可以看出,报文1、2、3、4属于同一数据段。
将第一个ICMP Request的报文分片信息填写下表。
字段名称 |
分片序号1 |
分片序号2 |
分片序号3 |
分片序号4 |
“Identification”字段值 |
0x00025(37) |
0x00025(37) |
0x00025(37) |
0x00025(37) |
“Flag”字段值 |
0x01 |
0x01 |
0x01 |
0x00 |
“Frame offset”字段值 |
0 |
80 |
160 |
240 |
传输的数据量 |
80 bytes |
80 bytes |
80 bytes |
68 bytes |
分析表格内容,根据IP首部字段设置,体会分片过程。
(3) ping的数据部分为300字节,路由器的以太网端口MTU设为100字节。回送请求报文为何被分片为4片而不是3片?数据部分长度为多少时报文正好被分为3片?
答:因为MTU为100字节,而每个分片报文都有20字节IP头部信息,因此MTU为100字节时,数据字段只有100 - 20 = 80字节,而 300 ÷ 80 = 3 ...... 60,因此需要分为4片。
当数据部分长度为80 * 3 = 240字节时,报文正好被分为3片。
16 综合型实验(VLAN间路由实验结果分析)
根据跨交换机VLAN间路由实验(PCC ping PCD)所截获报文,对整个网络层和数据链路层的报文转发过程进行分析。
约定如下:数据帧中的MAC地址对:(目的MAC地址,源MAC地址)
数据报中的IP地址对:(目的IP地址,源IP地址)
STEP 1
-
Ø PCC发送的第一个报文类型是什么?为什么?
答:arp,因为需要先获得MAC地址到物理地址的映射关系才能联通。
-
Ø 包含该报文数据帧中的VLAN id、MAC和IP地址对是:VLAN id= 2
MAC:(ff.ff.ff.ff.ff.ff ,MAC_PCC)
IP:(192.168.2.1,192.168.2.11)
STEP 2
-
Ø S2收到数据帧后,对其MAC地址表的操作是:
答: 插入PCC的MAC地址
Ø S2根据接收数据帧的端口所属VLAN,在其中插VLAN id= 2 的标签,并向除接收端口外的所有VLAN2端口转发这个数据帧。
STEP 3
-
Ø S1收到数据帧后,对其MAC地址表的操作是:
答: 插入S2的MAC地址。
Ø S1将ARP 报文交付给网络层,S1对其arp表的操作是:
答: 插入PAC的IP地址和MAC地址。
Ø S1发送的包含ARP Reply报文的数据帧中:(MAC_PCC, MAC_ VLAN 2)
(192.168.2.11,192.168.2.1);VLAN id= 2
STEP 4
Ø S2收到数据帧后,对其MAC地址表的操作是:
答: 插入S1的MAC地址。
Ø S2收到的数据帧后,根据VLAN标签和 ARP 表,决定向端口 E0/1 转发该数据帧;
Ø S2根据端口 E0/13 是 trunk 类型端口,去掉VLAN标签,从端口 E0/1 转发该帧。
STEP 5
Ø PCC收到ARP Reply报文,更新其ARP缓存,显示ARP缓存的命令:
显示的内容:
Ø PCC发送的包含ICMP Echo Request报文的数据帧中:VLAN id= 2
MAC:( MAC-S1 , MAC-PCC )
IP:( 192.168.2.11 , 192.168.2.1 )
STEP 6
Ø S2收到数据帧,根据其接收端口,添加VLAN2 标签;根据目的MAC,查找MAC地址表;将数据帧由 E0/13 端口转发给S1。
Ø S2转发的数据帧中:VLAN id= 2
MAC:( MAC-S1 , MAC-PCC )
IP:( 192.168.2.1 , 192.168.2.11 )
STEP7
Ø S1收到S2转发的数据帧,交付网络层,根据目的IP地址,查路由表,将报文路由到int vlan 3,准备通过数据链路层交付给PCD;
Ø 但没有查到PCD的MAC地址,就要发送包含ARP Request报文的数据帧; VLAN id= 3
MAC:( ff.ff.ff.ff.ff.ff , MAC-S1 )
IP:( broadcast , 192.168.2.11 )
STEP 8
Ø S2收到S1转发的数据帧,根据其VLAN id= 3 ,向除接收端口外的所有属于VLAN 3 的端口转发该数据帧;
Ø S2根据端口 E0/13 是 trunk 类型端口,去掉VLAN标签,从端口 E0/24 转发该帧。
STEP 9
Ø PCD收到S2转发的数据帧,更新其ARP缓存,其ARP缓存的内容是:
Interface: 192.168.3.11 --- 0x2
Internet AddressPhysical Address Type
192.169.3.138-91-d5-72-4b-95dynamic
Ø PCD发送包含ARP reply报文的数据帧中;VLAN id= 3
MAC:( MAC-S1 , MAC-PCD )
IP:( 192.168.3.1 , 192.168.3.11 )
STEP 10
Ø S2收到数据帧,根据其接收端口,添加VLAN 3 的标签;根据目的MAC,查找MAC地址表;将数据帧由
E0/13 端口转发给S1。
Ø S2转发的数据帧中:VLAN id= 3
MAC:( MAC-S1 , MAC-PCD )
IP:( 192.168.3.1 , 192.168.3.11 )
STEP 11
Ø S1收到数据帧,提交到网络层,更新其ARP表;
Ø S1对包含ICMP Echo Request报文的数据帧的VLAN标签进行替换,由VLAN id= 2 变为VLAN id= 3 。封装的数据帧中:VLAN id= 3
MAC:( MAC-PCD , MAC-S1 )
IP:( 192.168.3.11 , 192.168.3.1 )
Ø 查找MAC地址表,由 E0/13 端口发送。
STEP 12
Ø S2收到S1转发的数据帧,根据其VLAN id和目的MAC地址,向 E0/24 端口转发该数据帧;
Ø 同时,S2根据端口 E0/13 是 trunk 类型端口,去掉VLAN标签,从端口 E0/24 转发该帧。
STEP 13
Ø PCD收到包含ICMP Echo Request报文的数据帧,发送包含ICMP Echo Reply报文的数据帧:VLAN id= 3
MAC:( MAC-S1 , MAC-PCD )
IP:( 192.168.3.1 , 192.168.3.11 )
STEP 14
S2收到数据帧,根据其接收端口,添加VLAN 3 的标签;根据目的MAC,查找MAC地址表;将数据帧由 E0/13 端口转发给S1。
Ø S2转发的数据帧中:VLAN id= 3
MAC:( MAC-S1 , MAC-PCD )
IP:( 192.168.3.1 , 192.168.3.11 )
STEP 15
Ø S1收到S2转发的数据帧,交付网络层,根据目的IP地址,查路由表,将报文路由到int vlan2,准备通过数据链路层交付给PCC;
Ø 查找PCC的MAC地址,替换VLAN标签,封装并发送数据帧;VLAN id= 2
MAC:( MAC-PCC , MAC-S1 )
IP:( 192.168.2.11 , 192.168.2.1 )
STEP 16
Ø S2收到S1转发的数据帧,根据其VLAN id和目的MAC地址,向 E0/1 端口转发该数据帧;
Ø 同时,S2根据端口 E0/13 是 trunk 类型端口,去掉VLAN标签,从端口 E0/1 转发该帧。
这样,PCC收到S2转发的包含ICMP Echo Reply报文的数据帧。第一轮ICMP询问和应答过程结束。
17. 设计型实验
如图,某公司要建设公司网络,从网络服务商处租用了一个C类地址202.108.100.*/24,接网络服务商路由器的地址如图所示,请给出设计方案,满足如下要求:
1) 网络划分子网数越多越好,但每个子网的主机数大于15台;
2) 所有用户都能上网,即要求所有主机都能ping通网络服务商路由器的E0口。
提示:如图所示,划分好子网后,在路由器和三层交换机上要配置静态路由。
答:222.108.100.*/24 => 1101 1110 . 0110 1100 . 0110 0100 . * / 24。
因此 /24一共可分配256个地址,而且每个子网主机数要求大于15台,也就是每个子网主机数最小为16台,可如此分配: 256 = 128 * 2 = (64 * 2) * 2 = ((32 * 2) * 2) * 2 = (((16 * 2) * 2) * 2) * 2 = 16 * 16。
假如每个子网都分配16台主机,则可划分16个子网,前缀n都为/28
分配IP为:令k=16*(i-1), 则VLAN i的IP为202.108.100.k/28,其中i = 1,2,3,...,16。网络结构如题图,