王道考研计算机网络网络层

  • 网络层
    • 1.1、网络层功能
    • 1.2、IP数据报格式
      • 1.2.1、TCP/IP协议栈
      • 1.2.2、IP数据报格式
      • 1.2.3、IP数据报分片
        • 1、最大传送单元MTU
        • 2、IP数据报分片例题
        • 3、IP数据报格式
    • 1.3、IPv4地址
      • 1.3.1、IP地址
      • 1.3.2、IP编制的历史阶段
        • 1、分类的IP地址
        • 2、子网划分与子网掩码❓
          • 1、子网划分
          • 2、子网掩码
          • 3、子网掩码习题
          • 4、使用子网时分组的转发
        • 3、无分类编制CIDR
          • 1、构成超网
          • 2、最长前缀匹配❓
      • 1.3.3、网络地址转换(NAT)
      • 1.3.4、ARP协议
        • 1、发送数据的过程
        • 2、ARP协议解析
        • 3、ARP协议习题
      • 1.3.5、DHCP协议
        • 1、主机如何获得IP地址
        • 2、DHCP协议
      • 1.3.6、ICMP协议
        • 1、TCP/IP协议栈
        • 2、网际控制报文协议ICMP
          • 1、ICMP差错报告报文(5种)
          • 2、ICMP差错报告报文数据字段
          • 3、不应发送ICMP差错报文的情况
          • 2、ICMP询问报文
        • 3、ICMP的应用
    • 1.4、IPv6地址
      • 1.4.1、IPv6数据报格式
      • 1.4.2、IPv6和IPv4
      • 1.4.3、IPv6地址表示形式
      • 1.4.4、IPv6基本地址类型
      • 1.4.5、IPv6向IPv4过渡的策略
    • 1.6、路由算法与路由协议
      • 1.6.1、路由算法
      • 1.6.2、路由算法的分类
      • 1.6.3、分层次的路由选择协议
    • 1.7、RIP协议
      • 1.7.1、RIP协议和谁交换、多久交换一次、交换什么
      • 1.7.2、距离向量算法
      • 1.7.3、距离向量算法练习1
      • 1.7.4、距离向量算法练习2
      • 1.7.5、RIP协议的报文格式
      • 1.7.6、RIP协议好消息传得快,坏消息传得慢
    • 1.8、OSPF协议及链路状态算法
      • 1.8.1、OSPF协议
      • 1.8.2、链路状态路由算法
      • 1.8.3、OSPF的区域
      • 1.8.4、OSPF分组
      • 1.8.5、OSPF其他特点
    • 1.9、BGP协议
      • 1.9.1、BGP协议交换信息的过程
      • 1.9.2、BGP协议报文格式
      • 1.9.3、BGP协议特点
      • 1.9.4、BGP-4的四种报文
    • 1.10、三种路由协议的比较
    • 1.11、IP组播
      • 1.11.1、IP数据报的三种传输方式
      • 1.11.2、IP组播地址
      • 1.11.3、硬件组播
      • 1.11.1、IGMP协议与组播路由选择协议
    • 1.12、移动IP
      • 1.12.1、移动IP通信过程
    • 1.13、网络层设备
      • 1.13.1、路由器
      • 1.13.2、输入端口对线路上收到的分组处理
      • 1.13.3、三层设备的区别
      • 1.13.4、路由表与路由转发

网络层

IP分组的转发是在路由器里面实现的,路由器有很多接口,有入口和出口,根据转发表来决定路由的出口,转发表是根据路由选择算法来规定好一条好的路由选择方式。根据这种画好的路线我们就可以确定路由器下一步该传给哪个路由器,这样就实现了路由器的出端口和下一个路由器的映射。

1.1、网络层功能

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位是数据报

思考:数据报和分组是不一样的吗?

答案:yes,他们的关系就是父与子的关系。数据报就是一个比较长的数据,分组是把数据报进行切割而划分出来的一个片段。


网络层的功能:

  1. 路由选择与分组转发

    • 路由选择就是找最佳的路,把分组按照路由的顺序发送出去
  2. 异构网络互联

    • 异构网络:手机4G、家里WIFI、校园网…,通过不同的网络实现通信,这就是异构网络互联的结果。
    • 异构网络互联起来就形成了一个更大的网络,这些异构网络互联依靠路由器。
  3. 拥塞控制

    • 若所有结点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
    • 拥塞是全局问题,和流量控制不一样。流量控制指的是发送方速率过快,拥塞控制是全局性概念,是因为网络负载过重
    • 解决拥塞控制有两种方案:一:开环控制,二:闭环控制。
      • 开环控制:静态控制方法,在网络开始工作之前我们就先把所有能够产生拥塞的情况全部考虑到,然后进行预先的控制
      • 闭环控制:动态控制方法,网络工作时自动调整来减轻拥塞

1.2、IP数据报格式

1.2.1、TCP/IP协议栈

TCP/IP协议栈自顶向下分别是应用层、传输层、网络层、链路层和物理层。有关于网络层的协议主要是这四个:ARP、IP、ICMP、IGMP协议。考试中不但要知道每个协议的功能,还得知道彼此之间的关系。ARP协议为IP协议服务,IP协议为ICMP、IGMP协议服务。

1.2.2、IP数据报格式

对于IP数据报,分成两部分,分别是首部和数据部分。数据部门也就是运输层的传送单元,有TCP、UDP段。在网络层,IP数据报和分组我们可以基本看成一样的,就是IP数据报如果过大,我们就可以给他进行分片,分片下来的小单元就是分组。发送数据的时候从首部开始,然后逐个比特再去发送。对于首部,我们还细分成了两部分,第一部分是固定部分,第二部分是可变部分。固定部分是对于任何一个IP数据报固定部分大小都相同固定不变的,可变部分就是可有可无。

我们来具体看一下首部的字段:

Byte = 字节 | bit = 比特 | 1 Byte = 8 bit | 1字节 = 8比特

首部的固定部分的长度是固定的20B。可以看到是以位为单位来对首部进行划分。

  • 版本字段 0-4位,版本指的是使用的是 IPv4 还是 IPv6
  • 首部长度 4 位,4位可以表示16个二进制数,也就是下面的0000…1111,用十进制表示也就是0-15。首部长度的单位是4B,所以如果首部长度4位是 1111,表示的十进制数就是 15 × 4B = 60B。也就是说首部长度是60B,固定部分为20B,所以可变部分为40B。
# 0           15
# 0000 .... 1111

思考:我们的首部长度4位可以是 0000 吗?

答案:不可以,因为我们的固定部分是20B,所以首部长度最少也要是20B。所以首部长度最小为 20B/4b=5 ,这个5对应的就是十进制了,对应的二进制为0101

首部长度:单位是4B,最小为5

当我们的首部长度不是4B的整数倍时,填充字段会将首部长度填充为4B的整数倍。所以我们可以确定的说首部长度一定是4B的整数倍。

  • 接下来是8位的区分服务,区分服务是指示期望获得哪种类型的服务。例如如果我们的数据部分想要优先发送,那么区分服务就会提高此数据的优先级

  • 接下来是总长度,总长度指的是首部长度+数据部分长度。也就是整个IP数据报的长度,大小是16B,单位是1B。

  • 接下来是生存时间,也就是IP分组的保质期。每经过一个路由器,生存时间就会-1,生存时间变成0了就会丢弃掉。(就是为了防止无法交付的数据报,无限的在网络当中兜圈子)

  • 接下来是协议字段。协议字段要和版本字段区分开,协议字段所占的位数更多,协议指的就是数据部分所使用的协议。具体有如下协议,并且一一对应唯一的字段值。

协议名 ICMP IGMP TCP EGP IGP UDP IPv6 ESP OSPF
字段值 1 2 6 8 9 17 41 50 89

要记忆的是TCP、UDP协议,这两个协议所对应的字段值是6、17

记忆:

  • TCP协议是面向连接的服务,面向连接就非常6

  • UPD协议是不面向连接的服务,这样会有很多数据很大可能被遗弃,对应17

  • 接下来是首部检验和,占16位,就是只检验首部的。(注意是不检验数据部分的)

  • 源IP地址和目的IP地址,占32位

  • 可选字段:长度可变,0~40B,用来支持排错、测量以及安全等措施

  • 填充字段:全0,把首部补成4B的整数倍

1.2.3、IP数据报分片

1、最大传送单元MTU

在链路层上面,每一个数据帧都有一个可封装数据的上限,这个上限就叫做最大传送单元MTU。对于以太网的MTU是1500B。

IP分组也可称为IP数据报,分为首部和数据部分。这个IP分组经过封装形成链路层的数据帧,封装的过程就是在分组前面加头,在分组后面加尾。中间的部分也就是IP分组,它形成了数据帧的数据部分,这个数据部分就有一个上限,上限为MTU。

思考:如果我们所传送的数据报长度超过某链路的MTU值怎么办?

答案:分片

分片要结合首部字段的标识字段、标志字段、片偏移字段来理解。

  • 标识字段:同一数据报的分片使用同一标识。也就是说如果数据报的长度超过了链路层的MTU,就要进行分片,每分的一个小片,都和原来的数据报使用同样的一个标识。
  • 标志字段:标志字段有3位,但是只有2位有意义。 x _ _
    • 首位没有意义
    • 中间位DF(Don’t Fragment(不许分片)):DF=1表示禁止分片,DF=0表示允许分片。
    • 最低位MF(More Fragment(更多分片)):MF=1表示后面还有分片,MF=0表示最后一片分片或者是没分片(也就是未超过上限)

只有DF=0允许分片之后,MF才有意义。也就是说我们在讨论MF的前提是允许分片。

  • 片偏移字段:指出较长分组分片后,某片在原分组中的相对位置。以8B为单位。除了最后一个分片,每个分片的长度一定是8B的整数倍

2、IP数据报分片例题

如上图第一个IP数据报,首部是20B,数据部分是3800B。对于这个数据报传输的链路来说,最大的MTU是1420B,现在要把数据部分进行分片,就按照MTU进行分片。1420B分为20B的首部和1400B的数据部分。

如上图,将IP数据报的数据部分分成三个,我们来看一下片偏移量。首先规定IP数据报的数据部分开始是0B,接着1B、2B…,第一个数据报片是从0B-1399B,这样的一个数据报片在原来的数据报中偏移量(距原来数据报数据部分开始的距离)为0。

第二个数据报片是从1400B-2799B,所以这样的一个数据报片在原来的数据报中偏移量为1400B/8B=175

第三个数据报片是从2800B-3799B,所以这样的一个数据报片在原来的数据报中偏移量为2800B/8B=350

3、IP数据报格式

对于IP数据报当中的几个字段

  • 总长度单位是1B
  • 片偏移单位是8B
  • 首部长度单位是4B

1.3、IPv4地址

1.3.1、IP地址

生活中两台主机要通信,我们需要知道目的主机在哪个网络,是哪个网络的哪个主机。

IP地址就是一个寻址的作用,每个主机都有一个独一无二的ip地址。

1.3.2、IP编制的历史阶段

1、分类的IP地址

IP地址包括网络号和主机号。图中前面8位作为网络号,剩下的部分就是主机号,这种32位方式机器可以识别,人类为了方便通常会写成点分十进制形式。

如上图,橘色区域可以被称为一个网络,因为他们都是路由器的接口所连接的主机以及链路层设备网桥构成的局域网。

正题start:IP地址分成了五类,分法主要是靠前面的位数来区分

  • A类地址:第一位是0,网络号是1B
  • B类地址:前两位是1、0,网络号是2B
  • C类地址:前三位是1、1、0,网络号是3B
  • D类地址:前四位是1、1、1、0
  • E类地址:前四位是1、1、1、1。(基本不考)

虽然分类了,但是有一些特殊的IP地址是我们不能使用的。

NetID网络号 HostID主机号 作为IP分组源地址 作为IP分组目的地址 用途
全0 全0 可以 不可以 本网范围内表示主机,路由表中用于表示默认路由(表示整个Internet网络)
全0 特定值 可以 不可以 表示本网内某个特定主机
全1 全1 不可以 可以 本网广播地址(路由器不转发)
特定值 全0 不可以 不可以 网络地址,表示一个网络
特定值 全1 不可以 可以 直接广播地址,对特定网络上的所有主机进行广播
127 任何数(非全0/1) 可以 可以 用于本地软件环回测试,称为环回地址
  1. 网络号是全0,主机号也是全0,也就是0.0.0.0,这个只可以作为IP分组的源地址,不可以作为目的地址。

  2. 网络号是全0,主机号是特定值,这样表示本网内的某个特定主机,可以作为IP分组源地址,不可以做目的地址。

  3. 网络号是全1,主机号是全1,用十进制表示就是255.255.255.255,不可以作为IP分组源地址,可以做目的地址。

  4. 网络号是特定值,主机号是全0,不可以作为源地址、目的地址。

除了上述特殊的IP地址,还有私有IP地址

地址类别 地址范围 网段个数
A类 10.0.0.0 ~ 10.255.255.255 1
B类 172.16.0.0 ~ 172.31.255.255 16
C类 192.168.0.0 ~ 192.168、255、255 256

这些地址的特点就是把其中之一的IP地址放到互联网上,路由器是认不得的(无效),只适用于内部网络使用。

  • A类最大可用网络数为 27-2 ,因为在网络号当中可使用的位数是7位,从1-8。之所以减2,是因为若网络号全0,或者网络号为127,这两个地址是不可以使用的,所以要减去。所以第一个可用的网络号为1,最后一个可用的网络号为126。主机号的位数是24位,最大主机数为 224-2,之所以减2,是因为全0、全1的主机号是不可用的。
  • B类最大可用网络数为214-1,这是因为网络号当中可使用的位数是14位,从2-16。之所以减1,减去的是网络号全0的情况,128.0.0 这样的网络号不可以用。
  • C类最大可用网络数为221-1,这是因为网络号当中可使用的位数是21位,从3-24。之所以减1,减去的是网络号全0的情况,192.0.0 这样的网络号不可以用。

这节没听懂。。。。

2、子网划分与子网掩码❓

分类IP地址的弱点:

  1. IP地址空间的利用率有时很低。例如A类地址网络号占1B,主机号占3B,对于A类当中的一个网络可以分配的主机个数就至少有一千万个,但是实际情况是对网络有限制,根本达不到这个数,这就对资源有浪费了嘛。
  2. 两级IP地址不够灵活。申请IP地址需要去找专门的人申请,自己没法自由增加减少。
1、子网划分

来看子网划分:

IP地址的结构:高位是网络号,低位是主机号。子网划分就是把主机号当中的一部分较高的位数作为子网号,剩下的部分作为主机号。

本单位划分子网,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。

子网号能否全0全1要看情况

主机号不能全0全1,全0指的就是本网络,全1指的是广播分组,是不能指派的。

来看上图:某个单位申请到B类IP地址,任何一个数据报想要进入各个主机必须先经过路由器,假设路由器连接的网络地址是145.13.0.0,也就是只要数据报的目的地址是145.13.x.x,它都可以进入路由器进而被转发到各个主机当中。图上单位被划分成3个子网,假定子网号占8位,剩下的主机号自然也就是8位了。虽然被划分了,但是对外展示的仍然是一个网络145.13.0.0。

假定目前有一个数据报,目的IP地址为145.13.3.10,但是它只知道应该传给路由器,但是怎么传给里面的主机呢,这个时候就需要子网掩码了。

2、子网掩码

来看对于刚才的数据报,两级IP地址橙色部分代表网络号,蓝色部分代表主机号。两级IP地址的子网掩码只要是网络号就写全1,只要是主机号就写全0。用点分十进制表示是255.255.0.0。

外部IP分组要进入到本单位某个子网的某个主机,就需要路由器的识别功能,需要从收到的IP分组中提取出目的IP地址,进而判断是发给本单位的哪个子网,然后再发送给那个子网,因此我们就会把分组写成三级IP地址的形式。三级IP地址将子网号提取出来,子网号也是全1,主机号是全0。

子网掩码与IP地址逐位相与运算,运算方式是先将三级IP地址写成二进制,例如3写成00000011,将其与主机号进行相与运算,规则是二者全为1得1,二者不全为1得0。因此相与的结果就得到子网网络地址。

子网掩码我们记住主机部分全0,其他部分全1

3、子网掩码习题
  1. 已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址。如果子网掩码是255.255.224.0,求网络地址。

答案:进行相与运算,

IP地址转化为2进制:10001101 00001110 01001000 00011000

子网掩码转为2进制:11111111 11111111 11000000 00000000

求网络地址:将两个2进制数按位相与(&)得到:10001101 00001110 01000000 000000

转为十进制为:141.14.64.0 即为网络地址

特殊的二进制要记住。

【王道】计算机网络网络层(三)相关推荐

  1. 王道计算机网络 网络层整理 超详细版

    网络层功能概述 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据报. 1.路由选择与分组转发 2.异构网络互联 3.拥塞控制 数据交换方式 电路交换 在进行 ...

  2. 王道计算机网络第三章

    第三章 1数据链路层功能概述 2封装成帧和透明传输 3差错控制 4.1流量控制以及可靠传输机制 4.2停止-等待协议 4.3后退N帧协议(GBN) 4.4选择重传协议(SR) 5.1信道划分介质访问控 ...

  3. 王道计算机网络课代表 - 考研计算机 第四章 网络层 究极精华总结笔记

    本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 计算机网络 知识点的理解的总结.希望对新一届的计算机考研人提供帮助!!!   关于对 网络层 章节知识点总结的十分全面,涵括了<计 ...

  4. 计算机网络网桥思维导图,《王道计算机网络》学习笔记总目录+思维导图

    0.思维导图 本篇文章是对<2021王道计算机网络>所有知识点的笔记总结归档 虽说是2021年的 但是这些都是最核心的底层基础知识 过多少年都不会有很大的变化 核心都差不多.欢迎大家关注我 ...

  5. 无连接可靠传输_计算机网络-网络层和传输层

    计算机网络-网络层和传输层 网络层概述 面向连接的服务,即虚电路(virtual circuit) TCP/IP采用数据报服务,无连接的服务,因为网络层是整个互联网的核心,因此应当让网络层尽可能简单. ...

  6. 计算机网络前三章试题,计算机网络前三章复习试题PPT课件.ppt

    计算机网络前三章复习试题PPT课件 前三章复习;1.Internet最早起源于 .A.ARPAnet B.MILnet C.NSFnet D. ANSnet2.广域网中广泛采用的拓扑结构是.A.树状 ...

  7. 计算机网络——网络层路由协议、IP组播、移动 IP、路由器

    文章目录 前言 一.RIP 协议与距离向量算法 1.RIP 协议 2.距离向量算法 二.OSPF 协议与链路状态算法 1.OSPF 协议 2.链路状态算法 三.BGP 协议和三种路由协议的比较 1.B ...

  8. 计算机网络第三章——数据链路层(仅记录我所认为重要的知识点)

    计算机网络第三章--数据链路层 数据链路层使用的信道类型 点对点信道 广播信道 数据链路层位置 数据链路层的3个基本问题 数据链路和帧 链路 数据链路 数据链路层传输的是帧 封装成帧 透明传输问题 差 ...

  9. 计算机网络-网络层 笔记

    前言:今天听闫乐林老师讲了计算机网络的课,自我感觉真的特别棒,就感觉像是把知识揉碎了喂我们,每个知识都会用生活上的例子,来帮助我们理解.现在再来写篇笔记回顾一下,如果能帮到大家就更好了.如有不恰当部分 ...

最新文章

  1. mysql5.6.37驱动_MySql (mysql-5.6.37) 在Windows的安装及使用
  2. 04.设计模式-原型模式
  3. 一个简单的防爬虫脚本(转载欧彬)
  4. 能识别nvme的pe启动_PE系统纯净(可以识别nvme固态)
  5. 服务器角色与数据库角色
  6. thinkphp3.2.3在nginx环境下“__PUBLIC__“路径错误、URL跳转路径错误解决方案
  7. APP版本管理SDK项目实战-准备篇
  8. Anaconda下安装tensorflow-gpu踩坑日记
  9. JPA-save()方法会将字段更新为null的解决方法
  10. 【TLSR825x】windows下开发环境搭建,固件烧录方法
  11. vbox安装深度linux,win10系统上用VirtualBox虚拟机安装国产深度deepin系统教程
  12. SpringBoot + Vue 结合支付宝支付(1)-- 准备工作
  13. 处理器架构 (八) armv4v5v6 架构参考手册(4) Debug架构
  14. Transformer对接公司需求的调研报告
  15. c中宏定义的特殊符号
  16. Rancher2.6全新Monitoring快速入门
  17. 图像直方图均衡化和空间滤波
  18. Veins源码阅读—connectionManager模块
  19. 学习笔记8--智能驾驶的功能安全设计之功能安全与ISO 26262标准
  20. 练习假摔(视频, 超搞笑)

热门文章

  1. 如果你需要我回答你的问题
  2. elasticsearch翻页优化
  3. echarts仪表盘样式设置
  4. Linux 忘记密码怎么办,CentOS和Ubuntu重置密码方法
  5. cdn.jsdelivr.net无法访问【记录】
  6. JSON是什么?如何正确理解?
  7. firefox装在linux_在Linux中安装Firefox
  8. 洛谷入门——分支结构(c++)
  9. 裂开!考研中伤害不大,但侮辱性极强的10句话!
  10. Pygame 官方文档 - Documents - 读我(Readme)