一、为什么要使用路由器?

现在我们从事嵌入式产品设计,要接触到很多网络的概念,例如以太网、wifi网、485网络、MBUS网络、CAN网络、Zigbee网络等等。我们在进行项目的深入研发过程中,就会注意到一个非常重要而且突出的问题,就是“单一网络中的主机的数目是有一定限制的,不能够无限增大”。

在单一网络中,过多的主机会导致如下问题:

a、带宽资源耗尽;

b、每台设备都会浪费很多时间处理无关的广播数据;

c、网络变的无法管理,任何错误都可能导致整个网络瘫痪;

d、每台主机都可以监听到其它设备的通信。

二、分段网络

上述问题只有通过网络分段加以解决,但同时我们又必须提供一个很好的机制能够让不同网段之间的设备进行通信。这也就是“网络为什么要分段?”、“OSI 7层网络协议”和 “TCP/IP 4层网络协议”的由来。下图列出了“OSI 7层网络协议”、“TCP/IP 4层网络协议”,以及后三层所对应的硬件设备的对应关系。在这里还需要注意的是OSI只是提供了一个网络模型,我们在以太网具体应用时,使用最多的是TCP/IP协议(4层)。

三、OSI七层协议

a、Physical:物理层,物理层规定了激活、维持、关闭通信端点(endpoint)之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。对应的连接设备:集线器。

b、Data Link:数据链路层,数据链路层在不可靠的物理介质上提供可靠的传输。对应的连接设备:网桥、交换机。

c、Network:网络层,网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能。对应的连接设备:路由器。

d、Transport:传输层,传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。

e、Session:会话层,会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。

f、Presentation:表示层,表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。

g、Application:应用层,应用层为操作系统或网络应用程序提供访问网络服务的接口。

通过以上分析,我们就可以知道路由器实际上起到的作用是完成不同段之间网络的互联,它对应OSI和TCP/IP的网络层。

四、TCP/IP V4 协议网络的分段原理

TCP/IP协议给网络中的每一个主机都会分配一个IP地址,它包含两部分信息:网络地址和主机地址。存储这些信息有两种方法:一是使用两个分离的域,这样我们必须考虑两个域的最大长度;另外一种方法是将网络地址和主机地址包装在1个域里,有时主机地址部分很短,有时主机地址部分很长,这样可以有效利用地址空间,减少地址长度。 TCP/IP协议中的IP地址就是采取后一种方法,它将网络地址和主机地址包装在一个32位的域里( TCP/IP V4),这就是我们经常使用的IP地址,例如:192.168.1.1。

最初在进行IP地址设计时,根据IP地址第1个字节的不同,将IP地址分为了3类:

a、1-126,A类:网络地址1个字节,主机地址3个字节。

b、128-192,B类:网络地址2个字节,主机地址2个字节。

c、192-223,C类:网络地址3个字节,主机地址1个字节。

d、0,127,224-255:保留不用。

基于这种方式的应用,人们发现存在诸多问题,首先就是大家熟知是IP地址的耗尽问题,其次是这种分类方法,对于同一网络地址不能在网络内做任何路由,当主机数目较多时,本文1中所提到的问题就凸显出来,尤其对于大型A类网络,只使用网桥和交换机的方法是难以管理的,所以只有在逻辑上把它分成若干小的网络才能加以解决,这就出现了1个新的域“子网掩码”。子网掩码指出地址中哪些部分是网络地址,哪些是主机地址。在子网掩码中,二进制1表示网络地址位,二进制0表示主机地址位。传统的各类地址的子网掩码为:

a、A类:255.0.0.0。

b、B类:255.255.0.0。

c、C类:255.255.255.0。

如果想把一个B类网络的地址用作C类大小的地址,可以使用掩码255.255.255.0。上面只介绍的三种子网掩码:255.0.0.0、255.255.0.0和255.255.255.0,它们是字节对齐的子网掩码。但是也可以在字节中间对其进行划分。如很小的用于点到点连接的网络(掩码 255.255.255.252,30 位的网络地址,2位的主机地址:两个主机的子网,或中型网络(如掩码255.255.240.0,20位网络地址,12位主机地址:4094 个主机的子网)。

五、路由原理

IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP子网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。如果没有找到这样的路由器,主机就把IP分组送给一个称为 “缺省网关(default gateway)”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址。

路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了。

目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络(router based network),形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。

六、路由协议

典型的路由选择方式有两种:静态路由和动态路由。

静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。

动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。

静态路由和动态路由有各自的特点和适用范围,因此在网络中动态路由通常作为静态路由的补充。当一个分组在路由器中进行寻径时,路由器首先查找静态路由,如果查到则根据相应的静态路由转发分组;否则再查找动态路由。

七、路由的实现过程

现有如下图所示的2个分段网络,我们希望实现201.66.37.0网段中的主机与201.66.39.0网段中的主机的互联,通过路由器该如何实现,答案在路由表中。

下表示出了该路由器的路由表,该路由表表明所有目的地为网络201.66.37.0内主机(201.66.37.1-201.66.37.254)的数据通过接口eth0(IP地址为201.66.37.74)发送,所有目的地为网络201.66.39.0内主机的数据通过接口eth1(IP地址为 201.66.39.21)发送。标志U表示该路由状态为“up”(即激活状态)。

现在我们希望通过IP地址为201.66.37.254的网关连接到远程网络73.0.0.0,我们可以在路由器中增加一项予以实现。

该项告知所有主机目的地为73.0.0.0内主机的分组通过201.66.37.254传递,标志G“gateway”表示此项把分组导向外部网关,其网络拓扑图如下图所示:

类似的也可以定义通过网关到达特定主机的路由,增加标志H“host”即可,其网络路由表和拓扑图如下图所示。

下面我们再阐述一下路由表的缺省项127.0.0.1和default,第1项是loopback接口,用于主机给自己发送数据,通常用于测试和运行于IP之上但需要本地通信的应用。这是到特定地址127.0.0.1的主机路由(接口lo0是IP协议栈内部的“假”网卡)。第2项十分有意思,为了防止在主机上定义到因特网上每一个可能到达网络的路由,可以定义一个缺省路由,如果在路由表中没有与目的地址相匹配的项,该分组就被送到缺省网关。多数主机简单地通过一个网卡连接到网络,因此只有通过 一个路由器到其它网络,这样在路由表中只有三项:loopback项、本地子网项和缺省项(指向路由器)。 加入以上两项的路由表如下图所示,至此,一个相对完整的网络,就已构建完毕。

任何问题,只需在此文章的评论处留言即可,我将尽力解答,不要试图采用其它的联系方式,我一概不理会。

原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。

计算机网络与无线通信系统学习6:路由器基础相关推荐

  1. 计算机网络与无线通信系统学习16:射频器件的基本参数

    一.趋肤效应 从一个导体的横截面看,导体中心的感抗对交流电的阻碍作用比外层或表面大很多.因此,交流电通过导体时,各部分的电流密度不均匀,导体表面电流密度大,而导体中心的电流密度小,这种现象称为趋肤效应 ...

  2. 计算机网络与无线通信系统学习1:计算机通信网概述

    一.计算机通信网 计算机通信网通常也简称为计算机网络.它是计算机的运算和处理功能同通信系统的信息传输功能相结合的产物.这两种功能的结合所产生的效果远远超过了它们各自发展所能达到的目标.今天,不管是哪个 ...

  3. 计算机网络与无线通信系统学习10:码分多址(CDMA)的本质-正交之美

    引子: CDMA是个很重要的通信概念,很多的大学教科书上都会提到它,甚至我们今天可能都在使用它.然而提到cdma,很少有资料提到它的思想是多么的有创意,教科书上关于cdma的章节都过于复杂,过于数学化 ...

  4. 计算机网络与无线通信系统学习14:电磁波的传播

    一.直射波.发射波.绕射波.散射波: 由发射天线沿直线到达接收点的无线电波,被称为直射波.自由空间电波传播是电波在真空中的传播,是一种理想传播条件.电波在自由空间传播时,可以认为是直射波传播,其能量既 ...

  5. [转载]无线通信系统中的调制解调基础(一):AM和FM

    原文地址:无线通信系统中的调制解调基础(一):AM和FM作者:逝者如云 第一部分解释了调幅(AM)和调频(FM)的基础,并阐述了优点和缺点.第二部分解析了频移键控(PSK)和正交幅度调制(QAM).第 ...

  6. 计算机通信中应用的调制解调与无线电通信,[转载]无线通信系统中的调制解调基础(一):AM和FM...

    调制方法多种多样,简单的一般有幅度调制,频率调制和相位调制,尽管调频和调相本质上是相同的.每种调制方法都有其有缺点.了解每种调制方法的基础是很重要的,尽管大家更为关注的是移动通信系统的调制方法.复习这 ...

  7. 计算机网络相关知识 参考博客 子网掩码怎么理解 网关及网关的作用 路由器基础知识详解

    子网掩码怎么理解 https://blog.csdn.net/farmwang/article/details/64132723 网关及网关的作用 https://blog.csdn.net/zhao ...

  8. 一些无线通信系统模型的概念

    一些无线通信系统模型的概念 扩频通信,指的是系统的带宽 W W W远大于其信息传输速率 R ( b i t s / s ) R(bits/s) R(bits/s), 定义展频带因子 B e = W R ...

  9. 深入学习网络布线基础知识及子网划分(入门级)

    深入学习网络布线基础知识及子网划分(入门级) 1.信号与传输介质 1.1信号 1.1.1信号的定义 信息:指音讯.消息.通讯系统传输和处理的队形,主要就是表示人类社会传播的一切内容,是一种普遍联系的形 ...

最新文章

  1. allocWithZone
  2. 安卓学习第17课——Gallery
  3. linux distribution timeline
  4. php errorcode,php中pdo错误处理方法详解
  5. 华农c语言计算高精度加法_考研计算机 | 运算符与表达式算术运算符
  6. 1.0jpa 2.0_在JPA 2.1中使用@Convert正确完成映射枚举
  7. 类型之间的相互转换php,php学习之数据类型之间的转换介绍
  8. 23种设计模式之桥梁模式
  9. js拦截物联返回键跳转到指定页面
  10. 新年计算机等级的决定的英语,新年决定英语对话及译文
  11. scrapy Pipline保存到数据库
  12. NB-IoT、eMTC与LoRa三大物联网技术相争,共存还是鏖战?
  13. 一文搞懂利用Flask-Babel实现网页多语言翻译切换
  14. 阮工的单片机编程经验集:如何做稳定单片机程序与上位机程序防卡顿,js等经验;阮丁远于20221111
  15. 从零开发微信公众号(PC)
  16. 领导力21法则(归纳)
  17. 用计算机程序计算鸡兔同笼,Linux脚本基础篇-鸡兔同笼问题(示例代码)
  18. 如何解决浏览器无法打开网页问题
  19. [日常训练] Surprise me
  20. 2022大数据十大关键词-记录

热门文章

  1. (四)GNSS定位中的距离测量(模糊度固定LAMBDA算法)
  2. 生产日期当天算一天吗,保质期算当天吗 保质期最后一天算过期吗
  3. Android设备上一张图片的显示过程
  4. 幸福工厂超级计算机有什么用,幸福工厂全替换配方简评
  5. PHP中 die() 和 exit() 的区别
  6. requests 用法
  7. 人脸识别之FaceNet
  8. NOIP-2014-J2-T3
  9. Python | 实现简单的康威生命游戏
  10. java curl 使用方法_如何在Java中使用这个cURL POST请求?(Spotify API)