本章将专注于已经学习的网络架构、第一层、第二层与第三层技术的复习,将以Q&A的形式展示。这一章只是一些知识的总结,具体还请看之前的文章。
What are the differences between data networks and voice networks?
数据网络和语音网络有何不同?
How many types of computer networks when it is classified by their scale?
按规模划分,计算机网络有几种类型?
计算机网络可以分为四种规模:
What are the definitions of layers, protocols, and services in network architecture?
网络架构中的层、协议和服务的定义是什么?
层级越低功能越简单,自下而上功能越复杂。
What are the famous reference models used in computer networks?
计算机网络中使用的著名参考模型有哪些?
著名的模型有OSI模型和TCP/IP模型,除此之外还有Digital Equipment Corporation net (DECnet), Systems Network Architecture (SNA)等。
What are the differences between OSI and TCP/IP reference model?
OSI 与 TCP/IP 参考模型有何不同?
围绕层、协议和服务进行分析。
What are the names of seven layers in OSI and TCP/IP reference model?
OSI 和 TCP/IP 参考模型的每层是什么?
如图:
What functions are defined in each layer?
OSI模型中每一层的功能有哪些?
What protocols are defined in each layer?
各层有哪些代表协议?
用TCP/IP模型举一些例子。
What addresses are defined in each layer?
各层中有哪些地址?
同样以TCP/IP协议作为例子,它有这四种主要的地址:
What network devices are operating at each layer?
各层中有哪些主要设备?
常见的有:
What are the technologies of LANs and WANs are usually designed in which layers?
局域网和广域网的技术通常是哪几层?
它们通常在模型的底层,例如在OSI模型中的第一第二层(layer 1 and layer 2)。
对于LAN:在L1,LAN一般使用以太网技术建立物理连接,在L2使用交换机或网桥进行数据交换。对于WAN:除了前两层技术外,还可能需要用到第三层技术进行路由。
What is the process of data encapsulation?
数据封装的过程是怎么样的?
在OSI模型中,封装(Encapsulation)是指数据在各层向下传输过程中,被逐层添加该层的头部和尾部信息,形成带有headers和trailers的PDU。而反封装(De-encapsulation)则是数据在接收端向上层传递过程中,逐层移除该层添加的headers和trailers的过程。
因为封装的过程可以知道:安装了第k层协议的设备一定安装有0~k-1层协议。
封装简单来说就是将上层的PDU添加上本层的头部和尾部信息,它会让数据包逐渐变大;相反,反封装将让数据包越来越小。
在这个封装和反封装的过程中,要求封装者的对应层的协议和反封装者的对应层的协议相同。
例如:X作为发送主机进行封装。首先来到设备A,它只有第一层,此时它们的都使用cable进行连接。而到了设备B,它是一个三层设备,它同时也会安装有底层所有协议。X的第三层协议为IPv4,此时要求设备B也要安装IPv4协议才能反封装。但是此时设备B还可以安装有其他协议,例如IPv6,当传到设备Y时,第三层的协议必须和设备B一样为IPv6.
每两个发送方与接收方的协议必须一样,但接收方可以改变这个协议并发给下个接收方。
What PDUs are used in each layers?
每一层的PDU分别是什么?
What are the header format of common used PDUs in each layer?
各层常用 PDU 的报头格式是什么?
这要求我们熟悉常见协议的报头格式,下面是一些常见的报头。
以太网和IEEE 802.3:
它们的特点是:
WIFI(IEEE 802.11):
无线帧的报头的长了很多。
IP协议——IPv4, IPv6:
IPv6 相比 IPv4 改进:
40
字节。TCP:
TCP协议很好辨别,因为它有一段序列号码和确认号码都是32bits.
UDP:
UDP协议非常的简单,它只专注于发送数据,而不保证数据的传输。
What is the unit of digital bandwidth and analog bandwidth?
数字带宽和模拟带宽的单位是什么?
在模拟系统中,模拟带宽的基本单位是赫兹 (Hz),即每秒周期数。
在数字系统中,带宽的基本单位是比特每秒 (bps)。
其中,对于bps的单位换算,与Byte不一样,有如下的单位换算:
1 Kbps = 1000 bps ≠ 1024 bps
1 Mbps = 1000000 bps = 106 bps
1 Gbps = 1000,000,000 bps = 109 bps
1 Tbps = 1000,000,000,000 bps = 1012 bps
可以做一个简单的小计算:传输1GB的文件,速度为1 Kbps,需要的时间为:
(1 x 10243 x 8) / 1x103
因为计算机使用的是二进制系统,所以对于Byte来说每个单位都是以1024为基数递增的。因为1 Byte等于8 bits,所以1GB
等于1 x 10243 x 8 Kbits
。
What is the definition of bandwidth and throughput, and baud? What is the relationship among bandwidth, throughput, and baud?
带宽、吞吐量和波特的定义是什么?带宽、吞吐量和波特之间的关系是什么?
它们的关系为:
Throughput ≤ Bandwidth
bit rate = baud log2 L
What is the difference between the transmission delay and propagation delay?
传输延迟和传播延迟有什么区别?
Transfer delay = Propagation delay + Transmission delay
我们很容易可以得到这样的公式:
相关计算我们可以看之前的例子:
What carrier signals are used in the network media of copper, optical fiber and wireless?
网线(铜线)、光纤和无线网络介质使用哪些载波信号?
物理媒介/Physical media | 载波信号/Carrier signals |
---|---|
铜线/Copper wires | 电压/Electrical voltages |
光纤/Optical fiber | 光学模式/Light patterns |
无线/Vacuum | 调制电磁波/Modulated electromagnetic waves |
What is the purpose of encoding and modulation?
编码和调制的目的是什么?
编码分为:
如图:
(经典TTL,0表示低信号,1表示高信号。缺点:无法判断无信号和低信号)
(其他TTL,缺点:多个同bit时无法知道个数)
(Manchester,一个信号变化两次,边缘触发,缺点:变化频率高)
(Multi-Level Threshold-3 Manchester,当为1时转变为下一循环位置,为0时不变。缺点:比较复杂)
在日常使用中,Fast Ethernet(100-Mbps Ethernet)采用4B/5B技术进行编码,发送5位来表示4位。同时发送时,使用MLT3(Multi-Level Threshold-3)进行编码。
而现在升级的Gigabit Ethernet(1000-Mbps Ethernet)采用8B/10B进行编码。
What is the media access method of CSMA/CD?
CSMA/CD 的媒介访问方法是什么?当以太网发生冲突时,主机如何使用 尝试传输?
这一部分主要理解概念和理解算法,请见:
What is bridging?
什么是桥接?
桥接(bridging)是一种技术,网桥设备将两个或多个局域网段连接起来。
当数据报传入时,若网桥知道数据报的目的地与数据报的源网段在同一网段上,它会丢弃该数据报;若网桥知道目的地在另一个网段上,则只在该网段上传输数据报;如果网桥不知道目的地网段,则在源网段以外的所有网段上传输数据报(广播)。
桥接的主要好处是将流量限制在某些网段。
交换机使用接收帧中的哪些地址来建立交换表并做出转发决定?
交换机使用Source MAC Address来建立交换表,建立一个映射关系,例如MAC1 -->(At) Port 1.
同时使用Destination MAC Address进行
有一个例子:
在如图的网络结构中,存在一个网桥和四台主机,初始化情况下桥接表为空表,只有当Source MAC经过网桥时才会被记录。
我们依次执行如下操作:
操作结束后,桥接表如图:
What is the definition of broadcast domain and collision domain?
广播域和冲突域的定义是什么?
我们有一些例子来复习这些概念:
How many collision domains and broadcast domains are there?
找到其中L1,L2和L3 domain。以及子网数。
首先L1 domain是每个设备物理连接之间都会存在的,故只需要数有多少个物理连接即可。如图绿色框有17个,L1 domain有17个。
接下来到L2 domain,它被第二层设备(Switch)或第三层设备(Router)隔开,故连接着这些设备的各个接口对应着各个冲突域。如图橙色圆圈部分,一共有14个。
最后是L3 domain,它被第三层设备(Router)隔开,故连接着这些设备的各个接口对应着各个广播域。如图红色圆圈部分,一共有8个。
子网的个数与L3 domain相关,故有8个子网。
Q1: In an Ethernet network, lf PC1 sends a frme to PC4, and at the same time, PC3 sends a frame to PC2.Will these two transmissions success or not?
Q2: If a collision was detected in above transnission, which two PCs have to wait for an extra period to re-send the frame at next attempt?
Q3: If PC1 is sending a frame on this network which PCs have to wait until PC1 completes thetransmission?
Q4: What happens about the collision, if all hubs are replaced by the switches, and full duplex issupported on the switches?
问题 1:在以太网网络中,如果 PC1 向 PC4 发送一个帧,同时 PC3 向 PC2 发送一个帧,这两次传输是否会成功?
问题 2:如果在上述传输中检测到冲突,那么哪两台 PC 在下一次尝试重新发送帧时需要多等待一段时间?
问题 3:如果 PC1 在该网络上发送帧,哪些 PC 需要等待直到 PC1 完成传输?
问题 4:如果交换机取代了所有集线器(hubs),并且交换机支持全双工(full duplex),冲突会怎样?
Q1: What MACs are recorded in the switching tables?
Q2: Which PCs will receive the frames?
问题 1: 交换表中记录了哪些 MAC?
问题 2: 哪些 PC 将接收帧?
如图,初始化的交换表如图表中黑色记录。从PC1发送一个数据帧到PC3,此时数据帧来到Switch1,此时应该记录Source MAC到Switch Table中,但交换表已经有该记录了,故什么都不做。数据帧传出交换机,此时不知道往哪个端口传递,进行广播同时发送到P2和P3。
然后数据帧传到Switch2,从Port4传入,检查交换表没发现记录,加上一条记录 MAC_1 -> P4。然后发现目的MAC在交换表中指向P5,于是转发到P5上的PC3。
数据帧通过P2传到PC2上,PC2检查目的MAC与自己的MAC是否匹配,发现不匹配丢弃。
故此时交换表为:
根据刚才分析的过程,PC2和PC3接收到了数据帧。但只有PC3 接收了该数据帧。
What are the differences between flat addressing and hierarchical addressing?
平面寻址和分层寻址有什么区别?
What are the ranges of the Class A, B, C addresses and their default subnet masks?
A 类、B 类、C 类地址及其默认子网掩码的范围是什么?
比较偏概念性的问题:
IP address class | IP address range(First Octet Decimal Value) | Subnet Mask |
---|---|---|
A | 1.0.0.0 to 126.0.0.0/8 (00000001 - 01111110) | 255.0.0.0 |
B | 128.0.0.0 to 191.255.255.255/16 (10000000 - 10111111) | 255.255.0.0 |
C | 192.0.0.0 to 223.255.255.255/24 (11000000 - 11011111) | 255.255.255.0 |
What are the three ranges of private IP addresses?
私有 IP 地址的三个范围是什么?
Class | RFC 1918 internal address range |
---|---|
A | 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8) |
B | 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12) |
C | 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16) |
除此之外,127.0.0.0 255.0.0.0 and 169.254.0.0 255.255.0.0也被保留为本地用途。
What is the difference of network address, broadcast address and host address? What are these types of addresses used for?
网络地址、广播地址和主机地址有什么区别?这些地址的用途是什么?
What is IPv4 classfull subnetting? By giving the number of required subnets or giving the number of required hosts in each subnet, how to determinate the subnet mask of the subnets, the network address, broadcast address and the range of valid host addresses for a given subnet.
什么是 IPv4 全类子网划分?通过给出所需的子网数或每个子网所需的主机数,如何确定子网的子网掩码、网络地址、广播地址和给定子网的有效主机地址范围。
IPv4全类子网划分是一种网络设计策略,它允许将一个IP地址空间划分为多个更小的网络,每个网络都有自己的子网掩码。这种策略可以提高IP地址的使用效率,同时也可以提高网络的管理效率。下面通过一个例子来了解全类子网划分:
网络拓扑如图,
网络 192.168.1.0/24 中需要 7 个子网:
1. 子网掩码是多少?
2. 创建了多少个子网?
3. 每个子网中创建了多少个可用主机地址?
4. 子网 #5 的网络地址是多少?
5. 子网 #5 的广播地址是什么?
6. 子网 #5 的范围是多少?
7. 子网 #5 中第 5 个主机地址的 IP 地址是多少?
⌈log27⌉ = 3
位借位。故此时网络变成192.168.1.0/27,它的掩码为= 255.255.255.224(11111111.11111111.11111111.11100000)23 = 8
个子网,其中我们只用7个。25-2 = 30
个主机。于是我们分配7个子网到不同的接口,如下:
How to subnetting the network by using VLSM?
如何使用 VLSM 进行网络子网划分?
VLSM子网划分的特点是它允许在同一网络地址空间内使用多个子网掩码。它在主机数量少的网络中使用长掩码,而在主机数量多的子网中使用短掩码。
同样用一个例子来理解VLSM子网划分。
对于如下网络拓扑,进行VLSM子网划分。
首先分析这个网络中可以分出多少个子网,如下图中一共是8个子网,别忘了路由器之间也需要划分子网。
第一步先分主机只有2的子网。我们发现图中除了3条路由器之间的连接外还有主路由器连接的一个主机(2 hosts表示包含路由器一共2个主机)。我们还需要考虑网络地址和广播地址,故一个子网中需要的地址为:2+2至少为4个,共需要借位两位,子网掩码为/30。此时要分成4个这样的子网,网络地址变化位数为2位,于是可以这么分:
蓝色位为固定位,绿色位为划分子网网络地址中变化的位,xx为主机位。
接下来就是对每个路由器进行子网划分,要注意的是,同一个路由器下有不同子网主机数的时候,它们的子网掩码可以不一样。
我们分别对10个主机、30个主机、60个主机和120个主机进行子网划分,它们分别要借4位,5位,6位和7位。分别可以得到:
注意,为了防止和之前已经划分的低位子网冲突,之后划分子网网络地址中变化的位为1。
我们把这些网络换成十进制形式,如下表:
Subnet Number | Subnet Address |
---|---|
Subnet0 | 192.168.1.0/30 |
Subnet1 | 192.168.1.4/30 |
Subnet2 | 192.168.1.8/30 |
Subnet3 | 192.168.1.12/30 |
Subnet4 | 192.168.1.16/28 |
Subnet5 | 192.168.1.32/27 |
Subnet6 | 192.168.1.64/26 |
Subnet7 | 192.168.1.128/25 |
通过一个例子进一步理解IPv4的子网划分。
Q1: What is the IP addressing problem of PCs on Subnet 1?
Q2: What is the IP addressing problem of PCs on Subnet 2?
Q3: What is the ranges of valid host addresses that can be used for the Server of Subnet 2?
Q1:子网 1 中主机的 IP 有什么寻址问题?
Q2:子网 2 中主机的 IP 有什么寻址问题?
Q3:子网 2 服务器可使用的有效主机地址范围是什么?
How to represent IPv6 address in full form and simplified form?
如何用完整格式和简化格式表示 IPv6 地址?
IPv6地址由128位组成,通常被表示为8组16位的十六进制数,每组之间用冒号(:
)分隔。例如,一个IPv6地址可能看起来像这样:2001:0db8:85a3:0000:0000:8a2e:0370:7334
。
为了简化IPv6地址的表示,可以采取以下两种方式:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
可以简化为2001:db8:85a3:0:0:8a2e:370:7334
。2001:db8:85a3:0:0:8a2e:370:7334
可以简化为2001:db8:85a3::8a2e:370:7334
。但是请注意,在一个IPv6地址中只能使用一次双冒号。What are the three types of IPv6 addresses? What specific addresses are defined for these types IPv6 addresses?
IPv6 地址有哪三种类型?这些类型的 IPv6 地址定义了哪些具体地址?
IPv6地址主要有以下三种类型:
FE80::/10
。2000::/3
。FF00::/8
。组播地址又可以分为
ff02::1
。所有IPv6设备都会加入这个组播组,因此发送到这个地址的数据包将被链路上的所有节点接收。ff02::2
。所有IPv6路由器都会加入这个组播组,因此发送到这个地址的数据包将被链路上的所有路由器接收。ff02::1:ff00:0/104
来创建的。例如,如果一个设备的IPv6单播地址是fe80::2aa:ff:fe28:9c5a
,那么它对应的solicited-node组播地址就是ff02::1:ff28:9c5a
。How to form a link-local address? How to form a global unicast address using stateless autoconfiguration?
如何形成链路本地地址?如何使用无状态自动配置形成全局单播地址?
链路本地地址的前64位是主机位,它由路由器自动分配,后64位为接口ID,它是 IPv6 地址 64 位前缀的唯一标识符。它由扩展唯一标识符 (EUI)-64 地址派生的 64 位接口标识符。除此之外,还可以随机生成和通过MAC地址转换。
通过MAC地址转换的步骤为:
e.g. MAC为C6-46-7B-E7-B0-9B
但是因为MAC地址唯一表示了一台设备,为了用户的网络隐私,接口ID通常会随机生成。
全局单播地址类似的,但是我们不知道它的前缀。可以使用邻居发现协议,发送RS请求前缀信息。
一台主机刚启动的时候,它连接进入网络,但是还不知道它的网络是怎么样的,此时它会发送一个RS请求,它会发送到所有路由器上。
路由器接收到它的RS,会发送一个RA用于给出网关、前缀等等信息。
这样主机就得到了这个网络的前缀,于是它的IPv6地址就可以自动配置了。我们称这样配置的IPv6为无状态自动配置(Stateless autoconfiguration),因为它并不是存储在路由器上配置的。
通过一个例子进一步理解IPv6的寻址。
Q1: What is the link-local address of PC1?
Q2: When stateless auto-configuration is used, what is the global unicast address of PC1?
Q3: What ICMPv6 messages are used for PC1 to discovery the subnet prefix and default gateway?
Q4: What ICMPv6 messages are used for PC1 to perform the duplicate address detection before it can use the address?
Q1:PC1 的链路本地地址是什么?
Q2:使用无状态自动配置时,PC1 的全局单播地址是什么?
Q3:PC1 在发现子网前缀和默认网关时会使用哪些 ICMPv6 消息?
Q4:PC1 在使用地址前会使用哪些 ICMPv6 消息进行重复地址检测?
02AA:AAFF:FEAA:AAAA
,于是接上链路本地地址的前缀FE80得,IPv6:FE80::2AA:AAFF:FEAA:AAAA/64
2001:1:2:3:2AA:AAFF:FEAA:AAAA/64
What 4 ICMPv6 messages are used in NDP?
NDP 中使用了哪 4 种 ICMPv6 报文?
在IPv6中,将ICMP协议中特殊的四种信息定义为邻居发现协议(Neighbor Discovery Protocol, NDP)。
Type | Description | |
---|---|---|
路由器请求Router Solicitation (RS) | 133 | 当一个主机启动时会发送一个RS去获取网络信息。 |
路由器接收Router Advertisement (RA) | 134 | RA 包含用于链路确定或地址配置的前缀、建议的跳数限制值、MTU 值等。RA 可定期发送,也可作为对 RS 信息的回应发送。 |
邻居请求Neighbor Solicitation (NS) | 135 | 由主机发送,用于确定邻居的链路层地址(MAC)。用于验证邻居是否仍然可达。 |
邻居接收Neighbor Advertisement (NA) | 136 | 对 NS 消息的回应。 |
对于地址解析,与IPv4的ARP协议类似的:
IPv6 节点的地址解析过程包括交换 "邻居请求"(Neighbor Solicitation)和 "邻居接收"(Neighbor Advertisement)报文,以解析给定目的地的链路层地址(link-layer address)和链路上的下一跳地址(next-hop address)。发送主机在适当的接口上发送多播 "邻居请求 "信息。Neighbor Solicitation(邻居请求)报文的组播地址是从目标 IP 地址导出的请求节点组播地址。邻居请求信息在源链路层地址选项中包含发送主机的链路层地址MAC。
注意,此时目标主机可以广播本地链路所有主机告知自己的MAC地址,也可以选择只单独回复源主机。
对于重复地址检测:因为我们还不知道生成的这个IPv6有没有被别人用过,接口ID可以是随机生成的。这时就需要使用邻居请求(NS)了。
重复地址检测(Duplicate Address Detection, DAD)是为了确保在无状态自动配置过程中,其他设备在使用自动配置地址。主机会主动向该请求节点组播地址(FF02::1:FFxx:xxxx, Solicited-node multicast address of H1,xx:xxxx为主机的接口ID的后24位)发出NS。
如果节点以 NA 消息回应请求,则表示 IPv6 地址已被使用,主机需要手动配置。
What are the differences between layer 2 switching and layer 3 routing?
第 2 层交换和第 3 层路由有什么区别?
What is the difference between the next-hop and the default gateway?
下一跳和默认网关有什么区别?
我们可以认为:
What are the differences between the intra-subnet and inter-subnet communications?
子网内通信和子网间通信有何不同?
How to use Address Resolution Protocol (ARP) in the intra-subnet and inter-subnet communications?
如何在子网内和子网间通信中使用地址解析协议(ARP)?
地址解析协议(Address Resolution Protocol, ARP)可以将IP地址映射到MAC地址。
如果是子网内通信,源主机会先广播一个ARP请求,询问广播域中拥有目的主机的IP地址。目的主机收到ARP请求后,会回复一个ARP应答,告诉源主机自己的MAC地址。此时ARP会将这个映射记录到源主机的ARP表中,以便将数据包封装成以太网帧。
如果是子网间通信,我们广播的ARP请求最后只能到达网关,对应的网关收到ARP请求后,会回复一个ARP应答,告诉源主机网关的MAC地址。
它们的区别在于:
For inter-subnet communication, how do IP addresses and MAC addresses change in the packetduring the data transmission?
对于子网间通信,数据包中的 IP 地址和 MAC 地址在数据传输过程中如何变化?
我们通过一个例子加深理解:
如图,PC1发送一个数据包给Server4,找到其过程中IP地址与MAC地址的变化。
数据包初始化情况下源IP地址为192.168.1.11,目的IP地址为192.168.2.88。源MAC地址为A...,目标MAC地址为R...1。此时默认网关是192.168.1.33,故目标MAC地址为router1的MAC地址。
R...1
,目标MAC地址为R...2
。R...2
,目标MAC地址为R...3
。R...3
,目标MAC地址为R...4
。R...4
,目标MAC地址为D...
。