我是靠谱客的博主 小巧含羞草,最近开发中收集的这篇文章主要介绍计算机网络——网络层,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、网络层主要概括(网络中每台主机和路由器都有一个网络层部分)

1、功能:

①转发:分组到达路由器输入链路时,路由器要给它选择合适的输出链路。

②选路:分组从运输层下来,网络层要为它选择合适的路径。选路算法可以是集中式的:在某个中心点执行,向每台路由器下载下载信息;也可以是分布式的:运行在每台路由器上。详见选路算法。

2、提供的服务(因特网的网络层除了安全性服务以外以下都不提供):

①有序分组交付(因特网所用的数据报网络中的转发表可以在任何时刻修改,所以一个端系统到另一个端系统的分组可能走不同路径,可能无序到达)。

②面向连接服务:数据报网络转发表更新频率相对低。

(1) 虚电路网络(来源于电话界):在网络层提供面向连接服务。运输层的面向连接服务是在端系统之间实现,网络层不仅在端系统之间,还在路由器实现。虚电路网络里路由器转发表记录了虚电路号(VC号),对应着入接口和出接口。一条虚电路创建时,虚电路上路由器都在转发表中添加相应信息,一条虚电路在不同路由器对应不同VC号,否则号码统一过程太费时;虚电路销毁时相应信息要删除。也就是路由器维持虚电路信息。端系统发送指示虚电路启动与终止的报文叫信令报文。

(2) 数据报网络(因特网所用):路由器使用分组的目的地址转发分组。路由器的转发表与目的地址的前缀进行匹配。有多个匹配时遵循最长匹配原则。

③确保交付以及具有时延上限的确保交付。

④确保最小带宽

⑤安全性服务

3、路由器(一台主机直接相连的路由器叫它的默认路由器或第一跳路由器)

①输入端口:许多路由器在此实现查找与转发功能。一般选路处理器计算的转发表有拷贝到这里。转发表数据庞大,线性搜索不现实,解决方法有:

(1) 转发表存在树形结构中,也就是一个2 ^ N空间的二分查找(仍不够快);

(2) 用内容可寻址内存CAM以基本常数时间返回转发表内容;

(3) 增加高速缓存。

②交换结构:

(1) 经内存交换;

(2) 经一根总线交换:不需要选路处理器干预。而且经内存交换也得经过系统总线;

(3) 经互联网络交换。

③输出端口:

(1) 分组调度程序:选择输出端口排队分组传送。

(2) 随机早期检测:队列平均长度小于一个阈值min就加入排队;处于阈值min和阈值max之间就以一个概率丢弃;大于阈值max就丢弃。

4、选路协议

层次选路:网络太庞大选路算法开销太大,而且不能让自己区域运行自己的选路算法。所以把网络分成不同的自治系统AS(Autonomous System)。一个AS里的路由器运行相同的自治系统内部选路协议;AS之间运行自治系统间选路协议。

①自治系统内部选路协议所用的算法:

⑴链路状态选路算法(全局链路算法):运行此算法,需要知道网络中每条链路的费用。所有每个路由器有整个网络的拓扑。运行Dijkstra算法。如果链路费用取决于链路上承载的负载,会有振荡的情况,为了避免,让路由器不同时运行LS(Link-State)算法。

⑵ 距离向量选路算法:用了Bellman-Ford方程思想。这个算法每个路由器不用知道整个网络的状况,只用从相邻路由器获取相邻路由器到某节点的最短距离,自己再计算到该节点的最短距离,是迭代的。

缺点在于:会形成环路。一种解决办法是如果a到c的最短路径是通过b的,则a告诉b:a到c最小距离是无穷。但是不能解决两个以上节点的环路。

⑶两者比较:LS算法每当有一条链路状态发生改变,要向所有节点发送所有节点报文。DV算法只有链路状态改变影响自己选路时才会发送;LS收敛速度较快,DV算法有环路;DV算法某个节点出错误会扩展到整个网络,而LS算法因为有整个网络的拓扑,不会有这个问题,LS算法有更好的健壮性。

②自治系统间选路协议:见BGP4协议——因特网运行的自治系统间选路协议。

⑴网关路由器:负责向本AS之外的目的地转发分组。

5、广播:N次单播效率太低。

①无控制洪泛:如果途中有环,广播分组中一个或多个分组拷贝将无休止循环。

②受控制洪泛

Ⅰ 序号控制洪泛:源节点将其地址和广播序号(唯一标识一个广播)放入广播分组。广播过程遇到的节点将会记录它已经广播的分组的源地址和广播序号。如果它发现接收的分组已经广播过就不再广播。

Ⅱ 反向路径转发RPF(Reverse Path Forwarding):路由器只有在这种情况下向除了分组传入所经过的接口以外所有接口传播分组:分组传入的接口在路由器到源地址最短单播路径上。

③生成树广播:序号控制洪泛和反向路径转发不能避免冗余传播——一个节点会收到很多次相同的广播分组,除了第一次都丢弃。

Ⅰ 最小生成树:树里面的链路费用之和最小。

Ⅱ 建立生成树:选择一个中心节点,其它节点向中心节点单播加入树报文,直到遇到树上的节点(可能是中心节点也可能是其它已经加入树的节点)。

6、多播:多播数据报使用间接地址(称为D类地址,用于标识一组接收方,发给D类地址的分组会发歌给该组所有成员)

①IGMP协议:运行在一台主机和与它直接相连的路由器上。IGMP让主机通知与它相连的路由器:主机的某个进程要加入特定的多播组。IGMP报文和ICMP报文一样承载在IP数据报中。路由器向主机发送membership_query分组确认主机已加入的所有多播集合;主机发送membership_report回应,如果没有回应说明主机不在相应多播集合中。主机也可自己发送membership_report告诉路由器加入某个多播集合。

②多播选路:

⑴ 使用一棵组共享树:像广播的最小生成树算法一样,一个加入报文使用单播选路朝着中心转发,直到多播树的节点。该加入报文所经过的路由器将向发送加入报文的节点转发多播分组。

⑵ 使用一棵基于源的树:为多播组每个源使用RPF算法构建一棵多播选路树。为了解决冗余传播,一台连接的主机没有加入该组的路由器收到多播分组,向上游路由器发送剪枝报文。如果一台路由器从它的每台下游路由器收到剪枝报文,就向上游发送剪枝报文。

 

二、因特网的网络层的组成

1、IP协议(网际协议)

①IPv4数据报格式

(1) 数据字段(有效载荷):含有要交付给目的地的运输层报文段;也可承载ICMP报文段。

(2) 地址:源地址和目的地址。源地址发送者自己插入;目的地址通过DNS查找找到。

(3) 上层协议决定将报文段交给哪个运输层。是网络层和运输层粘合剂。

(4) 首部检验和:只检验首部字段。TCP、UDP检验整个报文段。

(5) 寿命:确保数据报不会在网络中永远循环。每经过一个路由器,寿命字段减一。

(6) 版本号:区分IPv4和IPv6

(7) 服务类型:将不同类型的数据报区分。比如实时数据报和非实时数据报。具体服务等级是管理员决定的。

(8) 数据报长度:IP数据报的总长度。链路层数据字段最小46字节。如果数据报没这个长度会被填充到46字节,此字段用于去除填充。

(9) 选项:允许首部字段扩充。

(10) 首部长度:因为IPv4数据报有一些可选项,用此字段标识数据报中数据从哪开始。

(11) 标识、片位移、标志。分片:链路层有最大传输单元(MTU),路由器通过转发表决定链路发现该链路MTU小于数据报长度,则要分片(即较小的数据报)。标识号相同的片属于一个数据报;标志为1表示不是一个数据报的最后一片,为0表示是最后一片;片位移记录该片存储的数据开始于原数据报的哪个字节,组装片时以此确定片的顺序以及是是否缺少,如果缺少就丢弃,不给运输层。组装片的任务交给端系统减轻路由器负担。

②IPv6数据报(不仅有单播、多播,还有任播)

(1) 数据字段

(2) 源地址和目的地址

(3) 下一个首部:标识数据报内容交付给哪个协议,和IPv4协议字段等同。选项字段可能出现在这里

(4) 没有首部检验和,运输层和链路层都做了检验。

(5) 跳限制:寿命。

(6) 版本号

(7) 流量类型:和IPv4服务类型相似。

(8) 有效载荷长度:数据报首部后面的字节数量。

(9) 没有选项

(10) 首部长度40字节是固定的,没有首部长度字段。数据报长度= 40 + 有效载荷长度

(11) 没有标识、片位移、标志。IPv6不再分片,发现数据报大于MTU时丢弃数据报,往回发送ICMP差错报文。

③IPv4编址(广播地址255.255.255.255,路由器也会有选择向邻近子网发送广播报文)

⑴拥有IP地址的单位(接口):主机或路由器与物理链层的边界。一台主机一个IP地址,路由器每个端口一个地址。

⑵子网:也成IP网络或网络,IP编址用无类别域间选路(CIDR)为子网分配地址。形式为a.b.c.d/x。abcd都是十进制的数。该地址的x最高比特位定义了子网地址,经常被称为子网掩码、前缀。

⑶获取主机地址(动态主机配置协议:DHCP协议)

Ⅰ功能:为主机分配地址,告诉主机子网掩码、第一跳路由器地址、本地DNS服务器地址。主机可以自动获取临时地址,也可以网络管理员分配(以便给某主机每次分配相同地址)

Ⅱ过程:每个子网有一个DHCP服务器或知道该网络DHCP服务器地址的中继代理(通常是路由器)。新到的主机发送目的端口号为67的广播UDP分组(DHCP发现报文),源地址设置为0.0.0.0;DHCP服务器发送DHCP提供报文进行广播(因为源主机没有地址),报文里有发现报文的事务ID、向客户机推荐的IP地址、网络掩码以及IP地址租用期;源主机选用一个地址,发送DHCP请求报文;DHCP服务器发送DHCP ACK报文。为了使客户机能超过租用期使用地址,DHCP提供允许客户机更新它对IP地址的租用期的机制。

⑷网络地址转换(NAT)

NAT路由器给一定区域的主机分配专用地址(专用地址只能在指定区域用)。NAT路由器相当于该区域的大门,它有自己的IP地址,有NAT转换表(记录区域内主机专用地址、端口号和发送到外面映射的IP地址、端口号)。所有外界来看,该区域所有主机都是用一个IP地址,NAT使路由器对外界掩饰了家庭网络的细节。

NAT路由器从DHCP服务器获取IP地址,再运行一个DHCP服务器,分配专用地址。

2、ICMP协议

ICMP协议典型用途是差错报告。虽然是IP协议一部分,但是ICMP报文承载在IP分组(数据报)上,就像运输层报文段是IP数据报有效载荷被承载一样。

有一个类型字段和编码字段,并且包含引起差错报文的数据报的首部和前八字节内容。

 

三、因特网选路协议

1、单播

①自治系统内部选路协议:RIP常用于较低层的ISP和企业网;OSPF常用于较顶层。

⑴ OSPF协议:用的是LS算法。路由器周期性(至少每隔三十分钟一次)向自治系统内其它路由器广播链路状态信息(使用序号控制洪泛,分组有寿命)。OSPF报文通常承载在IP分组中。

OSPF协议最大优点在于能按层次结构构造一个自治系统:产生一些区域,每个区域运行自己的链路状态算法。

内部路由器:只执行AS内部选路。

区域边界路由器:用于与其它区域路由器交换信息。

主干路由器:执行主干中选路,但自身不是区域边界路由器。

边界路由器:与其它自治系统(不是本个运行OSPF协议的AS)路由器交换选路信息。

⑵ RIP协议:一种距离向量协议,RIP路径长度不能超过十五。每30s通过UDP发送RIP相应报文交换信息,如果一个路由器180s没监听到某个邻居,该邻居认为不可到达。

②自治系统间选路协议:BGP(边界网关协议)

⑴ 自治系统间信息交流:路由器对使用半永久BGP TCP相连。eBGP用于不同AS间路由器会话,iBGP用于相同AS路由器间会话。路由器收集整理所在AS的子网前缀代表所能到达的子网,网关路由器通过eBGP通知其它AS的网关路由器,其它AS网关路由器通过iBGP通知它的AS内其它路由器。

⑵ 自治系统号(ASN):一个自治系统有其全局唯一的自治系统号。

⑶ 桩自治系统:仅承载目的或源地址为本AS的流量。

⑷ BGP属性:BGP会话通告一个前缀时附带的属性

Ⅰ AS-PATH:包含了该通告已经通告哪些AS。如果收到的通告AS-PATH属性里有自己的ASN,就不接收。接收的通告里加上自己的ASN。

Ⅱ NEXT-HOP:开始某AS-PATH的路由器接口。假如AS1有子网x,通过eBGP发送通告AS2它能到x,并用NEXT-HOP属性传递AS1到AS2网关路由器接口I。AS2的路由器增加转发表(x,I)。

⑸ 路由:路由器通告BGP会话通告前缀时,带着属性的前缀称为一条路由。

⑹ BGP路由选择:

Ⅰ 先根据设置的偏好选。

Ⅱ 其次根据距离向量算法选择,距离测度为AS跳数。

Ⅲ 再其次选NEXT-HOP路由器(和源地址在一个AS的网关路由器)最靠近源地址的路由。

2、广播(被用于因特网应用层和网络层)

应用层的Gnutella协议和网络层OSPF协议用有寿命的序号控制洪泛来广播。

3、多播:距离向量多播选路协议(DVMRP)用了基于源的树:反向路径转发和剪枝算法。

 

 


最后

以上就是小巧含羞草为你收集整理的计算机网络——网络层的全部内容,希望文章能够帮你解决计算机网络——网络层所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部