目录
作业1:OSI/RM、TCP/IP编址和底层网络技术
作业2:IP地址规划与路由选择
作业3:ARP、IP、ICMP
作业4:UDP、Routing Protocol
作业五
作业1:OSI/RM、TCP/IP编址和底层网络技术
物理地址属于OSI/RM的哪一层?是否需要全球唯一?应在什么范围内唯一?Ethernet网卡的物理地址——MAC地址为什么要求全球唯一?
答:1.数据链路层;
2.不需要全球统一;
3.应该在同一个网段(或者说成局域网)里唯一,MAC(Media Access Control, 介质访问控制)地址是识别LAN(局域网)节点的标识;
4. MAC地址是网卡的物理地址, MAC地址由生产厂商分配,在同一个局域网内可能使用多个厂商生成的网卡,为了区分网卡,需要保证MAC地址全球唯一。
在使用Windows系统的PC机上配置Internet协议(TCP/IP)属性时,“默认网关”是指路由器(Router)还是网关(Gateway)?理由是什么?
答:路由器;
“默认网关”是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。从功能上来看主要执行的是数据包路由转发的功能,因此windows上的配置协议属性时默认网关是指路由器。
而网关主要是执行的是协议转换功能。
3、完成下面的struct语句,用它来描述Ethernet的帧格式(RFC 894,从“目的地址”开始)。
struct Ethernet_frame
{
……
unsigned long intCRC;
};
struct Ethernet_frame
{
unsigned long int DMAC ;
unsigned long int SMAC ;
unsigned long int Type ;
char *data;
unsigned long int CRC;
};
4、以太网的链路层(MAC子层)从物理层收上来的以太帧应包括哪些字段?为什么?以太网网卡的接口驱动软件收到的以太帧应包括哪些字段?为什么?
以太网的链路层(MAC子层)从物理层收上来的以太帧应包括哪些字段?
答:前同步码,帧开始定界符;目的MAC地址,源MAC地址,类型字段(上层协议的类型,Type/len),数据字段,校验字段;
原因:MAC层从物理层收上来的以太帧,是携带有物理层信息的,包含前同步码与帧开始定界符,以太网的链路层并没有处理这些信息。
以太网网卡的接口驱动软件收到的以太帧应包括哪些字段?
目的MAC地址,源MAC地址,类型字段(上层协议的类型),数据字段,校验字段;
原因:以太网网卡的接口驱动软件收到的以太帧是经过网卡处理之后的,前同步码,帧开始定界符这些物理层的信息已经被处理掉了。
但是用wireshark从网卡中分析帧的时候,是不含有校验字段的。
请访问IETF主页(http://www.ietf.org),找1~2个感兴趣的活动工作组(active working group),写出该工作组的全称、缩写和所属领域(英文),简要描述该工作组的主要研究内容(中文),并给出该工作组发布的最新一个RFC的编号、名称和状态。
答:
全称:Inter-Domain Routing
缩写:idr
所属领域:Routing Area (rtg)
主要研究内容:主要负责BGP的研究;IDR工作组将致力于准确性、稳健性和协议的可扩展性,以及协议的清晰度和准确性边界网关协议文档集。
RFC编号:RFC9294
RFC名称:draft-ietf-idr-bgp-ls-app-specific-attr
RFC状态:Proposed Standard RFC
全称:Light-Weight Implementation Guidance (lwig)
缩写:lwig
所属领域:Internet Area
主要研究内容:搭建能够在大多数环境下工作最小但可互操作的ip设备;从IP栈中的使用中收集经验。
RFC编号:RFC 9178
RFC名称:draft-ietf-lwig-cellular
RFC状态:Informational RFC
作业2:IP地址规划与路由选择
根据下图所示网络拓扑进行IP地址规划。
要求:
- 如果IP地址总空间是10.1.1.0/24,能否根据图中所示网络大小为每个IP网络分配适当的IP地址空间?如果可以,应如何编址?如果不行,请说明理由。\\
不可以;地址空间不够用;
解释:每个IP网的需要的地址数量=本子网内主机数 + 本子网内路由器接口数 + 2
从上述网络拓扑图当中可以看到,一共有10个子网,
分析有主机的子网:
子网1:地址数量=15+1+2=17,需要32个地址
子网2:地址数量=25+1+2=18,需要32个地址
子网3:地址数量=30+1+2=33,需要64个地址
子网4:地址数量=50+1+2=53,需要64个地址
子网5:地址数量=60+1+2=63,需要64个地址
子网6:地址数量=2+2=4,需要4个地址
子网7:地址数量=2+2=4,需要4个地址
子网8:地址数量=2+2=4,需要4个地址
子网9:地址数量=2+2=4,需要4个地址
子网10:地址数量=2+2=4,需要4个地址
现在地址块的地址数量为28 =256,而(32+32+64+64+64+4*5)>256,地址数量不够用
- IP地址总空间是10.1.0.0/16,请采用聚合设计,按照图中所示网络大小为每个IP网络分配适当的IP地址空间,从而使得每台路由器的路由表项数尽可能最少。写出每个IP网络的网络地址、掩码和直接广播地址,并写出每台路由器每个网络接口的IP地址,以及每个有主机的子网中一台主机的IP地址、子网掩码和缺省网关。
采用路由地址聚合:
分配的IP地址为10.1.0.0/16,网络需要的地址规模是32+32+64+64+64+4*5=276,
所以整个网络分配10.1.0.0/23地址块就行
采用聚合设计
3,4,9可以聚合成一个网络,需要地址64+64+4 一共256的地址
1单独一张网络,需要32地址
网络 1 ,6,7 ,10聚合成一个网络,需要64个地址
2 ,8 ,5聚合成一张网络,需要32+4+64,一共128地址
地址聚合示意图如下:
![]() |
路由聚合表如下,每一个长条表示128大小的地址块
网络3 10.1.0.0/26 | 网络4 10.1.0.64/26 | 10.1.0.0/24 | |||||||
网络9 10.1.0.128/30 | |||||||||
网络5 10.1.1.0/26 | 网络2 10.1.1.64 /27 | 网络8 10.1.1.96/30 | 10.1.1.0/25 | ||||||
网络6 10.1.1.128/30 | 网络7 10.1.1.132/30 | 网络10 10.1.1.136/30 | 网络1 10.1.1.160/27 | 10.1.1.128/25 |
网络名称 | 网络地址 | 子网掩码 | 广播地址 |
子网1 | 10.1.1.160 | 255.255.255.224 | 10.1.1.191 |
子网2 | 10.1.1.64 | 255.255.255.224 | 10.1.1.95 |
子网3 | 10.1.0.0 | 255.255.255.192 | 10.1.0.63 |
子网4 | 10.1.0.64 | 255.255.255.192 | 10.1.0.127 |
子网5 | 10.1.1.0 | 255.255.255.192 | 10.1.1.63 |
子网6 | 10.1.1.128 | 255.255.255.252 | 10.1.1.131 |
子网7 | 10.1.1.132 | 255.255.255.252 | 10.1.1.135 |
子网8 | 10.1.1.96 | 255.255.255.252 | 10.1.1.99 |
子网9 | 10.1.0.128 | 255.255.255.252 | 10.1.0.131 |
子网10 | 10.1.1.136 | 255.255.255.252 | 10.1.1.139 |
路由器 | 接口 | IP地址 |
A | E1 | 10.1.1.161 |
S1 | 10.1.1.133 | |
S0 | 10.1.1.129 | |
B | S0 | 10.1.1.134 |
S1 | 10.1.1.137 | |
S2 | 10.1.0.129 | |
E0 | 10.1.0.65 | |
C | S0 | 10.1.1.138 |
S1 | 10.1.1.130 | |
S2 | 10.1.1.97 | |
E0 | 10.1.1.65 | |
D | S1 | 10.1.0.130 |
E0 | 10.1.0.1 | |
E | S0 | 10.1.1.98 |
E0 | 10.1.1.1 |
每个有主机的子网中一台主机的IP地址、子网掩码和缺省网关。
网络名称 | 主机IP | 子网掩码 | 缺省网关 |
子网1 | 10.1.1.162 | 255.255.255.224 | 10.1.1.161 |
子网2 | 10.1.1.66 | 255.255.255.224 | 10.1.1.65 |
子网3 | 10.1.0.2 | 255.255.255.192 | 10.1.0.1 |
子网4 | 10.1.0.66 | 255.255.255.192 | 10.1.0.65 |
子网5 | 10.1.1.2 | 255.255.255.192 | 10.1.1.1 |
(3)请根据(2)中的IP地址分配方案,按以下格式分别写出路由器A、B、C、D和E的路由选择表。
目的网络地址 | 目的掩码 | 下一跳IP地址 | 发送接口 |
路由器A的路由表:
目的网络地址 | 目的掩码 | 下一跳IP地址 | 发送接口 |
10.1.1.160 | 255.255.255.224 | _ | E1 |
10.1.0.0 | 255.255.255.0 | 10.1.1.134 | S1 |
10.1.1.0 | 255.255.255.128 | 10.1.1.130 | S0 |
路由器B的路由表:
目的网络地址 | 目的掩码 | 下一跳IP地址 | 发送接口 |
10.1.0.64 | 255.255.255.192 | _ | E0 |
10.1.1.160 | 255.255.255.224 | 10.1.1.133 | S0 |
10.1.1.0 | 255.255.255.128 | 10.1.1.138 | S1 |
10.1.0.0 | 255.255.255.192 | 10.1.0.130 | S2 |
路由器C的路由表:
目的网络地址 | 目的掩码 | 下一跳IP地址 | 发送接口 |
10.1.1.64 | 255.255.255.224 | _ | E0 |
10.1.0.0 | 255.255.255.0 | 10.1.1.137 | S0 |
10.1.1.128 | 255.255.255.224 | 10.1.1.129 | S1 |
10.1.1.0 | 255.255.255.192 | 10.1.1.1 | S2 |
路由器D的路由表:
目的网络地址 | 目的掩码 | 下一跳IP地址 | 发送接口 |
10.1.0.0 | 255.255.255.192 | _ | E0 |
0.0.0.0 | 0.0.0.0 | 10.1.0.129 | S1 |
路由器E的路由表:
目的网络地址 | 目的掩码 | 下一跳IP地址 | 发送接口 |
10.1.1.0 | 255.255.255.192 | _ | E0 |
0.0.0.0 | 0.0.0.0 | 10.1.1.97 | S0 |
作业3:ARP、IP、ICMP
- 路由器A的一个网络接口的IP地址为195.23.67.3,掩码是255.255.255.0,以太网物理地址是0x2345AB4F67CD。路由器收到一个目的IP地址是185.11.78.10的IP分组,当路由器检查路由表时,它找出该分组应交付给下一跳路由器B,其IP地址是195.23.67.9,掩码是255.255.255.0,请写出路由器A发出的ARP请求分组和收到的ARP响应分组的内容,以及封装这两个分组的数据帧的首部字段。假设:195.23.67.9对应的MAC地址是0x154983AF6CD2,185.11.78.10对应的MAC地址是0x94EF65A3B2D7。
路由器A发出的ARP请求分组:
0x0001 | 0x0800 | |
0x06 | 0x04 | 0x0001 |
0x2345AB4F67CD | ||
195.23.67.3 | ||
0x000000000000 | ||
195.23.67.9 |
数据帧的首部字段:
前同步码 | 帧开始定界符 | 0xFFFFFFFFFFFF | 0x2345AB4F67CD | 0x0806 | ARP分组和填充字段 | FCS |
路由器A收到的ARP响应分组:
0x0001 | 0x0800 | |
0x06 | 0x04 | 0x0002 |
0x154983AF6CD2 | ||
195.23.67.9 | ||
0x2345AB4F67CD | ||
195.23.67.3 |
数据帧的首部字段
前同步码 | 帧开始定界符 | 0x2345AB4F67CD | 0x154983AF6CD2 | 0x0806 | ARP分组和填充字段 | FCS |
分析RFC826中“Packet Reception”一节关于ARP分组的接收处理,指出教材8.4.4节的“表8.3 输入模块”中对ARP分组接收处理的不正确或不准确描述。
答:
- 首先,没有检查是否支持收到包的硬件地址类型
- 其次,没有检查协议地址的类型,也没有检查协议地址的长度
- 再者,标准中没有提到PENDING,也没有之后的操作。RFC826提到的是Merge_flag状态的改变。
- 最后,判断是ARP请求之前,应该先判断自己是否为ARP分组里面的目的协议地址,如果不是应该丢弃
一个IP数据报到达时其首部信息如下:
45 00 00 54 00 03 00 00 20 06 00 00 7C 4E 03 02 B4 0E 0F 02
试回答以下问题:
-
- 该数据报有无选项字段?
- 是否被分片?
- 数据报中数据部分的长度是多少?
- 数据报中封装的是哪个高层协议数据?
- TTL值是多少?
答:
- 没有选项字段。因为一共20个字节。不会包含选项字段
- 没有被分片,分片标志位和分片偏移量都为0
- 64字节。
- TCP
- 32(十进制)
试用一张表来归纳说明:哪些类型的ICMP差错报告报文是由路由器发送的?哪些类型的ICMP差错报告报文是由目的主机发送的?
ICMP差错报文类型 | 路由器发送 | 目的主机发送 | ||
Code | 内容 | Code | 内容 | |
终点不可达 | 0 | 网络不可达(可能硬件问题) | 2 | 协议不可达 |
1 | 主机不可达(可能是硬件问题) | 3 | 端口不可达 | |
4 | 需要进行分片 | |||
5 | 源路由不能完成 | |||
6 | 目的网络未知 | |||
7 | 目的主机未知 | |||
8 | 源主机被隔离了 | |||
9/10 | 从管理上禁止与目的网络通信 | |||
11/12 | 对指明的服务类型,主机不可达 | |||
13 | 主机不可达,因为管理员已经在主机上放置了过滤器 | |||
14 | 主机不可达,因为主机违反了优先级策略 | |||
15 | 主机不可达,因为它的优先级被截至 | |||
源点抑制 | 路由器因为拥塞或者流量控制丢弃报文 | 目的主机因为拥塞或者流量控制丢弃报文 | ||
超时 | 报文的生存时间变为了0 | 目的主机没有在规定时间内收到所有的分片 | ||
参数问题 | 0 | 路由器发现首部某个字段有差错或者二义性 | 0 | 目的主机发现首部某个字段有差错或者二义性 |
1 | 路由器发现表示缺少所需的选项部分 | 1 | 目的主机发现表示缺少所需的选项部分 | |
路由重定向 | 0 | 对特定网络路由发生改变 | ||
1 | 对特定主机路由发生改变 | |||
2 | 基于指定服务类型的对特定网络路由发生改变 | |||
3 | 基于指定服务类型的对特定主机路由发生改变 |
作业4:UDP、Routing Protocol
- 路由器A的路由表如下:
目的网络 | Metric | Next-hop |
Net1 | 1 | B |
Net2 | 4 | C |
Net3 | 1 | D |
Net4 | 5 | E |
Net5 | 3 | B |
若该路由器收到来自路由器B的RIP报文如下:
目的网络 | Metric |
Net1 | 1 |
Net2 | 2 |
Net3 | 3 |
Net4 | 7 |
Net5 | 3 |
请按照RFC1058中定义的RIP更新算法,写出路由器A更新后的路由表。
答:
目的网络 | Metric | Next-hop |
Net1 | 2 | B |
Net2 | 3 | B |
Net3 | 1 | D |
Net4 | 5 | E |
Net5 | 4 | B |
- 试画出具有以下规约的自治系统:
a、共有8个网络:N1~N8,有8台路由器:R1~R8
b、共有4个OSPF区域:Area 0 ~ Area 3
c、N3、N5、N8是以太网,其余均为点到点网络
d、R1连接N1
e、R2连接N2
f、R3连接N1、N2和N3
g、R4连接N3和N4
h、R5连接N4和N5
i、R6连接N3和N6
j、R7连接N6和N7
k、R8连接N7和N8
l、N1和N2在Area 1中,N4和N5在Area 2中,N6~N8在Area 3中
m、N3在Area 0中
试回答以下问题:
-
- 该自治系统中的路由器分别是哪种类型的OSPF路由器?
- 该自治系统中会产生哪几种类型的OSPF LSA?
- 该自治系统中哪几台路由器的链路状态数据库完全一致?
- 该自治系统中有哪几种类型的OSPF链路?
答:
自治系统的拓扑如下:
a) 内部路由器:R1,R2,R5,R7,R8
主干路由器:R3、R6、R4
区域边界路由器:R3、R6、 R4,
AS边界路由器:无
b)Type1:Router-LSA(路由器链路通告)
Type2:Network-LSA(网络链路通告)
Type3:Summary-LSA(汇总链路到网络)
c) R1和R2;
R7和R8;
R3 、R4和R6
d) 点到点链路(point-to-point)
转接链路(transient)
残桩链路(stub)
IP协议和UDP协议都是一种不可靠的无连接数据报交付协议,使用无连接、不可靠传输服务的应用进程为什么不能直接使用IP协议进行传输?
原因1:IP只能实现端到端的传输,传输层需要进程到进程,需要端口来识别,不同的应用进程需要不同的端口号(port)标识,而IP协议不提供端口号的标识,所以在此基础之上是无法替代的。
原因2:传输层和网络层在操作系统内的实现层次不同,给用户开放的权限也不同,并非所有用户都可以直接操作IP协议,出于安全和易操作性的考虑,现代操作系统往往不允许/不建议普通用户直接操作IP协议,一般是用户完成传输层协议封装,然后由操作系统进行网络层封装和校验和计算。
原因3:IP是需要进行验证,UDP不需要进行验证,速度快,
原因4:IP协议比较复杂,需要考虑路由等,而UDP协议简单,应用进程直接用UDP协议,会更加的简单化,用户操作性强。
作业五
试画出具有以下规约的自治系统:
a、共有8个网络:N1~N8,有8台路由器:R1~R8
b、共有4个OSPF区域:Area 0 ~ Area 3
c、N3、N5、N8是以太网,其余均为点到点网络
d、R1连接N1
e、R2连接N2
f、R3连接N1、N2和N3
g、R4连接N3和N4
h、R5连接N4和N5
i、R6连接N3和N6
j、R7连接N6和N7
k、R8连接N7和N8
l、N1和N2在Area 1中,N4和N5在Area 2中,N6~N8在Area 3中
m、N3在Area 0中
试回答以下问题:
-
- 该自治系统中的路由器分别是哪种类型的OSPF路由器?
- 该自治系统中会产生哪几种类型的OSPF LSA?
- 该自治系统中哪几台路由器的链路状态数据库完全一致?
- 该自治系统中有哪几种类型的OSPF链路?
a) 内部路由器:R1,R2,R5,R7,R8
主干路由器:R3、R6、R4
区域边界路由器:R3、R6、 R4,
AS边界路由器:无
b)Type1:Router-LSA(路由器链路通告)
Type2:Network-LSA(网络链路通告)
Type3:Summary-LSA(汇总链路到网络)
c) R1和R2;
R7和R8;
R3 、R4和R6
d) 点到点链路(point-to-point)
转接链路(transient)
残桩链路(stub)
主机A的发送窗口大小为2000字节。第1秒钟,主机A向主机B发送了第1个报文段:序号为2001,发送了800字节数据,重传计时器为5秒。第2秒钟,主机A向主机B发送了第2个报文段:序号为2801,发送了800字节数据,重传计时器为5秒。第3秒钟,主机A收到来自主机B的1个TCP确认报文段:确认号为2801,窗口字段值为1600。此时,主机A的发送窗口将如何改变?如果主机A要在第4秒钟向主机B发送第3个TCP报文段,该报文段的序号是多少?该报文段中的数据长度是多少字节?
①主机A的发送窗口应该变为1600。发送方的窗口将会根据接收方的窗口进行调整,主机A收到了TCP确认报文段,窗口字段值为1600,所哟主机A的发送窗口应该变为1600。
②序号为3601,报文长度最大为800字节(报文数据长度小于等于800字节)。第四秒钟主机A向主机B发送第三个TCP报文段,由于之前发送了序号为2801,800字节的数据,此时的发送窗口为1600,而且还没有收到之前的确认报文段,所以还能发送序号为3601,报文长度最大为800字节。
- 试举例说明什么情况下TCP会从FIN-WAIT-1状态转换到TIME-WAIT状态?
①通信双方同时关闭连接。
②说明:在这种FIN-WAIT-1状态之下,一方发起关闭后,发送了FIN,等待对方ACK 的时候,正好被动方也发起关闭请求,发送了FIN。这时客户端接收到了先前ACK, 也收到了对方的FIN,然后发送ACK(对对方FIN的回应),然后就进入TIME-WAIT 状态。