• 网络编程数据链路层


    一.基本概念

    1.数据链路层的主要作用是把从网络层接收到的数据分割成可以被物理层传输的帧
    2.功能:数据链路管理(数据链路的建立、维持和释放) ,封装成帧 ,差错控制 ,流量控制(相邻结点的收发双方会由于设备工作速率、缓冲区空间等差异,会出现发送方的发送速率大于接收方的接收速率现象。此时若不进行发送方速率控制就会造成帧丢失) ,寻址 
    3.使用的信道类型:点对点(长距离),广播(短距离)
    4. (1)链路:是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
       (2)数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路(现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。)
    5.帧(数据链路层传输的协议数据单元)
    (1)概念:帧是数据链路层按照具体协议要求由比特流装配而成的。这样,数据是一帧一帧地传送的,当出现差错时,就可以只将有差错的帧重传一次,而避免将全部数据进行重传
    (2)结构:帧的结构设计必须要有帧首和帧尾的标识方法(首部和尾部的一个重要作用就是进行帧定界),以标识帧的开始和结束,还要包括校验信息和帧序号,以便检测出传输中出现的差错和保持帧传输的有序性
    (3)帧同步:为了使接受方能够从收到的比特流中准确区别出一帧的开始和结束
                 ——>方法:字节计数法 ,字符填充法 ,比特填充法 ,违法编码法 

    二.三个基本问题

    (1)封装成帧(在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限)
    (2)透明传输
       1》字符填充法(转义字符esc)
    (3)差错控制
       1》帧检验序列FCS(添加在数据后面的冗余码)
       2》循环冗余检验CRC(* FCS可以用CRC这种方法得出,但CRC不是得到FCS的唯一方法)
       
    三.两种情况下的数据链路层

    1.点到点信道
    (1)ppp协议(世界上使用最多的数据链路层协议,例如打电话接入internet)——————————>广域网
        0》应满足的功能:简单 —— 这是首要的要求。
                       封装成帧 —— 必须规定特殊的字符作为帧定界符。
                       透明性 —— 必须保证数据传输的透明性。
                       多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。
                       多种类型链路 —— 能够在多种类型的链路上运行。
                       差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
                       检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。
                       最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元  MTU 的标准默认值,促进各                                               种实现之间的互操作性。
                       网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此                                                  的网络层地址。
                       数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法
            不需要的功能:纠错 
                                 流量控制 
                                 序号 (只实现无差错传输)
                                 多点线路 
                                 半双工或单工链路 
        1》特性:能够控制数据链路的建立;
                     能够对IP地址进行分配和使用;
                     允许同时采用多种网络层协议;
                     能够配置和测试数据链路;
                     能够进行错误检测;
                     有协商选项,能够对网络层的地址和数据压缩等进行协商。
        2》组成: 一个将 IP 数据报封装到串行链路的方法。
                      链路控制协议 LCP (Link Control Protocol)。
                      网络控制协议 NCP (Network Control Protocol)
        3》帧格式:PPP 帧的首部和尾部分别为 4 个字段和 2 个字段。
                标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
                  地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
                  控制字段 C 通常置为 0x03。
                  PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节
          ——>透明传输(当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。当 PPP 用在异步传输时,就使用一种特殊的字符填充法)
        4》工作状态:PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
          
    2.广播信道(广播指所有的计算机都能收到信号)——————————>局域网
    (1)特点:可以随意的在网络中添加设备
    (2)优点:具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。 
         便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
         提高了系统的可靠性、可用性和残存性
    3.局域网的拓扑:总线型,星型
    4.共享通信媒体:
    (1)静态划分信道
           频分复用
           时分复用
           波分复用
           码分复用 
    (2)动态媒体接入控制(多点接入)
           随机接入
           受控接入 ,如多点线路探询 (polling),或轮询。
    5.数据链路层的两个子层
          1》逻辑链路控制 LLC (Logical Link Control)子层(作用已经不大了)
          2》媒体接入控制 MAC (Medium Access Control)子层:实现一对一通信是通过地址来实现的
    6.适配器
    (1)概念:网络接口板又称为通信适配器 (adapter) 或网络接口卡 NIC (Network Interface Card),或“网卡”
    (2)功能:进行串行/并行转换。
                对数据进行缓存。
                在计算机的操作系统安装设备驱动程序。
                实现以太网协议
    7.CSMA/CD 协议载波监听多点接入 / 碰撞检测  
    (1)多点接入:表示许多计算机以多点接入的方式连接在一根总线上
    (2)载波监听:是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞
    (3)碰撞检测——————>检测到碰撞后
    (4)信号传播时延对载波监听的影响 
    (5)重要特性:使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
                    每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。 
                    这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。 
    (6)争用期:经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞(不能随便延长以太网的网线)
    (7)二进制指数类型退避算法 


    四.以太网(*以太网是一种局域网,而局域网却不一定是以太网,只是由于目前大多数的局域网是以太网,所以一般说局域网,大家都默认为以太网)

    1.概述:两个标准。只要满足 CSMA/CD 的都是以太网
    2.数据链路层的两个子层——————>为了使数据链路层能更好地适应多种局域网标准
    (1)逻辑链路控制 LLC (Logical Link Control)子层(作用已经不大了)
    (2)媒体接入控制 MAC (Medium Access Control)子层:实现一对一通信是通过地址来实现的
    3.局域网的拓扑:总线型,星型
    4.集线器(半双工)———————————>集线器连的以太网的标准10Base-T
    5.信道利用率:发送数据的时间占总时间的比值
            在以太网中定义了参数 α,它是以太网单程端到端时延 t 与帧的发送时间 T0 之比: a=t/T0.要提高以太网的信道利用率,就必须减小 t 与 T0 之比。
            α →0,表示一发生碰撞就立即可以检测出来, 并立即停止发送,因而信道利用率很高。
            α 越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。 
        对以太网参数 α 的要求是:
            当数据率一定时,以太网的连线的长度受到限制,否则  的数值会太大。
            以太网的帧长不能太短,否则 T0 的值会太小,使 α 值太大。 


    6.MAC层

    data包含:(最短46字节,最长1500字节)

    • 数据包的具体内容

    head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

    mac地址:

    head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址

    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

     

    广播:

    有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)

    ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼

    五.扩展的以太网

      网桥——————>接口多了慢慢发展为交换机(存储转发),替代了集线器
      带宽独享,全双工,安全,基于Mac地址转发数据


    六.高速以太网

    1.100BASE-T 以太网 
    2.吉比特以太网
    3.10吉比特以太网 (10GE) 和更快的以太网
    4.使用以太网进行宽带接入

    ---------------------
    作者:Yin_Hongwei
    来源:CSDN
    原文:https://blog.csdn.net/Yin_Hongwei/article/details/80618930
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    百度Hi之CSRF蠕虫攻击
    Portlet之讲解
    try-catch语句讲解
    unset之讲解
    MySQL bin-log 日志清理方式
    php数组array_push()和array_pop()以及array_shift()函数
    php中的func_num_args、func_get_arg与func_get_args函数
    PHP is_callable 方法
    如何实现php异步处理
    Mysql并发时经典常见的死锁原因及解决方法
  • 原文地址:https://www.cnblogs.com/huhuxixi/p/10395933.html
Copyright © 2020-2023  润新知