第四章 网络层(TCP/IP称网际层)

4.1 网络层提供的两种服务

虚电路服务 数据报服务
思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证
连接的建立 必须有 不需要
终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址
分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发
当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序
端到端的差错处理和流量控制 由网络负责,也可以由用户主机负责 由用户主机负责

TCP/IP体系的网络层提供的是数据报服务。

4.2 网际协议IP

IP协议配套的三个协议:

  • 地址解析协议ARP
  • 网际控制报文协议ICMP
  • 网际组管理协议IGMP

4.2.1虚拟互连网络

没有一种单一的网络能够适应所有用户的需求。

中间设备:

  1. 物理层的中间设备:转发器
  2. 数据链路层中间设备:网桥或桥接器
  3. 网络层中间设备:路由器
  4. 网络层以上的中间设备:网关。用网关连接两个不兼容的系统需要在高层进行协议的转换

虚拟互连网络也就是逻辑互连网络,互连起来的各种网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像使一个统一的网络。

互联网可以有多种异构网络互连组成。

4.2.2 分类的IP地址

整个互联网就是一个单一的、抽象的网络。

IP地址的编址方法:

  1. 分类的IP地址

    第一个字段为网络号,它标志主机(或路由器)所连接的网络。一个网络号在整个互联网范围内必须是唯一的。

    第二个字段为主机号,它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须使唯一的。

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

    • A类地址8位网络号(0开头)+24位主机号,范围:1.0.0.0 - 126.255.255.255

    • B类地址16位网络号(10开头)+16位主机号,范围:128.0.0.0 - 191.255.255.255

    • C类地址24位网络号(110开头)+8位主机/号,范围:192.0.0.0 - 223.255.255.255

    • D类:组播地址,范围:224.0.0.0 - 239.255.255.255

    • E类:保留以后再用,范围:240.0.0.0 - 255.255.255.255

    IP地址全0表示this。网络号字段为全0的IP地址是个保留地址,意思使**“本网络”;网络号为127保留作为本地软件环回测试**本主机的进程之间的通信之用。

    全0的主机号字段表示该IP地址使“本主机”所连接到的单个网络地址;全1的主机号字段表示该网络上的所有主机。

    A类网络可指派的网络号有126个(即27−22^{7}-227−2),网络最大主机数为224−22^{24}-2224−2。

    B类网络可指派的网络号有216−12^{16}-1216−1,因为128.0.0.0一般不指派。网络最大主机数216−22^{16}-2216−2。

    C类网络可指派的网络号有221−12^{21}-1221−1,因为192.0.1.0一般不指派。网络最大主机数28−22^{8}-228−2。

    IP地址的指派范围:

    网络类别 最大可指派的网络数 第一个可指派的网络号 最后一个可指派的网络号 每个网络中的最大主机数
    A 126(27-2) 1 126 16777214
    B 16383(214-1) 128.1 191.255 65534
    C 2097151(221-1) 192.0.1 223.255.255 254

    一般不适用的特殊IP地址:

    网络号 主机号 源地址使用 目的地址使用 含义
    0 0 不可 在本网络上的主机(见6.6节DHCP协议)
    0 host-id 不可 在本网络上的某个主机host-id
    全1 全1 不可 只在本网络上进行广播(各路由器均不转发)
    net-id 全1 不可 对net-id上的所有主机进行广播
    127 非全0或全1的任何数 可以 用作本地软件回环测试之用(例如127.0.0.1

    可以看到,主机号全为0或网络号全为0的IP地址不可用作目的地址,主机号全为1的IP地址不可用作源地址

  2. 子网的划分

  3. 构成超网

4.2.3 IP地址和硬件地址(MAC地址)

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

  1. IP层抽象的互联网上只能看到IP数据报
  2. 路由器只根据目的站的IP地址的网络号进行路由选择
  3. 在局域网的链路层,只能看见MAC帧。
  4. 在网络层讨论问题,就使用统一的、抽象的IP地址研究主机和主机或路由器之间的通信。

4.2.4 地址解析协议ARP

作用:根据一台机器的IP地址解析出对应的硬件地址

4.2.5 IP数据报的格式

  1. 标志,占3位,目前只有两位有意义。

    最低位记为MF。MF = 1表示后面还有分片的数据报。MF = 0 表示这已经是若干数据报片中的最后一个。

    中间一位记为DF,意思是不能分片。只有当DF = 0时才允许分片。

  2. 片偏移,占13位。较长的分组在分片后,某片在原分组中的相对位置。

  3. 协议:

    协议名 ICMP IGMP IP TCP EGP IGP UDP IPv6 ESP OSPF
    协议字段值 1 2 4 6 8 9 17 41 50 89
  4. 首部检验和(只检验数据报的首部,不包括数据部分。)

4.2.6 IP层转发分组的流程

在IP数据报的首部写上的IP地址是源IP地址和目的IP地址,而没有中间经过的路由器的IP地址。

分组转发算法:

​ (1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
​ (2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就是间接交付,执行(3)。
​ (3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
​ (4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,”执行(5)。
​ (5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器:否则,执行(6)。
​ (6)报告转发分组出错。

4.3 划分子网和构成超网

4.3.1 划分子网

  1. 从两级IP地址到三级IP地址

    早期IP设计的不合理。

    1. IP地址空间利用率低
    2. 会使路由表变太大
    3. 两级IP不够灵活

    划分子网的基本思路

    1. 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet)。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络

    2. 划分子网的方法是从网络的主机号借用若干位作为子网号(subnet-id),当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变为三级IP地址:网络号、子网号和主机号。也可以用以下记法来表示:
      IP地址::={<网络号>,<子网号>,<主机号>}IP地址 ::= \lbrace <网络号>,<子网号>,<主机号>\rbrace IP地址::={<网络号>,<子网号>,<主机号>}

    3. 凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付目的主机。

    总之,没有划分子网时,IP地址为两级结构。划分子网后IP地址变成了三级结构。划分子网只是把IP地址的主机号这部分进行划分,而不改变IP地址原来的网络号。

  2. 子网掩码

    子网号的位数 子网掩码 子网数 每个子网的主机数
    n 255.255.x.x 2n−22^{n}-22n−2 216−n−22^{16-n}-2216−n−2
    2 255.255.192.0 (192=27+26192=2^7+2^6192=27+26) 2 214−22^{14}-2214−2

    “子网号的位数” 0,1,15,16没有意义(全0全1)。

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

    计算:子网掩码与IP地址相与,得到网络号。

4.3.2 使用子网时分组的转发

子网划分后,路由表必须包含:目的网络地址,子网掩码、下一跳地址。

在划分子网的情况下,路由器转发分组的算法如下:

​ (1)从收到的数据报的首部提取目的IP地址DDD。
​ (2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”(AND操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把DDD转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
​ (3)若路由表中有目的地址为DDD的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
​ (4)对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和DDD逐位相“与”(AND操作),其结果为NNN。若NNN与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
​ (5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
​ (6) 报告转发分组出错。

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

  1. 网络前缀

    CIDR两个特点:

    1. CIDR消除了传统的A类、B类、C类地址以及划分子网的概念。CIDR把32位的IP地址划分为前后两个部分。前面部分是“网络前缀”,用来指明网络,后面部分则用来指明主机。因此CIDR使IP从三级编址又回到两级编址,但这使无分类的两级地址。其记法:
      IP地址::={<网络前缀>,<主机号>}IP地址 ::= \lbrace <网络前缀>,<主机号>\rbrace IP地址::={<网络前缀>,<主机号>}
      CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。

    2. CIDR把网络前缀都相同的连续的IP地址组成一个**“CIDR地址块”**。例如:已知IP地址 128.14.35.7/20 是某个CIDR地址快中的某个地址,写成二进制,前20位是网络前缀,后12位为主机号。
      128.14.35.7/20=10000000000011100010001100000111128.14.35.7/20 = \mathbf{10000000\:00001110\:0010}0011\:00000111 128.14.35.7/20=10000000000011100010001100000111

      最小地址 128.14.32.0 100000000 00001110 00100000 00000000
      最大地址 128.14.47.255 100000000 00001110 00101111 11111111

      斜线记法中,斜线后面的数字就是地址掩码中1的个数。

      计算:地址掩码与IP地址相与,得到网络号。

      路由聚合,也称构成超网。有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。

      CIDR前缀长度 点分十进制 包含的地址数 相当于包含分类的网络数
      /n 255.x.x.x 232−n2^{32-n}232−n 216−n个B类或224−n个C类2^{16-n}个B类或2^{24-n}个C类216−n个B类或224−n个C类
      /16 255.255.0.0 21664k2^{16}\:\:\:\:64k21664k 1个B类或256个C类

      网络前缀越短,其地址块所包含的地址数就越多。

  2. 最长前缀匹配

    应当从匹配结果中选择具有最长网络前缀的路由。

  3. 使用二叉线索查找路由表

    唯一前缀做二叉搜索树,匹配不到则说明不在这个二叉线索中;匹配成功则地址掩码与IP地址相与,若与对应的网络前缀匹配,就按下一跳的接口转发该分组。否则,丢弃该分组。

    为了提高查找效率,广泛使用压缩技术

4.4 网际控制报文协议ICMP

4.4.1 ICMP报文种类

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

ICMP报文种类 类型的值 ICMP报文的类型
差错报文报告 3 终点不可达
11 时间超时
12 参数问题
5 改变路由(重定向,redirect)
询问报告 8或0 回送(echo)请求或回答(测试目的站是否可达以及了解其有关状态)
13或14 时间戳请求或回答(用于时钟同步和时间测量)

不应发送ICMP差错报文的几种情况:

  • 对ICMP差错报告报文,不再发送ICMP差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片,都不发送ICMP差错报告报文。
  • 对具有多播地址的数据报,都不发送ICMP差错报告报文。
  • 对具有特殊地址( 如127.0.0.0或0.0.0.0)的数据报,不发送ICMP差错报告报文。

4.4.2 ICMP应用举例(ping & tracert)

4.5 互联网的路由选择协议

理想的路由算法:

  1. 算法必须是正确的、完整的。
  2. 算法再计算上应简单。
  3. 算法应能适应通信量和网络拓扑的变化(自适应性,稳健性)
  4. 算法应具有稳定性
  5. 算法应是公平的
  6. 算法应是最佳的(只能是相对于某种特定要求下等处较为合理的选择而已。

从算法能否随网络通信量或拓扑自适应地进行调整变化来划分:静态路由选择策略动态路由选择策略

分层次的路由选择协议:

一个大的ISP就是一个自治系统。按此分类:

  1. 内部网关协议IGP
  2. 外部网关协议EGP

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

4.5.2 内部网关协议RIP

  1. 工作原理

    RIP是一种分布式的基于距离向量的路由选择协议。优点:简单。

    ”距离“也称“跳数”。

    RIP允许一条路径最多只能包含15个路由器,因此“距离”等于16即相当于不可达。RIP只适用小型互联网。

    RIP协议特点:

    1. 仅和相邻路由器交换信息。
    2. 交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表。
    3. 按固定的时间间隔交换路由信息。
  2. 距离向量算法

    算法要点:设X是结点A到B的最短路径上的一个结点。若把路径A->B拆成两段路径A->X和X->B,则每一段路径A->X和X->B 也都分别是结点A到X和结点X到B的最短路径。

    计算:更新路由表;P155例题 +1改路由,无增 有同大 有异小

    RIP协议使得从每一个路由器到每一个目的网络的路由都是最短的。

  3. 之后可能补充

  4. 之后可能补充

4.5.3 内部网关协议OSPF

  1. OSPF协议的基本特点
  • “最短路径优先” 是因为使用了Dijkstra提出的最短路径算法SPF
  • 采用分布式的链路状态协议(link state)
  1. 三个要点
  • 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
  • 发送的信息就是与本路由器相邻的所有的路由器的链路状态,但这只是路由器所知道的部分信息
  • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

4.5.4 外部网关协议BGP

BGP是不同自治系统的路由器之间交换路由信息的协议。

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

4.8.1 虚拟专用网VPN

专用地址:只能用于一个机构的内部通道,不能用于和互联网上的主机通信。

在互联网中的所有路由器中,对目的地址是专用地址的数据报一律不进行转发。

由场所A和B的内部网络所构成的虚拟专用网VPN又称内联网,表示场所A和B都属于同一个机构。

有时一个机构的VPN需要有某些外部机构,这样的VPN称为外联网

还有一种类型的VPN,就是远程接入VPN

4.8.2 网络地址转换NAT

网络地址转换NAT需要在专用网连接到互联网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和互联网连接。

这种专用网内部的主机不能充当服务器用,因为互联网上的客户无法请求专用网内的服务器提供服务。

使用端口号的NAT也叫做网络地址与端口号转换NAPT,不使用端口号的NAT就叫做传统的NAT。

第四章 网络层(TCP/IP称网际层)相关推荐

  1. 计算机网络知识点总结(第四章 网络层)

    基于计算机网络(第7版)谢希仁编著. 第四章 网络层 网络层提供两种服务: 面向连接的虚电路服务.特点:保证服务质量,可靠 无连接的数据报服务.特点:"尽最大努力交付",不保证质量 ...

  2. 计算机网络(第四章网络层)

    第四章网络层 4.1_网络层提供的两种服务 (1)虚电路服务 (2)数据报服务 4.2_网络协议 4.2.1_虚拟互连网络 4.2.2_分类的IP地址 (1)分类IP地址 三种分类方法 IP 地址的一 ...

  3. 计算机网络(第7版)谢希仁著 学习笔记 第四章网络层

    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层 第四章 网络层 4.3划分子网和构造超网 p134 4.3.1划分子网 4.3.2使用子网时分组的转发 4.3.3无分类编址CIDR(构建超网) ...

  4. 计网第四章 网络层(咕咕咕)

    计网第四章 网络层(更新ing 咕咕咕) 网络层提供的两种服务 面向连接的通讯:虚电路 虚电路知识一种逻辑上的连接,分组沿着这个逻辑转发而不是真的建立了一条物理线路. 面向无连接的通讯:数据报服务 网 ...

  5. 【计算机网络】南航计算机网络第四章 网络层

    文章目录 计算机网络第四章 网络层 4.1 网络层提供的两种服务 网络层提供的两种服务 虚电报服务 数据报服务 4.2 网际协议IP 虚拟互连网络 直接交付与间接交付 分类的IP地址 点分十进制记法 ...

  6. 计算机网络学习笔记——第四章 网络层(上)

    第四章 网络层(上) 一.网络层功能 网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据报. 功能一:路由选择与分组转发 功能二:异构网络互联 功能三: ...

  7. 《计算机网络教程》(微课版 第五版)第四章 网络层与网络互连

    <计算机网络教程>(微课版 第五版)第四章 网络层与网络互连 课后习题及答案 1.网络层向上提供的服务有哪两种?试比较其优缺点. 解答:面向连接的虚电路服务和无连接的数据报服务. 2.请简 ...

  8. 计算机网络总结:第四章 网络层

    第四章 网络层 4.1 概述 4.1.1 转发和路由选择 转发(forwarding):当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路 路由选择(routing):当分组 ...

  9. 计算机网络——第四章 网络层:数据平面

    第四章 网络层:数据平面 4.1 网络层概述 4.1.1 转发和路由选择:数据平面和控制平面 网络层表面上看的功能极为简单即将分组从一台发送主机移动到一台接收主机,其两种重要功能: 转发:当一个分组到 ...

最新文章

  1. SAP CRM和Cloud for Customer中的Event handler(事件处理器)
  2. Michael Feathers希望消除错误能驱动设计
  3. LeetCode之搜索旋转排序数组
  4. sql 整改措施 注入_改进的SQL防注入(加强抑错)-ASP教程,安全加密
  5. 几组数据的相关性python_Python+pandas计算数据相关系数的实例
  6. windows bat打印机打印测试页
  7. python pyhook_Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
  8. 【PS】如何把图片变成透明
  9. 【hadoop生态之ZooKeeper】第二章Zookeeper安装【笔记+代码】
  10. api工厂接口路径是什么_为什么(几乎)永远不要再使用绝对路径访问API
  11. 小程序开发常见错误及排除方法
  12. HSIC and MMD
  13. nemesis什么车_英国Mazda推出RX-8 Nemesis限量特式车
  14. c html保存为图片格式,【单选题】在 IE 中,若要把整个网页的文字和图片一起保存在一个文件中,则文件的类型应为 。 A. HTM B. HTML C. MHT D. TXT...
  15. 美国老太Sylvia
  16. 度小满前端开发秋招补录面经
  17. 盘点5款超棒的电脑软件
  18. Flex Builder3调试运行提示没有安装Flash Player
  19. 基于 NI myRIO 的平衡车设计
  20. Axure RP 原型设计专业软件

热门文章

  1. 微服务是去ESB总线、去中心化和分布式
  2. 基础SQL Server 操作问题——仅当使用了列表并且IDENTITY_INSERT为ON时,才能为表中的标识列制定显示值
  3. VS2019设置easyx图形库
  4. 我的世界服务器修改武器伤害,《我的世界》指令99999999攻击力武器 一刀秒指令代码...
  5. 【eclipse】版本代号
  6. centos7 安装mysql5.7.37 实操说明
  7. 黑苹果0005——我的config文件(笔记本 intel HD630)
  8. 日本图书馆有哪些地方
  9. 昨天苹果发布了2022年平板IPAD10,果然一贯的刀法出众,我在网上找了一个苹果处理器历代的发布产品对比
  10. 微信公众平台开发之微喜帖