【网络协议】数据链路层[通俗易懂]

【网络协议】数据链路层

大家好,又见面了,我是全栈君。

    数据链路层主要有三个目的:

  • 为IP模块发送和接受IP数据报。
  • 为ARP模块发送ARP请求和接受ARP应答;
  • 为RARP发送RARP请求和RARP应答。
    这里的ARP协议主要用来将32bit的IP地址解析为相应48bit(以太网中)的MAC地址(硬件地址)。而RARP协议则是将硬件地址解析为IP地址,这两个协议位于网络层,和IP数据报一样,都具有各自的以太网数据帧类型(即传入到以太网中要加上相应的MAC帧)。

局域网中的ARP攻击是通过伪造IP地址和MAC地址实现ARP欺骗。可以在网络中产生大量的ARP通信量,使网络堵塞。

    TCP/IP支持多种不同的数据链路协议,这取决于网络所使用的硬件,如以太网、令牌环网、FDDI、RS-232串行线路等,当今TCP/IP採用的主要局网技术是以太网。

    最大传输单元MTU:
    数据链路层中的网络对数据帧的长度都有一个限制,不同网络的MTU值不同。经常使用的以太网为1500个字节。一些其它网络的MTU字节值例如以下表:
【网络协议】数据链路层[通俗易懂]
    MTU主要是为了限制一次传输的最大IP数据报的值,假设IP层有一个数据报要传。并且数据产度比数据链路层的MTU大。则就须要将IP数据报进行分片,使每一片都小于MTU。

    路径MYU:
    当在同一网络上的两台主机互相进行通信时,该网络的MTU是很重要的,但假设两台主机之间的通信要经过多个网络。而每一个网络的链路层可能有不同的MTU,这时。要重点考虑的是两台通信主机路径中各网络的最小MTU,称它为路径MTU。
    两台主机之间的路径MTU把有一定是个常数,它取决于当时所选择的路由,并且选路不一定是对称的,即从A到B经过的路由和从B到A经过的路由不同。因此路径MTU在两个方向上不一定是一致的。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116491.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 1062 场景_解决Mysql 主从或主主报1062错误[通俗易懂]

    mysql 1062 场景_解决Mysql 主从或主主报1062错误[通俗易懂]1062错误——主键冲突,出现这种情况就是从库出现插入操作,主库又插入相同的数据,iothread没问题,sqlthread出错处理此种错误一般有两种思路:1、直接跳过错误执行语句2、找到错误执行语句,修复主库2数据https://www.cndba.cn/leo1990/article/2957https://www.cndba.cn/leo1990/article/2957https://ww…

    2022年9月25日
    3
  • linux中的sleep函数和delay函数

    linux中的sleep函数和delay函数对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令,就可以完成多少个机器周期时长的延时。其实在linux中的delay函数,道理是一样的,都是通过cpu执行空指令来达到延时的目的,但是对于操作系统这种多线程进行的方式来说,在需要延时的时候,可以通过将进程挂起的方式来实现延时。这就是sleep函数。sleep和delay的区别最明显也最重要的区别就是,在执行delay的时候,是执行

    2022年5月18日
    39
  • Java中堆和栈(java栈和堆)

    Java中堆和栈(java栈和堆)转:https://www.cnblogs.com/ibelieve618/p/6380328.htmlJAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了。以下是这几天栈和堆的学习记录和心得。得些记录下来。以后有学到新的,会慢慢补充。…

    2022年4月18日
    48
  • Yum源配置_linux配置离线yum源

    Yum源配置_linux配置离线yum源使用说明Euler的镜像地址为:https://mirrors.huaweicloud.com/euler/1、在/etc/yum.repos.d/目录下,创建文件EulerOS.repo,根据EulerOS版本及系统架构选择配置内容。EulerOS版本及系统架构:[base]name=EulerOS-2.0SP8basebaseurl=http://mirrors….

    2022年8月12日
    9
  • python中unittest框架_unittest框架原理

    python中unittest框架_unittest框架原理unittest简介参考:https://urlify.cn/e6rAr2为什么要使用unittest在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行。使用测试框架可以互不影响的用例执行及更灵活的执行控制。unittest特点 •python自带的单元测试框架,无需安装; •用例执行互不干扰; •提供不同范围的setUp(测试准备)和t..

    2022年10月10日
    2
  • pycharm所有文件中查找_python查找文件

    pycharm所有文件中查找_python查找文件PyCharm的FindinPath功能提供了全局查找功能,快捷键为Ctrl+Shift+F。Find则是在当前文件查找,快捷键为Ctrl+F。这两个个功能非常实用。FindinPath的使用:按快捷键Ctrl+Shift+F或从从菜单Edit-》Find-》FindinPath进入全局查找界面。如下图所示,在Texttofind输入要查找的内容,可以说某

    2022年8月25日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号