计算机网络第四章——网络层(中)
提示:待到山花烂漫时,她在丛中笑。
文章目录
需要加头加尾,其中头部最重要的就是加了IP地址和MAC地址(也就是逻辑地址和物理地址)集线器物理层设备,交换机是物理链路层的设备,如上图路由器左边就是一个局域网,若是文件比较大就需要在传输层进行分段,在网络层进行封装就需要加上IP地址形成一个IP数据报,要加两个一个是源主机的地址,一个是目的主机的地址,(传输层要讲)根据这个DNS就可以将目的地址填入,分组通常是数据报分片之后的结果,为什么要进行分片可能是因为这个链路层的协议要求的最大传输单元有一个是MTU,根据MTU来决定是否要在网络层进行分片,然后构成一个IP数据报,然后再数据链路层加上一个MAC地址,每一个主机或者说每一个路由器都会有一个ARP高速缓存可以把他想想成是一个仓库,这个仓库存的就是IP地址和MAC地址的映射,也就是某一个IP地址对应的MAC地址应该是多少,当然所存的都是一个局域网内部的主机,若是没有找到就要使用ARP的协议,
就需要先发送一个ARP分组请求,其实是一个帧,这个数据帧的这几个部分,它自己的IP地址,它所查询的主机的IP地址,以及自己的MAC地址,还一个就是目的物理地址,这里能够看出来是全fFFF,也就是局域网内有广播效应的一个帧,若是MAC地址是广播地址的话,那么交换机就可以 将他从所有的端口转发出去,这里也就是2,3,还有连接的路由器,只有三号会响应,单播就是不是广播而是只发给1,
假如说要和五号主机进行通信,正常交换机是没有MAC地址的,只有这个主机和路由器的端口是有MAC地址的,路由器可以有多个MAC地址,IP地址,先来查看高速缓存自然是没有的,先用自己的子网掩码和目的IP地址也就是IP5向与,看看是否在自己的网段内,结果1号主机发现不在自己的网段内,然后查询默认网关的MAC地址,也就是他与外界沟通的路由器,下一跳(或者说下一个路)是可以跳到三个地方,2,3,和默认网关,然后如何得到MAC6的地址呢,依然是广播的形式获得默认网关IP6的MAC地址,
此时假设已经传输到了路由器这里,然后进行一个数据的解封装,然后最高到网络层,然后再从网络层开始封装,封装就是要加上这个源地址和目的地址,也就是IP1和IP5源地址和目的地址是不变的,当然目前是不考虑NAT那种请求的(若是NAT这个IP地址会发生改变的),这个物理地址是要发生变化了(因为到了一个新的网络内)它的源MAC和目的MAC都发生了改变,也就变长了这个的MAC7和下一个的MAC8,此时是一个点对点的通信也就是使用PPP协议,我们说过PPP协议中目的MAC是全1的,若不是点对点就是填MAC8,然后到了下一个路由器,然后依然是IP1和IP5这个是自始至终都是不变的,目的MAC地址就是MAC5,这个MAC5依然是使用ARP协议得来的,然后这个路由器也就知道下一跳要往哪走了,具体如何做到走5不走4的这就是链路层对数据帧进行转发的过程了,
局域网内部只能看懂MAC地址,有的主机没有找到就需要这个ARP协议,
也就是只要是发给本网络中的一个主机,那么只需要使用ARP获取这个主机的MAC地址,若是要发给另外一个网络,也就是不在同一个网络的主机或者路由器也就是需要通过默认网关,通过ARP找到这个默认网关的MAC地址,剩下的事交给这个网关就可以了,主机的用户对这个ARP的过程是不知情的,
6次ARP协议
结合了MAC地址和IP地址,但是主要是将其划分成网络层的协议,它是为IP协议来提供服务的,
主机在进行通信的时候,一定是需要一个IP地址,但是主机是如何获取一个IP地址的呢?这个默认网关就是这些主机它的数据得以进入外界的一个端口,通常都是一个路由器的接口的IP地址,只有通过这样一个默认网关才能与外界进行通信,手机到了一个教室中就会给它分配一个动态的IP地址,也就是通过DHCP服务器来进行分配的,主机走了这个分配的IP地址就会收回了,
之所以把这个应用层协议放到网络层来讲是因为这个协议为网络层的通信提供了一个基础,只有有了DHCP协议我们才有IP地址,才能延伸出许多的内容,
可以看出就是主机和服务器之间来回交互,这种方式就是客户服务器的方式,而且这四种方式都是使用广播的方式,
ICMP和IGMP是处于网络层和传输层之间的协议,ICMP协议起到一个桥梁的作用,也就是为了更好的转发IP数据报和提高交互成功的机会,
在实际的通信中总会有一些分组出错,在网络层的出来就是给它丢弃,并同时发送一个ICMP的差错报文,ICMP的报文是装在IP数据报的数据部分,所以ICMP是网络层的协议,
类型是为了指这个ICMP是那一类的,代码是为了区分某一个类型中具体的情况,这个检验和是为了检验整个ICMP报文的,(注意IP数据报的首部检验和是只检验首部,)
所有的ICMP差错报告报文,它们的数据字段的格式都是一样的,收到的需要进行差错报告的IP数据报首部以及前八个字节取出来,作为ICMP报文的数据字段,然后加上ICMP的前8个字节然后构成了一个完整的差错报告报文,然后加上IP数据报的首部就构成了一个完整的数据报,也就是ICMP差错报告报文是网络层传输单元的数据部分,
因为既然是封装成帧,自然是有可能还是出错的,
组播是一点到多点,广播是一点到所有结点,组播是有选择性的,
是有两个主机一个是源主机,一个是目的主机,源主机就会发送一连串的数据报,主要差别是生存时间是不一样的,然后就可以测算出从源点到终点之间的距离了,
支持Qos就可以满足实时的以及多媒体通信的需要,
也就相当于讲IPv4中的可变部分挪到了有效载荷当中,所以IPv6的基本首部就是固定的,这个扩展首部就是对这个数据报有什么要求,比如这个数据报要增加什么功能,也就是放在这个扩展首部来实现,因为有这个扩展首部原来IPv4中一些不必要的部分就可以先不用了,用的话只需要放在扩展首部中就可以了,IPv6灵活的首部格式就可以大大的加快分组处理的速度,
其中的扩展首部是可有可无的,有效载荷长度指的是有效载荷这个的长度是有多大,IPv4标识长度有两个字段,一个叫做首部长度字段,一个叫总长度字段,首部长度字段指的是首部的大小,总长度是首部加上数据部分的大小,而这里的有效载荷长度指的是扩展首部加上数据的大小,基本首部中的下一个首部指向的是扩展首部1,扩展首部1中的下一个首部指向的是扩展首部2,最后一个指向的是数据部分,跳数限制也就相当于IPv4中的生存时间,若是为零,返回一个ICMP差错报告报文,
如果没有校验和字段,对于数据报的首部的检验时间就缩短了,因此就可以减少每一跳的时间,
若是IPv6数据报很大,必须要进行分片,只能在路由器这里将其丢弃,然后返回一个差错报告报文,
IPv4的协议字段是指其中的数据使用的是哪一个协议,也就是分组的数据部分应该是交给的哪一个传输层协议,
只要前面有连续的0我们就可以对其进行压缩,
多播地址只能作为目的地址,不能作为源地址,多播地址可以包括广播地址,任播是IPV6独有的一种地址,是一对多的一个通信,本质上也是一对一的,通常是选择一个离他最近的一个主机,
隧道技术是一种使用比较广泛的技术,也就是将IPv6作为IPv4的数据部分进行传输,,
相关文章:

计算机网络第四章——网络层(中)
提示:待到山花烂漫时,她在丛中笑。 文章目录 需要加头加尾,其中头部最重要的就是加了IP地址和MAC地址(也就是逻辑地址和物理地址)集线器物理层设备,交换机是物理链路层的设备,如上图路由器左边就…...

时序分解 | MATLAB实现基于小波分解信号分解分量可视化
时序分解 | MATLAB实现基于小波分解信号分解分量可视化 目录 时序分解 | MATLAB实现基于小波分解信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于小波分解的分量可视化,MATLAB编程程序,用于将信号分解成不同尺度和频率的子信…...

VMware虚拟化环境搭建
虚拟化环境搭建 1. 什么是虚拟化环境?未来工作中在何处使用? 在网络安全中,虚拟化环境是一种技术,它将一个物理计算机系统划分成多个独立、可管理的虚拟环境。这种虚拟环境技术允许多个完全不同的操作系统、显示装置和软件在同一…...

Jenkins :添加node权限获取凭据、执行命令
拥有Jenkins agent权限的账号可以对node节点进行操作,通过添加不同的node可以让流水线项目在不同的节点上运行,安装Jenkins的主机默认作为master节点。 1.Jenkins 添加node获取明文凭据 通过添加node节点,本地监听ssh认证,选则凭…...

如何实现不同MongoDB实例间的数据复制?
作为一种Schema Free文档数据库,MongoDB因其灵活的数据模型,支撑业务快速迭代研发,广受开发者欢迎并被广泛使用。在企业使用MongoDB承载应用的过程中,会因为业务上云/跨云/下云/跨机房迁移/跨地域迁移、或数据库版本升级、数据库整…...

微服务保护-隔离
个人名片: 博主:酒徒ᝰ. 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。 本篇励志:三人行,必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud…...
报错:appium AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘
报错如下 Traceback (most recent call last):File "C:\Users\wlb\Desktop\test\python\2.py", line 16, in <module>driver webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)File "D:\software\python3\lib\site-packages\appium\we…...

MFC - 一文带你从小白到项目应用(全套1)
文章篇幅可能会比较长,从入门到基本能上项目的全部内容。建议观看的过程中,用电脑跟着学习案例。 持续输出优质文章是作者的追求,因为热爱,所以热爱。 最近看动漫被一句鸡汤感动到了,也送给各位朋友: 只要有…...

(2596. 检查骑士巡视方案leetcode,经典深搜)-------------------Java实现
(2596. 检查骑士巡视方案leetcode,经典深搜)-------------------Java实现 题目表述 骑士在一张 n x n 的棋盘上巡视。在 有效 的巡视方案中,骑士会从棋盘的 左上角 出发,并且访问棋盘上的每个格子 恰好一次 。 给你一个 n x n …...

Docker 部署 Bitwarden RS 服务
Bitwarden RS 服务是官方 Bitwarden server API 的 Rust 重构版。因为 Bitwarden RS 必须要通过 https 才能访问, 所以在开始下面的步骤之前, 建议先参考 《Ubuntu Nginx 配置 SSL 证书》 配置好域名和 https 访问。 部署 Bitwarden RS 拉取最新版本的 docker.io/vaultwarden…...
python与mongodb交互-->pymongo
from pymongo import MongoClient# 创建数据库连接对象 client=MongoClient(ip,27017)# 选择一个数据库 db=client[admin]db.authenticate(python,python)# 选择一个集合 col=client[pydata][test]col.insert({"class":"python"})col.find() for data in c…...

【网络】计算机网络基础
Linux网络 对网络的理解 在网络传输中存在的问题: 找到我们所需要传输的主机解决远距离数据传输丢失的问题怎么进行数据转发,路径选择的问题 有问题,就有解决方案; 我们把相同性质的问题放在一起,做出解决方案 解…...
(1)输入输出函数:cin和cout(2)数学函数:sqrt、pow、sin、cos、tan等
输入输出函数:cin 和 cout 在C编程语言中,为了与用户进行交互和显示程序的结果,我们使用了两个非常重要的函数:cin 和 cout。这两个函数分别用于输入和输出。 cin是C中的标准输入流对象,它用于从键盘接收用户的输入。…...

ArmSom-W3开发板之PCIE的开发指南(一)
1. 简介 RK3588从入门到精通本⽂介绍RK平台配置pcie的方法开发板:ArmSoM-W3 2、PCIE接口概述 PCIe(Peripheral Component Interconnect Express)是一种用于连接计算机内部组件的高速接口标准。以下是关于PCIe接口的简要介绍: …...
Android 13.0 framework修改AlertDialog对话框的button样式
1.概述 在13.0系统产品开发中 在AlertDialog 系统对话框原生的确定和取消 两个button 按钮中,由于产品觉得字体默认颜色的不太好看,由于产品的需求修改button字体的颜色,所以需要找到AlertDialog的字体样式然后修改就可以了 2.framework修改AlertDialog 对话框的button样式…...

如何使用ArcGIS Pro提取河网水系
DEM数据除了可以看三维地图和生成等高线之外,还可以用于水文分析,这里给大家介绍一下如何使用ArcGIS Pro通过水文分析提取河网水系,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的DEM数据,除了DEM数据&a…...

python pytesseract 中文文字批量识别
用pytesseract 来批量把图片转成文字 1、安装好 pytesseract 包 2、下载安装OCR https://download.csdn.net/download/m0_37622302/88348824https://download.csdn.net/download/m0_37622302/88348824 Index of /tesseracthttps://digi.bib.uni-mannheim.de/tesseract/ 我是…...

Python 之plt.plot()的介绍以及使用
文章目录 介绍代码实例 介绍 plt.plot() 是Matplotlib库中用于绘制线图(折线图)的主要函数之一。它的作用是将一组数据点连接起来,以可视化数据的趋势、关系或模式。以下是 plt.plot() 的详细介绍: plt.plot(x, y, fmt, **kwarg…...

自动化生成代码:MyBatis 的 Generator与MyBatis-Plus 的 AutoGenerator
文章目录 Mybatis Generator自动化生成代码MyBatis Generator概述使用Java代码形式1. 在 Maven 或 Gradle 中添加 MyBatis Generator 的依赖:2. 编写配置文件 GeneratorConfig.xml,配置需要生成的数据库表和对应的生成器:3. 在命令行中使用 M…...

达梦数据库-DW-国产化--九五小庞
武汉达梦数据库股份有限公司成立于2000年,是国内领先的数据库产品开发服务商,国内数据库基础软件产业发展的关键推动者。公司为客户提供各类数据库软件及集群软件、云计算与大数据等一系列数据库产品及相关技术服务,致力于成为国际顶尖的全栈…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

如何做好一份技术文档?从规划到实践的完整指南
如何做好一份技术文档?从规划到实践的完整指南 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...