网络层IP协议与数据链路层以太网协议
文章目录
- 一、IP协议
- IP地址
- 地址管理
- 路由选择
- DNS
- 二、以太网协议
- 以太网帧
- MTU
一、IP协议
IP协议是我们网络层的代表协议,今天我们就来一起学习一下吧,我们这里介绍的主要是IPv4协议。
版本:指定IP协议的版本,版本的取值只有4,6两个
头部长度:用来描述IP报头多长,报头中有一个选项部分,是可有可无的,我们可以自己调节它的大小,单位为4字节
服务类型(TOS):这里给的是8位,实际只有4位有效,分别代表IP协议的四种工作模式(最小延时,最大吞吐量,最高可靠性,最小成本)
总长度: 描述了IP数据报的总长度(报头 + 载荷)
大家需要注意,16位的总长度,是否意味着一个IP数据报,最大只能支持64KB?
这个长度限制确实存在,但我们的IP协议自身就支持对包的拆分和组装,如果一个IP数据报携带的载荷太长了超过64KB,就会在网络层对数据进行拆分,发送发将一个数据报拆成多个IP数据报分别发送,接收方分别接受在进行拼装
这几个字段都是为拆包/组包提供的。
标识符: 唯一标识主机发送的报文,如果被分片了,那么每一个片里的id都是相同的
标志: 相当于一个结束标记
片偏移: 分片相对于原始IP报文的偏移,用来描述当前分片在原报文的什么位置,实际偏移字节是这个数值 * 8表示的
存活时间(TTL): 一个数据报在网络上能够传输的最大时间(这里的单位不是秒,而是次数),一般初始值为64,没经过一个路由,TTL -= 1,如果到达0还未到达就丢弃,防止路由循环
协议: 用来描述上层协议类型,TCP/UDP
报头校验和: 对报头进行检验
这是我们IP协议中比较重要的部分,标识着网络上我们的源主机和目的主机
IP地址
我们这里使用32位2进制表示的,例如:01010000.00110100.01010101.01010010,但我们通常使用点分十进制的方式来标识,例如:62.155.175.25
IP地址的作用是为了给互联网上的每一个网络上的主机分配一个逻辑地址,但是我们这里只有32位,表示着IPv4的数量大概43亿左右,但随着互联网高速发展,IP地址出现不够用的情况,如何解决这种问题呢,有以下几种方案:
1.动态分配IP地址
简单的描述一下,我们的每台主机不是时时刻刻都在工作的,当你需要使用IP地址时,给你动态分配一个,当你不使用时,然后进行释放。虽然这个方案可以省下一些IP地址,但是并没有从根本上去增加IP地址,只是提高了利用率而已
2.NAT网络地址转换
简单地说,就是用同一个IP去代表一批设备,也能够大大提高IP地址的利用率
在我们NAT背景下,将IP地址分为两大类:
1.内网IP(私有IP):10.* , 172.16.* - 172.31.* ,192.168.*
2.外网IP(公用IP):除上面的私有IP之外的都是公有IP
NAT要求我们的公网IP地址必须是唯一的,私网IP可以在不同的局域网里重复出现,当我们的私网里的设备想要访问公网里的设备时,就需要NAT设备(路由器) 将IP地址进行转换,从而进行网络访问
如果我的局域网内多个主机经过该路由器转发给服务器,服务器看到的源IP都是一摸一样的,服务器的响应会先发给路由器,然后路由器再决定发给那个设备
显然NAT机制能够有效的去解决IP地址不够用的情况,但我们的网络环境也会变得更加复杂
3.IPv6
IPv6从根本上解决了IP地址不够用的情况,IPv6是128位表示的,一般使用冒分16进制表示:AD80:0000:0000:0000:ABAA:0000:00C2:0002。我们IPv6所能表示的数字是一个天文数字,有这样一句话,它能够为我们地球上每一粒沙子分配一个IPv6地址。
地址管理
一个IP地址可分为两个部分:网络号和主机号
网络号: 用来表示网段,保证两个连接的网段具有不同的标识(局域网)
主机号: 用来表示主机的,同一网段里可以拥有相同的网络号,但主机号必须不同
通过网络号和主机号的合理设置,就可以保证相互连接的网络里,每台主机的IP地址都是唯一的
最早的时候将IP地址分为5类去划分网络号和主机号的方案
分类 | 范围 |
---|---|
A类 | 0.0.0.0 - 127.255.255.255 |
B类 | 128.0.0.0 - 191.255.255.255 |
C类 | 192.0.0.0 - 223.255.255.255 |
D类 | 224.0.0.0 - 239.255.255.255 |
E类 | 240.0.0.0 - 247.255.255.255 |
这种网络号和主机号的分配方式太过于死板不够灵活,我们来了解一种更加灵活的分配方式
子网掩码
子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
这样的设定就灵活的多了,我们可以根据局域网的大小,来手动设置网段号和主机号的位数,做到资源的合理分配。
特殊的IP地址
IP地址中主机地址全设为1:标识广播地址,用于给同一局域网所有主机发送数据
IP地址中主机地址全设为0:标识网络号,代表该局域网
127.*:代表环回地址,用于本机到本机测试(为了提高性能,不走网络方式),一般都使用127.0.0.1
还有一个主机号为1,这个是经验之谈,不是绝对的,表示网关IP,也就是局域网的入口
路由选择
简单的来说,路由选择就是在网路上规划一条最佳路径。
但由于网络环境是十分复杂的,任何一个节点是无法感觉整个网络环境的,它只能够认识附近节点。
所以我们路由选择所干的工作就是边走边问路,每当IP数据报经过路由器,都会查看一下路由表,查看下一步往哪里走,如果路由表有记录就直接按照表上信息走就行,如果没有,会有一个默认路径,直到目的地。
我们这里只是简单了解一下大致过程,不去深究。
DNS
DNS:域名解析系统,是一套可以从域名映射到IP的系统。
我们的TCP/IP中使用了IP地址对网络上的一台主机进行标识,但是一串串二进制实在不方便记忆和使用,于是就出现了域名,通过域名系统来映射域名和IP地址,例如百度的域名:www,baidu.com,这样我们想用访问百度就可以使用这个域名去访问,简单好记。
为了网站的域名不能重复,于是我们DNS对域名进行了分级。
.com就是一级域名,类似还有:cn,org,us…
baidu就是二级域名,代表百度公司
www就是三级域名
不仅域名分级了,DNS服务器也是进行分级了。DNS服务器也分为一级域名服务器,二级域名服务器等等。
网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析查找到对应的IP地址:可以简单理解域名系统为一个树型结构,从下往上查找对应IP地址过程,如果到根服务器还没有找到,那就认为不存在该主机。
二、以太网协议
我们在数据链路层考虑的是相邻两个节点(通过网线/光纤之间相连的两个设备)之间的传输,在这里我们有许多协议,这里我们着重介绍最知名的协议:以太网
以太网帧
我们以太网数据帧由三部分组成:帧头 + 载荷 + 帧尾
这里的源地址,目的地址,不是IP地址,而是MAC地址。,
MAC地址: 用于标识网络设备的物理地址,MAC地址用于识别数据链路层相邻的节点,长度为48位,在我们主机出厂的时候就已经设定好的。一般用冒分十六进制标识:06:11:17:06:rb:11,FF:FF:FF:FF:FF:FF标识广播数据报的MAC地址。
IP地址与MAC地址有什么区别?
IP地址描述的是传输的起点和终点,使用的是网络逻辑地址。
MAC地址描述的是数据链路层每个区间的起点和重点,是给网络硬件设备使用的网络物理地址
类型: 帧协议类型有三种:IP,ARP,RARP
载荷即是完整的IP数据报。
CRC为校验码。
ARP,RARP是我们数据链路层里的其他协议,这个协议大概可以让路由器/交换机能够认识局域网里的其他设备,这个ARP协议能够在路由器/交换机建立一张类似hash表,去建立IP地址与MAC地址之间的关系。
MTU
MTU相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制。
最大传输单元MTU(Maximum Transmission Unit,MTU),是指网络能够传输的最大数据包大小,以字节为单位
大家可以具体看一下MSS与MTU的区别。
MTU具体有多大,和使用的物理介质有很大关系,也有数据链路层所使用的协议有关,以太网协议,MTU为1500字节,如果数据包长度大于MTU则需要进行分片。
相关文章:
网络层IP协议与数据链路层以太网协议
文章目录一、IP协议IP地址地址管理路由选择DNS二、以太网协议以太网帧MTU一、IP协议 IP协议是我们网络层的代表协议,今天我们就来一起学习一下吧,我们这里介绍的主要是IPv4协议。 版本:指定IP协议的版本,版本的取值只有4&#x…...
JDK动态代理详解
1.什么是动态代理 可能很多小伙伴首次接触动态代理这个名词的时候,或者是在面试过程中被问到动态代理的时候,不能很好的描述出来,动态代理到底是个什么高大上的技术。不方,其实动态代理的使用非常广泛,例如我们平常使用…...
实时的软件生成 —— Prompt 编程打通低代码的最后一公里?
PS:这也是一篇畅想,虽然经过了一番试验,依旧有一些不足,但是大体上站得住脚。传统的软件生成方式需要程序员编写大量的代码,然后进行测试、发布等一系列繁琐的流程。而实时生成技术则是借助人工智能技术,让…...
互联网工程师 1480 道 Java 面试题及答案整理 ( 2023 年 整理版)
最近很多粉丝朋友私信我说:熬过了去年的寒冬却没熬过现在的内卷;打开 Boss 直拒一排已读不回,回的基本都是外包,薪资还给的不高,对技术水平要求也远超从前;感觉 Java 一个初中级岗位有上千人同时竞争&#…...
Spark开发
第一步:创建RDD Spark提供三种创建RDD方式:** 集合、本地文件、HDFS文件** 使用程序中的集合创建RDD,主要用于进行测试,可以在实际部署到集群运行之前,自己使用集合构造一些测试数据,来测试后面的spark应…...
Tornado异步框架
简介: tornado是Python的web框架。tornado和主流的web服务器框架有明显的区别:它是非阻塞式服务器,而且速度非常快,得力于其非阻塞的方式和epoll的运用tornado可以每秒处理数以千计的连接(号称) 基本配置 …...
openpnp - error - 吸嘴没下降到板子上, 就将元件松开
文章目录openpnp - error - 吸嘴没下降到板子上, 就将元件松开概述笔记ENDopenpnp - error - 吸嘴没下降到板子上, 就将元件松开 概述 以前用过国内一家openpnp厂家出的设备, 他们家的openpnp是自己改过的. 贴片流程已经走过一遍. 这次还是按照以前记录的笔记, 按照国内那家的…...
【Java】yyyy-MM-dd HH:mm:ss 时间格式 时间戳 全面解读超详细
时间格式 时间格式(协议)描述gg时期或纪元。y不包含纪元的年份。不具有前导零。yy不包含纪元的年份。具有前导零。yyyy包含纪元的四位数的年份。M月份数字。一位数的月份没有前导零。MM月份数字。一位数的月份有一个前导零。MMM月份的缩写名称,在AbbreviatedMonthN…...
快鲸SCRM发布口腔企业私域运营解决方案
口腔企业普遍面临着以下几方面运营痛点问题 1、获客成本居高不下,恶性竞争严重 2、管理系统落后,人员流失严重 3、客户顾虑多、决策时间长 4、老客户易流失,粘性差 以上这些痛点,不得不倒逼口腔企业向精细化运营客户迈进。 …...
Verilog实现组合逻辑电路
在verilog 中可以实现的数字电路主要分为两类----组合逻辑电路和时序逻辑电路。组合逻辑电路比较简单,仅由基本逻辑门组成---如与门、或门和非门等。当电路的输入发生变化时,输出几乎(信号在电路中传递时会有一小段延迟)立即就发生…...
2023前端菜鸟笔试血泪史html5-one--找到工作前都更新
1.说说对html语义化的理解 什么的HTML语义化,顾名思义,HTML语义化就是可以不通过了解HTML的内容,就可以知道这个部分所代表的的意义。 HTML语义化的意义:在使用HTML标签构建页面时,避免大篇幅的使用无语义的标签。 …...
蓝牙调试工具集合汇总
BLE 该部分主要分享一下常用的蓝牙调试工具,方便后续蓝牙抓包及分析。 目录 1 hciconfig 2 hcitool 3 hcidump 4 hciattach 5 btmon 6 bluetoothd 7 bluetoothctl 1 hciconfig 工具介绍:hciconfig,HCI 设备配置工具 命令格式&…...
Java 获取文件后缀名【一文总结所有方法】
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
UML常见图的总结
一、概述 UML:Unified Modeling Language,统一建模语言,支持从需求分析开始的软件开发的全过程。是一个支持模型化和软件系统开发的图形化语言、为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到…...
WebRTC系列-工具系列之音频相关工具
文章目录 1. audio_util数据格式转换类2. WavFile文件读写类2.1 读取wav文件2.2 写入wav文件这篇文章主要介绍WebRTC中一些音频工具这些,大部分都在 common_audio目录下,这个文件夹下提供音频的大量算法,包括sinc重采样算法,音频数据格式的转换:例如 float转int16_t格式等…...
7 线性回归及Python实现
1 统计指标 随机变量XXX的理论平均值称为期望: μE(X)\mu E(X)μE(X)但现实中通常不知道μ\muμ, 因此使用已知样本来获取均值 X‾1n∑i1nXi.\overline{X} \frac{1}{n} \sum_{i 1}^n X_i. Xn1i1∑nXi.方差variance定义为: σ2E(∣X−μ∣2).\sigma^2 E(|…...
适合小团队协作、任务管理、计划和进度跟踪的项目任务管理工具有哪些?
适合小团队协作、任务管理、计划和进度跟踪的项目任务管理工具有哪些? 大家可以参考这个模板:http://s.fanruan.com/irhj8管理项目归根结底在管理人、物,扩展来说便是: 人:员工能力、组织机制; 物:项目内…...
从100%进口到自主可控,从600块降到10块,中科院攻克重要芯片
前言 2月28日,“20多位中科院专家把芯片价格打到10块”冲上微博热搜,据河南省官媒大象新闻报道,热搜中提到的中科院专家所在企业为全球最大的PLC分路器芯片制造商仕佳光子,坐落于河南鹤壁。 为实现芯片技术自主可控自立自强&#…...
关于git的一些基本点总结
1.什么是git? git是一个常用的分布式版本管理工具。 2.git 的常用命令: clone(克隆): 从远程仓库中克隆代码到本地仓库 checkout (检出):从本地仓库中检出一个仓库分支然后进行修订 add(添加): 在提交前…...
PyTorch保姆级安装教程
1 安装CUDA1.1 查找Nvidia适用的CUDA版本桌面右键,【打开 NVIDIA控制面板】查看【系统信息】查看NVIDIA的支持的CUDA的版本,下图可知支持的版本是 10.11.2 下载CUDACUDA下载官方网址https://developer.nvidia.com/cuda-toolkit-archive找到适合的版本下载…...
MySQL 上亿大表如何优化?
背景XX 实例(一主一从)xxx 告警中每天凌晨在报 SLA 报警,该报警的意思是存在一定的主从延迟。(若在此时发生主从切换,需要长时间才可以完成切换,要追延迟来保证主从数据的一致性)XX 实例的慢查询…...
Git(狂神课堂笔记)
1.首先去git官网下载我们对应的版本Git - Downloading Package (git-scm.com) 2.安装后我们会发现git文件夹里有三个应用程序: Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多 Git CMD:Windows风格的命令行 G…...
「2」指针进阶,最详细指针和数组难题解题思路
🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️🔥专栏系列:线性代数,C初学者入门训练 🔥座右铭:“不要等到什么都没有了,才下定决心去做” 🚀🚀🚀大家觉不错…...
云服务器是做什么的?云服务器典型的应用场景介绍
云服务器可能是很多企业以及个人上云用户的必选产品了,但是对于初学者或者非专业的用户来说云服务器还是比较陌生的,它到底是干什么的,如此生活中哪些地方可以接触到,这篇文章将详细的介绍云服务器使用的应用场景以及相关的操作 本…...
【论文随笔】Transfer of temporal logic formulas in reinforcement learning
Zhe Xu and Ufuk Topcu. 2019. Transfer of temporal logic formulas in reinforcement learning. In Proceedings of the 28th International Joint Conference on Artificial Intelligence (IJCAI’19). AAAI Press, 4010–4018. 这是一篇将inference和learning结合起来的文章…...
蓝桥杯-货物摆放
蓝桥杯-货物摆放1、题目描述1.1 答案提交1.2 运行限制2、解决方案2.1 方案一:暴力解法(三重循环)2.2 方案二:找出乘机的因子1、题目描述 小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有 n 箱货物要摆放在仓库,每…...
10 种顶流聚类算法 Python 实现(附完整代码)
聚类或聚类分析是无监督学习问题。它通常被用作数据分析技术,用于发现数据中的有趣模式,例如基于其行为的客户群。 有许多聚类算法可供选择,对于所有情况,没有单一的最佳聚类算法。相反,最好探索一系列聚类算法以及每…...
微信小程序第一节 —— 自定义顶部、底部导航栏以及获取胶囊体位置信息。
一、前言 大家好!我是 是江迪呀。我们在进行微信小程序开发时,常常需要自定义一些东西,比如自定义顶部导航、自定义底部导航等等。那么知道这些自定义内容的具体位置、以及如何适配不同的机型就变得尤为重要。下面让我以在iPhone机型&#x…...
快速吃透π型滤波电路-LC-RC滤波器
π型滤波器简介 π型滤波器包括两个电容器和一个电感器,它的输入和输出都呈低阻抗。π型滤波有RC和LC两种, 在输出电流不大的情况下用RC,R的取值不能太大,一般几个至几十欧姆,其优点是成本低。其缺点是电阻要消耗一些…...
聊聊混沌工程
这是鼎叔的第五十四篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。欢迎关注本专栏和微信公众号《敏捷测试转型》,大量原创思考文章陆续推出。混沌工程是一门新兴学科,它不仅仅只是个技术活动,还包含如何设计能够持续协作的…...
有人情味的网站/惠州seo计费管理
2021年已经到了复工期,给准备跳槽的大家整理了今年来最经典的面试真题100道,每个题目都有详细的解答,收集了java基础、RabbitMQ,微服务、MySQL数据库、Java并发、JVM,Redis、设计模式,Spring / Spring MVC&…...
网络培训法/seo外链推广工具下载
原标题:一加6T被曝将预装Android P 这一点其它品牌比不了近年来国产手机群雄崛起,不仅在国内获得了很高的呼声,一些品牌在国外也拥有着很高的热度,从以往的三星、苹果手中抢占了很多的份额,如今三星在国内的销量非常惨…...
网站建设jsp/seo是什么专业
今天和大家分享10个批量快速处理PPT 的技巧!没错!就是你想的“批发”处理~话不多说,赶紧一起来学习吧~一、批量提取PPT模板里的元素 在制作PPT的过程中,经常会遇到自己喜欢的模板!可真正喜欢的是里面的素材,…...
广州铁路投资建设集团网站/服务推广软文范例
i2c-tools i2cdetect 检测在系统上的i2c总线,例如: i2cdetect -l 检测挂载在i2c总线上器件,例如: i2cdetect -r -y 0 (检测i2c-0上的挂载情况) i2cdump 查看器件所有寄存器的值,例如:…...
网络公司制作网站/百度搜索指数排名
CPU CPU 是计算机的大脑,它主要和内存进行交互,从内存中提取指令并执行它。 一个CPU 的执行周期是从内存中提取第一条指令、解码并决定它的类型和操作数,执行,然后再提取、解码执行后续的指令。重复该循环直到程序运行完毕。 每…...
建站网站官方/网站建设规划书
frp中文文档:https://github.com/fatedier/frp/blob/v0.14.0/README_zh.md frp配置文件下载:https://github.com/fatedier/frp/releases/tag/v0.21.0 配置文件下载说明: linux服务器:frp_0.21.0_linux_amd64.tar.gz 树莓派&#x…...