以太网与数据链路层

以太网是数据链路层中最常用的协议之一,用于在局域网(LAN)中传输数据。以下是关于以太网协议的一些重要信息:

1. 物理层和数据链路层:

  • 以太网协议涵盖了 OSI 模型中的物理层和数据链路层。物理层负责在网络媒介(如双绞线、光纤等)上传输数据,而数据链路层则负责将数据分成帧,并在同一物理网络上的设备之间进行通信。

2. 媒介访问控制(MAC)地址:

  • 以太网协议使用 MAC 地址来唯一标识网络中的每个设备。MAC 地址是由 48 位二进制数字组成的,通常表示为十六进制数。前24位表示厂商标识符(OUI),后24位由厂商分配给设备。

3. 以太网帧(Ethernet Frame):

  • 以太网协议使用帧来封装数据以进行传输。一个典型的以太网帧包含以下字段:
    • 目标 MAC 地址:指定数据帧的接收者。
    • 源 MAC 地址:指定数据帧的发送者。
    • 类型/长度字段:指示数据帧中有效载荷的类型或长度。
    • 数据字段:存储传输的实际数据。
    • 帧校验序列(FCS):用于错误检测的冗余校验字段。

4. 媒介访问控制(MAC)协议:

  • 以太网使用 CSMA/CD(载波监听多点接入/碰撞检测)协议来管理网络媒介的访问。这意味着设备在发送数据之前会先监听信道,如果信道空闲,它就可以发送数据;如果检测到碰撞,设备会等待一段随机的时间后重新发送数据。

5. 速率和技术:

  • 以太网支持不同的传输速率,最常见的是 10 Mbps、100 Mbps、1 Gbps、10 Gbps 和最新的 40 Gbps 和 100 Gbps。
  • 以太网技术已经演进,从最初的基于双绞线的以太网(10BASE-T)发展到现在的光纤以太网(光纤以太网)和无线以太网(Wi-Fi)等。

以太网协议作为局域网中最常用的协议之一,为我们提供了可靠和高效的局域网通信手段。通过了解以太网协议的基本原理和特性,我们能够更好地理解局域网中数据的传输过程。

6. ARP 

1. ARP 的作用:
  • ARP 的主要作用是解析 IP 地址与 MAC 地址之间的对应关系。当一个设备知道目标 IP 地址但不知道对应的 MAC 地址时,它会使用 ARP 协议来查询目标的 MAC 地址。
2. ARP 请求与应答:
  • 当一个设备想要解析一个目标 IP 地址的 MAC 地址时,它会向网络中发送一个 ARP 请求广播。这个 ARP 请求中包含了源设备的 IP 地址和 MAC 地址,以及目标 IP 地址。
  • 目标设备收到 ARP 请求后,会检查请求中的目标 IP 地址是否与自己相符。如果是,则会向源设备发送 ARP 应答,包含自己的 MAC 地址。
  • 源设备收到 ARP 应答后,就知道了目标 IP 地址对应的 MAC 地址,可以使用这个 MAC 地址来发送数据包。
3. ARP 缓存:
  • 为了提高效率,设备在收到 ARP 应答后会将 IP 地址与 MAC 地址的对应关系缓存起来。这样,在后续的通信中,如果需要与同一个目标设备通信,就不需要再发送 ARP 请求,而是直接从 ARP 缓存中获取目标设备的 MAC 地址。
4.IP地址与MAC 地址的区别

MAC地址和IP地址在网络中扮演着不同的角色:

MAC地址:
  • 属于: 数据链路层(第二层)。

  • 唯一标识: 每个网络设备在出厂时都会分配一个唯一的48位二进制数字的MAC地址。

  • 用途: 在局域网中唯一标识和定位设备,用于数据链路层的帧转发。

  • 特点: MAC地址是硬编码在网络适配器中的,一般情况下不会更改。

IP地址:
  • 属于: 网络层(第三层)。

  • 唯一标识: 每个网络设备在一个TCP/IP网络中都会分配一个唯一的IP地址,由32位(IPv4)或128位(IPv6)二进制数字组成。

  • 用途: 在网络中唯一标识和定位设备,用于网络层的数据包路由和传输。

  • 特点: IP地址可以动态分配(使用DHCP协议)或静态分配。

7.MTU

MTU(Maximum Transmission Unit)指的是网络通信中能够在单个数据包中传输的最大数据量。MTU的大小通常以字节为单位,它由网络技术和网络设备的限制决定。IP协议对MTU的处理机制主要涉及分片和路径MTU发现。

MTU的重要性:
  • 较大的MTU可以提高网络通信的效率和吞吐量,减少通信中的开销。
  • 网络中的每个设备和链路都有可能限制数据包的最大大小,如果数据包超过了MTU,则需要进行分片,增加了网络负载和延迟。
IP对MTU的处理机制:
  1. 分片(Fragmentation):

    • 当一个数据包的大小超过了沿途任何一个设备或链路的MTU时,IP协议会将这个数据包进行分片,将其分割成更小的片段,以适应网络的MTU。这些分片在传输过程中会独立地发送,并在目的地重新组装成完整的数据包。
  2. 路径MTU发现(Path MTU Discovery):

    • IP协议的路径MTU发现机制用于发现连接路径上的最小MTU,并将其作为通信中使用的MTU大小。发送端通过发送带有“不可分段(Don't Fragment)”标志的数据包到目的地,并在返回的ICMP消息中得到路径MTU的信息,以便确定适当的MTU大小,从而避免分片。
  3. MTU协商:

    • 在建立TCP连接时,通信双方会协商一个最大的TCP数据段大小,这个大小一般取决于两端设备和网络中的最小MTU。这样就可以确保TCP数据段不会超过MTU,从而避免分片的发生。

IP协议通过分片和路径MTU发现机制来处理不同MTU的网络环境,以确保数据包的正确传输,并提高网络通信的效率。MTU的处理机制是网络通信中重要的一环,对于网络的性能和可靠性具有重要意义。

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

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

相关文章

操作系统:经典进程同步问题的高级探讨

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

向开发板上移植ip工具:交叉编译 ip工具

一. 简介 前面几篇文章学习了 CAN设备节点的创建,以及如何使能 CAN驱动。 本文学习向开发板上移植ip工具。 二. 向开发板上移植ip工具:交叉编译 ip工具 注意:在移植 ip 命令的时候必须先对根文件系统做个备份!防止操作失误导…

【深度学习基础(4)】pytorch 里的log_softmax, nll_loss, cross_entropy的关系

一、常用的函数有: log_softmax,nll_loss, cross_entropy 1.log_softmax log_softmax就是log和softmax合并在一起执行,log_softmaxlogsoftmax 2. nll_loss nll_loss函数全称是negative log likelihood loss, 函数表达式为:f(x,class)−x[…

Qt/QML编程之路:QPainter与OpenGL的共用(49)

在Qt编程中,有时会有这样一种场景:用OpenGL显示了一个3维立体图,但是想在右下角画一个2D的表格,里面写上几个字。那么这个时候就会出现QPainter与OpenGL共用或者说2D、3D共用。但是问题是调用了QPainter,drawline之后呢,OPenGL的状态被清空了丢失了,3D不显示了。 在Ope…

【海贼王之强者之路】经典动漫影视改编火爆剧情回合卡牌手游-Win服务端源码视频架设教程-开放多区-GM后台-安卓苹果IOS双端版本!

【海贼王之强者之路】站长推荐经典动漫影视改编火爆剧情回合卡牌手游-2024年3月27日最新打包Win服务端源码视频架设教程-开放多区-GM后台-安卓苹果IOS双端版本!

python学习12:python中的字符串格式化-数字精度控制

python中的字符串格式化-数字精度控制 1.使用辅助符号"m.n"来进行数据的宽度和精度的控制 m,控制宽度,要求是数字(一般是很少使用的),设置的宽度小于数字自身,不生效 n,控制小数点精度,要求是数…

python 开启restful之路

1、环境安装及配置 python & pip python 官网下载 3.8 Python Release Python 3.8.0 | Python.org Centos安装python3详细教程_centos 安装python3-CSDN博客 2、IDE工具 PyCharm Community Edition 2023.3.4 3、Flask 构建简单的 web应用 编写 app.py文件 from flask …

蓝桥杯算法赛(二进制王国)

问题描述 二进制王国是一个非常特殊的国家,因为该国家的居民仅由 0 和 1 组成。 在这个国家中,每个家庭都可以用一个由 0 和 1 组成的字符串 S 来表示,例如 101、 000、 111 等。 现在,国王选了出 N 户家庭参加邻国的庆典…

vue2 el-table指定某些数据不参与排序

vue2 el-table指定某些数据不参与排序 1、需求描述2、配置属性方法3、详细代码如下 1、需求描述 最后一行总计不参与排序 2、配置属性方法 el-table 需要配置 sort-change"soltHandle" 方法 el-table-column 需要配置 sortable"custom"属性3、详细代码如…

Go的数据结构与实现【Set】

介绍 Set是值的集合,可以迭代这些值、添加新值、删除值并清除集合、获取集合大小并检查集合是否包含值,集合中的一个值只存储一次,不能重复。 本文代码地址为go-store 简单实现 这是集合的一个简单实现,还不是并发安全的&#…

Android 性能优化(六):启动优化的详细流程

书接上文,Android 性能优化(一):闪退、卡顿、耗电、APK 从用户体验角度有四个性能优化方向: 追求稳定,防止崩溃追求流畅,防止卡顿追求续航,防止耗损追求精简,防止臃肿 …

机器学习——聚类算法-KMeans聚类

机器学习——聚类算法-KMeans聚类 在机器学习中,聚类是一种无监督学习方法,用于将数据集中的样本划分为若干个簇,使得同一簇内的样本相似度高,不同簇之间的样本相似度低。KMeans聚类是一种常用的聚类算法之一,本文将介…