1. 根据 TCP/IP 协议参考模型可知,网络层采用 IP 协议,网络层以下是物理网。有人认为: 物理网一定是二层以及下层的网络。你认为正确吗?举例支撑你得出的答案或结论。
不正确,任何可以承载三层数据包的传输,来为网络层提供数据交付的通信系统或网络, 都可以作为物理网络。
如隧道技术,可将上层 IP 数据包封装在新的 IP 数据包中,将“IP+L2+L1”作为物理网; 又如,实现一套自己的 L3 及以上协议运行在操作系统应用层,将整个 TCP 传输作为物理网承载自己的协议。
这样的模型使得物理网可以具备更灵活多样的组网和通信能力。
2. 对于共享信道的无线网络,设计协议应考虑哪些主要因素?适合采用何种协议交互方式? 应考虑如下因素:
(1)可靠性。无线信道的信道质量一般较差,会受到各种各样的干扰和快慢衰落,如: 共信道干扰、邻道干扰、阴影效应、多普勒效应、远近效应等, 因此设计的协议需要考虑如何保证通信可靠性。
(2)健壮性。无线信道环境复杂,容易遇到自然灾害或受到人为攻击导致某些节点瘫痪,有些场景(如战斗机群)需要考虑协议如何保证网络的健壮性,使之遭受轻微破坏也能保证网络基本通信功能。
(3)冲突避免。共享信道的无线网络为避免共享的通信间碰撞,应有正交域,如频分或时分;或者有相应的信道访问机制,如 CSMA/CD。
(4)安全性。无线网络信道是暴露的,比有线信道更容易遭到攻击,如窃听、仿冒、钓鱼攻击等。因此设计协议时需要考虑安全性。
(5)公平性。无线信道共享,则需要考虑多个连接如何分配信道资源,按需或公平, 同时也影响网络效率、资源利用率。
(6)时延及抖动。无线通信利用无线电波承载信息,无线电波传播损耗与传播距离有关,远距离传播需要中继放大信号,可能会增加时延及时延抖动。如何保证稳定的、较低的延迟需求,也是协议设计需要考虑的因素。
综上所述,要保证可靠性,应有收发确认机制,适合采用有前期握手的带应答交互。如WLAN 采用了“逐帧确认+超时重传”机制。WiFi 发送数据 PDU 的交互中,站点发送数据 PDU 前,需先发送一个 RTS 帧到对等实体上,等收到对等实体送回的 CTS 帧后再传输数据帧,对等实体正确接收后回应一个 ACK。
要实现冲突避免,可以借鉴 CSMA/CA 协议。
要应对多用户、多连接共享信道问题,可以借鉴 SCTP 协议。SCTP 可靠性、安全性高, 支持多流传输,且多条流之间不会相互阻塞。
3. 简析长时延、低可靠信道的高性能协议交互方式?
需要根据场景和需求选择。
如果可靠性问题由高层解决(不要求“无丢失、无重复、无差错”),则可以选择无应答交互。因为在长时延、低可靠信道上去保证可靠性代价太大,重传 PDU 耗时长、重传出错概率同样高,还牺牲了实时性。不如无应答只尽力交付,保证实时性。
如果需要保证可靠性,可以选择简单应答交互。对于质量不好的信道,可以将重传范围约束在局部链路,尽量少的牺牲传输效率。如宇宙空间中的深空通信,采用基于存储-转发的延时通信方式,不再追求高的数据传输速率,而尽可能提高数据的准确率。
进一步,通信行为是由信源、信道、信宿三个主体完成的,在信道条件实在很差的时候, 我们不妨从信源、信宿上挖掘潜力,如数据压缩、信源编码、信道编码等,用信息论、编码技术减少需要传的数据量、增加可靠性。
4. 你认为多播通信是部署在端系统还是部署在网络上更合适,为什么? 多播部署在网络上更合适。
部署在网络上,则端系统发送一次报文,路由器从多端口转发(多播);部署在端系统上,则端系统逐一单播发送报文(用单播实现多播)路由器逐一按单播转发。前者端系统负担重,后者路由器需要实现多端口转发的功能。
实现多播需要网络中多个节点的参与,让端系统去记录网络中节点的信息是不现实的, 而且网络中节点可能会动态变化,端系统获知网络情况也有延迟。若多播只部署在端系统上, 路由器上只能广播报文,网络会额外消耗大量资源。而部署在网络上,路由器可以识别多播报文、匹配多播组,大大节约网络资源;且只给对应的多播组转发报文,还可以避免恶意用户的监听,提高安全性。
所以多播理应由存储着节点信息的网络路由器来实现,即部署在网络上。
5. 子网 12.23.34.0 和 12.23.33.0 能否合并成超网?由此归纳出超网、子网、无类网地址编排的一般性规律。
不能构成超网。
子网一 34(十进制)的 8 位二进制换算为 00100010,子网二 33(十进制)的 8 位二进制换算为 00100001。转换后的 7、8 两位对应不同,因此不能合并成超网。
超网地址:< Supernet id, Host id>。其中 Supernet id 是由多个连续 Net id 聚合成的,且聚合的个数必须是 2 的乘方。网络前缀越短,其地址块包含的地址数就越多。
子网地址:< Net id, Subnet id, Host id>。从二级结构 Host id 中分出一位或数位作为 Subnet
id,形成三级结构。从大网分出多个小网。
无类网地址:<Net id, Host id>。前缀指明网络,不再受限于 A 类、B 类、C 类地址以及子网划分时对应的网络号,长度 n 取决于地址大小(n=1~32);后缀指明主机,长度 32-n,表明主机 IP 地址个数。
6. 一个网络接口上可以有多个 IP 地址。什么情况下需要?请至少给出两种场景的示意图。
可以,这项技术应指 IP 别名(IP aliasing)。
IP 别名可以用来在同一个物理接口上配置多个网络地址(仅 IPv4)。应用场景例如:让一台服务器使用三个不同的 IP 地址,同时充当网关、DHCP 和 DNS;
用一台服务器取代三个不同的硬件设备,以减少管理开销; 把一个物理接口的计算机放在两个不同的逻辑网络子网中。
7. 为什么 OSPF 协议采用 IP 承载其路由信息?能否使用 UDP 或 TCP 来承载?为什么?
OSPF 协议采用 IP 承载路由信息的原因:OSPF 的主从协商过程包含了对路由更新报文的隐式确认,即 OSPF 的路由信息扩散是一种可靠的洪泛,保证了可靠性,因此不需要 TCP
(避免消耗额外资源做多余的可靠性保证);同时,路由信息属于短消息,用不到分片等传输层功能,因此用 IP 承载足够满足需求。
一般情况下,不采用 TCP、UDP 承载的原因同上述分析:OSPF 已有可靠性保证,TCP 的确认重传、拥塞控制会消耗大量额外资源;报文小,不需要 UDP 的传输层功能,省去封装
UDP 这一步而直接用 IP 承载。但如果场景特殊,需要传输层的某些功能,且资源不受限、可以承担额外开销的情况下,也可以使用 UDP 或 TCP 承载,毕竟理论上,能够满足 OSPF 协议的需求将报文送至目的地的,都可以作为服务提供者,而不严格约束服务的具体实现。