路由器基础知识详解

第一章  网络互联  

网络的根本目的非常简单:方便人们交换所获得的信息。但是网络的应用需求非常复杂:有的用户希望高带宽,但并不要求很长的传输距离;有的用户要求很长的距离,但对带宽要求很低;有的对网络的可靠性要求较高,而另外一些则要求较低,等等。这些都导致了网络的多样化,现在比较常见的局域网有以太网、令牌环和FDDI,广域网有DDN、X.25、帧中继、ATM等,这些网络分别从不同方面满足用户需求。这些网络的物理介质和协议都不相同,彼此之间不能直接相互通信。将它们相互连接,使不同网络上的用户之间可以交换信息的技术就称为网络互联技术。
 实现网络互联的技术有两种:协议转换和隧道技术。 TCP/IP 和Novell的IPX是两种常见的协议转换技术。 Novell的IPX曾经红火一时,但现在网络互联中占统治地位的是TCP/IP,风靡世界的nternet就是利用TCP/IP作为互联协议的实例。 路由器就是一种利用协议转换技术将异种网进行互联的设备。而现在非常时髦的VPN(Virtual Private Network,虚拟私有网)则是隧道技术的代表。

第二章  路由器的基本结构和工作原理  

路由器实质上是一种将网络进行互联的专用计算机,路由器在TCP/IP中又称为IP网关。本章拟以TCP/IP技术为例介绍路由器。大家都知道OSI的七层模型,如图

TCP/IP层次模型

路由器的软件结构就是以TCP/IP协议栈为核心的,下图是一个简单的路由器软件结构。

路由器软件结构

路由器的协议转换发生在IP层。如下图所示,路由器试图互联局域网和Internet。 局域网是以太网,运行IEEE802.2 和IEEE802.3。路由器和接入服务器之间为专线,而链路层协议为PPP(Point to Point Protocol,点对点协议)。以太网上的主机以及Internet上的接入服务器的网络层协议都是IP。主机将IP包封装在以太网帧中发向路由器;路由器的以太网口收到主机发来的以太网帧后处理帧头并上交路由器的IP层;IP查看报文头后将IP包交给广域网口的PPP;PPP将IP包封装在PPP帧中并通过专线发往接入服务器。上述互联原理具有普遍性:某种网络设备要在第n层上互联异种网N1和N2,那么N1和N2在第n层及以上的协议(若有)必须相同。这实际上也是N1和N2能够互联的充要条件。

问题是主机如何知道把要去Internet的报文交给正确的路由器(假设以太网上有多台主/路由器),而路由器又是如何知道将主机报文发给哪个接入服务器(假设路由器有多个广域网口,且每个广域网口都和一个接入服务器相连)的呢?答案是依靠寻址和路由机制。

路由器的工作原理

IP地址被用来标识一台工作在IP层的网络设备。在相互联结的网络中IP地址应该是唯一的,即一个IP地址不能同时被多个网络设备使用。但是TCP/IP允许一台网络设备占用多个IP地址,这种设备称为“多穴主机”。路由器就是一种多穴主机,它的每个端口都有一个IP地址,甚至于一个端口可以有多个IP地址。IP地址长度为四个字节。如下图所示,TCP/IP将IP地址划为A、B、C三个基本类(实际上还有D类和E类,这两类很少用到):

如图所示IP地址分为网络部分和主机部分,分别相当于电话号码中的局号和用户线路号。 我们平时使用点分十进制的形式来表示IP地址,如我的IP地址是129.102.1.56,129.102是指北研所局域网,是个B类网,而1.56则是我的主机号。RFC不推荐把零作为IP地址的某个字节,如129.102.1.0。

TCP/IP还允许使用掩码来将IP地址非标准地(意指与三种基本类不同)划分为网络部分和主机部分。如果用二进制表示掩码,则IP地址中与掩码中的“1”相对应的比特属于网络部分,与“0”相对应的部分属于主机部分。掩码的习惯表示法也是点分十进制。若使用基本划分方法,则A类网的掩码是255.0.0.0,B类网的掩码是255.255.0.0,C类网的掩码是255.255.255.0。仍然以129.102.1.56(10000001.1100110. 00000001.00111000)为例,如果不使用掩码(实际是使用基本掩码255.255.0.0),则其网络部分为129.102,主机部分是1.56。如果使用掩码255.252.0.0(11111111.11111100.00000000.00000000),则其网络部分为129.100,主机部分为2.1.56。掩码中的“1”可以不是连续的,但是既没有必要又费劲,RFC也不推荐使用。

IP地址属于高层地址,物理层只能依靠物理地址进行通信。数据发送者怎样通过接收者的IP地址找到所对应的物理地址呢?如果发送者与接收者在同一个物理网上,则可以通过地址解析协议(ARP——Address Resolution Protocol)或手动配置来确定接收者的物理地址。

ARP用于共享式网络,如以太网。其工作方法如下:IP把要发送的报文交给以太网链路层,同时要告诉链路将报文转发给哪个IP地址(记做A);链路用以太网广播帧的形式向本网询问谁是A;A收到ARP请求后回答自己的物理地址(记作P);发送者收到ARP响应后将IP报文发给P。设备可以使用缓存,只有在缓存中查不到的才做ARP请求,收到回答后将学习到的物理插入缓存。这样可以提高ARP的效率。为适应网络的变化缓存要有时限,超时后缓存失效。

手动配置方法主要用于不能运行ARP的非共享式网络。例如2501上需要配置Dialer map将IP地址与电话号码相对应。其中的电话号码就相当于电话网中的物理地址。其他,如X.25网、帧中继网等都需要手动将IP地址与物理地址相匹配。

如果发送者与接收者不在一个物理网上,则需要路由。

一条路由主要包括目的地址和下一跳两部分。目的(记做D)可以是一台主机,也可以某个网络,还可以是某个网络的一个子集。下一跳(记做N)是直译,英文称为“next-hop”,理解成“下一个驿站”可能更形象。正个路由信息所表示的意思就是要到达D,先要去N。比如“经北京去往美国”就是一条路由。路由的目的是一个复合成员,由一个IP地址和一个掩码组成。目的掩码为全“1”(255.255.255.255)的路由俗称主机路由,它的目的地是一台主机。如果目的掩码不是全“1”,则该路由是要去往某个网段(子网)。根据下一跳的性质可以将路由分为直接路由和间接路由两类。如果到达目的需要经过路由器转发,即下一跳是一台路由器,则该路由称为间接路由,否则称为直接路由。理解直接路由器有点困难,举个例子:路由器的以太网口接在局域网上,路由器启动后会有一条目的地为该以太网的路由,这条路由是路由器自动产生的,不需要手动配置或运行路由协议来获取。这条路由就是直接路由。一个更形象的例子就是:我们在北京,要去美国,而北京有直飞美国的飞机,不需要中转。下图是直接路由和间接路由的对比。

直接路由和间接路由

路由器获得路由的方式主要有手工配置(静态路由)和路由协议(动态路由)两种。静态路由主要用于规模较小、相对稳定的网络。如果网络规模较大或经常变动,如经常增减网络、主机等,就需要路由协议。常见的路由协议有RIP(Route Information Protocol)、IGRP(Internal Gateway Route Protocl)、EIGRP(Enhanced IGRP)、OSPF(Open Shortest Path First)。前三种都使用VD算法,OSPF使用LS算法。IGRP、和EIGRP都是cisco的标准。

第三章  路由器的基本配置方法 

所有路由器的《用户手册》都会对路由器的配置方法做详细的介绍,本文仅介绍一下路由器的一般配置框架。

IP地址:路由器上每个要使用的端口都要配置IP地址

线路:专线方式需要配置线路的波特率;拨号方式的配置较复杂,如果是模拟拨号除需要配置物理属性(如异步、modem、波特率等)外还要配置IP地址与电话号码之间的对应关系。

路由:配置好IP地址和线路属性后就可以配置路由了。若配置动态路由,只要将动态路由协议打开即可。若需要配置静态路由,则建议首先画出组网草图,标出各网络的地址及所有相关路由器的各端口的地址,然后对照草图逐个设备配置路由。

Quidway路由器提供的命令行配制接口将配置状态分四级。第一级称为用户态,仅提供一些简单的命令。使用enable命令可以从普通用户态提升为特权态。特权态提供一些非配置命令,如打开调试开关等。要配置路由首先要使用configure命令进入全局配置态。全局配置态下可以对路由器的全局参数进行配置,如配置路由等。只有在端口配置态下才能配置IP地址等端口所特有的属性。  记住这四种状态的名称和意义不仅可以帮助大家更好地理解路由器的配置命令,还可以在寻求项目组的支持时与开发人员建立共同语言。

四、一些常见的计算机网络概念

地址代理的另一个名称为地址转换(NAT),它试图通过建立IP地址与传输层端口的映射。

地址代理的工作原理

如图所示,本地的PC机Local PC(IP地址为129.102.1.56)要访问远端的WWW 服务器Foreign server(IP地址为9.9.9.9)时发出报文(9.9.9.9,80;129.102.1.56,5000),报文中的成员从左到右依次为:目的地址、目的端口号、源地址、源端口。该报文经过路由器的地址转换后变为(9.9.9.9,80;202.38.161.1,10000),地址代理将源地址替换成了路由器的广域网口地址。为了保持一一对应,地址代理还修改了源端口号。当路由器收到Foreign
Server的回文(202.38.161.1,10000;9.9.9.9,80)时,地址代理做相反的替换后得到报文(129.102.1.56,5000;9.9.9.9,80),这个报文可以被IP正确地发往Local PC。为完成这些工作地址代理显然需要维护一张IP地址与端口号之间的对应表格。

如果外部的Foreign PC(IP地址为8.8.8.8)要主动访问本地的WWW服务器(IP地址为129.102.1.5),那么它所发送的报文的目的地址显然不能直接填129.102.1.5,而应该填202.38.161.1,只有这样报文才能到达路由器。那么路由器怎么知道将该报文转交给谁处理呢(路由器并不能提供WWW服务)?回答是依靠配置。再图5-1所示的例子中路由器应该配置129.102.1.5为本地的WWW服务器。

验证是PPP的功能之一。PPP提供CHAP(Challenge Handshake Authentication Protocol)和PAP(Password Authentication Protocol)两种验证方法。PAP使用明文(不加密)传递密码,为单向验证且仅在协商开始时验证一次;CHAP使用密文传递密码,为相互验证且在传输过程中随时验证。

 防火墙也是网络安全措施之一。防火可以分为包过滤和应用网关两种。包过滤就是检查报文的源地址、目的地址、源端口及目的端口,将某些报文过滤掉。包过滤防火墙可以实现诸如“禁止IP地址为129.102.1.56的本地微机被访问”之类的简单功能。应用层的防火墙则要强大得多,它可以对报文的内容进行限制。

VPN的主要目的是用较少的资金获取私有网的服务。VPN使用Internet上的隧道技术,PPP包封装在UDP包中通过Internet传送到远端。一个公司的分支要访问远端的中心,他可以选择DDN或是电话网作为连接方式。这两种方式都非常方便,因为它们都相当于用户组建了自己的私有网络。但是这两种方法都非常昂贵。图5-2提供了一种既方便又经济的方法。位于分支机构的ISP为用户提供VPN服务,它在Internet中建立一条TCP/IP的隧道,将其接入服务器和中心的路由器(或服务器)连接起来。ISP收到分支发来的数据(PPP报文)后不进行解析,而是将PPP报文通过隧道发往中心的路由器。Internet实际上提供了一条从分支到中心的虚拟私有线路,而用户所交纳的费用是两端的本地通信费用和Internet访问费用,这要比长途电话费用或DDN费用低。

时间: 2024-10-06 16:01:38

路由器基础知识详解的相关文章

RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以简单地描述为: 当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候. 消息队列主要解决了应用耦合.异步处理.流量削锋等问题. 当前使用较多的消息队列有RabbitMQ.RocketMQ.ActiveMQ.Kafka.ZeroMQ.MetaMq等,而部分数据库如Re

Servlet基础知识详解

Servlet基础知识详解 Servlet基础知识详解 Servlet程序执行全过程 Servlet映射路径 Servlet映射练习 Servlet生命周期 为什么要学习Servlet生命周期 Servlet重要的生命周期方法 模拟通过反射构造Servlet对象 Servlet单实例多线程 Servlet留给开发者的init方法 Servlet中核心对象学习 HttpServletRequest对象 HttpServletResponse对象 ServletConfig对象 ServletCon

RabbitMQ基础知识详解

RabbitMQ基础知识详解 2017年08月28日 20:42:57 dreamchasering 阅读数:41890 标签: RabbitMQ 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息. RabbitMQ是MQ的一种.下面详细介绍一下RabbitMQ的基本概念. 1.队列.生产者.消费者 队列是RabbitMQ的内部对象,用于存

Python基础知识详解 从入门到精通(七)类与对象

本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详解 从入门到精通(三)语法与函数Python基础知识详解 从入门到精通(四)列表.元组.字典.集合Python基础知识详解 从入门到精通(五)模块管理Python基础知识详解 从入门到精通(六)文件操作PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此

Cisco路由技术基础知识详解

第一部分 请写出568A的线序(接触网络第一天就应该会的,只要你掐过,想都能想出来) .网卡MAC地址长度是(??)个二进制位(16进制与2进制的换算关系,只是换种方式问,不用你拿笔去算) A.12??? B.6??? C.24??? D.48 .ICMP?在沟通之中,主要是透过不同的类别(Type)与代码(Code)让机器来识别不同的连线状态,请问?type?8?名称是(??),代表的意思___回送消息____________.(同上,整天ping.你是否思考了ping?的细节过程) A.Ec

Java网络编程一:基础知识详解

网络基础知识 1.OSI分层模型和TCP/IP分层模型的对应关系 这里对于7层模型不展开来讲,只选择跟这次系列主题相关的知识点介绍. 2.七层模型与协议的对应关系 网络层   ------------     IP(网络之间的互联协议) 传输层   ------------     TCP(传输控制协议).UDP(用户数据报协议) 应用层   ------------     Telnet(Internet远程登录服务的标准协议和主要方式).FTP(文本传输协议).HTTP(超文本传送协议) 3

接口测试基础知识详解http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源:host表示合法的Internet主机域名或者IP地址:port指定一个端口号,为空则使用缺省端口80:abs_path指定请求资源的URI:如果URL中没有给出abs_path,那么当它作为请求URI时,必须以"/"的形式给出,通常这个工作浏览器自动帮我们完成.e

Thrift入门初探(2)--thrift基础知识详解

昨天总结了thrift的安装和入门实例,Thrift入门初探--thrift安装及java入门实例,今天开始总结一下thrift的相关基础知识. Thrift使用一种中间语言IDL,来进行接口的定义,下面来具体讲一下IDL可定义的几种常用数据类型和关键字. 常用数据类型及关键字 基本类型 thrift不支持无符号的类型,无符号类型可以简单理解为不能表示负数,只能表示正数的类型,像java的基本数据类型都是有符号的类型. byte:有符号字节 i32:32位有符号整数,此外还有i16,i64 do

Java 基础知识详解

由于有C#的基础,Java的基础知识基本是略过,这里当做复习一遍吧! Java的三种技术架构: JavaEE:(Java PlatForm Enterprise Edition) Java开发企业级的应用,主要针对Web JavaSE;(Java PlatForm  Standard Edition) 完成桌面程序的开发,是其他两个的基础 JavaME:(Java PlatForm Micro Edition)开发电子消费产品和嵌入式设备,如Android Java数据类型 (1)基本数据类型(