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

【网络】TCP/IP 五层网络模型:数据链路层

文章目录

  • 认识以太网
  • mac 地址
    • mac 地址和 IP 地址的区别
  • 类型
    • ARP 协议
  • MTU

日常开发主要是应用层,传输层和应用层密切交互,传输层用到的也不少。网络层以及再往下,日常开发就涉及到的非常少了

认识以太网

插网线的上网方式

80211 是无线 WiFi 上网方式

image.png

mac 地址

  • 一般一个网卡,在出场的时候,mac 地址就被分配好了,就写死了(不能改了)

  • mac 地址也可以作为设备的身份标识

比如,你花钱买外挂,一般的外挂都是“绑定机器”的(防止你进行二次售卖),这就可以通过记录设备的 mac 地址来实现

  • 当你买了这个挂之后,人家就会在服务器上记录你这个设备的 mac 地址
  • 如果你之后给别人登录这个程序,被发现 mac 地址不一样,就没法使用

mac 地址和 IP 地址的区别

mac 地址使用 6 个字节,IP 地址 4 个字节

  • 空间范围比 IP 地址大了 6w 多倍
  • mac 地址当前仍然可以给每个设备都分配一个唯一的 mac 地址

  1. mac 地址使用在数据链路层,用来实现两个设备之间的数据转发——微观;
    IP 地址使用在网络层,立足于整个转发流程,进行路经规划——宏观

理论上来说,搞一套地址也能完成宏观和微观地址上的所有工作,IP 地址和 mac 地址留一组就可以了,但实际上两个都留下来了,分配了不同的任务(不是技术问题,而是历史遗留问题)。

IP 地址和 mac 地址是两伙人,在同一个时间段各自独立提出的。两伙人都觉得自己的东西好,于是大家就综合一下,你这个地址负责这块;你那块地址负责那块就可以了

举个栗子:西安到吉林省白城市安广镇
第一步:路径规划(网络层)
西安—>北京—>长春—>白城—>安广
西安—>北京—>沈阳—>白城—>安广
西安—>长春—>白城—>安广

第二步:实施(选择第一条线路)

  1. 坐飞机
    IP:西安;目的 IP:安广;
    mac:西安;目的 mac:北京
  2. 坐高铁
    IP:西安;目的 IP:安广
    mac:北京;目的 mac:长春
  3. 坐大巴
    IP:西安;目的 IP:安广
    源 mac:长春;目的 mac:白城
  4. 坐出租车
    IP:西安;目的 IP:安广
    mac:白城;目的 mac:安广
    .
    上述场景不考虑 NAT,源 IP 和目的 IP 始终都是固定的。以太网数据帧里面的 mac 地址,会随着转发的过程,时刻发生改变(每经过一个交换机/路由器就会产生上述变化),牢牢抓住了下一个数据要往哪传输这样的要点

类型

描述了载荷中是什么样的数据
image.png|515

  • 0800(十六进制),IP 数据报
  • 0806ARP 报文
  • 0835RARP 报文

后俩不传输业务数据,而是给转发功能提供辅助的措施

ARP 协议

ARP 数据报/协议,可以视为是让当前设备能获取到周围设备的 IP 地址和 mac 地址之间的映射关系

在 IP 协议的路由转发过程中,都是拿着 IP 地址来进行查路由表的操作的,得到的是“网络接口”(抽象的概念)。更具体的的话,就需要知道传输给目标对象的 mac 地址,这个环节中就涉及到 IP 地址到 mac 地址的转换。ARP 就是用来建立上述的映射关系的

当前设备接入网络的时候,就会往广播地址发送 ARP 报文。收到 ARP 请求的设备就会返回 ARP 响应,响应中就会告知自己的 IP 和 mac

MTU

数据链路层数据帧的最大载荷长度为 1500 字节,相当于 1.5kb,把这个数字称为 MTU

MTU 是和硬件直接相关的,硬件不同,所对应的 MTU 也可能是不一样的

  • 不同的硬件设备硬件设备,就对应到了不同的数据链路层协议,就对应到了不同的 MTU

以太网,其实是很短的,只有 1.5kbIP/UDP 至少还是 64kb

  • 此处 MTU 的限制,就会对上层协议产生直接影响
  • IP 协议能拆包组包,实际上更多的是应对 MTU 的限制(到 1500 的时候就被砍了,远远不到 64kb 的时候)
  • 当一个 IP 数据报,达到 1500 以上的时候,就会自动拆包了

http://www.mrgr.cn/news/28448.html

相关文章:

  • 【微服务设计】分布式系统一致性:深入解析2PC(两阶段提交)和TCC的优势与劣势
  • wordpress搭建主题可配置json
  • AI 写作(九)实战项目二:智能新闻报道(9/10)
  • 【数据结构】什么是链栈?
  • Thinkphp6视图介绍
  • 《Python编程实训快速上手》第五天--模式匹配与正则表达式
  • 速盾:怎么使用cdn加速视频?
  • c++ templates常用函数
  • 进口车电子信息单二维码解密
  • react hooks--useLayoutEffect
  • Python pdf转换为html
  • vmvare如何给centos7 设置静态IP地址
  • 计算机的错误计算(九十五)
  • 【C++学习入门】6.左值右值
  • 探索人工智能的未来趋势
  • 24.9.16数据结构|平衡二叉树
  • [项目][WebServer][Makefile Shell]详细讲解
  • 机器学习的入门指南
  • re题(22)BUUFCTF-[ACTF新生赛2020]rome
  • 速盾:cdn免备案免费加速?
  • Spring为什么要用三级缓存解决循环依赖?
  • Robot Operating System——带有协方差矩阵的线速度和角速度
  • 世界排名第一的数码照片和图形放大软件PhotoZoom Pro 9
  • 【ShuQiHere】 进位回补与溢出问题全解:二补码与一补码的进阶指南
  • 指纹与指甲检测系统源码分享
  • 掌握回流与重绘面试回答:优化网页加载与响应速度