• 数据链路层--以太网


    代表协议:以太网.

    以太网

    以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等;例如 以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等;以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

    1. 以太网帧格式

    在这里插入图片描述

    目的地址和源地址, 叫做mac地址(物理地址), 长度是6字节. 也是用来区分不同的主机.

    以太网的载荷可以有多种形式, 这多种形式就可以用类型来进行标识.

    以类型0800 来说, 一个以太网数据帧的载荷部分最大长度1500, 这是受限于硬件的. 数据链路层和硬件是密切相关的, 对于以太网来说, 对应的硬件设备只能支持这么大. 换成其他的硬件, 也就需要搭配其他的数据链路层协议, 所对应的最大长度会不一样, 把这个最大长度称为MTU.

    1500字节其实是一个很小的数值, 就比1kb多一点, 一个稍微大一点的传输层/ 应用层数据报都会在数据链路层被切分成多个. IP数据报的分包组包就是为了MTU搞出来的. IP数据报一般分包不是因为自身长度达到了64kb,而是因为MTU.

    下面两个类型, 是为了辅助实现局域网转发的机制.

    那么既然已经有了ip地址, 为什么还需要mac地址呢?

    因为IP地址和mac地址几乎是在同一时期内被设计出来, 于是IP地址就负责网络层的转发, mac地址就负责数据链路层的转发了.

    网络层转发是负责整体的转发过程

    数据链路层负责的是局部(相邻设备)转发过程, 选择具体的传输方式, 是通过光纤传输, 还是wifi传输

    举个例子, 加入我要从青岛去往上海

    规划路线(网络层 路由选择):

    1. 青岛 -> 南京 -> 上海
    2. 青岛 -> 南京 -> 苏州 -> 上海
    3. 青岛 -> 上海

    具体的转发过程(数据链路层) 假如我要选择第二条路线

    1. 青岛 -> 南京 坐飞机
    2. 南京 -> 苏州 坐高铁
    3. 苏州 -> 上海 坐大巴

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    2. mac地址与IP地址

    虽然mac地址和ip地址都能表示当前的主机.但是她们两个有很多不同.

    mac地址是6个字节, 表示的范围比ipv4要大很多, 所以mac地址在网卡出场的时候写死了, 可以保证每个设备的网卡都有独立的mac地址.

    因此mac地址也就成了互联网上一种身份标识的方式.

  • 相关阅读:
    Python语言进阶学习
    css实现椭圆绕圈动画
    【Python测试开发】:切换窗口和表单
    【软件测试】性能测试工具Loadrunner
    java81-静态代码块
    关于ElasticSearch日期格式不一致的异常,可以这么解决
    redis
    uni-app:实现时钟自走(动态时钟效果)
    linux相关指令
    用 Java 的 IO 流进行读写文件操作
  • 原文地址:https://blog.csdn.net/m0_73594607/article/details/133218243