zoukankan      html  css  js  c++  java
  • 计算机通信之数据链路层

    数据链路层在不可靠的物理介质上提供可靠的传输,对应的连接设备:网桥、交换机。
    职责:链路管理,封装成帧,流量控制,差错控制,透明传输,寻址。

    数据链路层概述

    数据链路层为网络层提供服务:
    
        无确认的无连接服务
    
        有确认的无连接服务
    
        有确认的面向连接服务
    
    
    基本服务:
        将一个节点的网络层接收来的数据帧,无比特差错地传输到相邻节点的网络层。
    

    信道类型

    点对点信道:
    	这种信道使用一对一的点对点通信方式,在点对点的专线上通信,不会产生冲突。
    
    广播信道:
    	这种信道使用一对多的广播通信方式。
    	广播信道上连接的主机很多,会产生冲突,因此必须使用共享信道协议来协调这些主机的数据发送。
    

    链路与数据链路

    链路:
    	是一条点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
    
    
    数据链路:
    	除了物理线路外,还必须有通信协议来控制这些数据的传输。
    	若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
    
    
    现今最常用的方法是使用适配器(即网卡)来作为实现这些协议的硬件和软件:
    	一般的适配器都包括了数据链路层和物理层这两层的功能。
    

    数据链路层传输的是帧

    封装成帧的目的:
    	能从物理层收到的比特流中识别各帧的开始和结束。
    

    数据链路层就像一个数字管道,而在这条数字管道上传输的数据单位就是帧。

    数据链路层帧格式

    以太网MAC层的MAC帧格式

    FCS:帧校验

    从层次上看数据的流动

    仅从数据链路层观察帧的流动

    数据链路层解决的基本问题

    封装成帧:
    	将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
    
    透明传输:
    	帧中有首部和尾部,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。
    
    	需要在数据中出现首部尾部相同的内容前面插入转义字符。
    	如果需要传输的内容正好就是转义字符,那么就在转义字符前面再加个转义字符,在接收端进行处理之后可以还原出原始数据。
    
    	这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
    
    差错控制:
    	使用了循环冗余检验(CRC)来检查比特差错。
    

    透明传输

  • 相关阅读:
    WebClient设置Expect: 100-continue
    ActiveX控件注册不起作用的解决办法
    RadioButtonFor值为false.默认选中的问题
    Ueditor插入script标签
    Ueditor上传图片到本地改造到上传图片到七牛云存储
    让网页显示ajax的查询数据
    今天升级win10.vs调试程序各种崩溃
    visual assist x vs2012不智能提示
    几道 javascript 题,你全对了吗?
    Node.js中使用TCP套接字编程
  • 原文地址:https://www.cnblogs.com/loveer/p/11722303.html
Copyright © 2011-2022 走看看