zoukankan      html  css  js  c++  java
  • 计算机网络--数据链路层

      数据链路层:研究怎么从一个主机传送到另一个主机(在一个局域网内)
      •  使用点对点信道
        •  桢--点对点信道数据链路层的协议数据单元
        •  IP数据报(PDU)--网络层的协议数据单元网络层
        •  传送方式:见下图
        •  三个基本问题
          •   封装成桢:在一段数据前后添加首部和尾部7
            •   首部和尾部作用就是:帧定界
            •   最大传送单元MTU--帧的数据部分小于这个值
            •   帧定界符:SOH和EOT(他们是二进制代码:分别为1和4)。(这个东西在传输出现差错的时候作用明显,传送不完全的时候,我们可以通过帧定界符判断这个帧是否完全。
          •   透明传输
            •   传送的帧--文本文件;
              •   这个时候传输不会出现差错,随便输入什么东西都能传输过去:这叫透明传输
            •   传送的帧:二进制文件
              •   二进制文件可能和帧定界符冲突,导致找不到帧的首部尾部,出现传输出错:不透明传输
              • 解决办法:
          •   差错检测
            •   循环冗余检验:添加冗余码,冗余码称作帧检测序列FCS
            •   可靠传输:无传输差错的传输。传输差错分类:①:基本的比特差错。②:收到的帧出现了帧丢失,帧重复,帧失序。
              在数据链路层里面使用CRC循环检验法能够实现无比特差错的传输,但是不是无传输差错,还不是可靠传输。
      •  点对点协议PPP
        •   特点
          •   需求:
            ①简单:每接收到一个帧,就进行CRC检验。检验正确,收下这个帧,反之,丢弃。
            ②封装成帧。③透明性:保证数据传输的透明性。④多种网际协议:支持多种网际协议(IP,IPX)

          •   组成:
            ①一个将IP数据报封装到串行链路的方法。②链路控制协议LCP.③网络控制协议。
      •  使用广播信道的数据链路层
        •   局域网
          •   为了使数据链路层更好的适应多种局域网标准,把它拆分成两个部分:
            ①逻辑链路控制LLC:它与传输媒体无关
            ②媒体接入控制MAC:与接入到媒体有关的内容都放在里面。
        •   CSMA/CD
          •   广播通信方式:当一台计算机发出信号时,总线上的所有计算机都能检测到这个数据。
          •   以太网为了使通信方便,采取了两个措施:


          • 载波监听:这就是相当于信道检测,不管在发送前还是发送中,每个站都必须不停的检测信道。发送前检测是为了获得发送权,发送中检测是为了避免发生碰撞,这个就是碰撞检测。
          • 碰撞检测:边发送边检测。一旦发现总线上出现了碰撞,就立即停止发送。所以在使用CSMA/CD协议时,一个站不可能同时进行发送和接收。所以使用这个协议的以太网不可能进行全双工通信,进行的是半双工通信。
          • 协议要点:
      •   扩展的以太网
        •  在物理层扩展以太网
          •   扩展主机和集线器之间距离的一种方法是使用光纤。

        •   在数据链路层扩展以太网
          •   通过网桥扩展。
            ①:网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发这个帧,而是先检查这个帧额目的地址,然后在确定转发到哪一个接口或者丢弃。
            ②:网桥是依靠转发表来转发帧的,网桥有两个接口,分成了不同的两个网段,如果是同一个网段的转发测不需要网桥工作,网桥接收到了之后直接丢弃,不同网段的转发网桥则会根据mac地址进行转发。
          • 透明网桥:接入局域网不需要人工配置转发表就能工作。
            透明网桥刚刚接入以太网的时候其实转发表是空的,他需要通过自学习来建立新的转发表。过程如下:

  • 相关阅读:
    利用 PHP 导出 Git 某个分支下,新增或修改过的文件
    [翻译] 10 个实用的 Git 高级命令
    Django web project
    install virtualenv
    js原型继承
    HTML 学习杂记
    IDEA 文件列表隐藏某后缀文件
    coocsCreator杂记
    mac install brew
    c编程:输入一个数字n,则n代表n行,每行输入2个数字a,b计算每行的a+b问题。
  • 原文地址:https://www.cnblogs.com/Kobe10/p/5632014.html
Copyright © 2011-2022 走看看