网络原理(网络层,数据链路层)

【docker】--- 详解 WSL2 中的 Ubuntu 和 Docker Desktop 的区别和关系! 在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 阅读详情

前言

我们在之前的文章讲到了socket套接字,我们总程序员的角度接触了socket网络编程,通过Socket,Seversocket等api,让不同主机上的进程进行网络通信,我们只需要明确ip,端口,以及udp还是tcp协议,就可以进行操作

但是Socket只是网络通信的入口,后续我们讲到了TCP协议的具体内容,包括其中的一系列的机制,来保证数据的可靠传输以及尽可能的加快数据的传输效率,这也才是传输层相关的内容,接下来,数据还会经过网络层,数据链路层,物理层,以及路由器,交换机这样的机器,那接下来的数据要经过哪些具体的步骤,ip协议,mac地址又是什么,在这篇文章里会有讲解

网络层

网络层紧接着传输层,在这个层里面就会讲解到说ip协议相关的知识,网络层的主要目的是做到地址管理以及路由选择

一般网络层有两类ip协议,一种是ipv4,一种是ipv6,我们一般上网是用到的ipv4,所以我们先以ipv4的报头来进行学习

初看报头

版本:这个是让我们选择使用的ip协议类型,是v4还是v6

首部长度:表示ip报头的长度,单位是4字节,所以如果这个位置的数字是5,那么就表示4*5=20字节

服务类型:这个主要是决定ip在路线选择的时候的一个策略偏好,就比如说你是要最小延时,最大吞吐量,最高可靠性,还是最小成本,这个是只能选择一个的,毕竟不可兼得

总长度:16位,也就是最大一个可以传输64kb,如果ip数据报需要携带更大的载荷,就需要进行拆包,就是把一个大文件拆成几个小份

标识,标志,片偏移:这个就是为了我上面说的拆包,标识是为了说明哪些包是要组合在一起,就给定一个编号,比如我有三段的数据编号都是10086,那么就可以知道这三个数据是要组合在一起的,标志是为了说明这次数据是否进行了拆包,片偏移是为了解决网络中后发先至的问题,对到的数据进行一个编号排序

生存时间:这个表示一个ip数据报最多能传多久,就好比我们的ip地址填错了,那这个数据是根本不可能传输到的,一个无效的数据一直传输是会消耗资源的,所以我们规定了一个最长时间,这个时间足以让数据跑相当远的距离了,当时间到了还没传输到,那么我们就会丢弃这个数据

协议:这个协议是说我们传输层使用什么协议对数据进行解析

首部校验和:这个和TCP报头一样,都是比较前后的数字来判断是否传输过去了,不过这个只校验首部,载荷部分是TCP/UDP协议来校验

32位源ip地址,目的ip地址:这个就是我们平时见到的ip地址了,就好比192.168.0.1,分成四个部分,中间用.来隔开,那32位表示的范围是0-42亿多,以前可能看着很多,但是我们现在上网的用户已经超过了这个数字,那这个ip不够分了,那我们该如何应对呢:

1,动态分配:

设备上网了再分配ip地址,这种方式的效果比较有限

2,NAT网络地址转换(核心办法):

我们将ip地址主要分为两种(1)外网/公网ip   (2)内网/私网ip,除了内网ip的都是外网ip,内网ip主要是【10.        172.16.-172.31.          192.168.】并且我们规定,不同的局域网里的ip是可以重复的,就好比我们班上的10号和其他班上的10号,不过外网ip是唯一的,这个时候就可以大大提高利用率,这里还没有涉及到NAT转换,我们接下来考虑几种情况(1)同一个局域网里的设备互相访问,这个可以,并且没有涉及到(2)两个外网ip互相访问,这个没有问题,并且没有涉及(3)不同的局域网的设备想访问对方,这个是不允许的,因为我们刚刚讲到不同的局域网里的ip是可以重复的,所以会出现问题(4)外网ip设备想访问内网ip设备,这个也是不允许的,也是因为内网ip是可重复的,我外网设备拿着这个ip可以找到好多不同的(5)内网设备想访问外网ip,这个时候就涉及到NAT转换了,我们传输的数据在经过一个带有外网ip的路由器的时候,会进行ip的转换,就是直接换成对应的路由器上的外网ip,然后传输出去,核心原因就是想要访问外网设备是需要外网ip的

接下来我们具体来聊一下这个传输转换的过程,以及一些需要补充的知识

【1】外网,内网,局域网这三者的关系:局域网和外网内网没有本质的关系,局域网一般是很小范围内的网络,比如在家里,或者宿舍里面,局域网描述的是一个范围,而内网外网是一个相对的概念,这个是由网络管理员规定的,比如一般的,整个学校是内网,学校外部是外网,图书馆是一个局域网,宿舍是一个局域网,但是这并不是说局域网和内网有什么必要的关系,这个内外网是划定出来的,如果网络管理员划定101寝室是内网,那么图书馆啊其他的宿舍也都是外网的范畴了

【2】NAT不是一定就转一次,这个转换不是说,有那么一台路由器标识着说统一到我这里来转换,只有我这里可以转换内外网ip,不是的,而是像上面说的这个内网外网是一个相对的概念,比如规定我家是内网,我家外面那就是外网了,但是我小区规定小区里面是内网,小区外面是我啊王,那么我家外面到小区里面这个范围是啥,所以说这个是个相对的概念,看你站在哪个角度来看,所以路由器在进行下一跳的时候,会知道相对于外面是需要内网ip还是外网ip,需要外网ip了就进行NAT转换

【3】网关是什么:网关是一个网络通网另一个网络的出口角色

【4】并且每一个路由器都会维护一个NAT表,就相当于两个设备同时传输数据出去,那么他们经过同一个路由器后改的相对外网ip是一样的并且这个时候如果系统分配的端口号还一样,都是路由器提供的,并且这个时候如果系统分配的端口号还一样,那么数据传回来的时候怎么知道哪个消息是哪个的,这个时候不仅会维护一个表,而且路由器还会换掉一样的端口号,用端口号来区分,这个表,里面记录了前ip,前端口号,后ip以及后端口号,这样就可以一一对应了

3,ipv6:这个ip协议使用了16个字节来表示ip地址,这个数字是相当大的,但是早期ipv4以及ipv6是两个独立的系统,早期由于ipv4的快速崛起,ipv6的使用率就很低,并且如果现在换起来的成本也会相对的高,不过由于国家的出手,所以现在基本上的互联网厂商都是可以支持ipv6的

网段划分

我们的ip=网络号+主机号,这个是如何划分的呢,这个主要看我们的子网掩码,这个子网掩码转为二进制之后,数字唯一的对应部分就是网络号,其余为零的就是主机号

那我这个举例子:

255        255        128        0

11111111 . 11111111 . 10000000 . 00000000

我的子网掩码前17位都是1

10         10         74         34

00001010 . 00001010 . 01001010 . 00100010

所以将我们的ip也转为二进制一对应就出来了,我们同一个局域网的设备,网络号是一样的,我们是通过主机号来区分设备

特殊ip值

刚刚讲到了网段的划分,根据这个我们有一些特殊的ip值,当我们的主机号全为0的就是网络号:用来代表这个局域网,主机号全为1的就是广播号:用来进行给当前网段所有网络设备发信息的

路由选择

决定了我们的数据接下来是往那条路发,往哪个方向发,我们数据在网络中走的策略的走一步问一步

路由选择相当于是这样一个过程,一步一步问过去,然后最终走到终点

路由选择 = 路由器拿目标 IP 去查路由表,决定下一跳往哪走。
路由表 = 一部分自动生成,一部分人工配置,一部分由路由协议不断学习和更新。

数据链路层

网络层是宏观角度的路径规划,而数据链路层是微观角度两个节点之间该怎么传输,在这个层主要的协议就是以太网,类型是表示数据载荷是啥格式的内容,MAC 地址是网络接口的地址,也就是网卡在数据链路层的标识,mac地址由于是6个字节,所以会更多,也就不需要说动态分配或者NAT转换

LAN 口 = 路由器朝“自己这边内部网络”的接口。
WAN 口 = 路由器朝“上一级网络/外部网络”的接口。

这个是决定数据接下来往哪走的关键,如果要找的目标就在自己内部的网络里,就走lan口,这里的内部网络也就是属于自己的这一侧,也就是被自己这个路由器控制的设备,如果这个数据是要走到外部,那就会通过WAN口来走到其他的路由器设备去,这里面还有一个ARP方法,就是在你路由器得知你的ip之后,我们会通过ARP进行一个广播,会去广播问谁是这个ip地址,看看是在自己一侧还是外侧

ip就相当于是一个固定的总目标,但是你要往哪一个地方走还得靠mac地址

可以理解一下上面这个过程,再结合上之前讲的,这就是一个数据进行封装再经过各个网络设备的解封装以及封装最终来到目的地的过程

基于STM32设计的物联网疫苗冷链物流监测系统 本设计基于物联网技术,开发了一套疫苗冷链物流环境监测系统。系统采用STM32F103C8T6作为主控芯片,集成SHT30温湿度传感器、震动传感器、GPS定位模块和4G通信模块,实现对运输环境的温度、湿度及震动状况的实时监测与控制。通过继电器驱动半导体制冷模块和加湿器,系统能够自动调节环境温湿度,保障疫苗运输的安全性。采集的环境数据通过MQTT协议上传至华为云物联网平台,配套开发的Android手机APP和Windows上位机软件基于Qt平台设计,支持远程实时查看环境数据和车辆定位,提升了疫苗冷链运输的智能化 阅读详情

相关推荐

深度学习的卷积神经网络的煤矸石识别

在本博文中,我们提出了一种基于深度学习的煤矸石检测与识别系统,该系统采用YOLOv8算法对煤矸石进行检测和识别,实现对图片中的煤矸石进行准确识别。1.项目需求对煤矸石进行检测与识别,系统将识别出图片中的克服小块煤矸石漏检的缺陷。 2.项目实现 通过调研,本项目最终使用yolov8模型作为目标检测的模型, YOLOv8 旨在快速、准确且易使用,使其成为广泛的物体检测、图像分割和图像分类任务的极佳选择。 1.数据集:格式为jpg的3091张煤矸石图片2.YOLOv8环境配置yolo检测网络包括24个卷积层

2201_75355700的博客 792

网络原理——网络层与数据链路层

网络原理之, 网络层与数据链路层. 一起来学习吧! !

Gujiu的博客 987

ByteTrack参数调优全攻略:从原理到实战(含YOLOv8示例)

本文深入解析了ByteTrack多目标跟踪算法的核心原理与参数调优策略。通过拆解其独特的两阶段关联机制,并结合YOLOv8检测器,提供了针对不同应用场景(如拥挤行人、高速车辆)的精细化参数调整指南与实战示例,旨在帮助开发者解决ID切换、目标丢失等工程落地难题,提升跟踪系统的鲁棒性与实用性。

cheese的博客 323

网络原理-网络层和数据链路层

地址管理:使用一套地址体系来描述所没备的位置路由选择:一个数据包如何从网络的某个地址传到另一个地址。

weixin_63965017的博客 941

ESP32接入扣子(Coze) API使用自定义智能体

本示例将使用ESP32开发板通过WiFi接入 **Coze API**,实现一个简单的聊天机器人功能。用户可以通过串口向机器人输入问题,ESP32将通过Coze API与智能体进行通信,并返回对应的回复。本文将详细介绍了如何通过HTTP请求和JSON解析来与API进行交互,并给出完整的代码示例。

宁子希的博客 1万+

彻底摆脱文献只能读开头的痛苦!这款文献检索神器真能帮你跨越文献付费限制(附实操演示)

大家是不是有过这样的经历,好不容易通过关键词搜到了和自己主题高度相关的文献,想要快速获取文献信息,推进研究进度,却又因为付费或者需订阅才能下载PDF,而被劝退。粘贴完成后,点击搜索,搜索结果页面会显示这篇文献的相关信息,有的文献有“下载PDF”,有的文献则只有“求助PDF”,不管是哪种情况,直接点击进入;我这里点击的是“下载PDF”,接着它会跳转页面。我用 Book 学术下载过不少付费文献,实测下来 80% 左右的文献,都能通过它的求助方式成功获取到,只有少部分文献等待的时间会稍微久一些或者没办法下载。

qq_64378896的博客 167

网络原理之网络层、数据链路层

网络原理之网络层、数据链路层

2302_81707171的博客 1003

openclaw本地模型对接

使用是官方推荐的一种集成方式,它可以简化配置过程。但由于您的系统环境和之前复杂的配置历史,我为您梳理了一个核心流程,并增加了关键的“事后检查”步骤,以确保能从根本上解决问题。

suny8的专栏 2463

【JavaSE】【网络原理】网络层、数据链路层简单介绍

本文介绍了计算机网络中的网络层和数据链路层核心概念。网络层主要实现地址管理和路由选择,通过IP协议进行数据传输,涉及IP头部结构、地址管理(NAT机制、网段划分)和路由选择过程。数据链路层以以太网协议为核心,包括数据帧结构、MTU限制和ARP地址解析协议。此外还简要说明了DNS域名解析系统的作用机制。文章通过图表和示例,系统梳理了网络通信中各层的关键技术原理与协作方式。

yj20040627的博客 1451

Transformer从菜鸟到新手(一)

从本文开始回顾一下Transformer的原理与实现细节,包括分词算法BPE的实现。最终利用从零实现的Transformer模型进行英中翻译。

日积月累,天道酬勤 2126

1.嵌入式控制器EC学习,编译环境搭建

工欲善其事,必先利其器。 在学习EC相关知识之前,首先需要完成EC代码编译环境的搭建,需要如下内容: Keil C51(用于EC中C代码的编译器环境) EC源代码,我们使用从网上可以下载到的 ITE_V12.4_Update 版的代码为例进行学习 代码编辑器,这个可以根据自己的习惯选择,VS Code或者Source Insight等 Keil C51下载地址: http://www.downcc.com/soft/307131.html 下载完成后请进行破解 EC源代码 ...

qq_30135687的博客 3918

【JavaEE】网络原理——网络层+数据链路层

路由选择其实就是找从源IP到目的IP的路径,这里类似于我们生活中的地图导航,规划出一个路线"最优解",但是在我们路由这里就不是"最优解"而是"较优解"其实就是我们网络路线复杂程度很高,并且路由不是对全局网络路线都很了解,只对周围路由的网络线路了解。这里就需要一个新的概念子网掩码,这个子网掩码就是帮助我们来设置网络号和主机号的,子网掩码左边部分全为1,右边部分全为0,这些01是指二进制,而且01不能交替。对于源IP找目的IP是"探索性"的方式寻找,在寻找的过程中会借助"路由表"来寻找目的IP。

HD_13的博客 1114

模型可解释性分析:基于SHAP的深度探索

SHAP模型可解释性分析摘要 本文系统性地介绍了SHAP(SHapley Additive exPlanations)方法在机器学习模型可解释性分析中的应用。SHAP基于博弈论的Shapley值理论,为特征重要性评估提供了统一框架。文章详细阐述了四种核心算法:Kernel SHAP(模型无关方法)、Tree SHAP(针对树模型的高效算法)、Deep SHAP(适用于深度学习)和Linear SHAP(线性模型专用)。通过Python实现展示了从数据准备到SHAP分析的全流程,包括摘要图、依赖图等可视化技术

huanghm88的专栏 612

网络原理2-网络层与数据链路层

网络层,数据链路层

Vampire的博客 1276

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

网络原理(网络层、数据链路层)

由于互联网十分庞大,路由器只知道相邻设备的网络情况,无法像【高德地图】一样,输入目的地和出发地,就能规划出最优方案。所以,数据报在IP协议下是 “问路式” 传输。

wuweixiaoyue的博客 1089

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【JavaEE初阶】第八节.网络原理网络层和数据链路层,应用层

今天的内容我们主要介绍网络原理中有关网络层,数据链路层,应用层;以及介绍他们有关的协议的介绍,就让我们一起学习吧!!!!!

未央的博客哟 1947

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【网络原理】- 网络层 , 数据链路层的简单介绍

网络层,数据链路层的简单介绍 && 应用层的补充:DNS

xaiobit_hl的博客 972

初识网络原理之网络层IP和数据链路层

这里写目录标题回顾网络层IP协议: 回顾 网络层 IP协议: 超出UDP的最大长度后,就依靠以下属性进行拆包和组包: 16位标识:分组ID 3位标志: 第一位:保留(现在暂时不用, 说不定以后要用) 第二位:置为1表示禁止分片,这时候如果报文长度超过MTU, IP模块就会丢弃报 文 第三位:表示"更多分片",如果分片了的话,最后一个分片置为1, 其他置0,类似于一个结束标记 13位片偏移:后发先至, 8位生存时间(TTL): 一般为64,每经过一次路由器的跳转,就会 -1,直到这个值等于

橘白呀啊的博客 936

网络原理(网络层+数据链路层)

网络层IP协议,数据链路层以太网协议进来看

weixin_61392399的博客 396

网络原理(2)——网络层 数据链路层

上篇文章我们讲解了关于传输层里面的常见的协议内容,本文将继续延续网络原理的讲解 : 网络层中的IP协议 以及传输层重要协议 网络层有俩大作用:1.地址管理 2.路由选择我们先学习一下,协议头格式吧:终于到了最终要环节~~

kaiwawah的博客 193

网络原理(四)—— 网络层、数据链路层 与 DNS

介绍网络层,数据链路层和 DNS

熵减玩家 815

JavaEE中的网络原理 --网络层和数据链路层

JavaEE中的网络原理 --网络层和数据链路层

哒哒的博客 361

Jave EE 网络原理之网络层与数据链路层

地图软件能够做出这样的路径规划,主要是因为,开了全图的整个地图的信息,路径信息,都是在地图的服务器上全都存储的,可以给出“最优解"MTU 可以考虑成一辆汽车的载重量,路是土路,汽车太重了,就容易压坏,路是沥青的路,载重量就更大,路是高速公路级别的,载重量就更大。我的电脑会把报头发给运营商,此时,运营商路由器,也是一个 NAT 设备,也就能够对当前这里的源 IP 进程替换。(IP 协议,路由器,走哪个网络接口,其实是抽象的概念,最终还是要在数据链路层才能觉得是走哪个网口)

WR1207的博客 268

【Java EE初阶 --- 网络原理】网络层---IP协议,数据链路层---以太网协议

乐观学习,乐观生活,才能不断前进啊!!!欢迎大家访问~

optimistic_chen的博客 1280

【网络原理之二】网络层的IP协议、数据链路层的以太协议和MTU

网络层的IP协议、IP地址管理、路由选择、数据链路层的以太网协议以及MTU(最大传输单元)对IP协议、UDP协议和的TCP协议的影响。

qq_43243800的博客 1548

网络原理 (2)物理层 数据链路层 网络层

物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。

006 菜是原罪 的博客 504
上一篇: 网络原理TCP/IP
下一篇: 面试题(网络部分前传)-13问
评论 25
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值