计算机网络(九)
学习计算机网络过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— 网络层 ——
文章目录
上接《计算机网络 网络层(二)》
4. 网际控制报文协议 ICMP
- 为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
- ICMP 是互联网的标准协议。
- ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
- 但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。
4.1 ICMP 报文的种类
- ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
- ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
4.1.1 ICMP 差错报告报文共有 4 种
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
ICMP 差错报告报文的数据字段的内容
不应发送 ICMP 差错报告报文的几种情况
- 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
- 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
- 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
- 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
4.1.2 ICMP 询问报文有两种
- 回送请求和回答报文
- 时间戳请求和回答报文
下面的几种 ICMP 报文不再使用:
- 信息请求与回答报文
- 掩码地址请求和回答报文
- 路由器询问和通告报文
- 源点抑制报文
4.2 ICMP 的应用举例
4.2.1 PING (Packet InterNet Groper)
- PING 用来测试两个主机之间的连通性。
- PING 使用了 ICMP 回送请求与回送回答报文。
- PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
4.2.2 Traceroute 的应用举例
- 在 Windows 操作系统中这个命令是 tracert。
- 用来跟踪一个分组从源点到终点的路径。
- 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
5. 互联网的路由选择协议
5.1 有关路由选择协议的几个基本概念
-
理想的路由算法
- 算法必须是正确的和完整的。
- 算法在计算上应简单。
- 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
- 算法应具有稳定性。
- 算法应是公平的。
- 算法应是最佳的。
-
不存在一种绝对的最佳路由算法。
-
所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
-
实际的路由选择算法,应尽可能接近于理想的算法。
-
路由选择是个非常复杂的问题
-
它是网络中的所有结点共同协调工作的结果。
-
路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。
5.1.1 从路由算法的自适应性考虑
- 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
- 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
5.1.2 分层次的路由选择协议
- 互联网采用分层次的路由选择协议。这是因为:
- (1) 互联网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使互联网的通信链路饱和。
- (2) 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。
5.1.3 自治系统 AS (Autonomous System)
- 自治系统 AS 的定义&#