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。但是这样减小了带宽的利用率(因为数据报占用的比例小了)

  • 相关阅读:
    java.lang.OutOfMemoryError: Java heap space解决办法
    android网络图片加载缓存,避免重复加载。
    Android控制软键盘拉起
    mysql create database 指定utf-8编码
    仿黑客帝国文字雨效果
    C++循环去掉文件的后缀名
    使用python读取多重文件夹下的word(doc、docx)文件,并处理存储到excel(xls、xlsx)文件
    Python操作文件夹
    (转载)Python:列表作为参数
    595. Big Countries (Easy)
  • 原文地址:https://www.cnblogs.com/bugutian/p/5103591.html
Copyright © 2011-2022 走看看