《计算机网络》第5章 网络层

1.了解网络层的主要功能

主要功能就是:将源端数据包一路送到接收方。算法

无链接服务的实现:数据报子网数据库

对于无链接服务来讲每一个数据包都独立地被注入到网络中,而且每一个数据包独立路由,不须要创建任何设置(X.25, ATM)缓存

面向链接服务的实现:虚电路子网安全

      面向链接的服务,须要一个虚电路网络,虚电路的目的是避免为每一个数据包选择一条新路径,当创建一个链接时,从源机器到目标机器之间的一条路径就被当作这个链接的一部分被肯定下来。(IP)网络

 

2.理解路由算法原理

  • 静态路由选择算法
    • Dijkstra
    • flooding
  • 动态路由选择算法
    • 距离矢量路由(DV)
    • 链路状态路由(LS)

最优化原则:若是一个路由器 J 处在路由器I到路由器K的最优路径上,那么,从路由器J到路由器K的最优路径也在一样的这条路径上。app

 

沉落树( sink tree )、聚集树:从全部的源到一个给定的目的的最优路径造成的一棵树,树根是目的结点。聚集树没必要是惟一的less

 

何时使用静态/动态路由?dom

静态路由:管理员手工配置的路由ide

  • 适合小型的、静态的网络,开销小

动态路由:由路由选择协议动态地创建、更新和维护的路由函数

  • 适合大型的、常常变更的网络,须要维护开销
  • 减小了网络管理员的负担

 

3.理解Dijkstra算法

Dijkstra算法:使用权重计算通讯线路中的最短(优,代价最小)路径。

算法步骤:

1. 初始化


2. 找到一个不在集合 N 中的节点w ,但它的D(w)最小,把w加入到集合 N 中;那么,全部不在集合N中的节点,使用 min[D(v), D(w) + l(w,v)] 去替换 D(v):

3.重复第二步,直到全部的节点都包含在集合N中。

 

例子

求下图以A为根的沉落树。


解答:

 

扩散/泛洪法(Flooding)

每一个到达分组都被从除了到达端口外的全部其它端口转发出去(不计算路径,有路就走)

重复分组解决办法

  • 在分组头增长一个计数器(counter),每通过一个节点,计算器减 1 ,当计数器变为零时,报文被丢弃。
  • 每一个节点设立一个登记表,当分组第二次到达时,被丢弃。
  • 选择性扩散

缺点:重复分组太多,浪费带宽

优势:可靠性高、路径最短/优,经常使用于军事

 

4.掌握距离矢量路由算法DV及DV实例Rip

距离矢量路由选择:每一个路由器维护一张表,表中列出了当前已知的到每一个目标的最佳距离,以及为了到达那个目标,应该从哪一个目标转发的线路(端口)。这些表经过邻居之间相互交换信息而不断更新,最终每一个路由器都了解到达每一个目的地的最佳链路。

DV的工做原理

  • 每一个路由器(节点)维护两个向量,Di和Si ,分别表示从该路由器到全部其它路由器的距离及相应的下一跳(next hop)
  • 在邻居路由器之间交换路由信息(矢量)
  • 每一个路由器(节点)根据收到的矢量信息,更新本身的路由表


  • di1:从节点i到节点1的度量(代价)
  • si1 :沿着从节点i到节点1的最优路径上的下一跳
  • n :网络中的节点数

当邻居间交换了矢量信息以后:

  • 更新距离: dij= Min[dix+ dxj] ( x ∈A )   【A—节点i的邻居集合】
  • 更新下一跳: Sij= x

 

例子

一个网络拓扑以下,某个时刻,路由器C接收到三个邻居发过来的矢量以下:

                                 A       B     C     D     E     F

From router B:(5, 0, 8, 12, 6, 2)

From router D:(16, 12, 6, 0, 9, 10)

From router E:(7,6, 3, 9, 0, 4)

如今,路由器C到 B、 D 和 E 的代价分别是 六、3 和 5,试回答路由器C更新后的路由表

解答

分析:经过路由器 B、 D 和 E进行转发的话,路由器C的矢量分别是:

Via router B:( 11, 6, 14, 18, 12 , 8)

Via router D: ( 19, 15, 9, 3, 12, 13)

Via router E: ( 12 , 11, 8, 14, 5, 9)

因此,路由器C更新后的路由表以下:

( 11, 6, 0, 3, 5, 8)

( B, B, -, D, E, B)

 

D-V算法的特色
优势

  • 简单
缺点
  • 交换的信息太大了
  • 路由信息传播慢,可能致使路径信息不一致
  •  收敛慢,度量计数到无穷
  • 不适合大型的网络

 

RIP的主要特色

  • RIP是一种典型的D-V路由选择协议
  • RIP采用了跳数(hop)做为量度(metric)
  • 当量度超过 15 跳,目的被认为不可达
  • 默认地,每30秒钟交换一次矢量/向量信息(所有路由表)

 

RIP的主要缺陷

  • 不能到达量度超过15跳的目标网络
  • RIP的度量(代价)是跳数,即沿途通过的路由器的个数,有时候,并不合理,不能真正反映网络的情况
  • 实际运行中,会遇到度量计数到无穷、收敛慢等问题

 

DV路由可能遇到的问题

问题表现

  • 路由环路(routing loop)
  • 计数到无穷问题(Count toinfinite)
  • 收敛慢的问题(slowConvergence)

缘由

  • 相信错误的路由信息致使

解决方法:

  1. 定义路径度量(代价)的最大值
  2. 提升收敛速度:

    • 水平分割
    • 毒性逆转
    • 抑制定时器
    • 触发更新






5.掌握链路状态路由算法LS及LS的实例OSPF

链路状态路由的主要思想包括以下5个部分:

  1. 发现它的邻居节点们,了解它们的网络地址
  2. 设置到它的每一个邻居的成本度量
  3. 构造一个分组,包含它所了解到的全部信息
  4. 发送这个分组给全部其余的路由器
  5. 计算到每一个路由器的最短路径

 

LS的工做原理:

1. 发现邻居节点

  • 当一个路由器启动的时候,在每一个点到点的线路发送一个特别的HELLO分组
  • 收到HELLO分组的路由器应该回送一个应答,应答中有它本身的名字
  • (当两个或更多的路由器被一个LAN链接起来,这个LAN被看做一个节点)

2. 设置链路成本

  • 为了决定线路的开销,路由器发送一个特别的 ECHO 分组,另外一端马上回送一个应答    
  • 经过测量往返时间(round-trip time) ,发送路由器能够得到一个合理的延迟估计值

      

3. 构造链路状态分组

  • 链路状态分组构造后被发送给其余的路由器,分组中包含这些信息:
    • 发送方的标识(ID of the sender)
    • 序列号(sequence number )
    • 年龄(age )
    • 邻居列表(list of neighbors )
    • 到邻居的成本/量度(delay to eachneighbor )

 

4.    发布链路状态分组

基本算法:

  • 每一个分组都包含一个序列号,序列号随着新分组产生而递增
  • 路由器记录下他看见的全部 (源路由器,序列号)对
  • 当一个的新的分组到达时,路由器根据它的记录:
    • 若是该分组是新的,就被从除了来线路外的全部其余线路转发出去 ( flooding,泛洪)
    • 若是是重复分组,即被丢弃(喜新厌旧)
    • 若是该分组的序列号比对应的源路由器发送的到过此地的分组的最大序列号还小,则该分组被看成过期的信息而被拒

 

5.    计算新的路由路径

  • 一旦一个路由器得到了所有的链路状态分组就能够构造出全网络图来了(Graph)
  • 如今,可使用 最短路径算法来计算路由器之间的最短路径了
  • 计算结果是一棵树,会造成相应的路由,安装在路由表中,引导数据分组的转发

 

发布链路状态分组基本算法遇到的问题:

  • 序列号回转,引发新老分组识别混淆
    • 解决办法:使用 32-bit 的序列号,即便每秒产生一个分组,也须要137年才发生号码回转
  • 若是一台路由器崩溃,那么他将丢失本身的序列号记录,若是他再从0开始,新分组将被看成旧分组被拒绝
  • 若是一个序列号被破坏了,好比发送方的序列号是4,可是因为产生了1位错误,序列号被看做65540,那么,序列号为 5 – 65540的分组都被看成过期分组而被拒绝
    • 解决上述的路由器崩溃和序列号损坏的方法是:每一个分组的序列号以后是年龄(age) ,而且每秒钟年龄减1
    • 当年龄为零 ( zero )时,来自该路由器的信息被丢弃
    • 一般地,每隔一段时间,好比10秒钟,一个新分组就会到来,因此,只有路由器down机才可能致使超时(或者,连续6个间隔由于丢失,没有收到新的分组)

L-S 路由算法的特色

优势:

  • 每一个路由器的认识一致
  • 收敛快
  • 适合在大型网络里使用
缺点:
  • 每一个路由器须要较大的存储空间
  • 计算负担很大

 

OSPF开放的路径优先(Open shortest path first)

  • 使用图(graph)来表述真实的网络
    • 每一个路由器/Lan都是一个节点
    • 测量代价/量度( metric)
  • 计算最短路径

OSPF分组(packet)类型:

OSPF数据包类型

描述

Type 1-Hello

与邻居创建和维护毗邻关系。

Type 2-数据库描述包(DD)

描述一个OSPF路由器的链路状态数据库内容。

Type 3-链路状态请求(LSR)

请求相邻路由器发送其链路状态数据库中的具体条目

Type 4-链路状态更新(LSU)

向邻居路由器发送链路状态通告

Type 5-链路状态确认(LSA)

确认收到了邻居路由器的LSU

 

OSPF的运行步骤:

  • 创建路由器毗邻关系
  • 选举DR和BDR
  • 发现路由
  • 选择最佳路由
  • 维护路由信息

OSPF状态:

  • Down
  • Init(初始)
  • Two-way(双向)
  • ExStart(准启动)
  • Exchange(交换)
  • Loading(加载)
  • Full adjacency(全毗邻)

 

比较DV 和 LS

距离矢量路由 DV

链路状态路由 LS

从邻居看网络

整个网络的拓扑

在路由器间累加距离

计算最短路径

频繁、周期更新:慢收敛

事件触发更新:快收敛

在路由器间传递路由表的拷贝

在路由器间传递链路状态更新

 

 

6.  理解拥塞控制

拥塞:当一个子网或子网的一部分出现太多分组的时候,网络的性能急剧降低,这就是拥塞(Congestion )

致使拥塞的因素(拥塞根源:负载 > 资源)

  • 输入流量速度大于输出线路的容量
  • 慢速的处理器也可能引发拥塞,如线路容量充足,但处理器来不及处理
  • 线路容量和处理器能力须要平衡

 

拥塞控制vs. 流控

拥塞控制(Congestion control)

  • 任务:确保子网可以承载所到达的流量
  • 这是个全局的问题,涉及到主机、路由器,存储转发的过程等方方面面的问题

流控(Flowcontrol)

  • 只与特定的发送方和接收方之间的点到点流量有关
  • 确保一个快速的发送方不会持续地以超过接受方接收能力的速率传输数据

 

怎么知道拥塞了? --拥塞量度

  1. 由于缺少缓存空间而丢弃的分组百分比
  2. 平均队列长度
  3. 超时和重传的分组数
  4. 平均分组延迟
  5. 分组延迟的标准方差(standard deviation)
  • 上述这些度量,数值越大表示拥塞的程度越重

 

怎样解决拥塞问题?

增长资源

  • 在某些点之间使用更多的通道增长带宽(好比:广深)
  • 把流量分散到多条路径
  • 启用空闲或备份的路由器

下降负载

  • 拒绝为某些用户提供服务(好比:春节车票提价,限行)
  • 给某些用户的服务下降等级(好比:黄金周旅游)
  • 让用户更有预见性地安排他们的需求(好比:年假制)

 

拥塞控制算法:

1.   流量感知路由

在计算路由时考虑链路负载,把热点地区的流量转移出去。最直接的方法是吧链路权重设置成一个链路带宽、传输延迟、平均排队延迟的函数。

       缺点:可能致使路由摇摆

2.   准入控制:

  • 防止拥塞进一步恶化和加重
  • 基本思想:一旦出现拥塞信号,则再也不建立任何虚电路,直到问题获得解决

准入控制能够与流量感知相结合,容许创建新的虚电路,可是仔细选择线路,绕开问题区域

3.   流量调节

拥堵路由器通告源机发送慢下来(抑制包)

4.   负载丢弃/载荷脱落

  • 这是处理拥塞的最极端的方法
  • 当路由器收到的分组超载了,一些分组会被丢掉
  • 丢掉哪些分组呢?
    • 随机丢弃(random)
    • 丢弃新到达的 (葡萄酒策略,适合文件传输类)
    • 丢弃早到达的分组 (牛奶策略,适合多媒体类)
    • 丢弃不过重要的(less important )分组(须要发送方在它们的分组中标明优先级)

5.   随机早期检测RED(防患于未然)

  • 当状况变得恶化无可救药以前就开始丢弃分组
  • 为了肯定何时开始丢弃分组,路由器维护着最近的队列平均长度
  • 当某条线上的队列平均长度超过了某阈值时,该线路被认定是拥塞的,能够采起相应的措施
  • 告诉源机关于拥塞的状况有两种可能
    • 发送抑制分组
    • 仅仅丢弃,不作任何报告

 

抖动控制

分组到达时间的变化量(标准方差 standard deviation)叫作抖动(jitter)

如何作抖动控制(续)

  • 经过计算出沿途每一跳的指望传输时间,就能够控制抖动。
    • 当一个分组到达路由器,路由器检查这个分组,看它是来晚了仍是来早了
    • 若是分组来早了,那么它可能多停留一些时间,以便回到预约的时间点上
    • 若是分组来晚了,路由器应该尽量快地将他转发出去
  • 当几个分组都要使用同一根输出线路转发出去,哪个分组优先呢?
    • 路由器老是让偏离预约时间最远的那个分组优先转发

 

流量整形

  • 调节数据传输的平均速率(和突发数据流)
  • 算法
    • 漏桶( leaky bucket)
    • 令牌桶( token bucket)
    • 其它:资源预留、准入控制、分组调度等
  • 能够减小拥塞

 

7.  理解漏桶算法

算法描述:

  • 每一个主机链接到网络的接口中都有一个漏桶,即一个优先长度的内部队列
  • 当桶中有分组的时候,输出速率是恒定的,当桶空的时候,输出速率是0
  • 当一个分组到达满的桶的时候,分组将被丢弃(满则溢)
  • 每一个时钟嘀嗒( tick ),仅容许一个分组或固定数量的分组发送出去

算法效果:

主机内用户进程产生的分组流每每是一个不稳定的流,漏桶可让它输出到网络时变成一个稳定流,抹平了突发尖峰,极大地减小了发生拥塞的机会

漏桶的缺点

  • 当漏桶满了以后,数据将被丢弃
  • 不能大量地突发数据
  • 改进:令牌桶

 

8.  理解令牌桶算法

算法描述:

  • 当大量数据突发的时候,令牌桶算法容许输出加快到某种程度
  • 令牌桶拥有令牌(tokens),且以每△T秒产生一个令牌的速度往桶中输入令牌
  • 一个分组要发送的时候,它必要从桶中取出和获取到一个令牌
  • 令牌桶算法容许累积令牌,但最多能够累积n(令牌桶的容量)个令牌

和漏桶算法相比

  • 令牌桶容许突发,可是最大突发受制于令牌桶容量的限制
  • 当桶满的时候,令牌桶算法丢掉的是令牌(不是分组)

 

9.  理解网络互联要解决的问题

事实上,总存在不少不一样的网络

  • 不一样的网络的安装基数都很大且在增加(如: TCP/IP,SNA, ATM,Novell NCP/IPX, AppleTalk, wireless, 等)
  •  随着计算机和网络变得愈来愈便宜,购买设备的决策权正在向下迁移,这容易致使一个大公司安装了不一样的网络
  • 不一样的网络 (如: ATM 和无线网络)使用彻底不一样的技术

 

网络能够经过不一样的设备联接起来:

  • 物理层 - repeaters or hubs 中继器或集线器
  • 数据链路层 - bridges and switches 网桥和交换机(可能做小小的协议转换,如从Ethernet 到 FDDI 或到802.11)
  • 网络层 – routers(多协议路由器)
  • 传输层 - transport gateways(传输层链接之间的接口,如容许TCP链接和SNA链接粘结起来,分组可畅通无阻)
  • 应用层 - application gateways(翻译消息语义,如不一样的email格式转换)

隧道技术

隧道(Tunneling)一种通用的特殊的网络互连方式

  • 源和目的都处于同种网络,可是中途通过不一样类型的网络
  • 中间的WAN部分可被当作一个大的隧道,从一个多协议路由器延伸到另外一个多协议路由器

互联网路由

  • 互联网路由相似于单个子网内部的路由,可是,前者比后者更加复杂一些
  • 两级路由算法
    • 每一个网络内部采用内部网关协议( IGP, interior gateway protocol )
    • 网络之间使用外部网关协议( BGP, exterior gateway protocol )
  • 互联网上的每一个网络都是独立于全部其余的网络,因此每一个网络一般称做一个自治系统(Autonomous System ,AS)
  • 互联网路由和网络内部路由的差异是:
    • 互联网路由可能须要跨越国际边界,不一样的法律可能会介入进来

数据包分段

每一个网络都会限制其分组的最大长度,最大长度存在不一样,当一个较大的分组想要经过一个最大分组长度较小的网络时,须要采起数据包分段。

MTU(路径最大传输单元)

两种不一样的分段策略

  • 透明分段( transparent )
  • 非透明分段( non-transparent)

  • 透明分段
    • 分段行为对其余网络来讲是不可见的,换句话说,在该网络分段的分组,在离开这个网络的时候须要将它重组恢复
  • 非透明分段
    • 每一个网络遇到不能承载的分组即对其进行分段,不负责重组恢复,目的机收到分割后的分组,完成重组恢复

10. 理解路由器的功能

收到数据报后路由器的工做步骤:

  • 打开数据报
  • 肯定目标网络地址
  • 根据路由表,从新打包后转发到相应的接口

上面的步骤完成了路由器的基本功能:

  • 路由选择
  • 转发(交换)
  • 其它功能(维护路由表、通告其余路由器等)

路由表

  • 主要包括网络地址、接口、计量值(跳数)、网络掩码、网关等信息。
  • 除了路由表,路由器内部有一张ARP表——全部子网设备的IP-MAC映射(包括网关)

IP寻址与Mac寻址的比较

  • 适用的网络范围不一样,MAC寻址只适合于小型网络;
  • 所依赖的地址结构不一样,MAC是平面地址,IP是结构化、层次化地址,其自己携带了位置信息;
  • 所处的OSI模型层数不一样;MAC介质访问控制子层,IP网络层
  • 地址数目的限制,IP地址有必定的额度,而MAC地址无限制;
  • 两种地址的格式不同。

11. 理解IP分组格式

IP分组格式:

 

因此IP数据报报头的最小长度为20个字节


固定部分(前20字节):

(1)版本 占4位,指IP协议的版本。通讯双方使用的IP协议版本必须一致。目前普遍使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。

(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),所以,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。所以数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样作是但愿用户尽可能减小开销。最经常使用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3)区分服务 占8位,用来得到更好的服务。这个字段在旧标准中叫作服务类型,但实际上一直没有被使用过。1998年IETF把这个字段更名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起做用。

(4)总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,所以数据报的最大长度为2^16-1=65535字节。

在IP层下面的每一种数据链路层都有本身的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)必定不能超过下面的数据链路层的MTU值。

(5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并非序号,由于IP是无链接服务,数据报不存在按序接收的问题。当数据报因为长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到全部的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志(flag) 占3位,但目前只有2位有意义。

● 标志字段中的最低位记为MF(MoreFragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已经是若干数据报片中的最后一个。

● 标志字段中间的一位记为DF(Don’tFragment),意思是“不能分片”。只有当DF=0时才容许分片。

(7)片偏移 占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,除了最后一个分片,每一个分片的长度必定是8字节(64位)的整数倍。

(8)生存时间 占8位,生存时间字段经常使用的的英文缩写是TTL(Time To Live),代表是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止没法交付的数据报无限制地在因特网中兜圈子,于是白白消耗网络资源。最初的设计是以秒做为TTL的单位。每通过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。后来把TTL字段的功能改成“跳数限制”(但名称不变)。路由器在转发数据报以前就把TTL值减1.若TTL值减小到零,就丢弃这个数据报,再也不转发。所以,如今TTL的单位再也不是秒,而是跳数。TTL的意义是指明数据报在网络中至多可通过多少个路由器。显然,数据报在网络上通过的路由器的最大数值是255.若把TTL的初始值设为1,就表示这个数据报只能在本局域网中传送。

(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪一个处理过程。

(10)首部检验和 占16位。这个字段只检验数据报的首部,但不包括数据部分。这是由于数据报每通过一个路由器,路由器都要从新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等均可能发生变化)。不检验数据部分可减小计算的工做量。

(11)源地址 占32位。

(12)目的地址 占32位。

可变部分:

IP首部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。某些选项项目只须要1个字节,它只包括1个字节的选项代码。但还有些选项须要多个字节,这些选项一个个拼接起来,中间不须要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。

增长首部的可变部分是为了增长IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增长了每个路由器处理数据报的开销。实际上这些选项不多被使用。新的IP版本IPv6就将IP数据报的首部长度作成固定的。

目前,这些任选项定义以下:

(1)安全和处理限制(用于军事领域)

(2)记录路径(让每一个路由器都记下它的IP地址

(3)时间戳(Time Stamp)(让每一个路由器都记下IP数据报通过每个路由器的IP地址和当地时间)

(4)宽松的源站路由(LooseSource Route)(为数据报指定一系列必须通过的IP地址)

(5)严格的源站路由(StrictSource Route)(与宽松的源站路由相似,可是要求只能通过指定的这些地址,不能通过其余的地址) 

这些选项不多被使用,并不是全部主机和路由器都支持这些选项。

 

12. 掌握IP地址及其分类

IP地址:网络号和主机号

  • 惟一的
  • 每一个主机至少有一个
  • 表示方法:点分十进制表示

IP地址的分类:




13. 掌握IPv4的保留地址空间

网络地址:主机部分全为“0”的 IP 地址

广播地址:主机部分全为“1”的 IP 地址

 

例子:

分析地址172.16.20.200

分析:

B类地址

子网部分:172.16

主机部分:20.200

网络地址:172.16.0.0

广播地址:172.16.255.255

 

保留的IP地址:

  • 32位全为0,0.0.0.0
    • 这个主机、这个网络
    • Cisco路由器指定的默认路由
  • 32位全为1,255.255.255.255  Flood Broadcast(受限的广播,路由器并不转发该地址的数据包)
  • 主机部分全为0,如172.16.0.0  网络地址
  • 主机部分全为1,如172.16.255.255  广播地址
  • 127.0.0.0  Lookback Network
  • 127.0.0.1 Lookback test

14. 掌握子网及子网划分

  • 局域网不断增加,愈来愈难于管理,必须将它分割成子网
  • 一个网络被分隔成几个部分(子网),可是在外界看来,该网络仍被当作一个总体 (体如今路由表例上,就是外部的路由器只对应一条路由)
  • 这也容许不一样的子网在一个组织内部链接起来

子网掩码

  • 路由器使用子网掩码决定分组往哪一个子网转发
  • 子网掩码可用点分十进制表示( 1表示网络位, 0表示主机位),也可用“ /网络位数+子网位数” 表示
    • 255.255.255.224
    • 202.10.23.102/27
  • 路由器采用“ AND ”操做(目的IP和子网掩码),获得目的网络地址
  • 使用这种机制,路由器没必要记录所有主机的IP地址,缩减了路由器的规模

子网规划

  • 将大网络分割成小网络
  • 划分子网实际上创建了一个由网络、子网和主机构成的三级层次结构,从而下降了路由器的表空间
  • 构建子网是经过从网络地址的主机部分借位来进行
  • 子网规划将致使IP地址空间的损失

 

肯定可用主机数量的公式 2n-2

 

借位规则:

  • 从主机域的高位开始借位;
  • 主机域至少保留 2 位。


可变长子网掩码 (VLSM)

  • VLSM容许将网络空间分为大小不等的部分。
  • 子网掩码将依据为特定子网所借用的位数而变化。
  • 先对网络划分子网,而后再将子网进一步划分子网。
  • 根据须要重复此过程,以建立不一样大小的子网


15. 理解IPv6

IPv6的主要改进:

  • 地址从32位升为128位
  • 简化了分组头
  • 更好地支持选项
  • 安全方面的改进
  • 服务质量的改进

IPv6地址空间:2128=3.4×1038=340涧(1涧=10^36)

IPv6地址首选格式:冒分十六进制

  • 4位一组,中间用“:”隔开,如: 2001:12FC:….
  • 若以零开头能够省略,全零的组可用“::”表示,如: 1:2::ACDR:….
  • 地址前缀长度用“/xx”来表示,如: 1::1/64


IPv6地址分类:

  • 单播地址(Unicast Address)
  • 组播地址(Multicast Address)
  • 任播地址(Anycast Address)
  • 特殊地址

IPv6地址子网规划

IPv6 子网划分是根据路由器的数量及它们所支持的网络来构建寻址分层结构

 

IPv4与IPv6的共存策略、迁移技术

共存策略

  • 短时期内从IPv4迁移到IPv6几乎是不可能的
  • Pv6在IPv4的基础上进行改进,在必定的时间内,IPv6将和IPv4共同存在共同运行

问题:

  • 解决IPv6网络的成熟与稳定
  • 解决IPv6网络与IPv4的网络之间通讯的问题。

三种基本技术(RFC1933):

  • 双协议栈(Dual Stack)(网络设备、网络系统必须有双协议栈的支持)
  • 隧道(Tunnel)(经过隧道,IPv6分组被做为无结构无心义的数据,封装在IPv4的数据报中,被IPv4网络传输)
  • 地址转换技术(不只发生在网络层,还有传输层和应用层,当双栈和隧道都没法使用的时候,才使用)

16. 掌握CIDR基本思想

无类别域间路由—CIDR

  • 缓解了地址枯竭的趋势;控制甚至缩减了路由表的开销
  • 分配IP地址的时候再也不以类别来分,而是按照可变长的地址块来分配

  • 路由表必须扩展,增长一个 32-bit 的子网掩码
  • 每一个路由表有一个三元组 (IP address, subnet mask, outgoing line)
  • 当一个分组到来到的时候
    • 分组中的目标IP地址(Destination IP)被检查
    • 目标IP和子网掩码进行与操做,得到目标网络地址,以查找路由表.
    • 若是路由表中有多个表项匹配 (这些表项有不一样的子网掩码) ,使用子网掩码最长的那个表项

17. 掌握NAT/PAT基本原理

NAT:net address translate NAT

私有IP地址和公有IP地址之间的转换。

PAT:port address translate(超载)

将多个私有IP地址影射到同一个公有IP地址的不一样端口

 

NAT--一个IP地址耗尽的快速修补方案

  • 内部网络使用私人地址,当内网须要和外网通讯的时候,私人地址转换成合法的global 的地址
  • 由NAT转换器(盒子)完成这种转换;NAT转换器可以转换而且维护一个地址转换表,以便回来的分组找到它的去处
  • 当回来的分组到达NAT转换器的时候,它查找地址转换表(以源端口做索引),得到目标机的私人地址,并转换地以后发往目标机

NAT 带来的问题

  • NAT违背了IP的结构模型 –每一个IP地址惟一地标识了一台机器
  • NAT将互联网改变成了“面向链接”的网络,NAT转换器维护着链接的状态,一旦它崩溃,链接也没有了
  • NAT违背了最基本的协议分层原则
  • 若是传输层不是采用TCP或UDP,而是采用了其它的协议,NAT将再也不工做
  • 有些应用会在payload中插入IP地址,而后接收方会提取出该IP地址并使用,可是NAT转换器对此一无所知,致使该类应用再也不有效
  • NAT让一个IP地址能够承载61,440(65536-4096)个私人地址(超载,PAT)


NAT/PAT的评价:

优势

  • 节省了公有IP地址;
  • 提供了内部网访问外网的灵活性;
  • 有必定的保密性。

缺点

  • 影响了部分协议和应用的通讯;
  • 增长了网络延时;
  • NAT转换设备的性能可能成为网络的瓶颈;
  • 影响了路由追踪工具的使用。

18. 理解ICMP及其应用

用来报告意外的事件或测试互联网

ping的工做原理

  • 使用ping命令(即调用ping过程)时,将向目的站点发送一个ICMP回声请求报文(包括一些任选的数据),
  • 如目的站点接收到该报文,必须向源站点发回一个ICMP回声应答报文,源站点收到应答报文(且其中的任选数据与所发送的相同),则认为目的站点是可达的,不然为不可达。

tracert命令

  • tracert过程是经过ICMP数据报超时报文来获得一张途经的路由器列表
  • 源主机向目的主机发一个IP报文,并置TTL为1,到达第一个路由器时,TTL减1,为0,则该路由器回发一个ICMP数据报超时报文,源主机取出路由器的IP地址即为途经的第一个路由端口地址
  • 接着源主机再向目的主机发第二个IP报文,并置TTL为2,而后再发第三个、第四个IP数据报,……直至到达目的主机
  • 但互联网的运行环境状态是动态的,每次路径的选择有可能不一致,因此,只有在相对较稳定(相对变化缓慢)的网络中,tracert才有意义


19. 掌握地址解析协议的功能和原理(ARP/RARP)

ARP (地址解析协议): IP 地址-> MAC 地址

RARP (逆向地址解析协议):MAC 地址 -> IP 地址

ARP的工做原理:


为了让ARP的工做更加高效,下面是几种优化措施

  • 缓存 ARP 结果
  • 在ARP请求中包括源机的 IP-to-MAC 地址的映射
  • 每台机器在启动的时候,广播它的IP-MAC地址对

缺省网关(代理 ARP)

  • 当源设备须要的目的地址与本身不在同一个网络时,若是源不知道目的MAC地址,它必须使用路由器的服务使它的数据达到目的,当路由器在这种方式下使用时,称为缺省网关。
  • 缺省网关是与源设备所处的网段相连的路由器接口上的IP地址

ARP表:

  • IP地址到MAC地址的映射表,储存在存储器(RAM)中,自动维护。(掉电消失)
  • 为了减小ARP请求的次数,每一个设备拥有本身的ARP表,包括路由器。

自动维护ARP表

  • 经过广播ARP请求中的源设备信息添加更新表;
  • 利用本身的ARP请求之应答信息来添加、更新表;
  • 删除超过必定时限的信息

RARP的工做原理:


20. 了解IP地址的分配方式

IP地址的分配方式:

  • 静态分配
  • 动态分配

 

IP地址的动态分配方式(RARP\Boot\pDHCP)

 

DHCP:动态主机配置协议

  • 能够灵活分配IP地址,节约IP地址的使用
  • 使一台主机迅速并动态地获取一个IP地址
  • 经过DHCP获取的 IP是租来的,可能会过时