网络层
ICMP 协议
ping 是基于 ICMP 协议工作的。ICMP 全称 Internet Control Message Protocol,就是互联网控制报文协议。
ICMP 相当于网络世界的侦察兵。一种是主动探查的查询报文,一种异常报告的差错报文;
通过Traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。
NAT 是如何将外部的IP转化为内部的IP,实现一对多的呢?
- 如果是dst地址是不同的,那维护一个trace table,出去的访问目的IP对应内部IP,有个表
- 如果两个内部访问同一个外部,那通过访问的对端的端口号区分 发出去的包会在表上存一个映射关系,内部IP:port -> 外部IP:port 同时出去的包的srcIP会被改为nat gateway的公网IP
一些概念
动态路由:可以根据路由协议算法生成动态路由表,随网络运行状况的变化而变化。
静态路由:其实就是在路由器上,配置一条一条规则。
NAT网关:改变ip地址的网关
转发网关:MAC 地址是一个局域网内才有效的地址。因而,MAC 地址只要过网关,就必定会改变,因为已经换了局域网。两者主要的区别在于 IP 地址是否改变。不改变 IP 地址的网关,我们称为
静态路由
手动配置
动态路由
OSPF(Open Shortest Path First,开放式最短路径优先)就是这样一个基于链路状态路由协议,广泛应用在数据中心中的协议。由于主要用在数据中心内部,用于路由决策,因而称为内部网关协议(Interior Gateway Protocol,简称 IGP)。
-
部网关协议的重点就是找到最短的路径。在一个组织内部,路径最短往往最优。当然有时候 OSPF 可以发现多个最短的路径,可以在这多个路径中进行负载均衡,这常常被称为等价路由。 -
有了等价路由,到一个地方去可以有相同的两个路线,可以分摊流量,还可以当一条路不通的时候,走另外一条路。这个在后面我们讲数据中心的网络的时候,一般应用的接入层会有负载均衡 LVS。它可以和 OSPF 一起,实现高吞吐量的接入层设计。 -
动态路由算法
- 距离矢量路由算法:Bellman-Ford 算法的,路由的两个ip最短路径。就是每个路由的路由表中都有其他可达的路由器的距离,每个路由器可以知道全局的信息,可以快速的计算出一个路由器到下一个路由器的最短距离,这样的好处是好消息传得快,新进来一个路由器,可以让其他的都很快的知道他,但是坏消息传的慢,当某个路由器下线之后,可能其他路由器经历一次大的循环之后才会知道某个路由器下线,而且这样对于小型网络很好,就是小于15跳的情况下。
- 链路状态路由算法:链路状态路由算法,当路由器启动的时候,首先会发现的是邻居,然后向邻居发送请求,得到返回除以2,得到距离,然后将自己和邻居的距离广播出去,发送到整个网络的每个路由器,这样,每个路由器都能收到它和邻居的距离,每个路由器就可以构建一个完整的图,然后这个图通过最短路径算法求出距离。
- 外网路由协议(Border Gateway Protocol,简称 BGP)基于距离矢量路由算法的 BGP
- 自治系统 AS(Autonomous System)组成
- Stub AS:对外只有一个连接。这类 AS 不会传输其他 AS 的包。例如,个人或者小公司的网络。
- Multihomed AS:可能有多个连接连到其他的 AS,但是大多拒绝帮其他的 AS 传输包。例如一些大公司的网络。
- Transit AS:有多个连接连到其他的 AS,并且可以帮助其他的 AS 传输包。例如主干网。
|