概述
网络层概述
发送方:
- 将来自运输层的每个报文段封装成一个数据报。
- 将数据报向目的地发送,即向相邻的路由器R1发送。
路由器:
将数据报从输入链路“转发”到输出链路。
接收方: - 接收来自相邻的路由器R2的数据报;
- 解封出报文段,并交付给其运输层;
网络层与运输层的区别
- 网络层向运输层提供主机到主机的服务。
运输层向应用层提供进程到进程的服务。 - 网络层面向连接服务在端系统及网络核心的路由器中实现。
运输层面向连接服务在网络边缘的端系统中实现。
虚电路网络和数据报网络的原理
虚电路(vc):在网络层提供连接服务。
虚电路的组成:
- 虚电路是在源和目的主机之间建立的一条路径
- VC号:沿着虚电路的每段链路都有自己的VC号
- 沿着该路径的每个路由器的转发表表项
虚电路的工作原理:
- 在源和目的之间创建一个VC;
- 源向该VC发送带有VC号的分组;
- 每经过一台中间路由器,用新的VC号代替原来的VC号(从VC号转发表获得)
- 分组在每条链路上的VC号不同。
- 依此规则,直到目的地。
现在假定主机A请求该网络在它自己与主机B之间创建一条虚电路。 同时假定该网络为该虚电路选择路径A-R1-R2-B 并为这条路径上的这3 条链路分配VC号12、22和32。在这种情况下,当在这条虚电路中的分组离开主机A时,在该分组首部中的VC 字段的值是12 , 当它到达R1时,路由器查找转发表,发现CV号12对应的出接口为2,出VC号为22,于是将其转发到接口2,并将VC号替换成22。同理,当它到达R2时,路由器查找转发表,发现CV号22对应的出接口为2,出VC号为32,于是将其转发到接口2,并将VC号替换成32,最终到达主机B。
分组沿着其路由在每条链路上不保持相同的VC号的原因:
第一,逐链路代替该号码减少了在分组首部中VC字段的长度。
第二,通过允许沿着该虚电路路径每条链路有一个不同的VC号,大大简化了虚电路的建立。如果沿着某路径的所有链路要求一个共同的VC号的话,路由器将不得不交换并处理相当大量的报文,以约定一个共同的VC号。
虚电路的三个阶段
- 虚电路建立:在发送方与接收方之间建立一条虚电路,即决定所有分组要通过的一系列链路与路由器,并为每条链路确定一个VC号。
- 数据传输:沿该电路传输数据分组。
- 虚电路拆除:由其中一方通知其网络层终止该虚电路;通知网络另一侧的端系统呼叫结束,并更新路径上每台路由器的转发表。
数据报网络:如英特网
路由器没有端到端连接的状态。
分组使用目的主机地址转发。
路由器转发方法
根据到达分组的目的地址在转发表中查询,找到相应的输出链路接口,并将分组转发出去。
路由器分组采用最长前缀匹配规则:
在该表中寻找最长匹配项,并向与最长前缀匹配相关的链路接口转发分组。
转发表
目的地址与链路接口的映射表。转发表中的表项数与地址位数有关,每个可能的地址对应一项。
路由器的工作原理
主要功能:选路和转发;
转发和选路的区别:
转发:(根据转发表进行查找)
当一个分组到达某个路由器的输入链路时,该路由器必须将其移动到合适的输出链路。
路由选择:(如何构建转发表)
确定分组从发送方流向接收方时所经过的路由或路径。
输入端口
**线路端接:**执行将一条输入物理链路与路由器相连接的物理层功能。
**数据链路处理:**与位于链路远端的数据链路层交互来执行数据链路层功能。
**查找;转发;排队:**通过查询转发表决定路由器的输出端口,到达的分组通过路由器的交换结构转发到输出端口。控制分组从输出端口转发到路由选择处理器。
输入端口的线路端接功能与链路层处理实现了用于各个输人链路的物理层和链路层。在输入端口中执行的查找对于路由器的运行是至关重要的。正是在这个地方,路由器使用转发表来査找输出端口,使得到达的分组将能经过交换结构转发到该输出端口。转发表是由路由选择处理器计算和更新的,但转发表的一份影子副本通常会被存放在每个输入端口。转发表从路由选择处理器经过独立总线复制到线路卡。有了影子副本,转发决策能在每个输人端口本地做出,无须调用中央路由选择处理器,因此避免了集中式处理的瓶颈。
路由选择处理器
在输入端口确定了相应的的输出端口之后,我们需要进一步确定从具体如何输入端口到达输出端口,这就是路由选择处理器所要干的工作。
交换结构
交换结构位于一台路由器的核心部位。正是通过这种交换结构,分组才能实际地从一个输人端口交换到一个输出端口中。交换可以用许多方式完成。
经内存交换
经内存交换。最简单、最早的路由器是传统的计算机,在输人端口与输出端口之间的交换是在CPU的直接控制下完成的。
一个分组到达一个输入端口时,该端口会先通过中断方式向路由选择处理器发出信号。于是,该分组从输入端口处被复制到处理器内存中。路由选择处理器则从其首部中提取目的地址,在转发表 中找出适当的输出端口,并将该分组复制到输出端口的缓存中。
经总线交换
在这种方法中,输入端口经一根共享总线将分组直接传送到输出端口,不需要路由选择处理器的干预。
通常按以下方式完成该任务:让输人端口为分组预先计划一个交换机内部标签,指示本地输出端口,使分组在总线上传送和传输到输出端口。该分组能由所有输出端口收到,但只有与该标签匹配的端口才能保存该分组。
经互联网交换
克服单一、共享式总线带宽限制的一种方法是,使用一个更复杂的互联网络。纵横式交换机就是一种由2N条总线组成的互联网络,它连接N个输入端口与N个输出端口,如图所示。每条垂直的总线在交叉点与每条水平的总线交叉,交叉点通过交换结构控制器能够在任何时候开启和闭合。当某分组到达端口 A,需要转发到端口 Y,交换机控制器闭合总线A和Y交叉部位的交叉点,然后端口A在其总线上发送该分组,该分组仅由总线Y安排接收。注意到来自端口B的一个分组在同一时间能够转发到端口X, 因为A到Y和B到X的分组使用不同的输入和输出总线。因此,与前面两种交换方法不同,纵横式网络能够并行转发多个分组。
然而,如果来自两个不同输入端口的两个分组其目的地为相同的输出端口,则一个分组必须在输入端等待,因为在某个时刻经给定总线仅有一个分组能够发送。
输出端口
取出存放在输出端口内存中的分组,并将其传输到输出链路上。
排队
输出端口排队
当交换速度比输出端口的综合速度快时
输入端口排队
当交换速度比输入端口的综合速度慢时
线头阻塞HOL:
输入队列中后面的分组被位于线头的一个分组阻塞(即使输出端口是空闲的),等待通过交换结构发送。
分组调度
1、FIFO
2、优先权排队
3、循环和加权公平排队
IP协议
提供不可靠、尽力而为、无连接分组交付服务。
IPv4数据报格式
IPv4数据报分片
并不是所有链路层协议都能承载相同长度的网络层分组。
IPv4的设计者将标识、标志和片偏移字段放在IP数据报首部 中。当生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时再贴上标识号。发送主机通常将为它发送的每个数据报的标识号加1。当某路由器需要对一个数据报分片时,形成的每个数据报(即片)具有初始数据报的源地址、目的地址与标识号。当目的地从同一发送主机收到一系列数据报时,它能够检查数据报的标识号以确定哪些数据报 实际上是同一较大数据报的片。
IPV6数据报格式
IPV6与IPV4的区别
- 扩大的地址容量。IPv6 将IP地址长度从32比特增加到128比特。除了单播与多播地址以外,IPv6还引人了一种称为任播地址的新型地 址,这种地址可以使数据报交付给一组主机中的任意一个。
- 简化高效的40字节首部。如下面讨论的那样,许多IPv4 字段已被舍弃或作为选项。因而所形成的40字节定长首部允许更快地处理IP数据报。一种新的选项编码允许进行更灵活的选项处理。
- 流标签与优先级。IPv6有一个难以捉摸的流定义。流的确切含义还未完全确定。IPv6 首部中还有一个8比特的流量类型字段,该字段就像IPv4中的TOS字段,可用于给出一个流中某些数据报的优先级,以便指明某些应用的数据报(如ICMP分组) 比其他应用的数据报(如网络新闻)有更高的优先权。
从 IPv4 到 IPv6过渡:
双栈:一些路由器具有双重栈 (v6, v4) 能够在两种格式中转换
隧道: 在穿过IPv4路由器时,IPv6分组作为 IPv4分组的负载
IP寻址:CIDR无类别域际路由选择
IP地址:分配给主机或路由器接口的23bit的标识符。
有两种表示方法:二进制、点分十进制。
分类编制
A类地址:第一位为0
B类地址:前两位是10
C类地址:前三位是110
D类地址:前四位是1110
E类地址:前五位是11110
IP地址结构
网络号:指明主机所在物理网络的编号
主机号:主机在物理网络中的编号
特殊的IP地址
广播地址:255.255.255.255
主机号全0:表示主机地址
主机号全1:表示广播地址(当前物理网络中所有的主机)
127.0.0.1:本机地址
子网掩码:它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
获取IP地址
动态主机配置协议获取(DHCP):允许一个主机自动获取以下信息:
IP地址、子网掩码、默认网关、DNS地址。
NAT:网络地址转换
目的:
对外部网络来说。本地网络只用一个IP地址:
- 不需要从ISP分配一系列地址——只要一个IP地址用于所有的设备。
- 在本地网络改变IP地址不需要通知外部世界。
- 可以变更ISP而不用改变本地网络的设备的地址。
- 本地网络内部设备不能被外部世界明确寻址(不可见)。
执行
- 外出的分组:替换每个外出的分组的源IP地址,端接号为NAT IP地址,新端口号。远程客户/服务器用NAT IP地址,新端口号作为目的地址。
- 记住在NAT转换表中每一个源IP地址,端口号到NAT IP地址,新端口号的转换。
- 进来的分组:对每个进来的分组,用保存在NAT表中的对应的源IP地址,源端口号替换分组中的NAT IP和新端口号。
ICMP(因特网控制报文协议)
用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
在某个位置,IP路由器不能找到一条通往HTTP请求中所指定的主机的路径,该路由器就会向你的主机生成并发出一个ICMP报文以指示该错误。
ICMP通常被认为是IP协议的一部分,但从体系结构上来说它位于IP之上。
因特网的选路算法及其原理
**选路:**确定分组从发送方传送到接收方所要通过的路径。
LS
- 源节点获得到与其直接相连的邻居的当前已知最低费用路径。
- 在之后的迭代中,我们观察那些还未加到集合N中的结点,并且找出在前一次迭代结束时具有最低费用的结点,加到集合N ’ 中,在此基础上,更新所有节点的D(V)。如此等等。
当LS算法终止时,对于每个结点,我们都得到从源结点沿着它的最低费用路径的前一结点。对于每个前一结点,我们又有它的前一结点,以此方式我们可以构建从源结点到 所有目的结点的完整路径。通过对每个目的结点存放从u到目的地的最低费用路径上的下一跳结点,在一个结点中的转发表则能够根据此信息而构建。
DV
- 每个节点周期性的给相邻节点发送自己的距离向量估值
- 当节点X从它的任何一个邻居收到一个新的距离向量估值,就使用B-F方程更新自己的距离向量估值。
特殊情况
费用增加
会出现选择回环。为了避免选择回环,增加了毒性逆转功能。
基本思想:
如果Z通过y选路到达目的地x,则z将告诉y,他到X的距离是无穷大;y认为z没有到x的路径,就不会试图经由x选路x。
理解因特网中的重要选路协议:
自治系统内部网关协议(IGP)
RIP(路由信息协议)
RIP是一种距离向量协议,其运行方式很像我们学习的理想化DV协议。 RIP使用跳数作为其费用测度,即每条链路的费用为1 。在DV算法中,为了简单起见,费用被定义在路由器对之间。在RIP (也在OSPF) 中,费用实际上是从源路由器到目的子网。RIP使用术语跳,跳是沿着从源路由器到目的子网(包括目的子网)的最短路径所经过的子网数量。
一条路径的最大费用被限制为15,因此RIP的使用限制在网络直径不超过15跳的自治系统内。在RIP中, 路由选择更新信息在邻居之间通过使用一种RIP响应报文来交换,大约每30秒相互交换一次。由一台路由器或主机发出的响应报文包含了一个该AS内的多达25个目的子网的列表,以及发送方到其中每个子网的距离。
响应报文又被称作 RIP 通告。
OSPF(开放最短路径优先)
OSPF的核心就是一个使用洪泛链路状态信息的链路状态协议和一个Dijkstra最低费用路径算法。使用OSPF时,路由器向自治系统内所有其他路由器广播路由选择信息。每当一条链路的状态发生变化时,路由器就会广播链路状态信息。即使链路状态未发生变化,它也要周期性地 (至少每隔30分钟一次)广播链路状态。OSPF通告包含在OSPF报文中,该OSPF 报文直接由IP承载,对OSPF其上层协议的值为89。因此OSPF协议必须自己实现诸如可靠报文传输、链路状态广播等功能。OSPF协议还要检查链路正在运行(通过向相连的邻居发 送HELLO报文),并允许OSPF路由器获得相邻路由器的网络范围链路状态的数据库。
IGRP(内部网关路由协议)
IGRP是一种内部网关协议,采用距离向量算法。以自治系统的方式提供路由选择路由协议。其算法与路由信息协议(RIP)类似,透过用户配置,如延迟、带宽、可靠性及负载量等于各路由器进行的路由管理。
BGP(域间网关协议)
自治系统间路由选择协议(边界网关协议)
BGP的作用
- 从相邻AS获得子网的可达性信息
- 向本AS内部的所有路由器传播这些可达性信息
- 基于可达性信息和AS策略,决定到达子网的好路由。
BGP工作原理
对于每个AS,每台路由器要么是一台网关路由器,要么是一台内部路由器。网关路由器是一台位于AS边缘的路由器,它直接连接到在其他AS中的一台或者多台路由器。内部路由器仅连接在它自己AS内部的路由器和主机。
每条直接连接以及所有通过该连接发送的BGP报文称为BGP连接。此外,跨越两个AS的连接称为外部连接(eBGP),在AS内部的称为内部连接(iBGP)。
在网关路由器3a和1c之间使用eBGP会话,AS3向AS1发送经AS3可达的前缀列表;AS1向AS3发送经AS1可达的前缀列表。类似地,AS1和AS2 通过它们的网关路由器1b和2a交换其可达性信息。同样如你预期的那样,在任何AS中的网关路由器接收到eBGP学习到的前缀后,该网关路由器使用它的iBGP会话来向该AS中的其他路由器发布这些前缀。因此,在AS1中的所有路由器将得知AS3的前缀,包括网关路由器1b也将得知这些前缀。在AS1中的网关路由器lb因此能向AS2重新通告AS3的前缀。当一台路由器得知一个新前缀时,它为该前缀在其转发表中创建一个项。
确定最好路由
用BGP术语来说,带有属性的前缀被称为一条路由(route)。
两个较为重要的属性是AS-PATH和NEXT-HOP。
AS-PATH:该属性包含了前缀的通告已经通过的那些AS。当一个前缀传送到一个 AS时,该AS将它的ASN增加到AS-PATH属性中。
NEXT-HOP:属性具有一种 微妙而重要的用途。NEXT-HOP是一个开始某AS-PATH的路由器接口。
1、热土豆
热土豆:对于路由器B1,尽可能快地将分组送出其AS,而不必担心其AS外部到目的地的余下部分的开销。
2、路由器选择算法
如本节前面所述,BGP使用eBGP和iBGP向在AS中的所有路由器发布路由。根据这种发布,路由器可能知道到达任何一条前缀的多条路由,在这种情况下路由器必须在可能的路由中选择一条。进入这个路由选择进程的输入是被路由器知道并接受的所有路由的集合。如果对相同前缀存在两条或多条路由,则BGP顺序地调用下列消除规则,直到留下一条路由。
- 路由被指派一个本地偏好值作为它们的属性之一。一条路由的本地偏好可能由该路由器设置或可能由在相同AS中的另一台路由器学习到。这是一条由AS的网络 管理员决定的决策。(我们随后将更为详细地讨论BGP策略问题。)具有最高本地偏好值的路由将被选择。
- 在余下的路由中(所有都具有相同的本地偏好值),具有最短AS-PATH的路由将被选择。如果该规则是路由选择的唯一规则的话,则BGP将使用一种距离向量算 法来决定路径,其中距离测度使用AS跳的数目而不是路由器跳的数目。
- 在余下的路由中(所有都具有相同的本地偏好和相同的AS-PATH长度),将选择 具有最靠近NEXT-HOP路由器的路由。这里,最靠近是指具有最低费用路径的费用的路由器,它由AS内部算法来决定。该进程经常被称为热土豆路由选择。
- 如果仍留下多条路由,该路由器使用BGP标识符来选择路由;
广播和组播
广播选路:
从一个源节点提交分组到网络中所有的节点。
多播(组播)选路:
从一个源节点提交分组到网络中部分节点。
多播的地址是一个D类的地址。
多播使用的是IGMP协议。
使用子网掩码因特网的IP层查找路由的算法:
- 从收到的数据报的首部提取目的IP地址D
- 先判断是否可以直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D按位与,看结果是否和相应的网络地址匹配。若匹配,则把各组进行直接交付(当然还需要把D转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行3
- 若路由表中有目的地址为D的特定主机路由,则把数据报转给路由表中所指明的下一跳路由表;否则,执行4
- 对路由表中的每一项(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D按位与,其结果为N,若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行5
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明发默认路由;否则,执行6
- 报告转发分组出错。
考纲
网络层
(1) 虚电路网络和数据报网络的原理
(2) 路由器的工作原理
(3) IP协议及IP地址的有关内容
(4) 因特网的选路算法及其原理
(5) 理解因特网中的重要选路协议:RIP,OSPF,BGP
最后
以上就是典雅烧鹅为你收集整理的计算机网络——网络层网络层概述虚电路网络和数据报网络的原理路由器的工作原理IP协议因特网的选路算法及其原理理解因特网中的重要选路协议:广播和组播使用子网掩码因特网的IP层查找路由的算法:考纲的全部内容,希望文章能够帮你解决计算机网络——网络层网络层概述虚电路网络和数据报网络的原理路由器的工作原理IP协议因特网的选路算法及其原理理解因特网中的重要选路协议:广播和组播使用子网掩码因特网的IP层查找路由的算法:考纲所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复