(一)网络层技术总结

文章目录

  • 1. 网络协议IP
    • 1.1 IP地址
      • IP地址与硬件地址
    • 1.2 ARP地址解析协议
      • 广播找B,单播响应
    • 1.3 IP数据报格式
    • 1.4 IP层转发分组
  • 2.划分子网构建超网
    • 2.1划分子网
      • IP地址缺陷:
      • 划分子网特点
    • 2.2 子网掩码
    • 2.3 子网的分组转发
      • 转发思路
    • 2.4 无分类编址CIDR(构造超网)
    • 2.5最长前缀匹配
  • 3.ICMP网络控制报文协议
      • ICMP差错报告报文
      • ICMP询问报文
  • 4.路由选择协议
    • 4.1分层次的路由选择协议
    • 4.2 RIP内部网关协议
      • 缺点 :坏消息传得慢
      • 总结
    • 4.3 OSPF内部网关协议
    • 4.4 BGP外部网关协议
    • 4.5 ipv6
      • ipv6特点
      • ipv6向IPv4过度策略
  • 5. IP多播
    • 5.1 IGMP网际组管理协议
      • 多播中会出现的问题
      • IGMP工作的两个阶段
      • 多播路由器选择协议

1. 网络协议IP

IP配套三个协议:ARP(地址解析协议),ICMP(网际控制报文协议),IGMP(网际组管理协议)

1.1 IP地址

A类地址的网络号字段占1个字节,只有7位可供使用(该字段的第一位已固定为0),但可指派的网络号是126个(即128-2)。减2的原因是:

  1. IP地址中全0的IP地址是个保留地址,意思是“本网络”;
  2. 网络号为127(即011111)保留作为本地软件环回测试:本主机的进程之间的通信之用。

若主机发送一个目的地址为环回地址(例如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。

IP地址::={<网络号>,<主机号>}

(一)网络层技术总结_第1张图片

每一个IP地址都由网络号主机号两部分组成。从这个意义上说,IP地址是一种分等级的地址结构。分两个等级的好处是:

  1. IP地址管理机构在分配IP地址时只分配网络号(第一级),而剩下的主机号(第二级)则由得到该网络号的单位自行分配。这样就方便了IP地址的管理;

  2. 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间以及查找路由表的时间。

(一)网络层技术总结_第2张图片

IP地址与硬件地址

从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址

在网络层和网络层以上使用的是IP地址,而数据链路层及以下使用的是MAC地址。在IP层抽象的互联网上只能看到IP数据报,在局域网的链路层,只能看见MAC帧。

(一)网络层技术总结_第3张图片

IP数据报中首末地址一直不变,MAC帧中会随着路由器的变换而变化。


1.2 ARP地址解析协议

ARP协议:通过IP地址找到MAC地址。

每一台主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。

当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。如果没有就自动运行ARP,找到B的硬件地址。

广播找B,单播响应

注意:

  1. A发出请求,B响应之后,B也会把A的MAC地址存入ARP缓存。
  2. ARP缓存中超出生存空间的地址会被删除掉,再广播。
  3. ARP只能解决同一局域网的主机/路由器的IP地址和MAC地址。

对于不在同一网络的ip地址,不能通过一次ARP进行解析地址;当然其实也不需要直接知道目标ip的MAC地址,只要知道下一个路由器的地址,接下来的工作就交给下一个路由器继续转发就好了。


1.3 IP数据报格式

(一)网络层技术总结_第4张图片
IP数据报格式
  1. 总长度: 首部+数据部分

  2. 标识: 每产生一个数据报,标识+1,分片后的子数据报拥有相同的标识,标识的意义就是方便分片后的数据报重新组合

  3. 标志: 最低位MF=1时表示还有分片;中间位DF=1时表示不能分片

  4. 片偏移:在分片前的相对位置,单位是8个字节,也用于分片重组

  5. 生存时间(TTL): 单位是跳数,跳一个路由器->TTL-1

  6. 首部校验和:只检验数据报的首部,不检验数据部分

数据链路层协议规定了最大传送单元MTU,总长度大于MTU时,IP数据报会分片

(一)网络层技术总结_第5张图片
数据报分片举例

1.4 IP层转发分组

如果每一个网络有1万台主机,四个网络就有4万台主机,因而每一个路由表就有4万个项目,即4万行。每一行对应于一台主机。但若路由表指出到某个网络应如何转发,则每个路由器中的路由表就只包含4个项目,即只有4行,每一行对应于一个网络。

在路由表中,对每一条路由最主要的是以下两个信息

{目的网络地址(网络号),下一跳地址}
  1. IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)
  2. 只有到达最后一个路由器时,才试图向目的主机进行直接交付
  • 特定主机路由: 虽然互联网所有的分组转发都是基于目的主机所在的网络,但也有这样的特例:对特定的目的主机指明一个特定主机路由。

  • 默认路由:只要目的网络是其他网络(不是N1或N2),就一律选择默认路由,把数据报先间接交付路由器R1,让R1再转发给互联网中的下一个路由器,一直转发到目的网络上的路由器。

(一)网络层技术总结_第6张图片

### 分组转发算法

  1. 数据报提取IP地址D,再提取网络地址N
  2. N在当前网络,直接交付
  3. 若路由表有目的地址D的特定主机路由R,交付给R
  4. 若路由表有网络地址N的路由R,交付给R
  5. 若有默认路由R,交付给R
  6. 报告转发分组出错

路由表的建立和更新之后会提

2.划分子网构建超网

2.1划分子网

IP地址缺陷:

  1. IP地址空间的利用率有时很低。
  2. 给每一个物理网络分配一个网络号会使路由表变得太大。
  3. 两级IP地址不够灵活。

划分子网特点

  • 物理网络划分成若干子网,对外仍表现为一个网络。
  • 划分子网将ip地址变为三级地址。
IP地址::={<网络号>,<子网号>,<主机号>}
  • 根据IP数据报的目的网络号找到连接在本单位网络上的路由器。再按目的网络号和子网号找到目的子网,把IP数据报交付目的主机。
(一)网络层技术总结_第7张图片

2.2 子网掩码

32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此必须另外想办法,这就是使用子网掩码
(一)网络层技术总结_第8张图片

不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算(AND),就立即得出网络地址来。

路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码

我们以一个B类地址为例,说明可以有多少种子网划分的方法。在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的(见表4-6)

(一)网络层技术总结_第9张图片

表中的“子网号的位数”中没有0,1,15和16这四种情况,因为这没有意义。

划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。

2.3 子网的分组转发

使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址

转发思路

  1. 提取IP地址D
  2. 判断能否直接交付
  3. 判断是否为特定主机路由
  4. 对路由表每行的子网掩码和D相与,结果N与该行网络地址匹配,则转发
  5. 转发至默认路由
  6. 报告转发出错

2.4 无分类编址CIDR(构造超网)

IP地址::={<网络前缀>,<主机号>/<网络前缀位数>}

128.14.35.7/20 = 10000000 00001110 00100011 00000111

20也可以理解为地址掩码(就是子网掩码)中1的个数。

(一)网络层技术总结_第10张图片

由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合或者构成超网,它使得路由表中的一个项目可以表示原来传统分类地址的很多个路由。

把四个系的路由聚合为大学的一个路由(即构成超网),是将网络前缀缩短。网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。

2.5最长前缀匹配

路由表匹配下一跳地址如果有多个匹配结果,应当从匹配结果中选择具有最长网络前缀的路由。

这是因为网络前缀越长,其地址块就越小,因而路由就越具体最长前缀匹配又称为最长匹配或最佳匹配

3.ICMP网络控制报文协议

为了更有效地转发IP数据报提高成功交付的机会,在网际层使用了网际控制报文协议ICMP。
(一)网络层技术总结_第11张图片

ICMP报文的种类有两种,即ICMP差错报告报文ICMP询问报文

ICMP差错报告报文

  1. 终点不可达 :路由器或主机无法到达终点
  2. 时间超过 :生存时间为0,向源点发送
  3. 参数问题 :首部字段有值不正确
  4. 改变路由 :路由器把改变的路由的报文发送给主机

ICMP询问报文

  1. 回送请求和回答 :测试目的站是否可连
  2. 时间戳请求和回答 : 请求主机或路由器回答当前日期和时间

4.路由选择协议

倘若从路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分,则只有两大类。

  1. 静态路由选择也叫做非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
  2. 动态路由选择也叫做自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。

所谓“最佳路由选择”只能是相对于某一种特定要求下得出的较为合理的选择而已。

4.1分层次的路由选择协议

整个互联网划分为许多较小的自治系统,一般都记为AS。自治系统AS是在单一技术管理下的一组路由器,而这些路由器使用一种自治系统内
部的路由选择协议和共同的度量。

在目前的互联网中,一个大的ISP就是一个自治系统。这样,互联网就把路由选择协议划分为两大类,即:

  1. 内部网关协议IGP,即在一个自治系统内部使用的路由选择协议,而这与在互联网中的其他自治系统选用什么路由选择协议无关。

  2. 外部网关协议EGP,若源主机和目的主机处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。

自治系统之间的路由选择也叫做域间路由选择,而在自治系统内部的路由选择叫做域内路由选择

4.2 RIP内部网关协议

RIP是一种分布式的基于距离向量的路由选择协议(距离就是跳数),是互联网的标准协议。

  • RIP特点:
  1. 仅和相邻路由器交换信息。
  2. 路由器交换的信息是自己现在的路由表。
  3. 按固定的时间间隔交换路由信息。
  • RIP使用的距离向量算法:
  1. R发来的RIP报文,下一条为R,距离X++
  2. 对于处理后的报文
    if null -> 添加
    else {
           
        if 下一跳==R -> 更新
        else 下一跳 = min(curr,prep)
    }
    
  3. 报文超时->不可达,x=16

缺点 :坏消息传得慢

网络出现故障时要经过比较长的时间才能将此信息传送到所有的路由器。
(一)网络层技术总结_第12张图片

R1知道不可达网1,但R2不知道;R2使R1误以为R2可以到,互相传递错误信息,直至跳数超过16

总结

RIP实现简单,开销较小,但坏消息传得慢,距离限制为16,只适合小型网络

4.3 OSPF内部网关协议

开放最短路径优先OSPF最主要的特征使使用了分布式的链路状态协议,与RIP相比有三个要点不同:

  1. 向AS中所有路由器发送信息(洪泛法),每个路由器再发给除了刚发来信息的剩下所有路由器
  2. 发送的信息是本路由器和相邻的所有路由器的链路状态。除了距离还有费用、距离、时延和带宽等等,有时可以称这个度量为代价
  3. 只有当链路状态发生变化时,路由器才用洪泛法发送此信息。
(一)网络层技术总结_第13张图片

采用OSPF能用于规模庞大的网络,OSPF通常会把一个大的自治区域化成多个小的区域,在上层的区域叫做主干区域,从其他区域来的信息由区域边界路由器进行概括。每个区域至少有一个边界路由器,主干区域内的路由器称为主干路由器,与其他自治系统相连的叫做自治系统边界路由器(R6)

4.4 BGP外部网关协议

  1. 互联网的规模太大,使得自治系统AS之间路由选择非常困难。
  2. 自治系统AS之间的路由选择必须考虑代价如何度量(通过哪个自治区,付费、安全等)。

由于上述情况,边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。BGP采用了路径向量路由选择协议,它与距离向量协议(如RIP)和链路状态协议(如OSPF)都有很大的区别。

在配置BGP时,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人一般说来,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。

(一)网络层技术总结_第14张图片

在图中画出了三个自治系统中的5个BGP发言人。每一个BGP发言人除了必须运行BGP协议外,还必须运行该自治系统所使用的内部网关协议,如OSPF或RIP

4.5 ipv6

  1. IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
  2. IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
  3. IPv6将P4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
  4. IPv6支持即插即用(即自动配置),不需要DHCP协议。
  5. IPv6首部长度必须是8B的整数倍,Iv4首部是4B的整数倍。
  6. IPv6只能在主机处分片,Pv4可以在路由器和主机处分片。
  7. ICMPv6:ICMP+IGMP+ARP,附加报文类型“分组过大”
  8. IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
  9. IPv6取消了协议字段,改成下一个首部字段。
  10. IPv6取消了总长度字段,改用有效载荷长度字段。
  11. IPv6取消了服务类型字段。

ipv6特点

  1. 单播:一对一通信可做源地址+目的地址
  2. 多播:一对多通信可做目的地址
  3. 任播:一对多中的一个通信可做目的地址(ipv6独有)

ipv6向IPv4过度策略

  • 双栈协议:双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。

如果是路由器,那么它的不同接口上,分别配置了IPv4地址和IPv6地址。

如果是计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。

  • 隧道技术:通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)
    可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。

5. IP多播

IP多播(以前曾译为组播)是由一个源点发送到许多个终点,即一对多的通信。

与单播相比,在一对多的通信中,多播可大大节约网络资源

  1. 视频服务器只需把视频分组当作多播数据报来发送,并且只需发送一次
  2. 路由器R1在转发分组时,需要把收到的分组复制成3个副本,分别向R2、R3和R4各转发1个副本。
  3. 当分组到达目的局域网时,由于局域网具有硬件多播功能,因此不需要复制分组,在局域网上的多播组成员都能收到这个视频分组。
(一)网络层技术总结_第15张图片

其实多播组的标识符就是IP地址中的D类地址。显然,多播地址只能用于目的地址,而不能用于源地址。此外,对多播数据报不产生ICMP差错报文

5.1 IGMP网际组管理协议

路由器又怎样知道多播组的成员信息呢?这就要利用一个协议,叫做网际组管理协议IGMP

IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组

显然只有IGMP协议是不够的(本地局域网),还需要多播路由选择协议协同工作(互联网)。

多播中会出现的问题

  1. 多播转发必须动态的适应多播组成员的变化
  2. 多播路由器转发数据报时,目的地址还与发送源相关(发送源在目的地址中时,就不再向发送源转发)
  3. 多播数据报可以从非多播组成员发出,也可以从没有组成员接入的网络

IGMP工作的两个阶段

  1. 加入新成员:该主机应向多播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给互联网上的其他多播路由器

  2. 动态调整:组成员关系是动态的。本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要有一台主机对某个组响应,那么多播路由器就认为这个组是活跃的。

多播路由器选择协议

多播路由器的选择实际时创建了以源主机为根节点的多播转发树。同一个多播组,不同的转发源会有不同的多播转发树。

  1. 洪泛和剪除:适用小的多播组,采用反向路径广播RPB,以源点为终点,找到每个路由器的最短路径,创建多播转发树
  2. 隧道技术:适用于多播组的位置在地理上很分散时,通过隧道技术将多播的数据报封装成单播数据报,通过隧道到达目的路由器时再解封进一步转发。
  3. 基于核心的发现技术:对于一个多播组G,指定一个核心路由器,给出他的单播地址,核心路由器会创建多播组G的多播转发树

你可能感兴趣的:(计算机网络,网络)