2-链路层

链路

  • 链路是一个抽象概念,用于连接节点与数据传输.缓存

链路类型

点对点链路

  • 半双工,同一时刻仅能负责数据从一端传输到另外一端网络

  • 全双工,同一时刻两端均可以同时传输数据,即节点能够同时充当发送者与接收者编码

多路访问链路

  • 将多个节点链接在一块儿spa

网络适配器

  • 即网卡,是硬件,用于实现链路层协议,具体功能有:code

  • 发送数据: 负责将上层协议发来的数据包封装成帧(根据节点所处网络链路层协议的不一样,帧的格式也不相同),再将封装后的数据帧编码,成电磁波信号而后传递给物理层(如将0编码为低电平,1编码为高电平),由物理层进行信号的传输.进程

  • 接受数据: 负责从链路上接受电磁波信号,而后解码,存储,检测接受数据是否发生错误,最后传递给主机资源

  • 实现多路复用: 容许多个主机依照公平的原则共享一条链路同步

多路复用

  • 就像在内核中,多个进程共享资源,但每个进程都认为本身是系统中惟一一个,这是内核在协调多个进程table

  • 在多路访问链路中,多个节点共享一条链路,在网络适配器(和'链路层协议')的工做下,每一个节点都认为本身是链路上惟一一个节点class

  • 多路复用:多个主机经过一条链路发送消息,或者一台主机上多个进程经过一个主机发送消息

多路分解

  • 未来自一条链路上的消息分解而后分别发送给不一样主机,或者将一个主机上的多个消息分解发送给多个进程.

多路分解密钥

  • 用于标识链路上的多个主机,或者一个主机内的多个进程

多种链路层协议

  • 组帧,让接收方能够判断帧的开始与结束。以接收方的观点来看,她收到的都只是010101。。。这样的比特序列。组帧技术可让接收方知道帧从什么时候开始,什么时候结束。好比能够在发送帧以前发送'1111110'比特序列,这样对于接收方来讲他在连续接受6个1,以及一个0以后他就能够判断接下来就是帧的正体部分了。

  • MTU,最大传输单元,即每个链路层协议容许在数据帧中数据的最大长度.数据帧的长度=数据的长度+其余帧字段的长度.

面向字节

  • 把每一帧看做一个字节集,而不是比特集。也即在面向字节的链路层协议中,单个比特是没有意义的。

BISYNC帧格式


  • SYN字符,特定的同步字符,用于标识帧的开始

  • SOH字符,首部开始符,接收方据此判断一个帧首部的开始

  • STX,正文开始符;接收方据此判断帧首部的结束,以及正文的开始

  • ETX,正文结束符;接收方据此判断帧正文的结束,CRC码的开始

转义

  • 帧体,是来自上层应用,因此不能对其中的内容作出任何假设。好比假设帧体中不存在ETX字符。

  • 若帧体中出现ETX字符,就要将设置一个标志,代表该字符只是正文内容,并无正文结束符的语义。

  • 转义,经过在ETX以前放置DLE字符,告诉接收方接下来的ETX只是普通的正文字符,并无正文结束符的语义。

    • 一样也应该在正文中出现的DLE字符以前也放置一个DLE字符,让接收方明确接下来的DLE也只是一个普通字符。

PPP帧格式


语义
标志
值为0x7E;标志帧的开始
地址,控制
值是固定的,语义不明。。。
协议
数据帧应该交付在上层协议,如:IP=0x0021;LCP=0xC021。。
有效载荷
<=1500字节,
校验和

标志
值为0x7E,标志帧的结束

面向比特

  • 把帧看做比特集,帧中的每个比特都有意义。

HDLC协议

  • HDLC,高级数据链路控制协议;由'SDLC,同步数据链路控制协议'标准而来

  • 开始序列,结束序列:值为01111110;标识着帧的开始与结束。

转义

  • 帧体,来自上层应用,若其中出现了01111110序列,须要转义。

  • 转义:任意时刻从消息体中连续发出5个1以后,发送方会在发送下一比特以前发送一个0;(特殊序列01111110除外)

  • 接收方行为:

接收方在接收到5个1以后...
if(下一比特 == 1){
    接受,缓存...
    if(下一比特 == 1) 帧必定是出错了,丢弃
    else 结束到结束序列,即帧已经结束了.
}else {    /* 下一比特为0 */
    该比特为填充比特,不接受
    设置一个标志位,代表接下来接受的'01111110'序列只是一个普通的序列,并无'代表帧结束'的语义
}

  • 链路控制协议,用来进行链路的创建,拆除。。按照个人理解,应该是:

    • 即两个节点须要数据传输时,首先要创建链路,在连接链路时须要用到LCP协议.

    • 两个节点之间发送LCP包,在LCP包中包含了一些控制信息,该控制信息决定了PPP协议的帧格式.因此说字段长度是能够协商的.

    • LCP包又会首先封装成PPP帧来发送,此时: PPP帧格式的协议字段为0XC021(即代表该帧是一个LCP包). 有效载荷中存放着控制信息.

相关文章
相关标签/搜索