网络原理——数据链路层

以太网是数据链路层的核心协议

1. 以太网数据帧的组成部分

  1. 帧起始符(Preamble):8字节的连续数据0xAA,标识一个新数据帧的开始,用于同步收发双方的时钟。

  2. 目的MAC地址(Destination MAC Address):6字节的目的MAC地址,表示数据帧的接收者。

  3. 源MAC地址(Source MAC Address):6字节的源MAC地址,表示数据帧的发送者。

  4. 类型/长度(Type/Length):2字节的字段,用于指示数据帧中的数据类型或长度。

  5. 有效载荷(Payload):46-1500字节的数据部分,包含网络层协议的数据和其他信息。因为ARP是46个字节所以有效载荷最小是46字节,最大为1500字节是由于硬件设备的限制,这个最大限制称为MTU

  6. 填充(Padding):如果有效载荷长度小于46字节,则在数据尾部添加填充,以达到最小帧长度64字节。

  7. 帧校验序列(Frame Check Sequence):4字节的CRC校验码,用于检测数据传输过程中是否出现了错误。

以太网数据帧的总长度为64-1518字节,其中8字节的帧起始符和4字节的帧校验序列是固定的,剩余部分则根据实际数据内容来确定。数据帧的目的MAC地址、源MAC地址和类型/长度字段是在数据链路层中进行处理和解释的,以太网协议支持多种不同类型的数据,例如IP数据包(0x0800)、ARP请求/应答(0x0806)等。

MAC地址(Media Access Control address)是一个用于唯一标识网络设备的地址。它是由设备的制造商在生产时分配给设备的,通常以十六进制数表示。MAC地址是数据链路层中用于在局域网中唯一标识网络设备的地址。每个网络设备都会有一个唯一的MAC地址,这样可以确保在局域网中每个设备都具有唯一的标识。

解释:

类型:

  1. 指示上层协议:当以太网帧携带的数据是网络层及以上的协议时,"类型"字段用于指示数据部分所使用的协议类型。例如,如果数据部分是 IP 数据报文,"类型"字段可能指定为0x0800(对应于IPv4协议),如果数据部分是IPv6数据报文,则"类型"字段可能指定为0x86DD。

  2. EtherType/Length 字段:在以太网数据帧中,"类型"字段也被称为 EtherType 字段,它用来表示随后数据字段的具体含义。此外,在一些情况下,"类型"字段也可以用来表示数据字段的长度。这样的情况下,"类型"字段通常被称为 Length 字段。

  3. 识别不同协议:通过"类型"字段,网络设备可以识别以太网帧携带的数据所使用的具体协议,从而进行相应的处理和转发。不同的协议可能需要不同的处理方式,"类型"字段有助于设备进行正确的协议解析和处理。

ARP:ARP用于将IP地址转换为对应的MAC地址,在局域网中实现网络层地址到数据链路层地址的映射。

RARP:RARP用于将数据链路层地址(如MAC地址)转换为对应的IP地址,是ARP的逆向过程。

2. MAC地址和IP地址的区别

  1. 唯一性范围:MAC地址在全球范围内是唯一的,由设备制造商分配,因此具有全局唯一性。而IP地址在特定的网络范围内是唯一的,但在不同的网络之间可以重复。这意味着全球范围内的每个设备都有唯一的MAC地址,但可能有多个设备共享相同的IP地址。

  2. 地址格式:MAC地址通常以十六进制表示,由6个字节(48位)组成,例如00:1A:2B:3C:4D:5E。IP地址通常以点分十进制表示,IPv4地址由4个字节(32位)组成,例如192.168.0.1。IPv6地址则采用128位的长度,由8组16进制数表示,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。

  3. 路由和转发:MAC地址用于在局域网内部直接寻址和传输数据帧,而IP地址则用于在不同网络之间进行路由和转发。路由器根据目的IP地址对数据包进行转发,而在每个局域网中,设备通过目标MAC地址直接发送和接收数据。

  4. 灵活性:IP地址具有更高的灵活性,可以根据需要分配、释放和重新分配。这使得在网络中进行动态地址分配(如DHCP)和网络管理更加方便。而MAC地址通常是设备制造商预先分配的,一般不会随着网络配置的变化而改变。

3. DNS 

DNS(Domain Name System,域名系统)是互联网中用于将域名(如example.com)转换为与之对应的 IP 地址的分布式命名系统。它充当了互联网上的“电话簿”,帮助用户通过易记的域名来访问网站,而无需记住复杂的 IP 地址。

以下是 DNS 的主要功能和工作原理:

  1. 域名解析:DNS 的主要作用是将人类可读的域名(如www.example.com)转换为计算机可识别的 IP 地址(如192.0.2.1)。这个过程称为域名解析,它通过 DNS 服务器来实现。
  2. 分层结构:DNS 采用了分层结构,包括根域(.)、顶级域(TLD)、二级域、子域等层级。当用户在浏览器中输入一个域名时,DNS 将逐级查询不同层级的服务器,直到找到对应的 IP 地址。
  3. 递归查询:当用户的设备向 DNS 服务器发起域名解析请求时,DNS 服务器可能会进行递归查询,依次向其他 DNS 服务器查询,直到找到与之对应的 IP 地址,并将结果返回给用户。
  4. 缓存:为了提高解析效率,DNS 服务器通常会缓存已解析过的域名和对应的 IP 地址,以便在后续的查询中快速返回结果。
  5. 权威服务器和递归服务器:DNS 系统中包含权威服务器(Authoritative Name Server)和递归服务器(Recursive Resolver)。权威服务器存储特定域名的 IP 地址信息,而递归服务器则负责处理域名解析请求并返回结果。

 hosts 文件就是用于储存IP和对应的域名的,随着互联网发展,域名和服务器越来越多,维护hosts文件就非常麻烦,于是诞生了域名解析服务器,需要获取域名或IP只需在服务器内获得

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/462117.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软.NET6开发的C#特性——委托和事件

我是荔园微风,作为一名在IT界整整25年的老兵,看到不少初学者在学习编程语言的过程中如此的痛苦,我决定做点什么,下面我就重点讲讲微软.NET6开发人员需要知道的C#特性,然后比较其他各种语言进行认识。 C#经历了多年发展…

Lua 教程

Lua 教程 (今天又又又开新坑啦) Lua 教程 手册简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放。 手册说明 Lua是什么? Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de …

flink反压及解决思路和实操

1. 反压原因 反压其实就是 task 处理不过来,算子的 sub-task 需要处理的数据量 > 能够处理的数据量,比如: 当前某个 sub-task 只能处理 1w qps 的数据,但实际上到来 2w qps 的数据,但是实际只能处理 1w 条&#…

年-月-日的输入方法

大家对于输入的函数一定有所认识&#xff0c;比如c中位于 #include <iostream> 中的 cin 函数&#xff0c;这个函数输入单个十分好用&#xff0c;但是对于年月日这种较为复杂的就行不通了&#xff0c;就只能输入最前面的一个 那怎么输入像这样的年月日呢 答案就是用 scan…

FPGA_ip_Rom

一 理论 Rom存储类ip核&#xff0c;Rom是只读存储器的简称&#xff0c;是一种只能读出事先存储数据的固态半导体存储器。 特性&#xff1a; 一旦储存资料&#xff0c;就无法再将之改变或者删除&#xff0c;且资料不会因为电源关闭而消失。 单端口Rom: 双端口rom: 二 Rom ip核…

[word] word中页眉怎么设置与上一节不同 #笔记#笔记#经验分享

word中页眉怎么设置与上一节不同 word中页眉怎么设置与上一节不同 1、首先打开一个文档&#xff0c;点击上方的命令栏&#xff0c;找到“页眉”指令。 2、点击编辑&#xff0c;输入页眉的文字&#xff0c;输入完成之后&#xff0c;会看到两页的页眉是一样的。 3、在“页面布局…

Packet Tracer - Configure IOS Intrusion Prevention System (IPS) Using the CLI

Packet Tracer - 使用CLI配置IOS入侵防御系统&#xff08;IPS&#xff09; 地址表 目标 启用IOS入侵防御系统&#xff08;IPS&#xff09;。 配置日志记录功能。 修改IPS签名规则。 验证IPS配置。 背景/场景 您的任务是在R1上启用IPS&#xff0c;扫描进入192.168.1.0网络…

在 Next 中, ORM 框架 Prisma 使用

Prisma 介绍 Prisma 是一个 ORM 框架&#xff0c;主要用于 Node.js 或 TypeScript 作为后端开发的应用&#xff0c;主要有三部分组成&#xff1a; Prisma Client&#xff1a;自动生成且类型安全的查询构建器&#xff0c;适用于 Nodex.js 和 TS&#xff1b;Prisma Migrate: 迁…

NOVATEK显示技术系列之CEDSCHPI Training差异简介

CEDS的数据封包格式&#xff1a;首先CEDS数据封包包括三个部分&#xff1a; Training Pattern即Phase1Control Data 即 Phase2RGB Data 即Phase3 Power on Timing&#xff1a; 工作原理&#xff1a; Power ON时&#xff0c;TCON会发Training Pattern&#xff0c;当COF接受Tr…

防疫物资管理新篇章:Java+SpringBoot实战

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

python智慧养老系统—养老信息服务平台vue

本论文中实现的智慧养老系统-养老信息服务平台将以管理员和用户的日常信息维护工作为主&#xff0c;主要涵盖了系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;养老资讯管理&#xff0c;养生有道管理&#xff0c;养老机构管理&#xff0c;系统管理等功能&#x…

【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】

文章目录 带同步复位的D触发器Verilog 代码testbench 代码编译及仿真问题小结 带同步复位的D触发器 同步复位 &#xff1a;复位只能发生在在clk信号的上升沿&#xff0c;若clk信号出现问题&#xff0c;则无法进行复位。 Verilog 代码 // timescale ins/1nsmodule flopr (inpu…