zoukankan      html  css  js  c++  java
  • 链路层的简介和MTU

    链路层杂谈(凭个人理解瞎说的,欢迎拍砖)

        链路层,说白了就是把网络层的IP数据处理一下,加点东西,放到物理层上去。
        加的东西:源、目的地址和CRC校验值,有的还有类型这个字段,用来区分协议。
        处理的部分:就是数据,就是把IP数据报,用指定的方法打个包;


    打包的方法有以下几种:
        尾部封装:把变长字段都放到最后(CRC之前),主要是为了前面的512整字节的数据整体直接复制到内核中而减小复制次数。
        SLIP协议:串行线路IP,就是用END字符作为分隔符,分割数据报。为了防止干扰,数据报的开头也一定保证有一个END标识符。
        压缩的SLIP:也就是CSLIP,相对于SLIP,只存储修改的控制信息。就是为了防止发送一个字节也要加40个字节头的情况。
        PPP:点对点协议,增加了“协议”这个字段,可以支持更多的协议,更多的业务。

    MTU(最大传输单元)

    定义:各种为网络对数据帧都有一个大小限制,这个值就是MTU。

    一般的我们常用的是以太网和IEEE 802.3的限制分别为1500和1492字节。如下图:

    路径MTU
    从A到B可能经过不同的网络,其中最小的MTU就是路径MTU;
    另外,从A到B,与B到A的寻路结果可能不同,所以它们的路径MTU也有可能不同。

    MTU的吞吐量
    如果线路速率是9600 b/s,一字节等于8bit,加上开始停止两个bit,那么线路的速率就是960B/s,传输一个1024B的分节需要1066ms。
    从一般的经验上看,一个交互应用,在本机有另一个应用发送1024B数据到网络的情况下,它大约要等待一般的时间533ms。这个时间对于交互应用来说体验很不好。
    SLIP用减小MTU值的方法解决:MTU=256,那么传输需要266ms,它的一半就是133ms。但是这样减小了带宽的利用率(因为数据报占用的比例小了)

  • 相关阅读:
    LeetCode偶尔一题 —— 617. 合并二叉树
    《剑指offer》 —— 链表中倒数第k个节点
    《剑指offer》 —— 青蛙跳台阶问题
    《剑指offer》—— 二维数组中的查找
    《剑指offer》—— 替换空格
    《剑指offer》—— 合并两个排序的链表
    《剑指offer》—— 礼物的最大价值
    生成Nuget 源代码包来重用你的Asp.net MVC代码
    Pro ASP.Net Core MVC 6th 第四章
    Pro ASP.NET Core MVC 6th 第三章
  • 原文地址:https://www.cnblogs.com/bugutian/p/5103591.html
Copyright © 2011-2022 走看看