读书笔记之《计算机网络》---第四章 网络层

本章目录

  1. 网络层提供的两种服务
  2. 国际协议IP
  3. 划分子网和构造超网
  4. 网际控制报文协议ICMP
  5. 因特网的路由选择协议
  6. IP多播
  7. 虚拟专用网VPN和网络地址转换NAT

网络层提供的两种服务
虚电路服务和数据报服务
虚电路服务:当计算机进行通信时,应当建立连接(在分组交换中是建立一条虚电路VC),来保证双方通信的所需的一切网络资源
因特网采用的设计思路(数据报服务):网络层只提供简单的、无连接的、尽最大努力交付的数据报服务,不提供服务质量的承诺
这里写图片描述
这里写图片描述

网际协议IP
网际协议IP是TCP/IP体系中最主要的协议之一,与IP协议配套使用的协议有四个:

  1. 地址解析协议ARP,
  2. 逆地址解析协议RARP,
  3. 网际控制报文协议ICMP,
  4. 网际组管理协议IGMP
    这里写图片描述

网路互连需要中间设备,根据中间设备所在的层次可以有四类中间设备:

  1. 物理层的中间设备是转发器或中继器、集线器
  2. 数据链路层的中间设备是网桥或交换机
  3. 网络层的中间设备是路由器
  4. 在网络层以上使用的中间设备叫网关
    互联网可以有多重异构网络互连组成

分类的IP地址:
IP地址由因特网名字与号码指派公司ICANN进行分配
IP地址的编址方法经历三个阶段:分类的IP地址、子网的划分、构成超网
分类IP地址:分为A、B、C、D、E类,如下图所示:
这里写图片描述
A类地址:网络号占一个字节,第一位固定为0
B类地址:网络号占两个字节,第一二位固定为10
C类地址:网络号占三个字节,第一二三位固定为110
有多个网络接口的主机称为多归属主机

IP地址与硬件地址:
IP地址放在IP数据报首部,MAC地址放在MAC帧首部,数据链路层是看不到IP地址的
在IP层抽象的互联网上只能看到IP数据报
路由器根据目的的IP地址的网络号进行路由选择
在局域网的链路层只能看到MAC帧

地址解析协议ARP和你地址解析协议RARP:
RARP协议:根据主机的MAC地址找到主机的IP地址
ARP协议:根据主机的IP地址找到主机的MAC地址
ARP协议特点:

  1. 每个主机都已一个IP地址到硬件地址的映射表(ARP高速缓存),缓存中的记录都设置有生存时间,超过生存时间的将被删除
  2. 如果ARP高速缓存中未找到记录,则通过ARP协议发送广播的ARP请求分组
    这里写图片描述

需要强调指出:

  1. 在IP层抽象的互联网上只能看到IP数据报
  2. IP数据报中有源IP地址,但路由器只根据目的IP地址的网络号进行路由选择
  3. 局域网的链路层只能看到MAC帧
  4. IP层抽象的互联网屏蔽了下层的复杂的细节,只要我们在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究和主机或路由器之间的通信

IP数据报的格式如下图:
这里写图片描述

  1. 版本:占4位,指IP协议的版本
  2. 首部长度:占4位,单位是32位即4字节,用来表示IP数据报首部占用的字节数,IP数据报首部3. 长度字节数 = 首部长度字段值*4,最大60个字节
  3. 区分服务:占8位,用来获得更好的服务
  4. 总长度: 指首部和数据之和的长度,该值指的是分片中每一片的总长度,一个IP数据报的长度一定不能超过最大传送单元MTU的长度
  5. 标识:占16位,“标识”字段不是序号,因为IP是无连接服务的,所以数据报不存在按序接收的问题,当数据报长度超过MTU时,就需要分片,而标识字段会复制到每一片中,也就是同一数据报的每一片的标识是一样的,这样可以使分片后的数据表片能够正确地重装
  6. 标志:占3位,目前只有前两位有意义,标志字段最低位为MF,MF=1表示后面还有分片,MF=0表示为最后一个分片,中间一位为DF,意思是不能分片,只有当DF=0时才允许分片
    片偏移:占13位,表示在分片后,某片在分组中的相对位置
  7. 生存时间:生存时间常用英文缩写TTL(Time To Live)表明数据报在网络中的寿命,最初为时间限制,后来改为跳数限制(经过多少个路由)
  8. 协议:占8位,指出数据报携带的数据是使用何种协议,是目的主机的IP层知道应将数据上交给谁处理。
    这里写图片描述
  9. 首部校验和:占16位,这个字段值检验数据报的首部,不包含数据部分
    这里写图片描述
  10. 源地址:占32位
  11. 目的地址:占32位
  12. IP数据报首部可变部分:可变部分是一个选项字段,用来支持各种其他功能

路由表项保存的是IP地址的网络号,一条路由主要的两部分(目的网络地址,下一跳地址)
路由器的分组转发算法:

  1. 从首部提取目的地的IP地址,得到网络号
  2. 查找路由表进行直接交付或间接交付
  3. 如果有特定主机路由,则传给特定主机路由,否则进行下一步
  4. 有下一跳路由,发送到下一跳路由,否则执行下一步
  5. 没有下一跳路由发送给默认路由,否则下一步
  6. 报告转发出错

划分子网和构造超网
两级IP地址的缺陷:

  1. IP地址空间的利用率很低,有很大的浪费
  2. 给每一个物理网分配一个网络号导致路由表过大
  3. 两级IP地址不灵活
    划分子网的基本思路:
  4. 一个物理网可以划分成若干子网,划分子网是公司内部的工作,外部网络看不见,仍属于一个网络
  5. 两级IP地址变为三级IP地址IP地址 ::={网络号,子网号,主机号}
  6. 外界发送给本单位主机的IP数据报仍是通过网络号找到本单位的路由器
    路由器的路由表需要包含IP地址和子网掩码
    一般子网号不能全0或全1

使用子网时路由器转发分组算法:

  1. 从数据报首部提取ip地址D
  2. 判断是否为直接交付,对路由器直接相连的网络逐个检查,用各个网络的子网掩码与D逐位与,看结果是否与相应网络地址匹配,都不匹配执行3
  3. 路由表中有目的主机的特定路由,把数据报直接交付个特定路由,否则执行4
  4. 对路由表的每一行用其子网掩码和D逐位与,看结果是否与该目的网络地址匹配,匹配则发给下一跳路由,不匹配执行5
  5. 转发给默认路由,没有默认路由执行6
  6. 报告转发错误

无分类编址CIDR(构造超网):
在1992年因特网面临三个重要问题:

  1. B类地址在1992年已经分配了一般
  2. 因特网主干网上的路由表项目数量急剧增长
  3. 整个IPv4的地址空间最终将耗尽
    CIDR的主要特点:
  4. 消除了传统的A、B、C类地址划分子网的概念,将IP地址分为网络前缀和主机两部分,从三级又变回两级,IP地址::={网络前缀,主机号},CIDR使用“斜线记法”在IP地址后加上“/”,然后写上网络前缀占的位数
  5. CIDR把网络前缀都相同的连续IP组成一个CIDR地址块。公司在获得CIDR块后仍可以进行子网划分
    一个CIDR地址块中有很多地址,路由表利用CIDR地址块来查找目的网络,这种方法称为路由聚合或构成超网
    最长前缀匹配:是用CIDR前缀标记法时,可能在路由器中匹配到不知一条结果,这时选择网络前缀最长的路由
    使用二叉线索查找路由表:通过唯一前缀构造二叉树,每一个前缀结点需要包含对应网络前缀的子网掩码
    这里写图片描述

网际控制报文协议ICMP
ICMP允许主机或路由器报告差错情况和提供异常情况的报告
ICMP是IP层的协议,是因特网的标准协议
ICMP作为IP数据报的数据部分,加上IP首部发送出去
这里写图片描述

ICMP报文种类有两种:ICMP差错报告报文和ICMP询问报文
这里写图片描述
终点不可达:路由器或主机不能交付数据报
源点抑制:路由器或主机由于拥塞而丢弃数据
时间超过:当路由器接收到生存时间为0的数据报时丢弃,并发送超时报文
参数问题:路由器或主句收到数据报首部的字段不正确,丢弃报文
改变路由(重定向):路由器吧改变路由报文发送给主机,让主机进行重定向
这里写图片描述
由上图可知,ICMP差错报文是将需要进行差错报告的IP数据报的首部和数据字段的前八个字节提取出来,作为ICMP报文的数据字段,提取数据字段的前八个字节是为了的到运输层的端口号。

不应该发送ICMP差错报告报文的情况:

  1. 对ICMP差错报文不发送ICMP差错报告报文
  2. 对第一个分片的数据报片后所有后续数据报片不发送ICMP差错报告报文
  3. 对具有多播地址的数据报不发送ICMP差错报告报文
  4. 对具有特殊地址如127.0.0.0或0.0.0.0的数据报不发送ICMP差错报告报文
    常用的ICMP询问报文有两种:
  5. 回送请求和回答:主机或路由器向一个特定的目的主机发出询问,收到此报文的主机必须发送ICMP回送回答报文
  6. 时间戳请求和回答:请求某个主机或路由器回答当前的日期和时间

ICMP的主要应用有:

  1. 分组网间探测PING,测试两个主机之间的连通性
  2. traceroute(Unix中的命令)跟踪一个分组从源点到终点的路径,tracert(Windows中的命令)

因特网的路由选择协议
路由选择协议的核心就是路由算法,一个理想的路由算法应具备的特点:

  1. 算法必须是正确的和完整地:分组一定能够到达最终的目的网络和主机
  2. 算法在计算上应简单:路由选择的计算不应使网络通信量增加太多额外开销
  3. 算法应能适应通信量和网络拓扑的变化:要有自适应性,算法能够自适应地改变路由以均衡各链路的负载
  4. 算法应具有稳定性:路由算法应收敛于一个可接受的解,不应使得出的路由不停变化
  5. 算法应是公平的:路由选择算法应对所有用户的是平等的
  6. 算法应是最佳的:路由选择算法应当能够找出最好的路由

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

  1. 静态路由选择策略
  2. 动态路由选择策略

分层的路由选择协议:因特网将整个互联网划分成许多小的自治系统AS,AS的内部路由选择协议与外部隔离
因特网把路由选择协议划分为两大类:

  1. 内部网关协议IGP:自治系统内部使用的路由选择协议,称为域内路由选择,主要有RIP、OSPF协议
  2. 外部网关协议EGP:自治系统之间使用的路由选择协议,称为域间路由选择,主要有BGP协议

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

内部网关协议RIP:
工作原理:RIP是一种分布式的基于距离向量的路由选择协议,要求网络中每一个路由器都要维护从它到每一个目的网路的距离(跳数)记录,RIP不能再两个网络之间同时使用多跳路由,会选择一条最短距离路由
RIP协议的特点:

  1. 仅和相邻路由交换信息
  2. 路由器交换的信息是当前本路由器是知道的全部信息,即自己的路由表
  3. 按固定的时间间隔交换路由信息
    距离向量算法:
  4. 对接收到的相邻路由器X发来的RIP报文进行修改,把“下一跳”字段改为X,所有距离字段加1
  5. 对修改后的RIP报文进行一下步骤
    a) 若原来的路由表中没有目的网络N,子将该项添加到路由表中,否则进行b
    b) 若原有路由表项的下一跳路由地址是X,则把收到项目替换路由表中原项目,否则进行C
    c) 若收到的项目中距离小于路由表中的距离,则进行更新
    d) 最后返回
    RIP协议中每一个路由器都有到每一个目的网路的路由,并且都是最短的,但是由于位置不同每一个路由器的路由表都不同
    RIP协议的报文格式:最新版本RIP2,与RIP1首部相同,但是路由部分不一样
    这里写图片描述
    RIP2报文中的路由部分有若干路由信息组成,每个路由信息需要用20个字节。
    地址族标识符:标记使用的地址协议
    路由标记:自治系统号ASN
    网络地址:指向的某个网络的网络地址
    子网掩码:
    下一跳路由
    距离
    一个RIP报文最多包含25个路由,最大长度=4+20X25=504字节
    RIP2使用鉴别功能时,第一个路由信息的位置将用作鉴别,该鉴别位地址族标识符全为1,路由标记为鉴别类型,剩下16字节为鉴别数据,在鉴别数据之后才写入路由信息,最多只能放24个

内部网关协议OSPF:
开放最短路径优先OSPF协议的基本特点:开放,最短路径优先,使用分布式的链路状态协议

  1. 向本自治系统的所有路由器发送信息,洪泛法
  2. 发送的信息就是本路由器相邻的所有路由器的链路状态
  3. 只有当链路状态发生变化时,路由器才向所有路由器进行洪泛法
    由此可见,所有路由器最终都能建立一个链路状态数据库,实际上是全网拓扑结构图,这个拓扑图在全网范围内是一致的
    OSPF将一个自治系统再划分成多个更小的范围称为区域
    采用洪泛法交换链路状态信息的范围只局限于区域内
    OSPF使用层次结构的区域划分,上层区域称为主干区域,其他区域来的信息都有区域边界路由器进行概括,主干区域中的连接其他自治系统的路由称为自治系统边界路由器
    OSPF不用UDP而是直接使用IP数据报传送

OSPF使用24字节的固定长度首部,如下图所示:
这里写图片描述
版本
类型 :五种分组类型中的一种
分组长度:包括OSPF首部在内的分组长度
路由标识符:标志发送该分组的路由器的接口的IP地址
区域标识符:分组属于的区域的标识符
检验和:检测分组中的差错
鉴别类型:目前只有两种0不用1口令
鉴别:鉴别类型为0时就填入0值,鉴别类型为1时填入8个字符的口令
OSPF的其他特点:

  1. OSPF对于不同类型的业务可计算出不同的路由
  2. 如果到一网络有多条路径,可将通信量分配给这几条路径,称为路径间的负载平衡
  3. 所有的OSPF路由器之间交换的分组都具有鉴别功能
  4. OSPF支持可变长度的子网划分和无分类编址CIDR
  5. OSPF让每一条链路状态带上一个32位的序号,序号越大表示越新
    OSPF的五种分组类型:
  6. 类型1,问候分组,用来发现和维持邻站的可达性
  7. 类型2,数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目摘要信息
  8. 类型3,链路状态请求分组,向对方请求发送某些链路状态项目详细信息
  9. 类型4,链路状态更新分组,用洪泛法向全网更新链路状态
  10. 类型5,链路状态确认分组,对链路更新分组的确认
    只有链路状态数据库内容一样的路由器才是“完全邻接的”
    OSPF规定,每两个相邻路由器每隔10秒钟要交换一次问候分组。
    OSPF中每个路由器都保存该分区中的所有路由的的状态信息。

外部网关协议BGP:
边界网关协议BGP是不同AS的路由器之间交换路由信息的协议
BGP产生的主要两个原因:

  1. 因特网规模太大,使得AS之间路由选择非常困难
  2. AS之间的路由选择必须考虑有关策略
    BGP力求寻找一条比较好的路由而不是最短路由,BGP采用路径向量路由选择协议
    BGP发言人(BGP边界路由)除了需要运行BGP协议外,还需要运行AS的内部网关协议如OSPF或RIP
    在RFC4271中规定BGP-4有四种报文:
  3. OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系
  4. UPDATE(更新)报文:用来通告某一路由的信息
  5. KEEPALIVE(保活)报文:用来周期性的证实邻站的连通性
  6. NOTIFICATION(通知)报文:用来发送检测到的差错
    这里写图片描述

路由器的结构:路由器是具有多个输入输出端口的专用计算机,其任务就是转发分组
这里写图片描述
整个路由器结构分为两大部分:路由选择部分和分组转发部分
分组转发由三部分组成:交换结构、一组输入端口和一组输出端口
交换结构又称为交换组织:根据转发表对分组进行处理,将输入从合适的输出端口转发
转发是路由器根据转发表把数据报从合适端口转发的过程,转发表从路由表中得到
这里写图片描述
这里写图片描述
交换结构:将分组从一个输入端口转移到某一个合适的输出端口
三种常用的交换方法:存储器交换、总线交换、互连网络交换
这里写图片描述

IP多播
能够运行多播协议的路由器称为多播路由器
多播主干网MBONE:可把分组传播到地点分散但属于一个组的许多主机中。
因特网上进行多播叫做IP多播,IP多播传送的分组需要使用多播IP地址
多播使用D类IP地址作为目的地址

在局域网进行硬件多播:
IP多播地址转换成物理多播地址,每一个MAC地址中,前24位是IANA指定的,第一个字节的最后一位为1时,为多播地址,而多播地址占IANA分配到的地址数的一半,例如00-00-5E-00-00-00到00-00-5E-FF-FF-FF,多播地址范围是01-00-5E-00-00-00到01-00-5E-7F-FF-FF,只有23位可作为多播,IP多播地址224.128.64.32与224.0.64.32转换成硬件多播地址都是01-00-5E-00-40-20
这里写图片描述

完成多播需要两个协议:

  1. 网际组管理协议IGMP:IGMP协议让连接在本地局域网的多播路由器知道本局域网上是否有主机参加或退出某个多播组
    多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络
    IGMP的工作分为两个阶段:
  2. 当主机加入多播组时,向多播地址发送一个IGMP报文说明自己加入组,多播路由器收到IGMP报文后,利用多播路由选择协议将组成员关系发送给其他多播路由器
  3. 组成员关系是动态的,多播路由器需要周期性的探询本地局域网的主机
    IGMP采用的一些具体措施:
  4. 主机和多播路由器使用IP多播,如果可能,携带IGMP报文的数据报都用硬件多播来传送
  5. 多播路由探询组成员关系时,对所有组只发送一个请求信息的询问报文,不需要每个组都发
  6. 当同一网络上连接有多个多播路由器时,能够迅速有效地选择其中一个来探询主机的成员关系
  7. IGMP的询问报文中有一个数值N,指明最长响应时间
  8. 同一组内每一个主机都要监听响应,只要本组的其他主机发送了响应,自己就可以不再发送响应
    多播数据报的发送者和接收者都不知道这个多播组有多少成员及这些成员是那些主机,

多播路由选择协议:多播路由选择主要是找出以源主机为根节点的多播转发树
在转发多播数据报是使用了三种方法:

  1. 洪泛与剪除,为了避免洪泛兜圈子,采用反向路径广播RPB策略
  2. 隧道技术,适用于地理上分散的网络之间,在不支持多播的链路上,多播数据报再封装,成单播数据报
    这里写图片描述
  3. 基于核心的发现技术:对每一个多播组G制定一个核心路由器,给出它的IP单播地址。

一些多播路由选择协议:

  1. 距离向量多播路由选择协议DVMRP
  2. 基于核心的转发树CBT
  3. 开放最短通路优先的多播扩展MOSPF
  4. 协议无关多播-稀疏方式PIM-SM
  5. 协议无关多播-密集方式PIM-DM

虚拟专用网VPN和网络地址转换NAT

在因特网中的所有路由器,对目的地址是专用地址的数据报一率不转发
专用地址有:
10.0.0.0到10.255.255.255(或记为10/8,称为24位块)
172.16.0.0到172.31.255.255(或记为172.16/12,称为20位块)
192.168.0.0到192.168.255.255(或记为192.168/16,称为16位块)
这里写图片描述

网络地址转换NAT:将本地地址转换成全球IP地址,工作原理如下图:
这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_25744595/article/details/82704261