【王道计算机网络笔记】网络层-网络层概述和编址

news2024/11/30 15:44:55

文章目录

    • IP数据报格式
    • IP数据报分片
      • 例题
    • IPv4地址
      • 分类的IP地址
    • 网络地址转换NAT
    • 子网划分与子网掩码
    • 无分类编址CIDR

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位是数据报,数据报是一个比较长的数据,分组是对数据报进行切割得到的一部分
功能:

  • 路由选择与分组转发(最佳路径)
  • 异构网络互联。4G,wifi,校园网等网络之间可以通信
  • 拥塞控制。如果所有结点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态,因此要采取一定措施,缓解这种拥塞

IP数据报格式

![[附件/Pasted image 20221209090606.png|500]]

IP数据报的首部分为固定部分和可变部分,固定部分占20B

  • 版本指明使用IPv4/IPv6

  • 首部长度:单位是4B,占用4位,可以从0000到1111,如果为1111,对应十进制数15,15×4B=60B,即IP数据报的首部为60B,其中固定部分20B,可变部分40B。因为固定部分为20B,因此最小为5,对应二进制数0101。
    可以看到可变部分最后有一个填充部分,为了把可变部分填充为4B的整数倍,否则无法用首部长度表示

  • 区分服务:指示期望获得那种类型的服务

  • 总长度:首部长度+数据长度,单位是1B,占16位,最大取值对应十进制数为 2 16 − 1 = 65535 2^{16}-1=65535 2161=65535

  • 标识、标志、片偏移后面讲

  • 生存时间(TTL):IP分组的保质期,经过一个路由器-1变成0则丢弃。确保分组不会永远在网络中循环

  • 协议:数据部分使用的协议
    ![[附件/Pasted image 20221209091718.png|500]]

  • 首部检验和:只校验分组的首部,而不校验数据部分,不重要

  • 源地址和目的地址:各占32位

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

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

IP数据报分片

最大传送单元MTU:数据链路层数据帧可封装数据的上限,以太网的MTU是1500字节,也就是下图的数据部分
![[附件/Pasted image 20221212082019.png|400]]

![[附件/Pasted image 20221209090606.png|500]]

  • 标识:同一数据报的分片使用同一标识。使分片知道自己是哪一家的
  • 标志:占三位,只有后两位有意义
    中间位DF:DF=1,(满足)禁止分片;DF=0,允许分片
    最低位MF:MF=1,后面还有分片;MF=0,代表最后一片/没分片
  • 片偏移:指出较长分组分片后,某片在原分组中的相对位置,以8B为单位。
    占13位,如0……01,换成十进制即为1, 1 × 8 B = 8 B 1\times 8B=8B 1×8B=8B,也就是说这个分片从数据报的数据部分8B开始往后
    除了最后一个分片,每个分片一定是8B的整数倍

总长度占16字节,单位是1B
片偏移占13字节,单位是8B
首部长度占4字节,单位是4B

例题

![[附件/Pasted image 20221212083355.png|350]]

定义需要分片为长度不超过1420B的数据报分片

因为每一个分片都需要携带相同长度的首部,因此每个分片最大数据部分为1400B,
第一个分片数据部分为1400B,第二个1400B,第三个1000B
![[附件/Pasted image 20221212083600.png|500]]

然后计算片偏移,第一个分片显然是从0B-1399B,因此片偏移为0;第二个分片从1400B-3799B,片偏移为 1400 B 8 B = 175 \frac{1400B}{8B}=175 8B1400B=175,类似地,第三个分片片偏移为为350
![[附件/Pasted image 20221212083826.png|500]
]

IPv4地址

分类的IP地址

IP地址={<网络号>,<主机号>}
11011111.00000001.00000001.00000001=223.1.1.1(点分十进制)
![[附件/Pasted image 20221212085444.png|550]]

上图共有6个逻辑上的网络
每个路由器总是有两个或两个以上IP地址,路由器的每个接口都会有不同网络号的IP地址

![[附件/Pasted image 20221212085701.png|500]]

最前面固定的几位可以看做标志位

  • 特殊IP地址

![[附件/Pasted image 20221212085857.png|500]]

环回地址就是自己给自己发,检测设备是否可以正确的接受发送数据、网络层是否能正常工作等

  • 常用的三种类别IP地址的使用范围

![[附件/Pasted image 20221212091200.png|500]]

A的最大可用网络数要-2,减去的是全0和127(环回地址);每个网络中的最大主机数也要-2,减去全0和全1
B的最大可用网络数要-1,减去的是128.0不可指派,也就是全0;每个网络中的最大主机数也要-2,减去全0和全1
C的最大可用网络数要-1,减去的是192.0.0不可指派,也就是全0;每个网络中的最大主机数也要-2,减去全0和全1

  • 私有IP地址

![[附件/Pasted image 20221212090734.png|400]]

网络地址转换NAT

网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址
![[附件/Pasted image 20221212100953.png|500]]

![[附件/Pasted image 20221212101745.png|300]]

如果此时A要与B通信,A发出一个数据报,那么该数据报的源地址就是192.168.0.3,目的地址是213.18.2.4,端口号(假设)是30000,这时数据报到NAT路由器处,根据NAT转换表,需要将LAN端映射成WAN端,即该数据报的源地址就是172.38.1.5,目的地址是213.18.2.4,端口号是40001

端口号可以表明主机内的某一个进程

同理如果B向A发送一个数据报,那么该数据报的源地址就是213.18.2.4,目的地址是172.38.1.5,端口号(假设)是40001,这时数据报到NAT路由器处,根据NAT转换表,需要将WAN端映射成LAN端,即该数据报的源地址就是213.18.2.4,目的地址是192.168.0.4,端口号是30001

子网划分与子网掩码

分类IP地址的缺点:

  • IP地址空间的利用率有时很低(某公司申请了一个B类网络,但是可能只有几台主机,但认为自己公司未来可能扩张,因此不想申请C类网络,但是很多IP地址实际上没用上,因此利用率很低)
  • 两级IP地址不够灵活(单位要在一个新的地方马上开通一个新的网络,显然这是需要时间的)

![[附件/Pasted image 20221212103250.png|400]]

申请到一个网络后,划分子网是自己的选择,不需要向运营商申请。虽然划分了一个网络,但是对外仍表现为一个网络,即外面的网络看不见本网络内子网的划分

子网号能否全0全1要看情况,主机号不能全0全1,全0就是本网络,全1就是广播

[[附件/Pasted image 20221212103730.png|500]]

假设此时有一个外部网络的数据报要发给145.13.3.10

子网掩码是一个与P地址相对应的、长32bit的二进制串,它由一串1和跟随的一串0组成。其中,1对应于IP地址中的网络号及子网号,而0对应于主机号。计算机只需将IP地址和其对应的子网掩码逐位“与”(逻辑AND运算),就可得出相应子网的网络地址。

例如:已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址
255是8个1,0是8个0,因此子网地址是141.14.xxx.0
192=11000000,72=01001000,与的结果是01000000即64
因此子网网址为141.14.64.0

如果子网掩码是255.255.224.0,求网络地址
结果一样141.14.64.0

但第一个子网掩码占了18位,剩下14位都是主机号,第二个子网掩码占了19位,剩下13位都是主机号

例:某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址是

子网网络地址为180.80.xxx.0
252对应11111100,这里可以看出子网掩码有8+8+6=22位,77对应01001101,取前6位进行与运算,得到01001100,对应76,因此子网掩码是180.80.76.0
现在需要进行广播,因此主机号全是1,之前说网络号占22位,剩下10位都是主机号,因此加上之前算的子网掩码后6位,即为180.80.010011 11.255,因此就得到了180.80.79.255

要注意子网掩码是11111111.11111111.11111100.00000000,因此第三部分被划分成了两块,前6位是网络号,后两位是主机号

使用子网掩码的情况

  • 一台主机在设置IP地址信息的同时,必须设置子网掩码
  • 同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码
  • 路由器的路由表中,所包含信息的主要内容必须有目的网络地址、子网掩码、下一跳地址

使用子网掩码时路由器的分组转发算法如下:

  1. 从收到的分组的首部提取目的P地址,记为D
  2. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则将分组直接交付,否则间接交付,执行步骤3.
  3. 若路由表中有目的地址为D的特定主机路由,则将分组传送给路由表中所指明的下一跳路由器:否则,执行4.
  4. 对路由表中的每一行(目的网络地址、子网掩码、下一跳地址)中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器:否则,执行步骤5.
  5. 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器:否则,执行步骤
  6. 报告转发分组出错。

无分类编址CIDR

无分类域间路由选择即CIDR

  • 消除了传统A、B、C类地址划分
    ![[附件/Pasted image 20221212112037.png|300]]

    CIDR记法:IP地址后加上/,然后写上网络前缀(可以任意长度)的位数,e.g.128.14.32.0/20

  • 融合子网地址与子网掩码,方便子网划分
    CIDR把网络前缀相同的连续的IP地址组成一个CIDR地址块
    128.14.35.7/20是某CIIDR地址块中的一个地址
    变成二进制:10000000 00001110 00100011 00000111
    最小地址:10000000 00001110 00100000 00000000
    最大地址:10000000 00001110 00101111 11111111
    地址块:128.14.32.0/20
    地址掩码(子网掩码):11111111 11111111 11110000 00000000

应用

  • 构成超网

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
方法:将网络前缀缩短
![[附件/Pasted image 20221213104314.png|400]]

例如,在如图所示的网络中,如果不使用路由聚合,那么R1的路由表中需要分别有到网络1和网络2的路由表项。不难发现,网络1和网络2的网络前缀在二进制表示的情况下,前16位都是相同的,第17位分别是0和1,并且从R1到网络1和网络2的路由的下一跳皆为R2。若使用路由聚合,在R1看来,网络1和网络2可以构成一个更大的地址块206.1.0.0/16,到网络1和网络2的两条路由就可以聚合成一条到206.1.0.0/16的路由。
![[附件/Pasted image 20221213104401.png|200]]

例:某路由表中有转发接口相同的4条路由表项, 其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、 35.230.48.0/21、 35.230.56.0/21, 将该4条路由聚合后的目的网络地址为,35.230.32.0/19
![[附件/Pasted image 20221213104712.png|300]]

  • 最长前缀匹配

在使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位与),应选择具有最长网络前缀路由。前缀越长,地址块越小,路由越具体

例如:有三个网络地址206.0.68.0/22、206.0.71.128/25、206.0.71.0/25,现发出一个数据报,目的地址为206.0.71.130
与第一个网络的子网掩码进行与运算,结果为206.0.68.0/22,可以发送给第一个网络
与第二个网络的子网掩码进行与运算,结果为206.0.71.128/25,可以发送给第二个网络
与第三个网络的子网掩码进行与运算,结果为206.0.71.128/25,不可以发送给第三个网络
我们得到可以发给一、二两个网络,但是根据最长前缀匹配,显然第二个网络匹配了25位,长于第一个网络22位,因此发给第二个网络

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

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

相关文章

基于51单片机的智能热水器无线WiFi控制系统proteus仿真原理图程序

功能&#xff1a; 0.本项目采用STC89C52作为单片机系统的控制MCU 1.LCD1602液晶实时显示温度阈值、当前温度和定时时间 2.支持按键和红外遥控设置温度阈值和定时时间 3.通过传感器检测&#xff0c;判定当前值是否超过设定的阈值&#xff0c;然后对相关继电器进行控制 4.支持声光…

使用DevExpress WPF主题设计器轻松创建Office 2019绿色主题(二)

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF的The…

数据结构C语言版 —— 时间复杂度空间复杂度概念和计算

文章目录时间复杂度&空间复杂度1. 算法效率2. 时间复杂度1) 时间复杂度的概念2) 大O的渐近表示法3) 时间复杂度案例举例3. 空间复杂度1) 空间复杂度概念2) 计算实例时间复杂度&空间复杂度 1. 算法效率 算法效率分析一般分为两种&#xff0c;一种是时间效率&#xff0…

Unity初学者Shader Graph教程

Unity初学者Shader Graph教程 了解面向非程序员的 Unity 引擎可视化着色器编程工具的来龙去脉 课程英文名&#xff1a;Your Ultimate Guide to Shader Graph for Beginners 此视频教程共28.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰无水印&#xff0c;源码附件全 …

基于C++实现(WinForm)家谱管理系统【100010033】

⼀、需求分析 《家谱管理系统》程序的设计⽬的&#xff0c;是为了解决中国传统家谱不易保存、不易修改、不易统计的缺陷。利⽤计算机程序&#xff0c;可以实现在计算机上存储、管理、查看家谱的相关信息。 ⽬标功能&#xff1a; 建⽴家谱&#xff1a;在计算机上建⽴树状家谱结…

二叉树算法

写在前面 树的定义 typedef struct Node {int data;struct Node *lchild,*rchild; }Bnode,*Btree;最近公共祖先 已知一棵二叉树按顺序存储结构进行存储&#xff0c;设计一个算法&#xff0c;求编号分别为i和j的两个节点的最近公共祖先节点的值。 算法思想&#xff1a; 顺序…

牛客竞赛每日俩题 - Day9

目录 日期推算 分解因数 日期推算 美国节日__牛客网 思路&#xff1a; 首先&#xff0c;我们要想找到一个月第N个星期W&#xff0c;一定需要一个参照物&#xff0c;最好的目标当然是这个月的第一天。拿到参照物后&#xff0c;我要能得 到参照物的星期数&#xff0c;然后就能…

马来酰亚胺聚乙二醇叠氮,MAL-PEG-N3,Maleimide-PEG-Azide

马来酰亚胺聚乙二醇叠氮&#xff08;MAL-PEG-N3&#xff09;是MeloPEG的硫醇反应性“点击化学”PEG交联剂之一。马来酰亚胺与pH 6.5-7.5的游离巯基/巯基迅速反应&#xff0c;形成稳定的&#xff0c;不可裂解的硫醚键。马来酰亚胺和硫醇的反应使得叠氮化物功能性PEG能够快速有效…

[附源码]Python计算机毕业设计Django的家政服务平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

设计模式-Acyclic Visitor(非循环访问者模式)

目的&#xff1a;允许将新功能添加到现有的类层次结构中&#xff0c;而不会影响这些层次结构&#xff0c;也不会有四人帮访客模式中那样循环依赖的问题。 类图&#xff1a; 使用场景&#xff1a; 需要在现有层次结构中添加新功能而无需更改或影响该层次结构时。 当某些功能在层…

Linux服务器远程访问通过Tomcat部署的静态资源

一、安装Java和Tomcat 1.1 安装Java 下载jdk8切换到root用户&#xff0c;创建文件夹/usr/local/java&#xff0c;将下载的jdk压缩包上传到该目录下&#xff0c;解压 mkdir /usr/local/java cd /usr/local/java rz tar -zxvf jdk-8u351-linux-x64.tar.gz编辑配置文件&#xf…

数据技术篇之数据服务

第6章 数据服务 1.服务架构演进 演进过程 DWSOA &#xff08;1&#xff09;实施原理   将业务方对数据的需求通过SOA服务的方式暴露出去。有需求驱动&#xff0c;一个需求开发一个或则几个接口&#xff0c;编写接口文档&#xff0c;开放给业务方调用。 &#xff08;2&…

[附源码]Python计算机毕业设计SSM基于WEB的心理测评系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【手把手教你】使用qstock进行量化回测

01qstock简介qstock由“Python金融量化”公众号开发&#xff0c;试图打造成个人量化投研分析开源库&#xff0c;目前包括数据获取&#xff08;data&#xff09;、可视化(plot)、选股(stock)和量化回测&#xff08;backtest&#xff09;四个模块。其中数据模块&#xff08;data&…

SAS中用单因素ANOVA研究不同疗法对焦虑症的有效性

本教程将介绍如何使用SAS进行单因素方差分析。 最近我们被客户要求撰写关于单因素ANOVA的研究报告&#xff0c;包括一些图形和统计输出。我们想研究不同疗法对焦虑症的有效性。我们收集了以下类别的75个主题的样本&#xff1a; 无处理&#xff08;1个n1 27&#xff09;。生物…

5W3H法与SMART原则的结合使用

5W3H 5W3H分析法&#xff0c;又称“八何分析法”。在实际工作中&#xff0c;人们常常运用5W3H分析法&#xff0c;进行顾客分析、市场需求分析&#xff0c;解决计划编制的结构问题、方向问题、执行力问题。 5W3H是描述问题的手段&#xff0c;其具体指的是&#xff1a;What&…

【图像处理】深入解析LBP算法

问题 LBP是一种常见的特征描述算法&#xff0c;用来提取局部的纹理特征&#xff0c;其原理其实很简单&#xff0c;下面我们就来看看它是怎么一回事吧。 LBP简介 LBP&#xff08;Local Binary Patterns&#xff0c;局部二值模式&#xff09;是一种很简单但很高效的局部纹理特…

2025年DMS前装搭载或突破750万辆!多方势力搅局「融合集成」

在智能驾驶功能和舱内人机交互体验不断融合演进的过程中&#xff0c;基于摄像头的DMS/OMS功能正在进入新的发展周期。而在欧洲等部分国家及地区&#xff0c;DMS的标配&#xff08;主要涉及驾驶安全的监控&#xff0c;比如&#xff0c;驾驶员疲劳、注意力分散、安全带使用、吸烟…

java工厂策略模式的开发应用

java工厂策略模式的开发应用前言准备工作具体实现测试仰天大笑出门去&#xff0c;我辈岂是蓬蒿人前言 大概内容&#xff1a; 假设我有五个车间&#xff0c;每一个车间生产不同的车子&#xff0c;想要统一管理&#xff0c;不关心哪个车间生产什么车&#xff1b;只需找一个代理…

Ajax(一)

1.客户端与服务器 1.1 服务器 上网过程中&#xff0c;负责存放和对外提供资源的电脑。 1.2 客户端 上网过程中&#xff0c;负责获取和消费资源的电脑。 2.URL地址 2.1 URL地址的概念 2.2 URL地址的组成部分 3. 分析网页的打开过程 3.1 图解客户端与服务器的通信过程 三个…