计算机网络————网络层

news2024/11/16 5:26:36

文章目录

  • 网络层设计思路
  • IP地址
    • IP地址分类
    • IP地址与硬件地址
  • 协议
    • ARP和RARP
    • IP
    • 划分子网和构造超网
      • 划分子网
      • 构造超网(无分类编址CIDR)
    • ICMP
  • 虚拟专用网VPN和网络地址转换NAT
    • VPN
    • NAT

网络层设计思路

  • 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
  • 网络在发送分组时不需要先建立连接,每一个分组(也就是IP数据报)独立发送,与其前后的分组无关。
  • 网络层不提供服务质量的承诺,可靠通信由网络的主机中的运输层负责(包括差错处理、流量控制等)
  • 好处:网络造价大大降低,运行方式灵活,能适应多种应用。

IP地址

  IP地址:就是因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位标识符。IP地址的结构使得可以在因特网上很方便地进行寻址。


  IP地址由因特网名字与号码指派公司ICANN进行分配


  IP地址的编址方法:

  • 分类的IP地址。最近本的编址方法
  • 子网的划分。对最基本的编址方法的改进
  • 构成超网。误分类编址方法

“分类的IP地址”:就是把IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,

  • 第一个字段是网络号net-id,标志主机(或路由器)所连接到的网络,在整个因特网范围内必须唯一
  • 第二个字段是主机号host-id,标志该主机(或路由器),在它前面的网络号所指明的网络范围内必须唯一

一个IP地址在整个因特网上是唯一的

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

"::="表示定义为

IP地址分类

在这里插入图片描述

  • A类、B类和C类地址都是单播地址(一对一通信),是最常用的
  • A、B、C类地址的网络号字段分别为1,2,3字节,网络号字段的最前面有1~3位的类别位,数值分别规定为0,10,110
  • A、B、C类地址的主机号字段分别为3个、2个和1个字节长
  • D类地址(前四位是1110)用于多播(一对多通信)
  • E类地址(前四位是1111)保留为以后用
  • 注:近年来已广泛使用无分类IP地址进行路由选择

IP地址的指派范围:
在这里插入图片描述
一般不使用的特殊IP地址:
在这里插入图片描述

IP地址的一些特点:

  • 分等级的地址结构
  • 方便管理,只分配网络号,主机号由得到该网络号的单位自行分配
  • 路由器仅根据目的主机所连接的网络号来转发分株,减少路由表所占的存储空间和查找路由表时间
  • 一个网络是指具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络

IP地址与硬件地址

  • 局域网里,硬件地址固化在网卡上的ROM中,因此常将硬件地址称为物理地址。局域网的MAC帧中的源地址和目的地址都是硬件地址,因此硬件地址又称为MAC地址。
  • 但有时,如X.25网,计算机的硬件地址并不是固化在ROM中的。

区别:

  • 物理地址是数据链路层和物理层使用的地址
  • IP地址是网络层和以上各层使用的地址,是一种逻辑地址在这里插入图片描述

协议

IP协议


与IP协议配套使用的还有四个协议

  • 地址解析协议ARP(Address Resolution Protocol)
  • 逆地址解析协议RARP(Reverse Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)

  • IP经常要使用ARP和RARP
  • ICMP和IGMP要使用IP协议

在这里插入图片描述

ARP和RARP

在这里插入图片描述

RARP的主要功能是:只知道自己硬件地址的主机能够通过RARP协议找出其IP地址。现在DHCP协议已经包含RARP协议的功能,因此不再单独使用RARP协议。


ARP

  • 每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表
  • 在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表经常动态更新。

获取硬件地址流程:

  • 主机A要向本局域网上的某个主机B发送IP数据报时,先在ARP高速缓存中查看有无主机B的IP地址。
  • 如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址
  • 如没有,主机A就自动运行ARP寻找B的硬件地址
  • ARP进程在本局域网上广播发送一个ARP请求分组
  • 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组
  • 主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。其余所有主机不理睬这个ARP请求分组
  • 主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射
  • 注:这个过程,主机B收到A的ARP请求分组时,就把A的这一地址映射写入主机B自己的ARP高速缓存中。

ARP高速缓存中的每一个映射地址项目都设置生存时间

IP

在这里插入图片描述

一个IP数据报由首部和数据两部分组成,首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。固定部分的后面是一些可选字段,长度是可变的。


数据报首部的固定部分中的各字段:

  • 版本:4位。IPv4,IPv6

  • 首部长度:4位。单位是32位字,即4字节。最大可表示十进制数值是15,即1111,最大就是15×4=60字节。IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

  • 区分服务:8位。旧标准中叫服务类型。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,才起作用。

  • 总长度:16位。指首部和数据之和的长度,单位是字节。因此数据报的最大长度为 2 16 − 1 = 65535 2^{16}-1=65535 2161=65535字节

    • IP层下面的每一种数据链路层都有其自己的帧格式,其中包括的帧格式中的数据字段的最大长度,称为最大传送单元MTU(Maximum Transfer Unit) ,此数据报总长度(首部加上数据部分)一定不能超过下面的数据链路层的MTU值。
    • 实际上使用的数据报长度很少有超过1500字节的。
    • 为了保证传输效率,规定,所有的主机和路由器必须能够处理的IP数据报长度不得小于576字节,即最小的IP数据报的总长度。
    • 当数据报长度超过网络所容许的最大传送单元MTU时,就必须把过长的数据报进行分片后才能在网络上传送。这时,数据报首部中的“总长度”字段指的是分片后的每一个分片的首部长度与数据长度的总和。
  • 标识(identification):16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。当数据报的长度超过MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片后的各数据报片最后能正确地重装成为原来的数据报。

  • 标志(flag):3位,但目前只有两位有意义。

    • 标志字段中最低位记为MF(More Fragment)。MF=1表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
    • 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”,只有当DF=0时才允许分片。
  • 片偏移:13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。也就是说,每个分片的长度一定是8字节(64位)的整数倍。

  • 生存时间TTL:8位。表明数据报在网络中的寿命。由发送数据报的源点设置这个字段,目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初以秒为单位,随着技术发展,改为“跳数限制”,单位为跳数。路由器在转发数据报之前就把TTL减一,若减小为0,就丢弃,不再转发。

  • 协议:8位。指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。在这里插入图片描述

  • 首部校验和:16位。只检验数据报的首部,但不包括数据部分。为0,首部未发生变化,保留数据报,否则认为出现差错,将此数据报丢弃。

  • 源地址:32位

  • 目的地址:32位


数据报首部的可变部分:
  就是一个选项字段。选项字段用来支持排错、测量以及安全等措施。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。

划分子网和构造超网

划分子网

两级IP地址到三级IP地址:

  • 两级IP地址不够灵活
  • 增加一个“子网号字段”
  • 这种做法叫做划分子网,或子网寻址或子网路由选择

基本思路:

  • 划分子网是一个单位内部的事情,本单位以外的网络看不见这个网络是由多少个子网构成的,对外仍然表现为一个网络
  • 从网络的主机号接用若干位作为子网号subnet-id,主机号就相应减少了同样的位数。
    • IP地址::={<网络号>, <子网号>, <主机号>}
  • 从其他网络发送给本单位的某个主机IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,再把IP数据报交付给目的主机

子网掩码:

  • 为了使路由器能很方便地从数据报中的目的IP地址中提取出索要找的子网的网络地址,路由器就要使用子网掩码。
  • 子网掩码也是32位,由一串1和跟随的一串0组成。1对应于IP地址中原来的net-id加上subnet-id,而子网掩码中的0对应于现在的host-id。
  • 例子:在这里插入图片描述
  • 如果一个网络不划分子网,就使用默认子网掩码。默认子网掩码中的1对应net-id,这样可以不用查找该地址的类别位就能知道是哪一类的IP地址。
    在这里插入图片描述
    在这里插入图片描述
    划分子网增加了灵活性,却减少了能够连接在网络上的主机总数。

使用子网划分后,路由表包括:目的网络地址、子网掩码和下一跳地址

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

无分类域间路由选择CIDR:

  • 消除了传统的A类、B类和C类地址以及划分子网的概念,可以更有效地分配IPv4地址空间。
  • CIDR把32位IP地址划分为两个部分:
    • 前面的部分是“网络前缀”,用来指明网络
    • 后面的部分用来知名主机
  • 无分类的两级编址:
    • IP地址::={<网络前缀>, <主机号>}
  • 使用“斜线记法”,或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。
  • CIDR把网络前缀相同的连续的IP地址组成一个“CIDR地址块”。只要知道CIDR地址快中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
  • 例子:
    • 128.14.35.7/20,前20位是网络前缀,后面是主机号
    • 这个地址所在地址块中的最小地址和最大地址可以很方便的得出
    • 最小地址 128.14.32.0
    • 最大地址 128.14.47.255
    • 主机号全0和全1的地址一般不使用,只使用这两个地址之间的地址。
  • 为了更方便的进行路由选择,使用32的地址掩码,也是一串1和一串0组成,1的个数是网络前缀的长度。
  • 斜线记法中,斜线后面的数值就是地址掩码中1的个数

  • 由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示原来传统分类地址的很多个(例如上千个)路由。
  • 路由聚合也称为构成超网

在这里插入图片描述最长前缀匹配
使用CIDR时,采用了网络前缀这种记法,IP地址由网络前缀和主机号这两个部分组成,因此在路由表中的项目也要有相应的改变。每个项目由网络前缀和下一跳地址组成,在查找路由表时可能会得到不止一个匹配结果,如何选择呢?

  • 从匹配结果中选择具有最长网络前缀的路由。这叫最长前缀匹配。又称为最长匹配或最佳匹配。

ICMP

  • 为了更有效地转发IP数据报和提高交付成功的机会。
  • ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
  • ICMP报文作文IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。

在这里插入图片描述ICMP报文分类
1、ICMP差错报告报文
2、ICMP询问报文


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

代码字段是为了进一步区分某种类型中的几种不同情况。
校验和字段用来检验整个ICMP报文。

接着4个字节的内容与ICMP的类型有关。
最后面是数据字段,其长度取决于ICMP的类型。


常用ICMP报文类型:
在这里插入图片描述


ICMP差错报告报文:
1、终点不可达:路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
2、源点抑制:路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢
3、时间超过:路由器收到生存时间为0的数据报时,除丢弃数据报外,还向源点发送时间超过报文。
当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
4、参数问题:路由器或目的主机收到的数据报首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
5、改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器

差错报文格式:
在这里插入图片描述在这里插入图片描述


常用的ICMP询问报文:
1、回送请求和回答:
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。

2、时间戳请求和回答:
时间戳请求报文是请某个主机或路由器回答当前的日期和时间。时间戳请求和回答可用来与回答可用来进行时钟同步和测量时间。回答报文有一个32位的字段,写入的整数代表从1900年1月1日其到当前时刻一共有多少秒。

ICMP应用举例

1、分组网间探测PING(Packet InterNet Groper),用来测试两个主机之间的可达性。用到了ICMP回送请求与回送回答报文。是应用层直接使用网络层ICMP的一个例子,没有通过运输层的TCP或UDP。

2、traceroute(unix),tracert(Windows)

Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报。

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

VPN

专用地址

  • 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。
  • 专用地址只用作本地地址而不能用作全球地址。
  • 在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
  • RFC1918指明的专用地址是:
  • 在这里插入图片描述- 专用IP地址的互联网称为专用互联网或本地互联网,或叫做专用网。
  • 专用IP地址也叫做可重用地址

很大机构有许多部门分布在相距很远的一些地点,在每个地点都有自己的专用网。
如果要通信:
1、租用电信公司的通信线路为本机构专用。
简单方便,线路的租金高
2、利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用VPN(Virtual Private Network)

如果不同网点之间的通信必须经过公用的因特网,但又有保密的要求,那么所有通过因特网传送的数据都必须加密。

NAT

另外一种情况,专用网络内部的一些主机本来已经分配到本地IP地址,但又想和因特网上的主机通信(不需要加密),采取什么措施?

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/700905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql表中出现特殊符号(逗号,点号),如何进行查询或操作

mysql表中出现特殊符号&#xff08;逗号&#xff0c;点号&#xff09;&#xff0c;如何进行查询或操作 一、背景说明二、需要把表"引"起来&#xff0c;tab键上面的那个按钮&#xff0c;不是引号 一、背景说明 当mysql表名中出现如点号&#xff08;.&#xff09;&…

安装并使用docker

1、安装docker 1.1、更新现有的包列表&#xff1a; sudo apt update 1.2、用apt安装一些允许通过HTTPS才能使用的软件包&#xff1a; sudo apt install apt-transport-https ca-certificates curl software-properties-common 1.3、将官方Docker存储库的GPG密钥添加到您的系统…

二.Elasticsearch进阶

建议从这里开始看&#xff1a;Elasticsearch快速入门及使用 Elasticsearch进阶 一.Elasticsearch检索方式1.uri 检索参数(不常用)2.uri 请求体(常用&#xff0c;也叫Query DSL) 二.Query DSL语法举例1.match全文匹配2.match_phrase短语匹配3.multi_match多字段匹配4.bool复合…

在Gradio中创建交互式代码编辑器:介绍Code模块和其功能

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

Matlab评价模型--灰色关联度分析

评价模型–灰色关联度分析 灰色关联度分析 基本思想 灰色关联分析的基本思想 是根据序列曲线几何形状的相似程度来判断其联系是否紧密&#xff0c;曲线越接近&#xff0c;相应序列之间的关联度就越大&#xff0c;反之则越小。 此方法可用于 进行系统分析&#xff0c;也可应用…

uniapp顶部导航栏被遮住显示问题

解决uniapp顶部导航栏被遮住显示问题 uniapp官方给了处理的方案&#xff0c;即css变量&#xff0c;–status-bar-height&#xff0c;小程序这个值是25px&#xff0c;app则根据实际情况去变化 如下&#xff1a; //头部导航栏 <view class"header"> </view…

【算法题】动态规划中级阶段之最长回文子串、括号生成、跳跃游戏

动态规划中级阶段 前言一、最长回文子串1.1、思路1.2、代码实现 二、括号生成2.1、思路2.2、代码实现 三、跳跃游戏 II3.2、思路3.2、代码实现 总结 前言 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种解决多阶段决策过程最优化问题的方法。…

加速你的容器管理!轻松安装kubeadm、kebelet和kubectl!

1 kubernetes镜像切换成国内源 访问 阿里云镜像&#xff1a; M1M2芯片的arm64架构需要更改&#xff1a; cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_6…

Nginx【概述、应用场景、环境准备、下载与安装、目录详解、】(一)-全面详解(学习总结---从入门到深化)

目录 Nginx概述 Nginx 四大应用场景 为什么用Nginx 环境准备 Nginx下载与安装 Nginx目录详解 Nginx概述 Nginx是一款轻量级的Web服务器、反向代理服务器&#xff0c;由于它的内存占用少&#xff0c;启动极快&#xff0c;高并发能力强&#xff0c;在互联网项目中广泛应用。Ngi…

Linux基础:Vim编辑器实用指南

前言 Linux基础是学习云原生的重中之重&#xff0c;如果你还不知道学习路线可以参考&#xff1a; 耗时3个月&#xff0c;线下访谈30 csdn大佬&#xff0c;规划出了我的云原生学习路线 文章目录 前言vim的介绍vim的四种模式1. 插入模式1.1 进入插入模式&#xff1a;1.2 退出插入…

layui实现选择框搜索(下拉搜索)功能

1.可以使用官方介绍的方法&#xff0c;适用于form表单内的下拉搜索&#xff0c;外层需要使用layui-form样式&#xff0c;select标签内添加lay-search“”&#xff0c;此方法若外层不添加layui-form无法实现搜索功能&#xff0c;如下所示&#xff1a; 2.下面是另一种形式的下拉选…

【GESP】2023年06月图形化一级 -- 小猫寻宝

文章目录 小猫寻宝1. 准备工作2. 功能实现3. 设计思路与实现&#xff08;1&#xff09;角色、舞台背景设置a. 角色设置b. 舞台背景设置 &#xff08;2&#xff09;脚本编写a. 角色&#xff1a;Catb. 角色&#xff1a;Crystal 4. 评分标准 小猫寻宝 1. 准备工作 &#xff08;1&…

kafka生产者api和数据操作

Kafka 生产者 发送流程 消息发送过程中涉及到两个线程——main线程和Sender线程 main线程 使用serializer&#xff08;并非java默认&#xff09;序列化数据&#xff0c;使用partitioner确认发送分区 在main线程中创建了一个双端队列RecordAccumulator&#xff0c;main线程将…

从0到1搭建spring cloud alibaba +springboot+nacos+dubbo微服务

版本关系&#xff1a; spring cloud alibaba各组件对应关系 创建父工程&#xff0c;pom.xml配置如下&#xff1a; 由以上版本对应关系&#xff1a; springboot版本&#xff1a;2.3.2.RELEASE spring cloud 版本选择&#xff1a;Hoxton.SR9 spring cloud alibaba版本选择&#…

【UE5 Cesium】02-Cesium for Unreal 添加在线数据集

上一篇&#xff1a; 【UE Cesium】01-在虚幻5中使用Cesium 步骤 1. 点击“connected to Cesium ion as xxx” 在弹出的网址中点击“Asset Depot”&#xff08;资产仓库&#xff09; 找到“Melbourne Photogrammetry”点击添加&#xff0c;添加到你的账户中。&#xff08;这里我…

关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会

前言 一直做的PC端的项目开发&#xff0c;想做一下手机端的开发。后端基本上是不用怎么变化&#xff0c;主要变化的是前端&#xff0c;前端网页运行的地方不同&#xff0c;一个运行在手机&#xff0c;一个运行在PC网页上。微信小程序的开发和Vue框架开发有诸多相似之处&#xf…

smardaten用户手册全新发布!5个超实用的使用技巧(建议收藏!)

社区版发布后&#xff0c;很多用户自行下载安装使用&#xff0c;我们收到了一些客官关于产品文档的吐槽和建议~~于是&#xff0c;我们重新编排了用户手册&#xff0c;来帮助大家更快、更好、更简单的上手无代码开发。今天睿睿来跟大家分享用户手册更新点&#xff0c;以及如何使…

常用网络接口自动化测试框架

目录 一、RESTful&#xff08;resource representational state transfer)类型接口测试 (一&#xff09;GUI界面测试工具&#xff1a;jmeter &#xff08;二&#xff09;JAVA语言脚本测试&#xff08;HttpClient) 二、WebService接口测试 &#xff08;一&#xff09;GUI界…

JAVA1

文章目录 计算机的硬件与软件DOS命令 计算机的硬件与软件 DOS命令

Flink-任务槽和并行度的关系

任务槽和并行度都跟程序的并行执行有关&#xff0c;但两者是完全不同的概念。简单来说任务槽是静态的概念&#xff0c;是指TaskManager具有的并发执行能力&#xff0c;可以通过参数taskmanager.numberOfTaskSlots进行配置&#xff1b;而并行度是动态概念&#xff0c;也就是Task…