计算机网络——网络层概述
- 路由表包含哪些基本信息?
Network Destination:目标网段
Netmask:子网掩码,IP地址与子网掩码按位与,可以得出该IP地址的网络号,IP地址与子网掩码取反后按位与,可以得出该IP地址的主机号。
Interface:达到该目标网段的本地路由器的出口IP。
Gateway:网关IP,下一跳路由器的入口IP,通常情况下,interface和gateway是同一网段的。
Metric:跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由。
“标志”字段详细说明:
U 该路由可以使用
H 目标地址是一个完整的主机地址(Host)
没有该字段则说明:目的地址为一个网络号(主机地址为0)
G 目标地址是一个路由器(或网关Gateway)
1、没有该字段则说明:目的地址是直接相连的
2、区分“直接路由(无G)”和“间接路由(有G)”
直接路由与间接路由的区别:
发往路由的包中的MAC地址不同
直接路由:1、最终目标的IP地址
2、最终目标的MAC地址
间接路由:1、最终目标的IP地址
2、最终目标的网关的MAC地址
2. 动态路由常用的两种路由衡量标准
①. 比管理距离AD(可以是多种路由协议的比较;也可以是同种路由协议的比较,比如双线出口所配置的两条默认浮动路由比较)
②比度量值metric(路由协议不同则度量值不能做比较,比如rip度量值为跳数;ospf度量值为带宽;eigrp度量值为带宽+延迟等。所以在不同种协议之间先比较管理距离)
3.距离矢量路由选项协议的工作原理,及优缺点
定义:每个路由器维护一张表,表中列出了当前已知的到每个目标
的最佳距离,以及为了到达那个目标,应该从哪个接口转发。
工作原理:①每个路由器(节点)维护两个向量, Di 和 Si ,分别表示从该路由器到所有其它路由器的距离及相应的下一跳(next hop)②在邻居路由器之间交换路由信息(矢量)③每个路由器(节点)根据收到的矢量信息,更新自己的路由表
优缺点
优点:简单
缺点:交换的信息太大了
路由信息传播慢,可能导致路径信息不一致
收敛慢,度量计数到无穷,不适合大型的网络
4.RIP协议的特点,产生的问题及原因?
RIP:Routing information protocol,路由选择信息协议
主要特点:
RIP 是一种典型的 D-V 路由选择协议
RIP 采用了跳数(路由器个数hop)作为量度( metric)
当量度超过 15 跳,目的被认为不可达
默认地,每30秒钟交换一次矢量/向量信息(全部路由表)
缺陷及原因:
不能到达量度超过15跳的目标网络
RIP的度量(代价)是跳数,即沿途经过的路由器的个数,有时候,并不合理,不能真正反映网络的状况
实际运行中,会遇到度量计数到无穷、收敛慢等问题.
5.IP帧结构中,TTL是什么,路由器对TTL执行什么操作,TTL的作用是什么?
TTL是什么?
TTL是 Time To Live的缩写
该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。
TTL是IPv4包头的一个8 bit字段。
TTL的作用
TTL的作用是限制IP数据包在计算机网络中的存在的时间。
TTL的最大值是255,TTL的一个推荐值是64。
TTL原理
虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。
TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。
如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送ICMP 发送超时报文。
6.链路状态路由选择的工作方式是什么?
主要思想:
-
- 发现 它的邻居节点们,了解它们的网络地址
当一个路由器启动的时候,在每个点到点的线路发送一个特别的HELLO分组
收到HELLO分组的路由器应该回送一个应答,应答中有它自己的名字 (采用一个全球唯一的名字 globally unique name)
-
- 设置 到它的每个邻居的成本度量
为了决定线路的开销,路由器发送一个特别的 ECHO 分组,另一端立刻回送一个应答通过测量往返时间(round-trip time),
发送路由器可以获得一个合理的延迟估计值,为了得到更好的结果,可多次测量,取均值
一种常用的选择:与链路带宽成反比
-
- 构造 一个分组,包含它所了解到的所有信息
链路状态分组构造后被发送给其他的路由器,分组中包含这些信息:
1 发送方的标识(ID of the sender)
2 ***(sequence number )
3 年龄(age )
4 邻居列表(list of neighbors )
5 到邻居的成本/量度(delay to each neighbor )
应该什么时候构造分组?
周期性地构造和发送,或者有特别的事件发生时构造,比如某条线路或邻居down掉了
- 发送 这个分组给所有其他的路由器
- 计算 到每个路由器的最短路径
7.OSPF的工作方式?
开放的路径优先(Open Shortest Path First)
运行步骤
- 建立路由器毗邻关系
- 选举DR和BDR
- 发现路由
- 选择最佳路由
- 维护路由信息
触发更新,LSU
Hello分组发送的时间间隔:缺省10秒
Hello分组的失效间隔:缺省40秒
即使没有拓扑变化,LSA在条目过期(缺省30分钟)后,发送LSU,通告链路存活
8.无域间路由解决了IP的什么问题?
分配IP地址的时候不再以类别来分,而是按照可变长的地址块来分配(按需分配),解决了IP分类造成的地址浪费和路由器膨胀
超网的概念
超网(Supernetting)是与子网类似的概念,IP地址根据子网掩码被分为独立的网络地址和主机地址。超网,也称无类别域间路由选择(CIDR),它是集合多个同类互联网地址的一种方法。
与子网划分(把大网络分成若干小网络)相反,它是把一些小网络组合成一个大网络,就是超网。
网段合并:子网掩码向前移动1位,使得网络部分保持前部分相同。
要想判断连续的8个网段是否能够合并,只要第一个网络号能被8整除,这8个连续的网段就能够通过左移3位子网掩码合并。
9.网络地址翻译解决了什么问题,怎么工作的
为什么提出NAT(net address translate NAT)?
IPv4总地址池已于2011年2月3日枯竭
然而每个上网设备都需要上网资源,包括IPv4地址
解决方案:私有地址
不可路由的地址、但仍可用于广域网链路上
不再具备唯一性
而NAT正是将私有IP地址和公有IP地址之间的转换的一种工具
10.NAT工作原理
NAT是一个IP地址耗尽的快速修补方案
当内网需要和外网通信的时候,NAT完成私人地址转换成合法的globleIP地址
NAT转换器能够维护一个地址转换表,以便回来的分组能够找到它的出处,当回来的分组到达NAT转化器的时候,它查找地址转换表以获得目标机的私人地址,并转换地址之后发往目标机
11.ICMP和ARP
ARP协议
ARP是用于解析IP地址所对应的MAC地址的,PC可以直连也可以连接路由器之后再去查找IP的MAC地址。如果PC和主机是直接连在一起的话那就可以直接查询,如果中间有路由地址的话就会去路由表里面查找下一跳是什么地址,如果是非直连一般会解析网关的mac地址。ARP会给网络中所有的节点发送ARP数据包(二级广播包),之后解析到mac地址就会发送给应用,也是一个二级的单播包,只有请求方会接收到该回应包。
ICMP被认为是IP层的一个组成部分,负责传递差错报文以及其他需要注意的信息。ICMP是跟在IP报文以后的,在IP数据报的内部被传输。
拥塞控制
当一个网或子网的一部分出现太多分组的时候,网络的性能开始急剧下降,这就是拥塞。网络出现拥塞的时候,分组被丢弃、重传,导致网络吞吐量急剧下降,甚至无法传输分组。
拥塞控制的两类措施
- 开环
开环是试图通过良好的设计来避免拥塞的发生,它的本质是从一开始就保证问题不会发生,开环决定不考虑网络的当前状态,他是提前考虑;但网络变换太快,很难准确估计需求,即使超前的设计,随着时间的推移,也会越来越力不从心。所以更多的时使用闭环控制。
②闭环
闭环控制是建立在反馈环路上,分为三步:1). 监视系统,发现网络在何时何地发送拥塞;2). 传递拥塞信号:将拥塞信号传递到可以解决问题的地方;3). 调整运行,控制拥塞
如何知道何时何地发生拥塞?可以通过查看一些参数:比如,拥塞度量:因为缺乏缓存空间而丢弃的分组百分比;平均队列长度;超时和重传的分组数;平均分组延迟;分组延迟的标准方差。
检测到拥塞后怎么办? 拥塞信息传播
检测到拥塞的路由器发送一个警告分组给流量源,但是这个消息可能无法到达源
其他方法:每个分组可以保留一位或一个域,当拥塞度量超过阈值时候,路由器填充该位域,以此警告他的邻居。
其他方法:主机或路由器周期性的向外发送探寻分组,显示的询问有关拥塞的情况,然后,再有问题的区域利用回收的信息来路由流量
-
漏桶算法和令牌桶算法
- 漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求,可以看出漏桶算法能强行限制数据的传输速率.示意图如下:
可见这里有两个变量,一个是桶的大小,支持流量突发增多时可以存多少的水(burst),另一个是水桶漏洞的大小(rate),在某些情况下,漏桶算法不能够有效地使用网络资源。因为漏桶的漏出速率是固定的参数,所以,即使网络中不存在资源冲突(没有发生拥塞),漏桶算法也不能使某一个单独的流突发到端口速率。因此,漏桶算法对于存在突发特性的流量来说缺乏效率。而令牌桶算法则能够满足这些具有突发特性的流量。通常,漏桶算法与令牌桶算法可以结合起来为网络流量提供更大的控制。
-
- 令牌桶算法(Token Bucket)和 Leaky Bucket 效果一样但方向相反的算法,更加容易理解.随着时间流逝,系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是10ms)往桶里加入Token(想象和漏洞漏水相反,有个水龙头在不断的加水),如果桶已经满了就不再加了.新请求来临时,会各自拿走一个Token,如果没有Token可拿了就阻塞或者拒绝服务.
令牌桶的另外一个好处是可以方便的改变速度. 一旦需要提高速率,则按需提高放入桶中的令牌的速率. 一般会定时(比如100毫秒)往桶中增加一定数量的令牌, 有些变种算法则实时的计算应该增加的令牌的数量.