热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

收集协定6路由协定

    前面例子中,我们都是在一个局域网内折腾。本日就让我们扩大范围,在多个局域网以至到辽阔的互联网天下中游览,看看这中心会发作什么。    这个历程当中,跨网关接见是我们要相识的

    前面例子中,我们都是在一个局域网内折腾。本日就让我们扩大范围,在多个局域网以至到辽阔的互联网天下中游览,看看这中心会发作什么。

    这个历程当中,跨网关接见是我们要相识的第一个内容。

跨网关接见

    当我们要相识跨网关接见时,就牵扯到 MAC 地点和 IP 地点的变化,因此,我们先来看下 MAC 头和 IP 头的细节。

MAC 头和IP 头的细节

《收集协定 6 -路由协定》

    如图,在 MAC 头里,先是目的 MAC 地点,然后是源 MAC 地点,末了是协定范例。

    在 IP 头里,最重要的就是源 IP 地点和目的 IP 地点。除此之外,另有版本号,也就是我们常说的 IPv4 和 IPv6、效劳范例 TOS(示意数据包优先级)、TTL(数据包生计周期)以及标识协定(TCP 和 UDP)

    当我们接见博客园时,经由的第一个网关应当就是我们设置的默许网关。当本机接见默许网关时,照样走局域网内部接见的步骤:

  1. 将源地点和目的 IP 地点放入 IP 头;
  2. 经由历程 ARP 协定取得网关的 MAC 地点;
  3. 将源 MAC 地点和网关的 MAC 地点放入 MAC 头中,发送给网关。

    而我们的网关,平常就是指家里的路由器,是一个三层转发的装备。它会把 MAC 头和 IP 头都取下来,然后依据内里的内容,看看接下来把数据包转发到那里。

    许多状况下,人们把网关叫做路由器。实在并不预备,用这个比方应当更加适当些:

路由器是一台装备,它有五个网口或许网卡,相当于有五只手,离别连着五个局域网。每只手的 IP 地点都和局域网的 IP 地点有着雷同的网段,每只手都是它握住的谁人局域网的网关。

    任何一个想发往其他局域网的包,都邑抵达个中一只手,被拿进来,拿下 MAC 头和 IP 头,然后依据本身的路由算法,挑选另一只手,加上 IP 头和 MAC 头,然后扔出去。

    注重,在上面这个历程当中,有涌现路由算法。接下来,我们就来熟悉下它。

路由算法

    路由算法,别名选路算法,是进步路由协定功用,只管削减路由时所带来的开支的算法。

    路由算法可以依据多个特征来加以辨别,找到抵达目的地的最好路由。

路由算法的辨别点有许多,有

  • 静态与动态
  • 单途径与多途径
  • 平整与分层
  • 主机智能与路由器智能
  • 域内与域间
  • 链接状况与间隔向量

    这里重要引见静态与动态路由算法。

静态路由

    静态路由算法,实质上是由网关设置好的映射表。

    我们家里的路由器,可以会有如许的路由设置

接见博客园,从 2 号口出去,下一跳是 IP2;

接见百度,从 3 号口出去,下一跳是 IP3。

    相似上述如许的划定规矩就是静态路由,根据肯定的语法保留在路由器里。

    每当要挑选从哪一个口抛出去的时刻,就一条一条的婚配划定规矩,找到相符的划定规矩,就按划定规矩做事,从指定口抛出去,找下一跳 IP。

过网关的“变”与“稳定”

    之前我们相识到,MAC 地点是一个局域网内才有用的地点。因此,MAC 地点只需过网关,就肯定会转变。而 IP 地点在过网关后 ,就不肯定会转变了。

    经由网关 A 后,假如IP 地点没有转变,那 A 就是转发网关,不然,就是NAT网关

转发网关

《收集协定 6 -路由协定》

    如上图,效劳器 A 要接见效劳器 B,要经由历程:

1)效劳器 A 到 网关 A

  1. 搜检 B 的网段,发明不在统一个网段,因此发给网关
  2. 因为网关的 IP 地点是已设置好了,因此发送 ARP 猎取网关的 MAC 地点
  3. 发送包

而末了发送包的内容重要有:

  • 源 MAC:效劳器 A 的 MAC
  • 模板 MAC:192.168.1.1 网关的 MAC
  • 源 IP:192.168.1.101
  • 目的 IP:192.168.4.101

    数据包抵达 192.168.1.1 这个网口后,网口发明 MAC 地点是它的,就将包收进来,然后最先“思索”往那里转发。

    这时候刻,路由器 A 中设置了划定规矩 A1:

要接见 192.168.4.0/24,就从 192.168.56.1 这个网口出去,下一跳是 192.168.56.2

2)网关 A 到 网关 B

    因此,路由器 A 婚配了 A1,要从 192.168.56.1 这个口发出去,发给 192.168.56.2。因此,又最先了这个历程:

  1. 搜检 B 的网段,发明在统一个网段, ARP 猎取 MAC 地点
  2. 发送包

数据包的内容是:

  • 源 MAC:192.168.56.1 的 MAC
  • 模板 MAC:192.168.56.2 的 MAC
  • 源 IP:192.168.1.101
  • 目的 IP:192.168.4.101

    数据包抵达 192 .168.56.2 网口,网口发明 MAC 地点是它的,就将包收进来,然后去搜检路由划定规矩。

    路由器 B 设置以下划定规矩 B1:

想接见 192.168.4.0/24,就从 192.168.4.1

    而路由器 B 发明,它的右网口就是目的地点网段的,因此就没有下一跳了。

3)网关 B 到 效劳器 B

路由器 B 婚配上 B1。从 192.168.4.1 出口,发给 192.168.4.101。数据包内容:

  • 源 MAC:192.168.4.1 的 MAC
  • 模板 MAC:192.168.4.101 的 MAC
  • 源 IP:192.168.1.101
  • 目的 IP:192.168.4.101

    效劳器 B 收到数据包,发明 MAC 地点是它的,就把包收进来。

    经由历程上面的历程可以看出,每到一个新的局域网, MAC 地点都是要变的,而 IP 地点则都稳定。在 IP 头内里,不会保留任何网关的 IP 地点。

    而我们说的下一跳,就是某个 IP 要将这个 IP 地点转换为 MAC 放入 MAC 头

NAT 网关

    NAT 网关,也就是 Network Address Translation。

《收集协定 6 -路由协定》

    因为各个局域网都有各自的网段,很轻易涌现 IP 争执的状况。如上图,美国效劳器 A 的 IP 地点和 法国效劳器 B 的 IP 地点都是 192.168.1.101/24,从 IP 上看,好像是本身接见本身,但实际上从美国的 192.168.1.101 接见法国的 192.168.1.101。

    怎样处理这个题目呢?既然局域网之间没有探讨好 IP 分派,各管各的,那到国际上,也就是中心的局域网内里,就须要运用别的的地点,就像出国后,我们要改用护照一样。

    起首,目的效劳器 B 在国际上要有一个国际的身份,我们给它一个 190.168.56.2.在网关 B 上,我们记下来,国际身份 192.168.56.2 对应国内身份 192.168.1.101.通常要接见 192.168.56.2 的,网关都要转成 192.168.1.101。

    因此,源效劳器 A 要接见目的效劳器 B,目的地点就变成国际 IP 地点 192.168.56.2。历程以下:

1)源效劳器 A 发数据包到网关 A

  1. 搜检效劳器 B IP,不在统一网段
  2. ARP 猎取网关 MAC 地点
  3. 发送包

数据包的内容是如许的:

  • 源 MAC:效劳器 A 的 MAC
  • 目的 MAC:192.168.1.1 这个网口的 MAC
  • 源 IP:192.168.1.101
  • 目的 IP:192.168.56.2

    路由器 A 中 192.168.1.1 这个网口收到数据包后,搜检 MAC 地点一致,将包收进来。

    在路由器 A 中设置了划定规矩:

想接见 192.168.56.2/24,就从 192.168.56.1 网口发出去,发给 192.168.56.2,没有下一跳。

    因为路由器的右网口(192.168.56.1) IP 地点和目的 IP 地点在统一网段,因此没有下一跳。

2)网关 A 到网关 B
当收集包发送到中心的局域网时,效劳器 A 也须要有个国际身份。因此,源 IP 地点 192.168.1.101 要改成 192.168.56.1,所以数据包的内容是:

  • 源 MAC:192.168.56.1 的 MAC
  • 目的 MAC:192.168.56.2 的 MAC
  • 源 IP:192.168.56.1
  • 目的 IP:192.168.56.2

    包抵达 192.168.56.2 这个网口后,发明 MAC 一致,就将包收进来。

    而路由器 B 是 NAT 网关,它上面设置了,国际身份 192.168.56.2 对应国内的 192.168.1.101,因此目的地点改成 192.168.1.101。

    一样的,路由器 B 中设置了划定规矩:

想接见 192.168.1.101,就从 192.168.1.1 网口出去,没有下一跳。

    因此,数据包就从 192.168.1.1 这个网口发给 192.168.1.101。

3)网关 B 到效劳器 B
数据包从 192.168.1.1 网口发出后,一样经由这些步骤:

  1. 搜检效劳器 B 的 IP,在统一网段
  2. ARP 猎取效劳器 B 的 MAC 地点
  3. 发送包

这时候的数据包就变成了:

  • 源 MAC:192.168.1.1 的 MAC
  • 目的 MAC:192.168.1.101 的 MAC
  • 源 IP:192.168.56.1
  • 目的 IP:192.168.1.101

    效劳器收到包后,搜检 MAC 地点一致,就将数据包收进来。

    从效劳器 B 吸收的数据包可以看出,源 IP 为 效劳器 A 的国际身份,因此发送返回包的时刻,也发给这个国际身份,由路由器 A 做 NAT,转换为国内身份。

动态路由

动态路由算法
间隔矢量路由算法

1)基本思路

基于Bellman-Ford 算法。每一个路由器都保留一个路由表,包括多行,每行对应收集中的一个路由器,每一行包括两部分信息,一个是要到目的路由器,从哪条线出去,另一个是到目的路由器的间隔

2)存在题目

a. 好音讯传得块,坏音讯传的慢

新到场的路由器可以很快的新路由器信息播送出去。然则假如一个路由器挂了,挂的音讯没有播送。每一个经由这个宕机节点的路由器,没法得知该节点一宕机,而是试图经由历程其他的途径接见,直到试过了一切的途径,才发明这个路由器已宕机了。

示例:

b. 每次发送音讯,要发送全部全局路由表

    上面的两个题目,限定了间隔矢量路由的收集范围,仅适用于小型收集(小于 15 跳)。

链路状况路由算法

1)基本思路

基于Dijkstra 算法。当一个路由器到场收集是,起首是发明邻人,给邻人说 hello,邻人都复兴。然后盘算和邻人的间隔,发送一个 echo,请求立时返回,除以 2 就是间隔。接着将本身和邻人之间的链路状况包播送出去,发送到全部收集的每一个路由器。

    这类算法中,每一个路由器都能在本身当地构建一个完全的图,然后针对这个图运用 Dijkstra 算法,找到两点之间的最短途径。

    不像间隔矢量路由协定那样,更新时发送全部路由表。链路状况路由协定只播送更新的或转变的收集拓扑,这使得更新信息更小,节省了宽带和 CPU 利用率。而且一旦一个路由器挂了,它的邻人都邑播送这个音讯,可以使得坏音讯敏捷收敛。

动态路由协定
基于链路状况路由算法的 OSPF

OSPF(Open Shortest Path First, 开放式最短途径优先)协定,普遍应用在
数据中心的协定。因为重要用在数据中心内部,用于路由决议计划,因此称为
内部网关协定(Interior Gateway Protocol,简称 IGP)

    内部网关协定的重点就是找到最短途径。当存在多个最短途径时,可以在这多个途径中举行负载平衡,这经常被称为等价路由

    等价路由不仅可以用来分摊流量,还可以进步容错率,当一条途径不通时,还可以经由历程别的一条路抵达目的地。

基于间隔矢量路由算法的 BGP

针对收集之间的路由协定,称为
外网路由协定(Border Gateway Protocol,简称 BGP)

    每一个数据中心都有本身的路由设置。比方,哪些外部 IP 可以让内部晓得,哪些内部 IP 可以让外部晓得,哪些可以经由历程,哪些不能经由历程。

    因此,在各个数据中心举行交互时,须要一种协定,经由历程这类协定,可以晓得相邻数据中心的路由设置,从而找到数据中心之间最好的路由。

    BGP 协定就是如许的协定。它不着眼于发明和盘算路由,而在于掌握路由的流传和挑选最好的路由。

总结

  • 数据包要脱离本局域网,就要经由网关,网关就是路由器的一个网口;
  • 路由器是一个三层装备,来由有怎样寻觅下一跳的划定规矩;
  • 经由路由器以后的 MAC 头肯定会变。假如 IP 稳定,就是 转发网关,不然就是 NAT网关
  • 路由分静态路由和动态路由,动态路由可以设置庞杂的战略路由,掌握转发战略;
  • 动态路由主流算法有两种,间隔矢量算法和链路状况算法。基于两种算法发生两种协定,BGP 协定和 OSPF 协定。

参考:

  1. 百度百科
  2. 刘超-趣谈收集协定系列课;

推荐阅读
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
author-avatar
陈小超Sum
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有