🔥个人主页: 中草药
🔥专栏:【Java】登神长阶 史诗般的Java成神之路
👜一.以太网
以太网(Ethernet)是一种局域网技术,它定义了开放系统互连(OSI)模型中的物理层和数据链路层的规范。以太网是目前最广泛使用的有线网络技术之一,支持不同类型的计算机和其他设备之间的通信。
工作原理
- CSMA/CD(载波侦听多路访问/冲突检测):这是原始以太网的核心机制,允许所有设备共享同一物理媒介。当一个设备想要发送数据时,它会先监听信道是否空闲;如果空闲,则开始发送。如果有两个或更多设备同时尝试发送,就会发生碰撞,这些设备随后会在随机等待一段时间后重新尝试发送。
- 帧结构:数据是以帧的形式进行封装的,每个帧包含源地址、目的地址、类型/长度字段、实际数据以及校验序列(如CRC)来确保数据完整性。
帧格式
- 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的
- 帧协议类型字段有三种值,分别对应IP,ARP,RARP
- 帧末尾是CRC校验码
👔二.MAC地址
MAC地址(Media Access Control Address)是一种用于标识网络设备硬件的唯一地址。它在数据链路层(OSI模型中的第二层)上工作,主要用于局域网通信。每个网络接口卡(NIC)或任何其他具有网络功能的设备都有一个唯一的MAC地址。
结构
一个标准的MAC地址由6个字节(48位)组成,通常以十六进制表示,(IP地址4个字节)并用冒号或连字符分隔每两个十六进制数字。例如:00:1A:2B:3C:4D:5E
或 00-1A-2B-3C-4D-5E
。MAC地址还可以作为设备的身份标识
- 前24位(OUI, Organizationally Unique Identifier):这部分是组织唯一标识符,由IEEE分配给各个制造商。这使得可以根据MAC地址的前三个字节识别出设备是由哪家公司生产的。
- 后24位:这部分由设备制造商自行分配,确保了即使是同一制造商生产的所有设备之间,MAC地址也是唯一的。
作用
- 寻址:在局域网中,MAC地址用于直接寻址和识别通信双方。
- 过滤:网络设备如交换机可以利用MAC地址进行流量控制和安全过滤,比如基于MAC地址的访问控制列表(ACL)。
- 转发:在交换式网络中,交换机会学习每个端口上连接设备的MAC地址,并据此构建转发表来决定如何转发数据帧。
静态与动态MAC地址
- 静态MAC地址:大多数情况下,MAC地址是在制造过程中烧录到设备中的ROM里,不可更改,被称为静态MAC地址。
- 动态MAC地址:某些高级网络设备支持配置临时的、可更改的MAC地址,这类地址通常存储在RAM中,重启后会丢失。
总之,MAC地址对于保证网络通信的有效性和安全性至关重要,它是网络基础设施的一个基本组成部分。
MAC地址使用在数据链路层,用来实现两个相邻设备的数据转发---微观
IP地址使用在网络层,立足于整个转发流程,进行路径规划---宏观
👕三.MTU
MTU(Maximum Transmission Unit,最大传输单元)是指网络中可以传输的最大数据包大小,单位通常是字节。MTU的概念主要应用于网络层和数据链路层,特别是在IP网络中,它影响着数据如何被分割成更小的部分以适应不同网络路径的限制。
MTU直接和硬件相关,不同的硬件设备,对应了不同的数据链路层协议,对应了不同的MTU
作用
-
避免分片:当一个较大的数据包需要通过具有较小MTU值的网络时,该数据包会被分割成几个较小的数据包(称为分片)。接收端必须重新组装这些分片才能得到原始数据。这个过程会增加处理开销并可能导致性能下降。因此,设置合适的MTU有助于减少不必要的分片。
-
提高效率:适当调整MTU可以优化网络性能。如果MTU太小,会导致过多的小数据包在网络上传输,增加了头部信息的比例,从而降低了有效载荷的比例。而如果MTU太大,则可能会导致频繁的分片,同样影响性能。
-
兼容性:不同的网络技术有不同的默认MTU值。例如,传统的以太网MTU为1500字节,但某些特殊的网络环境如PPPoe、GRE隧道或MPLS可能有更小的MTU。
常见的MTU值
- 以太网:通常情况下,标准以太网接口的MTU是1500字节。(1.5KB 算是非常小)
- PPP (Point-to-Point Protocol):在使用PPP进行拨号连接时,常见的MTU值为576字节。
- PPPoE (Point-to-Point Protocol over Ethernet):由于额外的封装,实际可用的MTU通常是1492字节。
- Jumbo Frames:为了提高网络吞吐量,在一些高性能网络环境中,可以配置更大的MTU,如9000字节,这种帧被称为“巨型帧”(Jumbo Frames)。
路径MTU发现
路径MTU发现(Path MTU Discovery, PMTUD)是一种机制,用于确定从源到目的地之间的路径上最小的MTU值。这可以帮助发送方正确地设置其数据包大小,避免因中间路由器强制分片而导致的问题。PMTUD通过ICMP(Internet Control Message Protocol)消息来实现,当某个中间路由器发现数据包大于它的出接口MTU时,它会向源主机发送一个ICMP“Packet Too Big”消息,并附带自己的MTU值。
MTU对IP协议的影响
数据包分片
-
分片必要性:
- 当一个IP数据包从一个具有较大MTU的网络发送到另一个具有较小MTU的网络时,如果数据包的大小超过了目标网络的MTU,那么该数据包必须被分割成更小的数据包,以便能够通过这个网络。
- 这个过程称为分片(fragmentation),每个分片都是原始数据包的一个部分,并且每个分片都有自己的IP头部。
-
分片过程:
- 在IP头部中,有几个字段用于处理分片:标识符(Identification)、标志(Flags)和片段偏移量(Fragment Offset)。
- 标识符字段是一个16位的数字,它对于所有分片是相同的,这样接收端就可以识别出哪些分片属于同一个原始数据包。
- 标志字段包含三个比特,其中一个比特表示是否还有更多的分片(More Fragments, MF),另外两个比特通常不使用。
- 片段偏移量字段指出了当前分片在原始数据包中的位置,单位是8字节。
-
分片的影响:
- 分片会增加网络开销,因为每个分片都需要额外的IP头部信息。
- 如果任何一个分片丢失,整个数据包需要重新发送。
- 分片后的数据包可能在网络中经历不同的路径,这可能导致到达顺序混乱,接收端需要进行排序和重组。
重组过程
- 接收方收到所有分片后,会根据标识符、标志和片段偏移量字段将这些分片重新组合成原始数据包。
- 重组发生在最终目的地或中间路由器上,但通常是目的地设备执行重组以减少中间路由器的负担。
设置MTU
对于大多数用户来说,不需要手动更改MTU值,因为操作系统和网络设备通常已经设置了合理的默认值。但在特定情况下,比如遇到网络性能问题或是配置特殊类型的网络时,可能需要调整MTU:
- 在Windows系统中,可以通过命令行工具
netsh
来修改MTU。 - 在Linux系统中,可以使用
ifconfig
或ip
命令来设置接口的MTU。 - 对于网络设备如路由器或交换机,一般可以在设备的管理界面中找到相应的配置选项。
调整MTU时应当谨慎,因为它会影响到整个网络的表现。在进行任何更改之前,最好先进行测试以确保不会引起其他问题。
🧣四.ARP协议
ARP(Address Resolution Protocol,地址解析协议)是一个在TCP/IP网络中使用的链路层协议,用于将已知的IP地址映射到相应的物理地址(如以太网中的MAC地址)。它可以视为,让当前设备,获取到周围设备 IP 地址和 MAC 地址之间的映射关系
工作原理
-
请求过程:
- 当主机A想要向主机B发送数据,但只知道主机B的IP地址而不知道其MAC地址时,主机A会广播一个ARP请求报文。
- 这个ARP请求包含主机A的MAC地址和IP地址,以及主机B的IP地址,并询问“谁拥有这个IP地址?请告诉我你的MAC地址”。
-
响应过程:
- 所有接收到ARP请求的设备都会检查自己的IP地址是否与请求中的目标IP地址匹配。
- 如果匹配,那么该设备(假设是主机B)就会单播回应一个ARP响应报文给主机A,其中包含了主机B的MAC地址。
- 如果不匹配,则这些设备不会做出任何响应。
-
更新ARP缓存:
- 主机A收到ARP响应后,会将主机B的IP地址和MAC地址对存储在本地的ARP缓存表中,这样下次再发送数据给主机B时就可以直接使用缓存中的信息,而不需要再次发起ARP请求。
-
ARP缓存超时:
- 为了保持ARP缓存表的时效性,每个条目都有一个生存时间。一旦超过这个时间,对应的条目会被删除或标记为过期,下一次发送数据时又需要重新执行ARP请求。
总的来说,ARP协议虽然简单,但它在网络通信中扮演着至关重要的角色,确保了不同层次之间的正确映射。同时,了解ARP的安全风险并采取适当的保护措施也是网络管理的重要组成部分。
🎒五.DNS协议(应用层协议)
DNS(Domain Name System,域名系统)是一种分布式数据库系统,用于将人类易于记忆的域名转换为计算机可识别的IP地址。它解决了互联网上主机名和IP地址之间的映射问题,使得用户无需记住复杂的IP地址即可访问网站和其他服务。以下是对DNS协议的简要介绍:
工作流程
-
查询过程:
- 用户输入一个域名(如www.example.com)后,浏览器或操作系统会向本地DNS客户端发送一个DNS查询请求。
- 本地DNS客户端首先查找本地缓存,看是否有对应记录。如果有,就直接返回结果。
- 如果没有,客户端会向DNS服务器发出查询请求。
-
递归查询:
- 如果本地DNS客户端没有找到答案,它会向DNS服务器发送一个递归查询,要求服务器提供完整的解答。
- DNS服务器会尝试从根域名服务器开始,逐级向下查询,直到找到正确的权威名称服务器为止。
-
权威名称服务器:
- 权威名称服务器负责维护特定域名下的所有记录,如A记录(将域名映射到IP地址)、MX记录(邮件服务器)等。
- 当查询到达权威名称服务器时,它会返回正确的IP地址或其他相关信息。
-
回答过程:
- DNS服务器将查询结果返回给本地客户端,然后本地客户端将其保存在缓存中,以备后续查询使用。
相关概念
- DNS缓存:本地客户端和DNS服务器都可能有自己的缓存,以加速查询速度。
- DNS轮询:多个DNS服务器可以同时提供服务,客户端可以随机选择一个进行查询。
- DNS负载均衡:通过将域名映射到多个IP地址,可以实现流量分散和故障转移。
DNS服务器类型
- 根域名服务器:顶级域名的权威服务器,如com、org等。
- 顶级域名服务器:负责特定顶级域名的服务器,如.com服务器。
- 权威名称服务器:负责特定域名的服务器,如example.com服务器。
- 递归DNS服务器:为用户提供全面查询服务的服务器,常见于ISP或企业内部。
DNS缓存
- 本地缓存:存在于客户端和DNS服务器中,用于加快查询速度。
- 缓存污染:当缓存中的信息过期或被非法修改时,可能导致错误的结果。
总的来说,DNS协议是互联网的关键组件之一,它使得用户可以方便地访问网络资源,同时也为网络管理员提供了管理和优化网络流量的方法。理解DNS的工作原理和相关安全问题对于保障网络稳定和安全非常重要。
成功的秘诀,在永不改变既定的目的。——卢梭
🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀
以上,就是本期的全部内容啦,若有错误疏忽希望各位大佬及时指出💐
制作不易,希望能对各位提供微小的帮助,可否留下你免费的赞呢🌸