上一篇
上一篇文章把计算机网络中除去路由之外的内容总结了一下,当然大部分还是抄的资料的,自己也改了些吧。今天下班早了些,结果也拖得很晚才来写博客,真是垂死病中惊坐起啊,咸鱼也要有梦想啊!这篇文章我计划是把网络层剩下的部分给写了,主要就是路由、路由选择、网关协议,真要看懂了还是挺有意思的!
三、网络层
-
网络地址转换 NAT
- 将本地 IP 转换为全球 IP
- 实现原理:
- 以前:将本地 IP 和全球 IP 一一对应,最多只可以同时有 n 台主机接入互联网
- NAPT:把传输层的端口号也用上,使得多个专用网内部的主机共用一个全球 IP 地址
-
路由器的结构
- 功能划分:路由选择和分组转发 - 路由选择:路由选择处理机:路由选择协议、路由表 - 分组转发:交换结构、一组输入端口和一组输出端口
-
路由器分组转发流程
- 从数据报的首部提取目的主机的 IP 地址 D,得到目的网络地址 N。
- 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付;
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给表中所指明的下一跳路由器;
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;
- 报告转发分组出错
-
路由选择协议
- 路由选择协议都是自适应的,能随着网络通信量和拓扑结构的变化而自适应地进行调整
- 互联网可以划分为许多较小的自治系统 AS,一个 AS 可以使用一种和别的 AS 不同的路由选择协议
- 两大类:
- 自治系统内部的路由选择:RIP 和 OSPF
- 自治系统间的路由选择:BGP
-
内部网关协议 RIP
-
概述:
- RIP 是一种基于距离向量的路由选择协议
- 距离是指跳数,直接相连的路由器跳数为 1,跳数最多为 15,超过 15 表示不可达
-
原理(核心):
- RIP 按固定的时间间隔仅和相邻路由器交换自己的路由表
- 若干次交换后,所有路由器会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址
-
距离向量算法:
- 对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1;
- 对修改后的 RIP 报文中的每一个项目,进行以下步骤:
- 若原来的路由表中没有目的网络 N,则把该项目添加到路由表中;
- 否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。
- 若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16
-
优缺点
- 实现简单,开销小
- 最大距离为 15,限制了网络的规模。
- 并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器(重要)
-
-
内部网关协议 OSPF
- 概述:
- 开放最短路径优先 OSPF(克服 RIP 的缺点)
- 最短路径优先表示使用了 Dijkstra 提出的最短路径算法 SPF
- 特点(原理):
- 向本自治系统中的所有路由器发送信息,这种方法是洪泛法。
- 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
- 只有当链路状态发生变化时,路由器才会发送信息。
- 优缺点
- 所有路由器都具有全网的拓扑结构图,并且是一致的
- 相比于 RIP,OSPF 的更新过程收敛的很快
- 概述:
-
外部网关协议 BGP
-
概述:
- BGP(Border Gateway Protocol,边界网关协议)
- AS 之间的路由选择,但是只能找一条好的路由而不是最佳路由
- 每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息
-
AS 之间的路由选择问题:
- 互联网规模很大;
- 各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;
- AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过
-
关系图:
-
下一篇
网络层到这就结束了,里面的一些配图感觉差强人意,有时间看看能不能调整下大小,今天周三,看看周五能不能把计算机网络总结写完,后面要开始真正的安卓面试总结了。
ps. 隔了半年没更新了,有机会再写了吧。。