zoukankan      html  css  js  c++  java
  • 计算机网络(四)网络层

    本章最重要的内容:
    (1)虚拟互联网络的概念
    (2)IP地址与物理地址的关系
    (3)传统的分类IP地址(包括子网掩码)和无分类域间路由选择CIDR
    (4)路由选择协议的工作原理

    4.1 网络层提供的两种服务

    网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

    网络在发送分组时不需要先建立连接。

    每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。

    网络层不提供服务质量的承诺。

    即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

    这里写图片描述


    4.2 网际协议IP

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

    地址解析协议 ARP (Address Resolution Protocol)

    逆地址解析协议 RARP (Reverse Address Resolution Protocol)

    网际控制报文协议 ICMP (Internet Control Message Protocol)

    网际组管理协议 IGMP (Internet Group Management Protocol)

    这里写图片描述

    4.2.1 虚拟互联网络

    中间设备又称为中间系统或中继(relay)系统。
    物理层中继系统:转发器 (repeater)。

    数据链路层中继系统:网桥或桥接器 (bridge)。

    网络层中继系统:路由器 (router)。

    网络层以上的中继系统:网关 (gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。

    4.2.2 分类的IP地址

    每一类地址都由两个固定长度的字段组成,其中一个字段是网络号net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号host-id,它标志该主机(或路由器)。

    两级的 IP 地址可以记为:
    这里写图片描述

    这里写图片描述

    网络号或主机号各比特位为全0或全1的地址有特殊的意义,必须保留而不能分配给主机使用。
    全1的意义为“全部”(all)。
    全0的意义为“这个”(this)。
    这里写图片描述

    这里写图片描述

    4.2.3 IP地址和硬件地址

    这里写图片描述

    MAC地址:负责实际通信
    IP地址:软件地址,负责网络直连

    4.2.4 地址解析协议ARP

    已知IP -> 要找MAC

    使用ARP的四种典型情况:

    发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。

    发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。

    发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。

    发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。

    (1)A查询B的MAC地址时,为什么将(IPAMACA)写入ARP请求?
    间接告知关于(IPAMACA)映射,B从而无需运行ARP协议。

    (2)X收到(IPAMACA)的映射时,X是否将(IPAMACA)写入到缓冲区?
    若cache有映射(IPAMACA),则更新,若没有,则忽略。

    4.2.5 IP数据报的格式

    一个 IP 数据报由首部和数据两部分组成。

    首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。

    在首部的固定部分的后面是一些可选字段,其长度是可变的。

    这里写图片描述

    版本 — 占 4 位,指 IP 协议的版本
    目前的 IP 协议版本号为 4 (即 IPv4)

    首部长度 — 占 4 位,可表示的最大数值
    是 15 个单位 (一个单位为 4 字节)
    因此 IP 的首部长度的最大值是 60 字节。

    区分服务 — 占 8 位,用来获得更好的服务。
    在旧标准中叫做服务类型,但实际上一直未被使用过。
    1998 年这个字段改名为区分服务。
    只有在使用区分服务 (DiffServ) 时,这个字段才起作用。
    在一般的情况下都不使用这个字段

    总长度 — 占 16 位,指首部和数据之和的长度,
    单位为字节,因此数据报的最大长度为 65535 字节。
    总长度必须不超过最大传送单元 MTU。

    标识 (identification) 占 16 位,
    它是一个计数器,用来产生数据报的标识。
    标志(flag) 占 3 位,目前只有两位有意义。
    标志字段的最低位是MF(More Fragment)。
    MF  1 表示后面“还有分片”。MF  0 表示最后一个分片。
    标志字段中间的一位是DF(Don’t Fragment) 。
    只有当 DF  0 时才允许分片。

    生存时间(8 位)记为 TTL (Time To Live)
    数据报在网络中可经过的路由器数的最大值。

    4.2.6 IP转发分组的流程

    虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即对特定的目的主机指明一个路由。这种路由叫做特定主机路由。

    采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。

    在对网络的连接或路由表进行排错时,指明到某一主机的路由就十分有用。


    路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。

    这种转发方式在一个网络只有很少的对外连接时是很有用的。

    实际上,默认路由在主机发送IP数据报时往往更能显示出它的好处。

    如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。


    路由器的分组转发算法
    (1) 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为 N。
    (2) 若网络N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行(3)。
    (3) 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。

    (4) 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
    (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
    (6) 报告转发分组出错。

    4.3 划分子网和构造超网

    (1) 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干子网,划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。

    (2)划分子网的方法是从主机号借用若干个位作为子网号subnet-id,而主机号host-id也就相应减少了若干个位。

    (3) 凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号net-id,先找到连接在本单位网络上的路由器。

    然后此路由器在收到IP数据报后,再按目的网络号net-id和子网号subnet-id找到目的子网。

    最后就将IP数据报直接交付目的主机。

    4.3.1 划分子网

    当没有划分子网时,IP地址是两级结构。

    划分子网后IP地址就变成了三级结构。

    划分子网只是把IP地址的主机号host-id这部分进行再划分,而不改变IP地址原来的网络号 net-id。

    使用子网掩码(subnet mask)可以找出IP地址中的子网部分。
    这里写图片描述

    在没有划分子网时,既然没有子网,为什么还要使用子网掩码?
    这就是为了更便于查找路由表。

    现在互联网的标准规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。

    如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。

    默认子网掩码中的 1 位置和 IP 地址中的网络号字段 net-id正好相对应。

    这里写图片描述

    4.3.2 使用子网时分组的转发

    * 在划分子网的情况下,路由器转发分组的算法*
    (1) 从收到的分组的首部提取目的 IP 地址 D。
    (2) 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。

    (3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。
    (4) 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和 D 逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。

    (5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
    (6) 报告转发分组出错。
    这里写图片描述
    这里写图片描述

    这里写图片描述
    这里写图片描述
    这里写图片描述

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

    最长前缀匹配:
    使用CIDR时,路由表中的每个项目都包含“网络前缀”和“下一跳地址”组成部分。

    在查找路由表时可能会得到不止一个匹配结果。

    应当从匹配结果中选择具有最长网络前缀的路由,这叫作最长前缀匹配 (longest-prefix matching)。

    这是因为网络前缀越长(more longer) ,其地址块就越小,因而路由就越具体 (more specific)。

    最长前缀匹配又称为最长匹配或最佳匹配。

    4.4 网际控制报文协议ICMP

    为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)。

    ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。

    ICMP不是高层协议,而是IP层的协议。

    ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
    这里写图片描述

    4.4.1 ICMP报文的分类

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

    ICMP报文的前4个字节是统一的格式,共有三个字段:即类型、代码和检验和。

    接着的4个字节的内容与ICMP的类型有关。

    最后面就是数据字段,其长度取决于ICMP的类型。

    ICMP报文的代码字段是为了进一步区分某种类型中的几种不同的情况。

    4.4.2 ICMP的应用举例

    4.5 互联网的路由选择协议

    4.5.1 有关路由器选择协议的几个基本概念

    4.5.2 内部网关协议 RIP

    4.5.3 内部网关协议OSPF

    4.5.4 外部网关协议BGP

    4.5.5 路由器的构成

    4.6 IPv6

    4.6.1 IPv6的基本首部

    4.6.2 IPv6的地址

    4.7 IP多播

    4.8 虚拟专用网和网络地址转换

    4.9 多协议标记交换MPLS

  • 相关阅读:
    Redis系列(八)--缓存穿透、雪崩、更新策略
    Vue在单独引入js文件中使用ElementUI的组件
    解读浮动闭合最佳方案:clearfix
    JS replace()方法替换变量(可以对变量进行全文替换)
    Django media的设置
    使用EventBus实现兄弟组件之间的通信
    component: resolve => require(['../pages/home.vue'], resolve)
    vue中使用localStorage存储信息
    使用vue-router beforEach实现判断用户登录跳转路由筛选功能
    ES6使用常量做为函数名
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9386954.html
Copyright © 2011-2022 走看看