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

【网络】数据链路层知识梳理

全是通俗易懂的讲解,如果你本节之前的知识都掌握清楚,那就速速来看我的笔记吧~ 

自己写自己的八股!让未来的自己看懂! (全文手敲,受益良多) 

数据链路层

我们来重新理解一下这个图:

把数据从A主机送到B主机,我们要先把数据交到路由器A吧。IP解决的是AB之间跨网络传输的问题,再怎么跨网络,得先达到下一跳吧,一步一步走。

数据链路层解决的是:直接相连的主机(也包括路由器),进行数据交付的问题。

Mac地址

每一个网卡都有自己的mac地址,mac地址的作用:在同一局域网中,区分不同的主机。

我们来看一看mac的报头:

这个数据部分,大部分情况就是IP交给该层的IP报文。Mac帧就是这个报文,数据部分称为有效载荷。

问题1:Mac帧如何做到解包和封装

     Mac帧解包用到的是定长报文,收到报文的时候就可以把报头和有效载荷进行分离

问题2:Mac帧如何做到分用(交给上层的谁)

     通过类型,如果是0800说明数据是IP数据报…

目的地址: 就是要去的下一跳主机对应的mac地址

源地址:当前主机的mac地址

局域网的通信原理

  

   发送方把mac报头填好目的地址,源地址。然后发到局域网中,局域网中每一台机器都看到了这个报头然后进行比较,如果是给自己的才拿上来。

数据碰撞

局域网中有很多数据的时候,就会发生数据碰撞。要进行数据碰撞避免算法,本质就是让主机停发,避免过多数据碰撞。局域网中,主机数越多,发生数据碰撞的概率越大。

如何看待局域网??

局域网被多台主机共享,又要避免数据碰撞,所以我们可以将其看作多台主机的临界资源。通过网络层的IP协议,知道要去哪个路由器,然后在Mac帧上填上目标Mac地址(IP地址转Mac地址ARP协议)。到达这个路由器的时候,再根据Mac帧的类型向上交付给网络层,网络层去掉Mac的报头,然后再找到下一个要去的路由器,再由Mac帧重新填上目标Mac地址。依次类推,直到找到目标主机!

Mac帧只在局域网中有效!Mac帧的源地址和目的地址一直在变化的!

局域网中,主机数越多,发生数据碰撞的概率越大。怎么办呀?

   随着局域网的主机变多,我们引入新的设备——交换机。交换机可以识别到碰撞发生在哪一侧,如果左边发生碰撞,就不把数据给右边了,防止右边也发生碰撞。交换机可以划分碰撞域,减少局域网碰撞。

反正局域网都会发生碰撞,那我发生长一点的数据帧好呢?还是短一点的好呢?

  数据越长,时间就越长,发生碰撞概率就变大了。所以要求数据大小有范围【46,1500】字节。

数据链路层最多允许上层传1500字节(MTU),这会逼着网络层进行分片,可是分片不太好。我们要在协议里减少分片,我们如何减少分片呢?而IP传多少由TCP决定。所以减少分片的问题根源在TCP。IP报头为20字节,所以TCP最多只能传1480字节,TCP报头标准大小为20字节,所以真正的数据为1460。因为TCP有自己的发送缓冲区,所以每次最多取1460来发就可以了。这个1460就称为MSS(最大发送的数据段)。MMS双方三次握手的时候也会相互交互。

所谓的数据发送到目标网络,本质是通过无数个连续的子网实现的

ARP协议

  也是局域网协议,它要做到:在局域网中,将目标主机的IP地址转化为Mac地址!!!才可以实现路由器的跳转。

   如何让入口路由器R得到,主机B的Mac地址呢?

1.先谈ARP原理:
  

在局域网中广播一条消息:我是主机A,要找某某IP地址,它的Mac地址是什么?这个消息被主机B收到了,然后告诉其自己的Mac地址。

ARP报文:

ARP协议,属于MAC帧上层,但是归属到数据链路层。

硬件类型:表示链路层网络类型,1为以太网(固定写法)

协议类型:要传换的地址类型,0x0800为IP地址(固定写法)

硬件地址长度:对于以太网为6字节(固定写法)

协议地址长度:对于IP地址为4字节(固定写法)

op字段:1表示ARP请求,2表示ARP应答

目的以太网地址不知道,填为全F

2.模拟ARP过程

当主机R要找目的主机B的Mac地址的时候,先填ARP 报头:

,然后向下交付给数据链路层。再添加Mac帧报头,填写之后如下:

然后流向局域网,每台主机都会收到处理这个ARP报文。对于非目的主机,先对Mac帧报头的分离,发现目的地址为全F(广播地址),要受理这个报文,根据0806(类型)交付给该机器的ARP软件层,然后分析报文,发现目的IP地址并不是自己的IP地址,然后就把报文丢弃了。可是任何一台主机都可以发起ARP请求,所以任何一台主机都会收到ARP应答,和别人的ARP请求。所以我们要看op字段(1为请求,2为应答)。只有目的主机(B主机)的IP地址才可以对上,然后进行ARP应答~

重新写APR报文,把请求变为应答

然后再把应答的报文,广播给局域网,然后被主机R拿到,这样就可以拿到主机B的Mac地址啦。

结论:先看op,为1,看目的IP地址。为2看,源Mac地址。主机的mac地址和IP地址会被主机临时缓存起来。

ARP的周边问题

  1. ARP 工作机制:ARP(地址解析协议)用于将 IP 地址解析为 MAC 地址。主机通常会缓存 IP - MAC 映射关系。只有当缓存中的对应记录失效(比如缓存超时 、对应网络设备更改等情况 )时,才会再次发起 ARP 请求来重新获取 MAC 地址。
  2. 获取主机 IP 和 MAC 方法(理论设想):通过自身 IP 地址和子网掩码可确定所在网络号。理论上可通过拼接该网络号内的 IP 地址,然后使用 ping 命令探测网络内主机。在 ping 过程中,主机间交互会触发 ARP 过程,从而获取到对应主机的 MAC 地址。但实际中,这种操作可能受网络权限(如防火墙限制 )、广播域等因素影响。
  3. ARP 应答处理:当主机收到多次相同 IP 地址的 ARP 应答时,一般会以最新收到的应答为准更新自身的 ARP 缓存。这是因为最新应答可能反映了网络中设备当前真实的 MAC 地址情况,确保后续通信能正确寻址。

ARP 欺骗是针对 ARP 协议的攻击技术 。利用 ARP 协议无验证机制的漏洞,攻击者发送伪造 ARP 数据包,使目标主机将攻击者 MAC 地址错当成网关或目标主机 MAC 地址 。

DNS协议

实际上访问的网站是IP地址,因为IP地址不方便记忆。所以用域名,进行域名解析成IP地址就可以了。

浏览器中输入url后,发生的事情(就是输入一个域名后)

 分三个阶段:

  1. http过程+域名解析
    先域名解析,拿到目标IP地址,浏览器会构建http请求,填充请求行,请求报头空行,如果需要的话,还可以带正文。在构建http请求之前要三次握手。进行网络转发,到达目的主机,构建http应答,还有响应报文,再通过TCP链接,把响应返回,浏览器得到之后对报文做解析,提取正文,对正文进行解释,再由浏览器渲染就可以看到结果了。
  2. https提一下
    刚刚的都是最简单的,现在都是https,双方在通信之前除了建立链接,在正常通信之前进行密钥协商…
  3. 谈论细节
    我们底层http的数据其实就是数据流,最后拷贝到TCP的发送缓冲区,那些策略,流量控制,拥塞控制,超时重传,三次握手,面向连接,还问就是IP层,子网划分,查路由表,IP分片,分片和组装,再往下就是Mac帧…

     

ICMP协议
 

   ICMP是网络层的协议。可以对网络当中出现问题时,对IP报文进行应答的。

        ping 命令基于 ICMP, 是在网络层. 而端口号, 是传输层的内容. 在 ICMP 中根本就不关
注端口号这样的信息.

NAT技术(重点)

 我们之前讲过,源IP地址在经过路由器的时候会被替换成WAN口地址。NAT技术本质还是缓解IP地址不足的问题。

可是怎么把收回来的数据,从路由器到源主机呢??

我们有NAPT,NAT转化表

内网中源地址一定是唯一的,我们提前建立映射关系。即使将来通过路由器转换后的地址都相同,但是收回数据的时候,可以根据映射关系来区分是哪个主机的数据。

NAT在替换的时候不仅仅会替换。会加端口号,通过端口号找到源地址~

NAT的缺陷

  1. 无法从NAT外部向内部建立连接
  2. 转换表的生成和销毁都需要额外开销
  3. 如果NAT路由器异常了,所有的TCP连接都会断开

内网穿透:通过一个公共的服务器,实现2个局域网主机的相互通信

代理服务器

正向代理(Forward Proxy)是一种常见的网络代理方式,它位于客户端和目标

服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请

求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这

种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问

控制等。

工作原理

• 客户端将请求发送给正向代理服务器。

• 正向代理服务器接收请求,并根据配置进行处理,如缓存查找、内容过滤等。

• 正向代理服务器将处理后的请求转发给目标服务器。

• 目标服务器处理请求,并将响应返回给正向代理服务器。

• 正向代理服务器将响应返回给客户端。

反向代理

概述

• 反向代理服务器是一种网络架构模式,其作为 Web 服务器的前置服务器,接收

来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回

给客户端。这种架构模式可以提升网站性能、安全性和可维护性等基本原理

• 反向代理服务器位于客户端和 Web 服务器之间,当客户端发起请求时,它首先

会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web

服务器,并将 Web 服务器的响应返回给客户端。在这个过程中,客户端并不知道实际

与哪个 Web 服务器进行了交互,它只知道与反向代理服务器进行了通信。


下篇文章我将更新——多路转接~期待你的关注👉【A charmer】 

相关文章:

  • Hi3518E官方录像例程源码流程分析(四)
  • 【NLP 62、实践 ⑮、基于RAG + 智谱语言模型的Dota2英雄故事与技能介绍系统】
  • 13【生命周期·进阶】省略规则与静态生命周期 (`‘static`)
  • 08【工具赋能】深入 Cargo:依赖管理、构建配置与工作空间 (Workspace)
  • C++类继承关键点总结
  • MySQL数据库(基础篇)
  • 量子计算与经典计算融合:开启计算新时代
  • 读一篇AI论文并理解——通过幻觉诱导优化缓解大型视觉语言模型中的幻觉
  • UE5 UI 教程系列全集
  • llama factory
  • 7、sentinel
  • 微信小程序通过mqtt控制esp32
  • 手写call,bind,apply
  • Jetson Orin Nano GPIO 实战,用 devmem 玩转 Pinmux 引脚复用配置
  • 【数据可视化-19】智能手机用户行为可视化分析
  • AI与思维模型【71】——断裂点理论
  • 第五章 SQLite数据库:5、SQLite 进阶用法:ALTER 命令、TRUNCATE 操作、视图创建、事务控制和子查询的操作
  • 【Java面试系列】Spring Cloud微服务架构中的分布式事务解决方案与Seata实现原理详解 - 3-5年Java开发必备知识
  • 每日算法-250420
  • qwen 32B 模型配置文件参数解释;48 个堆叠的解码器层是什么意思; `max_window_layers`的作用; 定义 `device_map`
  • 广西柳州23年的蝶变:从“酸雨之城”到“文明之城”
  • 境外机构来华发行熊猫债累计超9500亿元
  • 梅德韦杰夫:如果欧盟和美国 “撒手不管”,俄罗斯会更快解决俄乌冲突
  • 习近平结束对越南、马来西亚和柬埔寨国事访问回到北京
  • 变局中,上海浦东何以继续引领?
  • 圆桌|并购重组迎政策红利期,并购基金如何把握发展机遇?