网络层IP协议与数据链路层以太网协议

article/2025/11/1 12:56:58

在这里插入图片描述

文章目录

  • 一、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则需要进行分片。


http://chatgpt.dhexx.cn/article/nekip1vV.shtml

相关文章

TCP/IP协议详解篇三(链路层)

文章目录 数据链路层(DataLinkLayer)点对点信道数据链路层通信时的主要步骤三个基本问题封装成帧透明传输差错检测 点对点PPP协议PPP协议满足的需求PPP协议的组成PPP协议的帧格式透明传输字符填充法零比特填充法 PPP协议的工作过程 局域网的数据链路层局域网的拓扑结构媒体共享…

数据链路层-------以太网协议

这里写目录标题 数据链路层点对点协议(PPP协议)以太网协议认识以太网以太网帧格式认识MAC地址对比理解MAC地址和IP地址认识MTUMTU对上层协议的影响查看硬件地址和MTU ARP协议(地址解析协议)ARP协议的作用ARP数据报格式ARP协议的工作原理 数据链路层 主要…

【网络协议详解】——数据链路层协议(学习笔记)

📖 前言:数据链路层是 OSI 模型中的第二层,位于物理层之上,是通信网络中的重要组成部分之一。数据链路层协议负责将网络层传输的数据分组封装成帧,传输到物理层,并通过物理介质进行传输。同时,数…

【网络原理】数据链路层 和 应用层 重点协议

✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 🍀一. 以太网协议(数据链路层)🌻二. DNS (应用层)🌿三. 网络原理知识面试总结 &#x1f34…

数据链路层六大协议详解

数据链路层六大协议详解 一些假设1.无限制的单工协议(乌托邦协议)五点假设发送方接收方接受方 2.单工停-等协议3.有噪声信道的单工协议 本文图片截取自 学堂在线-华南理工大学的计算机网络课程 一些假设 物理层、数据链路层和网络层各自是独立的处理进程机器A希望向B发送的是…

数据链路层相关协议

网络类型 ---根据数据链路层协议进行划分 MA ---多点接入网络(BMA广播型,NBMA非广播型)P2P---点到点的网络 以太网协议---需要使用MAC地址对不同的主机设备进行区分和标识 ---主要因为利用以太网组件的二层网络可以包含(两个和两…

网络安全——数据链路层安全协议

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.数据链路层安全协议简介 1.数据链路安全性 二.局域网数据链路层协议 1…

数据链路层协议

一、数据链路层概述 1.数据链路层的功能: 1)链路管理:负责数据链路的建立、维持和释放,主要用于面向连接的服务; 2)帧同步:接收方确定收到的比特流中一帧的开始位置和结束位置; …

数据链路层主要协议

PPP:点对点的协议,华为路由器默认封装,是面向字符的控制协议。HDLC:高级数据链路控制协议,Cisco路由器默认的封装,是面向位的控制协议。fram-relay:表示帧中继交换网,它是x.25分组交…

【计算机网络】数据链路层-基本数据链路层协议

【计算机网络】数据链路层-基本数据链路层协议 协议1:一个乌托邦式的单工协议 单工协议即数据只能单向传输。这个协议假设信道永远不会丢失或损坏帧,接收方的处理能力足够快,缓冲区足够大。 发送程序无限循环,接受程序响应事件&am…

数据链路层协议(Ethernet、IEEE802.3、PPP、HDLC)

​​​​​数据链路层协议 首先Ethernet、IEEE802.3、PPP和HDLC都是数据链路层的协议,只不过后面三个不常用而已,数据链路层最常用的协议是Ethernet以太网协议。 Ethernet和IEEE802.3属于以太链路层协议 广域网中经常会使用串行链路来提供远距离的数据…

计算机网络之数据链路层协议总结

数据链路层 1.数据链路层介绍2.ARP协议2.1 ARP的工作流程2.2 ARP数据报格式 3.NAT技术3.1 NAT转换过程3.2 NAPT技术(动态NAT重载) 4.DNS技术4.1 域名层级关系4.2 域名解析流程 5. ICMP协议5.1 ICMP功能5.2 ICMP类型 1.数据链路层介绍 数据链路层主要负责…

(SQL)修改表结构[字段类型]、表字段长度,

①:更改字段类型长度 ALTER TABLE 表名 ALTER COLUMN 字段名 类型的长度–varchar(50) 例:把城市表的城市字段原来长度为20改为30 ALTER TABLE city ALTER COLUMN cname varchar(30) ALTER TABLE #temp ALTER COLUMN bmmc NVARCHAR(30)②&#xff1…

表字段长度的修改

设置后,即可完成sqlserver数据库表字段长度的修改 超时修改:

用命令语句修改mysql某字段长度

在MySQL中修改某个字段的长度,需要使用ALTER TABLE语句,具体操作如下: 假设要修改表A中的字段col1的长度为50。 ALTER TABLE A MODIFY col1 VARCHAR(50); 以上语句中,MODIFY关键字用于修改表结构,VARCHAR(50)用于指定…

开发人员各种鄙视链

最近几年经常在网络上看到各种程序员鄙视链,其实真实情况是我们都很忙,每天 Bug 都调不玩,哪里有空鄙视这,鄙视那。所以很多的的鄙视链大家自己看看,笑一笑就过了,不要太过认真。 1、穿衣服也是有讲究的 2、…

趣图《程序员鄙视链》

小编推荐:Fundebug提供JS错误监控、微信小程序错误监控、微信小游戏错误监控,Node.j错误监控和Java错误监控。真的是一个很好用的错误监控费服务,众多大佬公司都在使用。 最近几年经常在网络上看到各种程序员鄙视链,其实真实情况是…

程序员鄙视链至今还存在,你咋想不通呢?看完给你理清思绪

前天本来想去githup上交流一下技术问题,顺便薅点源码玩玩。结果不小心打开了一个阿里朋友的博客。在他的文档下有特别多奇葩的留言: 什么PHP是世界上最好的语言~ Python是能上天的语言~ java最无敌~ C藐视一切 Gonang牛皮~ 这样的观点至今在互联网上…

从程序员鄙视链看IT圈职场晋升密码,你修炼到了第几层?

作为一名IT程序员工程师,在2020年疫情后严峻的就业环境下,对于求职择业和职场晋升可谓体会颇深了。 亲眼目睹身边的好友因企业业务收缩而被辞退的痛楚,汇智妹猛然发现:“优胜劣汰”的生存法则,不光存在于自然界的食物链…

无代码开发,站到了程序员鄙视链顶端

文章目录 无代码开发,站到了程序员鄙视链顶端1.只花 72 小时完成一个危机管理软件项目2.巨头们已经开始激战3.无代码给 IT 技术人带来的挑战后记 无代码开发,站到了程序员鄙视链顶端 “无代码”不是在"淘汰”开发者,而是给予开发者更大挑…