【计算机网络】网络层协议解析
- 网络层的两种服务
- IPv4
- 分类编址
- 划分子网
- 无分类地址
- IPv4地址应用
- IP数据报的发送和转发过程
- 主机发送IP数据报
- 路由器转发IP数据报
- IPv4数据报首部格式
- ICMP网际控制报文协议
- 虚拟专用网VPN与网络地址转换NAT
网络层主要任务是实现网络互连,进而实现数据包在各网络之间的传输。
因特网是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。
由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层通常称为网际层
网络层的两种服务
IPv4
IPv4地址是因特网上的每一台主机的每一个接口分配在一个全世界范围内的唯一32比特的标识符。
分类编址
A类地址:8位网络号(0开头)+24位主机号
B类地址:16位网络号(10开头)+ 16位主机号
C类地址:24位网络号(110)+8位主机号
D类地址:多播地址(1110)
E类地址:保留为今后使用(1111)
只有ABC类地址可分配给网络中的主机或路由器的各接口
主机号为全0的地址是网络地址,不能分配给主机或路由器的各接口
主机号为全1的地址是广播地址,不能分配给主机或路由器的各接口
划分子网
无分类地址
IPv4地址应用
定长的子网掩码FLSM
使用同一个子网掩码来划分子网,子网划分方式不灵活只能划分出2的n次方个子网,每个子网所分配的IP地址数量相同,容易造成IP地址浪费。
变长的子网掩码VLSM
使用不同子网掩码来划分子网,网划分方式灵活,可以按需分配,每个子网所分配的IP地址数量可以不同,不容易造成IP地址浪费。
中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域 。
网桥和交换机工作在数据链路层,可以隔离冲突域,但是不能隔离广播域
路由器工作在网络层,既隔离冲突域,又隔离广播域。
IP数据报的发送和转发过程
主机发送IP数据报
判断目的主机是否与自己在同一个网络,如果在同一网络则直接交付,如果不在同一网络则属于间接交付,传输给主机所在网络的默认网关(路由器)由默认路由器帮忙转发
路由器转发IP数据报
检查IP数据报首部是否出错,出错则直接丢弃IP数据报并通告源主机,如果没有出错则直接进行转发。
检查IP数据报的目的地址在路由表中查找匹配的条目
找到匹配条目,则转发给条目中指示的下一跳,如果找不到,则丢弃该IP数据报并通告源主机
IPv4数据报首部格式
ICMP网际控制报文协议
为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP。
主机或路由器使用ICMP来发送差错报告报文和查询报文。
ICMP报文被封装在IP数据报中发送。
ICMP差错报告报文有五种:终点不可达(路由器或主机不能交付数据报时)、源点抑制(路由器或主机由于拥塞而丢弃数据报时)、时间超过(目的IP地址不是自己的数据报、TTL值会减1)、参数问题(首部在传输过程中出现误码)、改变路由(重定向)
对于以下情况将不会发送ICMP差错报告报文:
对于ICMP差错报告报文不再发送ICMP差错报告报文
对于第一个分片的数据报的所有后续数据报片都不发送ICMP差错报告报文
对于具有多播地址的数据报都不发送ICMP差错报告报文
对于具有特殊地质的(127.0.0.1、0.0.0.0等)都不发送ICMP差错报告报文
ICMP询问报文:回送请求和回答、时间戳请求和回答
ICMP应用:分组网间探测PING、跟踪路由tracterout
虚拟专用网VPN与网络地址转换NAT
利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。
同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网。
VPN要保证传输数据的安全性,会将原始的内部数据报进行加密,然后再将其封装成在因特网上发送的外部数据报。
由于IP地址的紧缺,一个机构能够申请到的IP地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中各主机分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址。
NAT使大量的使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
NAPT技术利用运输层的端口号和IP地址一起进行转换,用一个全球IP地址就可以使用多个拥有本地地址的主机同时和因特网上的主机进行通信。
相关文章:

【计算机网络】网络层协议解析
网络层的两种服务IPv4分类编址划分子网无分类地址 IPv4地址应用IP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报 IPv4数据报首部格式ICMP网际控制报文协议虚拟专用网VPN与网络地址转换NAT 网络层主要任务是实现网络互连,进而实现数据包在各网络之间的传…...
sqlist void reverse(SqList A)
#include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; #define INIT_SIZE 5 #define INCREMENT 10 # define OK 1 # define ERROR 0/* 定义ElemType为int类型 */ typedef int ElemType; void input(ElemType &s); void out…...

聊聊Thread Local Storage
聊聊ThreadLocal 为什么需要Thread Local StorageThread Local Storage的实现PThread库实现操作系统实现GCC __thread关键字实现C11 thread_local实现JAVA ThreadLocal实现 Thread Local Storage 线程局部存储,简称TLS。 为什么需要Thread Local Storage 变量分为全…...

WEB攻防-JS项目Node.js框架安全识别审计验证绕过
知识点: 1、原生JS&开发框架-安全条件 2、常见安全问题-前端验证&未授权 详细点: 1、什么是JS渗透测试? 在JavaScript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞 2、流行的Js框架有哪些? …...

STM32——SPI
1.SPI简介 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚…...

【云安全】云上资产发现与信息收集
一、云基础设施组件 1、定义 在云计算基础架构中,基础设施组件通常包括:计算、存储、网络和安全等方面的资源。例如,计算资源可以是虚拟机、容器或无服务器计算引擎;存储资源可以是对象存储或块存储;网络资源可以是虚拟…...

flask搭建微服务器并训练CNN水果识别模型应用于网页
一. 搭建flask环境 概念 flask:一个轻量级 Web 应用框架,被设计为简单、灵活,能够快速启动一个 Web 项目。CNN:深度学习模型,用于处理具有网格状拓扑结构的数据,如图像(2D网格)和视频(3D网格&a…...

数据篇| 关于Selenium反爬杂谈
友情提示:本章节只做相关技术讨论, 爬虫触犯法律责任与作者无关。 LLM虽然如火如荼进行着, 但是没有数据支撑, 都是纸上谈兵, 人工智能的三辆马车:算法-数据-算力,缺一不可。之前写过关于LLM微调文章《微调入门篇:大模型微调的理论学习》、《微调实操一: 增量预训练(Pretrai…...

MySQL高阶1890-2020年最后一次登录
目录 题目 准备数据 分析数据 题目 编写解决方案以获取在 2020 年登录过的所有用户的本年度 最后一次 登录时间。结果集 不 包含 2020 年没有登录过的用户。 返回的结果集可以按 任意顺序 排列。 准备数据 Create table If Not Exists Logins (user_id int, time_stamp …...
update-alternatives官方手册
下述手册超链接都是英文,内容差不多,看一个就行 Debian系统的Ubuntu系统的《The Linux Programming Interface》图书上的...

cesium.js 入门到精通(5-2)
在cesium 的配置中 有一些参数 可以配置地图的显示 显示出 水的动态显示 山的效果 相当于一些动画显示的效果 var viewer new Cesium.Viewer("cesiumContainer", {infoBox: false,terrainProvider: await Cesium.createWorldTerrainAsync({requestWaterMask: tru…...
LINUX的PHY抽象层——PAL
英文原文参考: https://www.kernel.org/doc/html/latest/networking/phy.html 中文翻译参考:有关PHY抽象层的总结 https://blog.csdn.net/eydwyz/article/details/124753313 目录 1 前言2 PHY接口模式3 尽量使用PHY端的延时而不是MAC或PCB4 其他方式实现…...

优先级队列(堆)
目录 优先级队列 堆的概念 堆的创建 堆的向下调整 堆的插入 完整代码 优先级队列 队列是一种先进先出的数据结构,有些时候操作的数据可能带有优先级,出队列时就需要优先级高的数据先出队列。 在这种情况下,数据结构应该提供两个最基本…...

帧率和丢帧分析理论
一、丢帧问题概述 应用丢帧通常指的是在应用程序的界面绘制过程中,由于某些原因导致界面绘制的帧率下降,从而造成界面卡顿、动画不流畅等问题。以60Hz刷新率为例子,想要达到每秒60帧(即60fps)的流畅体验,每…...

solidwork找不到曲面
如果找不到曲面 则右键找到选项卡,选择曲面...

mac安装JetBtains全家桶新版本时报错:Cannot start the IDE
mac安装JetBtains全家桶新版本时报错:Cannot start the IDE 前言报错信息解决方法 前言 作者使用的是Mac电脑,最近想要更新JetBrains相关工具的软件版本,但是在安装时突然报错,导致安装失败,现在将报错信息以及解决方…...

MVCC机制解析:提升数据库并发性能的关键
MVCC机制解析:提升数据库并发性能的关键 MVCC(Multi-Version Concurrency Control) 多版本并发控制 。 MVCC只在事务隔离级别为读已提交(Read Committed)和可重复读(Repeated Read)下生效。 MVCC是做什么用的 MVCC是为了处理 可重复读 和…...

如何使用Postman搞定带有token认证的接口实战!
现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…...

Linux Vim编辑器常用命令
目录 一、命令模式快捷键 二、编辑/输入模式快捷键 三、编辑模式切换到命令模式 四、搜索命令 注:本章内容全部基于Centos7进行操作,查阅本章节内容前请确保您当前所在的Linux系统版本,且具有足够的权限执行操作。 一、命令模式快捷键 二…...

【Android】浅析MVC与MVP
【Android】浅析MVC与MVP 什么是架构? 架构(Architecture)在软件开发中指的是软件系统的整体设计和结构,它描述了系统的高层组织方式,包括系统中各个组件之间的关系、依赖、交互方式,以及这些组件如何协同…...
spark 面试题
spark 面试题 1、spark 任务如何解决第三方依赖 比如机器学习的包,需要在本地安装?--py-files 添加 py、zip、egg 文件不需要在各个节点安装 2、spark 数据倾斜怎么解决 spark 中数据倾斜指的是 shuffle 过程中出现的数据倾斜,主要是由于…...

青柠视频云——如何开启HTTPS服务?
前言 由于青柠视频云的语音对讲会使用到HTTPS服务,这里我们说一下如何申请证书以及如何在实战中部署并且配置使用。 一、证书申请 1、进入控制台 我们拿阿里云的免费个人证书为例,首先登录阿里云,在控制台找到数字证书管理服务,进…...

2016年国赛高教杯数学建模A题系泊系统的设计解题全过程文档及程序
2016年国赛高教杯数学建模 A题 系泊系统的设计 近浅海观测网的传输节点由浮标系统、系泊系统和水声通讯系统组成(如图1所示)。某型传输节点的浮标系统可简化为底面直径2m、高2m的圆柱体,浮标的质量为1000kg。系泊系统由钢管、钢桶、重物球、…...

vue-使用refs取值,打印出来是个数组??
背景: 经常使用$refs去获取组件实例,一般都是拿到实例对象,这次去取值的时候发现,拿到的竟然是个数组。 原因: 这是vue的特性,自动把v-for里面的ref展开成数组的形式,哪怕你的ref名字是唯一的!…...

微服务_入门1
文章目录 一、 认识微服务二、 微服务演变2.1、 单体架构2.2、 分布式架构2.3、 微服务2.4、 微服务方案对比 三、 注册中心3.1、 Eureka3.2、 Nacos3.2.1、服务分级存储模型3.2.2、权重配置3.2.3、环境隔离 一、 认识微服务 二、 微服务演变 随着互联网行业的发展,…...

【学习资料】袋中共36个球,红白黑格12个,问能一次抽到3个红4个白5个黑的概率是多少?
1、公式计算 1.1 题目1 袋中共 36 36 36个球, 红 \fcolorbox{red}{#FADADE}{\color{red}{红}} 红 白 \fcolorbox{white}{#808080}{\color{white}{白}} 白 黑 \fcolorbox{#808080}{#0D0D0D}{\color{#808080}{黑}} 黑各 12 12 12个,问能一次抽到 3…...
@PathVariable,@RequestParam,@RequestBody注解,springboot与前端请求之间的数据类型转换
前端数据与springboot java数据类型转换 springboot&mybatis中数组和字符串数据类型的转换-CSDN博客中曾经提到,在Spring Boot中,通过URL传参、payload中的key-value形式或json形式,将前端数据以字符串格式发送到后端,后端We…...
在Python中优雅地打开和操作RDS
在Python中优雅地打开和操作RDS 随着数据存储需求的不断增长,关系数据库服务(Relational Database Service, RDS)成为了许多企业首选的数据存储方式。那么,在Python中如何轻松地与RDS进行交互呢?以下是一份详尽的指南…...

.whl文件下载及pip安装
以安装torch_sparse库为例 一、找到自己需要的版本,点击下载。 去GitHub的pyg-team主页中找到pytorch-geometric包。网址如下: pyg-team/pytorch_geometricgithub.com/pyg-team/pytorch_geometric 然后点击如图中Additional Libraries位置的here&am…...

望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼
2023年5月25-26日,ACS2023第七届中国汽车数字科技峰会在上海成功举行。此次峰会汇聚了众多汽车领域的顶级专家、产业链代表及企业高管,共同探讨当今汽车产业的转型与未来发展趋势。 作为唯一受邀的流程挖掘厂商代表,望繁信科技携最新行业优势…...