网络层串讲

文章目录

  • 前言
  • 一、网络层解决的问题?
  • 二、IP地址(这一部分其实也是IP协议的内容)
    • 1. IP地址的分类
    • 2. IP地址的子网划分
      • 2.1 子网掩码
  • 三、IP协议
    • 1.IP协议解决的问题
    • 2.IP数据报
    • 3.IP协议的转发流程
      • 3.1 两个概念
      • 3.2 IP协议转发流程
  • 四、ARP协议和RARP协议
    • 1.ARP协议
      • 1.1ARP报文
      • 1.2 ARP缓存表
    • 2.RARP协议


前言

本编文章为个人学习笔记,供大家参考,如果有错误,敬请指出。部分内容收集至网络,如有侵权,请及时联系。


一、网络层解决的问题?

网络层决定数据在网络中的传输路径。
网络层串讲_第1张图片


二、IP地址(这一部分其实也是IP协议的内容)

Mac地址:是数据链路层的概念,每个网卡拥有一个唯一的不可改变的Mac地址。
ex: 30-B4-9E-ED-86-BA
IP地址:是网络层的概念,IP地址长度为32位,分为四个8位,用点分十进制来表示,每部分范围0~255(0~255 . 0~255 . 0~255 . 0~255)。一个可有2的32次方个IP地址。
在这里插入图片描述

1. IP地址的分类

最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。

1. A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。一般用于大型网络。

2. B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。一般用于中型网络。

3. C类IP地址 一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。一般用于小型网络。

4. D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。224.0.0.0到239.255.255.255用于多点广播 。

5. E类IP地址 以“llll0”开始,为将来使用保留。240.0.0.0到255.255.255.254
在这里插入图片描述网络号和主机号加起来是32位(即4字节),正好表示一个ip地址,我们可以根据网络号来判断ip地址是属于哪一类。你可以认为网络号表示主机当前处于哪一个网段,而主机号则表示这个网段下具体的某一台主机。也就是说,通过ip地址的网络号和主机号可以找到某一个网段下的具体的某一台主机。

1、特殊的主机号:

  • 主机号全0表示当前网络段,不可分配位特定主机
  • 主机号全1表示广播地址,向当前网络段所有主机发消息,也是不能分配给主机的

上述的“0”和“1“指的是二进制状态下的0和1,对应的是(以A类地址举例)1.0.0.0和1.255.255.255。

2、特殊的网络号:

  • A类地址网络段全0(00000000)表示特殊网络,不能使用
  • A类地址网络段后七位全为1(01111111换成十进制也就是127)表示回环地址,也是不能使用的。如:127.0.0.1可以代表本机IP地址,ping 127.0.0.1 可以测试本机TCP/IP是否正常
  • B类地址网络段(10000000.00000000 : 128.0)不能使用
  • C类地址网络段(192.0.0)不能使用

在这里插入图片描述
私有地址:
在这里插入图片描述
在现在的网络中,IP地址分为公网IP地址和私有IP地址。公网IP是在Internet使用的IP地址,而私有IP地址则是在局域网中使用的IP地址。

问题:如何判断一个IP地址属于哪一类?
取点分十进制的头一段转化为8位的二进制即可。(或者看地址范围也行)
如:
125.125.3.60 其中125转化为01111101,第一位二进制是0,所以是A类地址
163.70.31.23 其中163转化为10100011,前两位二进制是10,所以是B类地址
210.36.127.11其中210转化为11010010,前三位二进制是110,所以是C类地址

2. IP地址的子网划分

问题:如果一个公司有256名员工,一人一个计算机,申请哪种网络段呢?
如果分配C类地址则只能分配254个主机号,不能满足需求,但是分配B类地址的话又会造成极大的地址空间浪费。于是我们提出了子网划分的概念。

子网划分是通过借用IP地址的若干位主机地址来充当子网地址(从左面第一位不是网络号的位开始借,而且借位必须是连续的不能跳跃),从而将原网络划分为若干子网而实现的。 划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。

这样P地址就被分为:网络号、子网号、主机号。
在这里插入图片描述
比如:一个C类网络段193.10.10.0,在主机号的八位中取第一位来当子网号,则子网号为0可取到的主机号范围193.10.10.1~193.10.10.126(0或者127不取,取0代表网段,取127是广播),共126个;子网号为1可取的主机号范围193.10.10.129~193.10.10.254(128和255不去,取128代表网段,取255是广播)。我们把子网分配给只有100人左右的公司的话,就可以减少IP地址的浪费。

对于上面提出的问题,我们可以在B类地址的基础上,借几位主机号来当子网号,将子网分配给公司。

划分子网的好处:
1、节约IP地址,避免浪费。
2、限定广播的传播。
3、保证网络的安全。
4、有助于覆盖大型地理区域。

2.1 子网掩码

子网掩码是用来判断任意两台计算机的 IP 地址是否属于同一子网络的根据。
最为简单的理解就是两台计算机各自的 IP 地址与子网掩码进行 and 运算后,得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。
在这里插入图片描述

子网掩码和IP地址一样,也是32位。由连续的1和连续的0组成,表示网络号或者子网号的位是1,表示主机号的位数是0。
比如,没有划分子网的C类地址的子网掩码就是11111111.11111111.11111111.00000000,用点分十进制表示则为255.255.255.0,用CIDR斜线记法表示为/24

根据是否有划分子网,将子网掩码分为缺省子网掩码自定义子网掩码

1、缺省子网掩码
未做子网划分的IP地址:网络号+主机号

  • A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8
  • B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16
  • C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24

2、自定义子网掩码
做子网划分后的IP地址:网络号+子网号+子网主机号
如:192.168.1.100/25,其子网掩码为11111111.11111111.11111111.10000000,点分十进制表示:255.255.255.128


三、IP协议

1.IP协议解决的问题

实际的互联网络是错综复杂的,物理设备通过使用IP协议,屏蔽了物理网络之间的差异,网络中的主机使用IP协议连接时,就无需关注网络细节。
网络层串讲_第2张图片
1、使复杂的实际网络变成一个虚拟互联网络
2、使网络层可以屏蔽掉底层细节,专注于网络层的数据转发。
3、解决了在虚拟网络中数据报传输路径的问题。

2.IP数据报

网络层串讲_第3张图片
在物理层中传输的数据是比特流,在数据链路层中将数据封装成帧,在网络层中将帧数据表示成IP数据报。IP数据报分为IP首部和IP数据报的数据。其中IP首部是重点学习内容。

网络层串讲_第4张图片
4位版本号:指IP协议的版本,IP4:版本号为4;IP6:版本号为6(通信双方版本必须一致,否则不能进行通信)。

4位首部长度:表示IP首部长度。最大数值是15,单位是4个字节,所以IP首部最大长度为60字节。

8位服务类型:3位优先权字段(应将弃用)、4位TOS字段、1位保留字段。4位TOS字段分别表示:最小延时,最大吞吐量,最高可靠性,最小成本,这4者相互冲突,只能选择一个,对于ssh/telnet这样的应用程序,最小延时最重要对于ftp这样的应用程序,最大吞吐量最重要

16位总长度:IP数据报整体占多少字节

16位标识:唯一的标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一个片里面的这个id字段相同

3位标志字段:第一位保留,第二位置为1,标识禁止分片,这时候如果IP报文大于MTU,IP模块就会丢弃报文;第3位表示更多分片,如果分片了的话,最后一个分片置为1,其他都是0,类似于一个结束标记

13位分片偏移:是分片相对于原始IP报文开始处的偏移;实际偏移的字节数是这个值 * 8得到,因此,除了最后一个报文之外,其它的报文长度必须是8的整数倍,否则报文不连续

8位生存时间TTL:表明IP数据报文在网络中的寿命,一般是64,每经过一个设备,TTL减1,当TTL等于0时还没到达,就丢弃掉该报文,这个字段主要是为了防止出现路由循环。

8位协议:表示上层协议的类型,表明IP数据所携带的具体数据是什么协议的(TCP,UDP等)。

16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏

32位源地址和32位目标地址:表示发送端和接受端的IP

选项字段:不定长,最多40字节

3.IP协议的转发流程

3.1 两个概念

逐跳(hop-by-hop):报文从计算机A传输到计算机B,经过“网络一”、“路由器甲”、“网络二”、“路由器乙”等,是“一跳一跳”的。
路由表:由“目的IP地址”和“下一跳IP地址”组成。计算机和路由器都拥有路由表。
网络层串讲_第5张图片

3.2 IP协议转发流程

网络层串讲_第6张图片
仅仅从网络层的层次来分析,有以下四个步骤:

1、 A发出目的地址为C的IP数据报,查询路由发现下一跳为E

2、 A将数据报发送给E

3、E查询路由表发现下一跳为F,将数据报发送给F

4、 F查询路由表发现目的地C直接连接,将数据发送给C

从物理层、数据链路层、网络层 这些层次来分析,有以下12个步骤:

1、 A发出目的地址为C的IP数据报,查询路由发现下一跳为E

2、 A将IP数据报交给数据链路层,并告知目的MAC地址是E

3、 数据链路层填充源MAC地址为A和目的MAC地址为E

4、 数据链路层通过物理层将数据发送给E

5、 E的数据链路层接收到数据帧,把帧数据交给网络层

6、 E查询路由表,发现下一跳为F

7、 E把数据报交给数据链路层,并告知目的MAC地址为F

8、 E的数据链路层冯轧辊数据帧并发送

9、 F的数据链路层接收到数据帧,把帧数据交给网络层

10 、F查询路由表,发现下一跳为C

11、 F把数据报交给数据链路层,并告知目的MAC地址为C

12、 F的数据链路层封装数据帧并发送

数据帧每一条的MAC地址都在变化,IP数据报每一跳IP地址使用不变。


四、ARP协议和RARP协议

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

1.ARP协议

ARP协议将网络层的32位IP地址转化成数据链路层48位的MAC地址。

1.1ARP报文

ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。
网络层串讲_第7张图片

  • 硬件类型:占两字节,表示ARP报文可以在哪种类型的网络上传输,值为1时表示为以太网地址。
  • 上层协议类型:占两字节,表示硬件地址要映射的协议地址类型,映射IP地址时的值为0x0800。
  • MAC地址长度:占一字节,标识MAC地址长度,以字节为单位,此处为6。
  • IP协议地址长度:占一字节,标识IP得知长度,以字节为单位,此处为4。
  • 操作类型:占2字节,指定本次ARP报文类型。1标识ARP请求报文,2标识ARP应答报文。
  • 源MAC地址:占6字节,标识发送设备的硬件地址。
  • 源IP地址:占4字节,标识发送方设备的IP地址。
  • 目的MAC地址:占6字节,表示接收方设备的硬件地址,在请求报文中该字段值全为0,即00-00-00-00-00-00,表示任意地址,因为现在不知道这个MAC地址。
  • 目的IP地址:占4字节,表示接受方的IP地址。

1.2 ARP缓存表

缓存了MAC地址和IP地址的映射关系。是ARP和RARP协议运行的关键。
网络层串讲_第8张图片

  • 如果在查询ARP缓存表的时候,对应的映射关系存在,则直接告知其对应的目的MAC地址,
  • 如果在查询ARP缓存表的时候,映射关系不存在,则会广播目的IP的信息,收到广播的设备回应是否是其为该IP地址,如果是,则会记录下该IP地址以及其对应的MAC地址。

由于MAC地址是永久不变的,而IP地址是时常变化的,所以ARP缓存表不是永久有效的,存在一定期限。

问题:ARP协议属于那一层?
由于ARP协议使用到了IP地址,我们把ARP协议算作网络层内容。ARP是网络层和数据链路层配合使用的协议。

2.RARP协议

做ARP协议相反的工作,就是把MAC地址转化成IP地址。

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