当前位置: 首页 > news >正文

计算机网络第四章——网络层(中)

提示:待到山花烂漫时,她在丛中笑。

文章目录


请添加图片描述
请添加图片描述
需要加头加尾,其中头部最重要的就是加了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)

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

(2596. 检查骑士巡视方案leetcode,经典深搜)-------------------Java实现

&#xff08;2596. 检查骑士巡视方案leetcode,经典深搜&#xff09;-------------------Java实现 题目表述 骑士在一张 n x n 的棋盘上巡视。在 有效 的巡视方案中&#xff0c;骑士会从棋盘的 左上角 出发&#xff0c;并且访问棋盘上的每个格子 恰好一次 。 给你一个 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网络 对网络的理解 在网络传输中存在的问题&#xff1a; 找到我们所需要传输的主机解决远距离数据传输丢失的问题怎么进行数据转发&#xff0c;路径选择的问题 有问题&#xff0c;就有解决方案&#xff1b; 我们把相同性质的问题放在一起&#xff0c;做出解决方案 解…...

(1)输入输出函数:cin和cout(2)数学函数:sqrt、pow、sin、cos、tan等

输入输出函数&#xff1a;cin 和 cout 在C编程语言中&#xff0c;为了与用户进行交互和显示程序的结果&#xff0c;我们使用了两个非常重要的函数&#xff1a;cin 和 cout。这两个函数分别用于输入和输出。 cin是C中的标准输入流对象&#xff0c;它用于从键盘接收用户的输入。…...

ArmSom-W3开发板之PCIE的开发指南(一)

1. 简介 RK3588从入门到精通本⽂介绍RK平台配置pcie的方法开发板&#xff1a;ArmSoM-W3 2、PCIE接口概述 PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;是一种用于连接计算机内部组件的高速接口标准。以下是关于PCIe接口的简要介绍&#xff1a; …...

Android 13.0 framework修改AlertDialog对话框的button样式

1.概述 在13.0系统产品开发中 在AlertDialog 系统对话框原生的确定和取消 两个button 按钮中,由于产品觉得字体默认颜色的不太好看,由于产品的需求修改button字体的颜色,所以需要找到AlertDialog的字体样式然后修改就可以了 2.framework修改AlertDialog 对话框的button样式…...

如何使用ArcGIS Pro提取河网水系

DEM数据除了可以看三维地图和生成等高线之外&#xff0c;还可以用于水文分析&#xff0c;这里给大家介绍一下如何使用ArcGIS Pro通过水文分析提取河网水系&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的DEM数据&#xff0c;除了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库中用于绘制线图&#xff08;折线图&#xff09;的主要函数之一。它的作用是将一组数据点连接起来&#xff0c;以可视化数据的趋势、关系或模式。以下是 plt.plot() 的详细介绍&#xff1a; plt.plot(x, y, fmt, **kwarg…...

自动化生成代码:MyBatis 的 Generator与MyBatis-Plus 的 AutoGenerator

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

达梦数据库-DW-国产化--九五小庞

武汉达梦数据库股份有限公司成立于2000年&#xff0c;是国内领先的数据库产品开发服务商&#xff0c;国内数据库基础软件产业发展的关键推动者。公司为客户提供各类数据库软件及集群软件、云计算与大数据等一系列数据库产品及相关技术服务&#xff0c;致力于成为国际顶尖的全栈…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...