五层协议之网络层

网络层主要任务是实现网络互连,IPV4地址分为A、B、C、D、E五类,其中A、B、C类用于常规网络。子网划分通过子网掩码进行,用于提高IP地址利用率和网络管理。IP协议提供不可靠无连接的数据报服务,IP数据报包括首部和数据部分。路由表用于指导数据包的转发,静态和动态路由根据网络管理员配置或动态协议更新。
摘要由CSDN通过智能技术生成

网络层


1.网络层概述:

网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。

要实现网络层任务,需要解决以下主要问题:

  • 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)

    • TCP/IP协议体系结构的网际层提供的是无连接的、不可靠的数据包服务。
    • ATM、帧中继和X.25的网络层提供的是面向连接的、可靠的虚电路服务
  • 网络寻址问题

image-20230205102356101

  • 路由选择问题:路由器根据路由表选择下一跳

image-20230205102416540

因特网(Internet)是目前全世界用户数量最多的互联网它使用TCP/IP协议栈。由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。

image-20230205102508443

2.IPV4地址概述

1、在因特网中,为了实现计算机之间的相互通信,通常需要为每台计算机分配一个IP地址。在互联网的发展过程中主要有两个版本的互联网协议,分别是IPv4 (Internet Protocol version 4)和IPv6 (Internet Protocol version 6)。

2、IPv4的IP地址就是给因特网(Internet)上的每一台主机(或路由器))的每一个接口分配一个在全世界范围内是唯一的32比特的标识符,地址总数为2^32个。

3、IPv6的IP地址采用128比特地址长度,地址总数为2^128个。

4、IP地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names andNumbers)进行分配。我国用户可向亚太网络信息中心APNIC(Asia Pacific Network InformationCenter)申请IP地址,需要缴费

5、因为当下互联网中的绝大多数设备采用的是IPv4的IP地址,所以本课程我们只学习IPv4的IP地址的相关知识。

6、由于32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用4、IP地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names andNumbers)进行分配。我国用户可向亚太网络信息中心APNIC(Asia Pacific Network InformationCenter)申请IP地址,需要缴费。
5、因为当下互联网中的绝大多数设备采用的是IPv4的IP地址,所以本课程我们只学习IPv4的IP地址的相关知识。
6、由于32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用,例如:192.168.1.100表示方法以方便用户使用,例如:192.168.1.100

3.IPV4地址的分类

1、IPv4的IP地址由网络号(指定主机所属的网络)和主机号(指定被寻址的子网中的某个节点)组成,IP地址可以分为A、B、C、D、E五类。

image-20230205102756350

2、注意事项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PRJdLP57-1682125717881)(null)]

3、各类IP地址的细节

  • A类地址

    • A类地址的取值范围

      (1.0. 0.1 ~126.255.255.254)

    image-20230205102845726

    • A类地址可指派的网络数量:因为网络号占8个bit,并且最高位固定为0,网络号有
      2^7=128中组合,但是因为最小网络号0和最大网络号127不能指派,所以最终A类IP地址能够指派的网络数量为:
      image-20230205102921896
    • A类地址每个网络中可以分配的地址数量:因为主机号站24个bit,主机号有2^24种组合,因为全0的网络号和全1的广播地址不能指派,所以需要减2:
      image-20230205102927137
  • B类地址

    • 取值范围:(128.0.0.1~191.255.255.254)

    image-20230205103109039

    • B类地址可指派的网络数量:因为网络号占16个bit,并且最高位固定为10,网络号有
      image-20230205103138306
    • B类地址每个网络中可以分配的地址数量:因为主机号站16个bit,主机号有2^16种组合,因为全O的网络号和全1的广播地址不能指派,所以需要减2
      image-20230205103156670
  • C类地址

    • 取值范围:(192.0.0.1~**223.**255.255.254)

    image-20230205103226928

    • C类地址可指派的网络数量:因为网络号占24个bit,并且最高位固定为110,网络号有

      image-20230205103319767

    • C类地址每个网络中可以分配的地址数量:因为主机号站8个bit,主机号有2^8种组合,因为全0的网络号和全1的广播地址不能指派,所以需要减2

image-20230205103326056

  • D、E类地址

image-20230205103402655

4.子网的划分

1、子网掩码

  • 子网掩码(subnet mask)是一个32位地址,又叫网络掩码、地址掩码,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码将某个IP地址划分成网络地址和主机地址两部分。
  • 左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“O”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与IP地址做按位与运算时用O遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数。

image-20230205172111970

  • 子网掩码的两个功能

    • 屏蔽lP地址的一部分以区别网络标识和主机标识
    • 将一个大的IP网络划分为若干小的子网络
  • 子网掩码的工作流程:将32位的子网掩码与IP地址进行二进制形式的按位逻辑“与”运算,得到该IPv4地址所在的网络地址

image-20230205172427615

image-20230205172434430

2、子网掩码

  • 子网掩码是在lPv4地址资源紧缺的背景下为了解决IP地址分配而产生的虚拟IP技术,通过子网掩码将A、B、C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的局面。另一方面,在企业内网中为了更好地管理网络,网管人员也利用子网掩码的作用,人为地将一个较大的企业内部网络划分为更多个小规模的子网,再利用三层交换机的路由功能实现子网互联,从而有效解决了网络广播风暴和网络病毒等诸多网络管理方面的问题。

image-20230205172611871

32比特的子网掩码可以表明分类lIP地址的主机号部分被借用了几个比特作为子网号。

下面我们举例说明划分子网的细节: 己知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.128对其进行子网划分,请给出划分细节。

解析流程:

  • 从IP地址坐起第一个十进制为218,所以该IP地址为C类地址,C类地址的子网掩码默认为:255.255.255.0,而此时给出的子网掩码为255.255.255.128,则说明子网掩码向主机号借用了一个bit作为子网号

image-20230205172637284

  • 因为子网掩码向主机号借用了一个bit作为子网号,所以可划分出来的子网数量为2^1= 2个。每个子网可分配的地址数量为:2^(8-1)-2 = 126个。因为主机号的最高位被子网掩码借用了,主机号只有7位了,所以最多可分配2^(8-1)=128个地址,但是还需要去掉主机号为全0的网络地址和主机号为全1的广播地址所以还需要减2。

image-20230205172704000

  • 详细的子网划分

image-20230205172716439

5、子网掩码的CIDR斜线记法

格式:IP地址/n

说明: n表示子网掩码所使用的bit数,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数=2^(32-n)-2

例1: 192.168.1.100/24,其子网掩码表示为255.255.255.0

例2:172.16.198.12/20,其子网掩码表示为255.255.240.0

5.IP协议

1、用户数据在网络层(网际层)中使用IP协议进行封装,然后交付给数据链路层。IP协议提供不可靠无连接数据报传输服务

2、使用IP协议封装的数据我们称之为IP数据报

3、IP数据报的首部:IP数据报的首部由20个字节组成,IP数据报的首部常以32个比特为单位进行描述,下图中的每一行都由32个比特(也就是4个字节)构成,每个小格子称为字段或者域。

image-20230207094633740

image-20230207094639466

  • 版本:占4比特,表示IP协议的版本
  • 首部长度:占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5,表示IP数据报首部只有20字节固定部分,最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分
  • 区分服务︰8比特,一般不使用
  • 总长度:占16比特,表示IP数据报的总长度(首部+数据载荷)。最大取值为十进制的65535,以字节为单位(实际使用中不会传输这么长的IP数据报)。
  • 标识、标志、片偏移:这三个字段共同用于IP数据报分片,以太网中数据链路层规定MTU的值为1500字节,如果某个IP数据报总长度超过MTU,需要将原lP数据报分片成多个小的数据报,再将每个小的数据报封装成帧。

image-20230207151943110

  • 标识:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识。IP软件维持一个计数器,每产生一个数据报,计数器值加1,并将此值赋给标识字段。

  • 标志:占3比特,各比特含义如下:

    • DF位:1表示不允许分片,0表示允许分片
    • MF位:1表示“后面还有分片”,0表示“这是最后一个分片”■保留位:必须为0
  • 片偏移:占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位,片偏移以8个字节为单位。

  • IP数据报分片举例

image-20230207152238021

  • 生存时间:占8比特,最初以秒为单位,最大生存周期为255秒。路由器转发IP数据报时将IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为O就转发,否则就丢弃。现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为O就转发,否则就丢弃。
    • TTL作用可以防止IP数据报再网络中永久兜圈

image-20230207152303717

  • 协议︰占8比特,指明IPv4数据报的数据部分是何种协议数据单元。常用的一些协议和相应的协议字段值如下。

image-20230207152320471

  • 首部检验和:占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志片偏移等)的取值可能发生变化。
  • 源IP地址:占32比特,表示发送主机的IP地址。
  • 目的IP地址:占32比特,表示目的主机的IP地址。
6.IP数据报的发送和转发过程

IP数据报的发送和转发过程包含两部分:主机发送IP数据报、路由器转发数据报

假设在网络中由一台路由器连接了两个局域网,每个局域网的网络地址、子网掩码,以及每台主机的IP地址分配如下图所示:

image-20230207152506815

为什么左边网络的网络地址是:192.168.0.0,右边网络的网络地址是192.168.0.168

image-20230207152552745

同一个网络中的主机是可以直接通信的,这叫做直接交付,而不同网络中间的主机是不能直接通信的,需要通过路由器进行中转,这属于间接交付。那源主机是如何判断目的主机和自己是否在同一个网络中呢?

image-20230207152603532

主机C将自己的IP地址与子网掩码进行按位与操作得到主机C的网络地址: 192.168.0.0,然后将目的主机的IP地址与自己的子网掩码进行按位与操作得到目的网络地址:192.168.0.128,发现两个网路并不相等,说明主机C和主机F不在同一个网络中,不能进行直接交付,主机C将数据发送给路由器R,由路由器R再转发给主机F,这样就实现了主机F和主机F之间的数据通信(间接交付)。

image-20230207152615583

但是问题又来了:主机C又是如何知道要将数据发送给路由器R呢?我们需要将路由器的接口地址192.168.0.126作为主机C的默认网关,这样当主机C发现目的地址与自己不在同一网络中时则将数据发送给设置好的默认网关(路由器)。因此我们可以将左边网络中所有主机的默认网关填写为192.168.0.26,将右边网络所有主机的默认网关填写为192.168.0.254。

image-20230207152628794

那么路由器又是如何对数据进行转发的呢?假设主机A需要将数据发送给主机D,因为主机A与主机D不在同一个网络,所以主机A将数据发送给路由器R,路由器会进行如下操作:

  • 首先检查P数据报首部是否出错:若出错,则直接丢弃该IP数据报并通告源主机,若没有出错,则进行转发
  • 然后根据IP数据报的目的地址在路由表中查找匹配的条目:若找到匹配的条目,则转发给条目中指示的下一跳若找不到,则丢弃该P数据报并通告源主机

image-20230207152710078

7.路由表

1、什么是路由?

路由就是报文从源端到目的端的路径。当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发。

image-20230207152757706

2、什么是路由表?
在计算机网络中,路由表(routing table)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径。路由表建立的主要目标是为了实现路由协议和静态路由选择。路由表就相当于一张地图告诉数据报该如何去往目的地。

路由器会根据路由表进行数据包的转发:

image-20230207152817014

在windows下可以使用route print命令查看系统的路由表:

image-20230207152851352

我们发现ubuntu和windows系统的路由表中都有一条特殊的路由:目标地址为全网地址0.0.0.0 ,子网掩码为0.0.0.0,对应下一跳的地址为网关地址。那么这条路由的作用是什么呢?

我们先了解一下,计算机或者路由器是如何将一条数据通过网络发送出去的。首先将目的IP地址与自己的子网掩码进行按位与运算得到目的主机的主机号,然后拿该主机号与路由表中的路由进行匹配,如果匹配到了则将数据转发给指定的下一跳,如果没有匹配到,则转发给目标地址为0.0.0.0所对应的下一跳。

因此目标地址为0.0.0.0所对应的那条路由的作用就是:这条路由就是我们所说的默认路由,是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。

注意1: 当我们发现主机(尤其是一些嵌入式或者物联网的设备)不能够上网或者不能ping通外网的时候,假如检查了IP地址、DNS等设置都没问题后依然不能解决,我们可以查看系统的路由表中是否没有添加默认路由。

注意2: 不同的路由器查看路由表的命令不一样

思科路由器查看路由表命令为: show ip route

华为路由器查看路由表命令为:display ip routing-table

3、路由表的类型

路由表可以分为:静态路由和动态路由。

  • **动态路由 **:动态路由是指动态路由协议(如RIP)自动建立路由,并且能够根据实际情况的变化适时地进行调整。
    • 动态路由之所以能根据网络的情况自动计算路由、选择转发路径,是由于当网络发生变化时,路由器之间彼此交换的路由信息会告知对方网络的这种变化,通过信息扩散使所有路由器都能得知网络变化。
    • 路由器根据某种路由算法(不同的动态路由协议算法不同)把收集到的路由信息加工成路由表,供路由器在转发IP报文时查阅
    • 常见的动态路由协议有: RIP、OSPF、IS-IS、BGP、IGRP/EIGRP
  • 静态路由:由网络管理员手动配置的路由。
    • Linux系统静态路由操作:
      • 添加路由: route -n add -net目标地址/子网掩码位数gw下一跳,例如: route -nadd -net 192.168.1.0/24 192.168.33.2
      • 添加默认路由: route add default gw IP
      • 删除路由: route delete -net目标地址/子网掩码位数,例如: route delete -net192.168.1.0/24
      • 注意:参数-net表示操作某个网段,如果操作的数具体某台主机的地址则使用-host选项
    • 路由器静态路由操作:
      • 添加路由: ip route目标地址子网掩码下一跳地址,例如: ip route 192.168.3.0255.255.255.0 192.168.1.1
      • 删除路由: no ip route目标地址子网掩码下一跳地址
8.ARP高速缓存表

1、地址解析协议ARP

  • 如果网络中的主机需要互相通信,那么源主机必须要知道目的主机的IP地址和MAC地址,因为在数据链路层封装的MAC帧中需要封装目的地址和源地址。当已知目的主机的IP地址时,可以通过ARP协议获得目的主机的MAC地址
  • ARP请求报文封装在MAC帧中,目的地址为FF-FF-FF-FF,并且以广播的形式发送的。

image-20230207203913921

  • ARP协议工作流程

image-20230207203923436

2、ARP高速缓存表
ARP高速缓存(ARP cache),由最近的ARP项组成的一张临时表,表中记录了主机IP地址和MAC地址的对应关系。

image-20230207203953378

注意:ARP报文只能在发送主机所在的广播域中被使用!

image-20230207204000863

3、ARP欺骗

ARP欺骗是一种以ARP地址解析协议为基础的一种网络攻击方式。

ARP欺骗的原理:利用ARP协议没有安全认证机制,攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。

ARP欺骗分为两种:

  • 主机型欺骗:攻击者向其他主机发送ARP响应包,攻击者在响应包中填入网关的IP地址和自己MAC地址,这样主机A应该发送给网关的数据包会被网关转发给主机B
  • 网关型欺骗:攻击者向网关发送ARP响应包,攻击者在响应包中填入被攻击主机的IP地址和自己MAC地址,这样网关接收到互联网中发给主机A的数据时也会转发给主机B

ARP欺骗的危害:

  • 信息安全收到威胁
  • 网络延迟增加
  • 网络通信中断

ARP欺骗防范方法:

  • 安装补丁
  • 静态绑定:网内的主机与网关做lIP和MAC绑定·使用ARP防火墙
  • 不要点开通讯工具中的一些可疑链接、图片、文件等。

9.特殊IP地址

1、127.0.0.1

回环地址,该地址还有一个别名叫“localhost”,无论是哪个程序,一旦使用该地址发送数据,协议软件会立即返回,不进行任何网络传输,除非出错,包含该网络号的分组是不能够出现在任何网络上的。

2、10...*,172.16.—172.31.,192.168.**

上面三个网段是私有地址,可以用于自己组网使用,这些地址主要用于企业内部网络中,但不能够在Internet网上使用,Internet网没有这些地址的路由,而使用这三个网段的计算机要上网必须要通过网络地址转换(NAT),将私有地址翻译成公用合法的IP地址。

3、255.255.255.255

受限制的广播地址,对本机来说,这个地址指本网段内(同一个广播域)的所有主机,该地址用于主机配置过程中IP数据包的目的地址,这时主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也还不知道。在任何情况下,路由器都会禁止转发目的地址为受限的广播地址的数据包,这样的数据包仅会出现在本地网络中。

4、224.0.0.0—239.255.255.255

组播地址

5、169.254..

如果你的主机使用了DHCP功能自动获得一个ip地址,那么当你的DHCP服务器发生故障或响应时间太长而超出系统规定的一个时间,windows系统会为你分配这样一个地址。如果你发现你的主机ip地址是个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。

6、114.114.114.114

中国电信DNS

7、8.8.8.8

机,该地址用于主机配置过程中IP数据包的目的地址,这时主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也还不知道。在任何情况下,路由器都会禁止转发目的地址为受限的广播地址的数据包,这样的数据包仅会出现在本地网络中。

4、224.0.0.0—239.255.255.255

组播地址

5、169.254..

如果你的主机使用了DHCP功能自动获得一个ip地址,那么当你的DHCP服务器发生故障或响应时间太长而超出系统规定的一个时间,windows系统会为你分配这样一个地址。如果你发现你的主机ip地址是个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。

6、114.114.114.114

中国电信DNS

7、8.8.8.8

谷歌DNS

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

joker_fan`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值