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

网络之数据链路层

数据链路层

数据链路层目标

TCP/IP提供了一种能力, 将数据可靠的从 B 跨网络送到 C 主机, 这期间是由无数次局域网转发构成的, 比如 主机B 到 路由器F 就是一次局域网通信的问题, 而数据链路层就是研究数据是如何在局域网内部转发的.

也就是说, 应用层是进行数据的处理, 传输层如TCP是为了可靠性保证, 网络层是解决路径选择和路由的问题, 研究出主机 B 为了和主机 C 通信该走哪里的问题.

数据链路层解决了某一个区间(局域网)内具体的通信问题, 也就是它并不关心我为什么要这么走:

以太网

"以太网"(Ethernet) 不是一种具体的网络, 而是一种技术标准. 在现实网络中, 以太网是最常见的数据链路层协议, 此外数据链路层协议还有令牌环网, 无线LAN

以太网是一种广播型网络, 它采用 MAC 地址 进行设备寻址, 并使用 CSMA/CD(载波监听多路访问/冲突检测) 机制来控制设备对共享信道的访问。 

以太网既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;

以太网帧格式

MAC帧有两种格式, 分别是 EtherType 和 IEEE 802.3 . 现代网络主要使用 EtherType, IEEE 802.3 主要用于老旧或特殊应用场景. 下面是EtherType格式:

1. 如何将报头和有效载荷进行分离? 

由于MAC帧报头里没有可变的选项, 因此采用的是固定长度的报头, 可以直接进行分离.

类型 

2. 数据如何向上交付(分用)?

原理和IP的分用原理一样, 它们的报头中都有帧协议类型字段, 比较常见的有:

0x0800 IPv4 该帧承载 IPv4 数据包
0x0806 ARP 该帧承载 ARP(地址解析协议)报文
0x86DD IPv6 该帧承载 IPv6 数据包
0x8100 802.1Q VLAN 该帧使用 VLAN 标签

http://www.kler.cn/a/612088.html

相关文章:

  • Go 语言规范学习(1)
  • 【Django】教程-2-前端-目录结构介绍
  • opencv简单图形数组识别
  • React 中如何使用ref来访问 DOM 元素或组件实例,有哪些注意事项?
  • Cudann 11.8同时安装tensorflow, pytorch
  • Kafka 的延迟队列、死信队列和重试队列
  • Android设计模式之观察者模式
  • Android 项目缓存问题,某些依赖中的类会报错:Cannot resolve symbol
  • 若依专题——基础应用篇
  • Scala简介与基础
  • 远程办公新体验:用触屏手机流畅操作电脑桌面
  • SpringBoot动态配置数据源的几种实现方式
  • Spring事务与数据库事务的关系
  • 常见邮件协议
  • Oracle Database In-Memory 23ai 新特性
  • 【C++接入大模型】WinHTTP类封装:实现对话式大模型接口访问
  • 适合DBA的brew上手指南
  • (C语言)网络编程之TCP(含三次握手和四次挥手详解)
  • 适配器模式及其典型应用
  • Vue-create-vue-开发流程-项目结构-API风格-ElementPlus-入门准备工作