计算机网络读书笔记——数据链路层(2)

news/2024/6/29 11:36:57 标签: 读书笔记, 计算机, 数据, 网络, 通信

点对点协议PPP

早期通信线路质量较差,在数据链路层使用可靠传输协议曾经是种好方法,于是早期主要流行的是能实现可靠传输的高级数据链路控制HDLC(High-level Data Link Control),但随着通信线路质量的提升,对于点对点链路,现在多采用点对点协议PPP(Point-to-Point Protocol)
点对点<a class=通信" title="" />

PPP协议应满足的要求:

  1. 简单
  2. 封装成帧
  3. 透明传输
  4. 支持多种网络层协议
  5. 支持多种类型链路
  6. 差错检测
  7. 检测链路的连接状态
  8. 设置最大传送单元MTU
  9. 网络层地址协商
  10. 数据压缩协商

其中这种数据链路层协议1.简单,就是说接收方每接收一个帧,就进行CRC检验。如果CRC检验正确,就收下这个帧;反之则丢弃这个帧,其他什么也不做。4.支持多种网络层协议是指PPP协议必须同时支持在链路层所连接的局域网或路由器上运行的各种网络层协议。8.设置最大传送单元MTU规定MTU的默认值至少是1500字节,在 RFC1661中,MTU叫做最大接收单元MRU,如果高层协议发送的分组过长并且超过MTU的数值,PPP就要丢弃这样的帧,并返回差错,需要强调的是MTU指的是数据部分长度,不是帧长度。9.网络层地址协商是指PPP协议必须提供一种机制使通信的两个网络层的实体能够通过协商知道或能够配置彼此的网络层地址,这对拨号连接的链路特别重要,因为仅仅在链路层建立了连接而不知道对方网络层地址时,还不能够保证网络层能够传送分组。

PPP协议不需要的功能

  1. 纠错
  2. 流量控制
  3. 序号
  4. 多点线路
  5. 半双工或单工链路

1.纠错2.流量控制均由上层的TCP/IP协议族中TCP协议负责,TCP负责可靠传输,具有纠错的能力,而数据链路层的PPP协议只进行检错,这就是说PPP协议是不可靠传输协议,并且TCP进行流量控制,所以PPP协议不需要再重复进行流量控制。3.序号,PPP不是可靠传输协议,因此不需要使用帧的序号。4.多点线路即一个主站轮流和链路上的多个从站进行通信,PPP协议只支持点对点链路通信,不支持多点线路。5.半双工或单工链路对PPP协议来说不需要,PPP协议只支持全双工链路。

PPP协议的组成

PPP协议组成
1. 一个将IP数据报封装到串行链路的方法,高级数据链路控制协议HDLC(High Data Link Control)
2. 一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)
3. 一套网络控制协议NCP(Network Control Protocol)


通信的同步传输和异步传输">串行通信的同步传输和异步传输

(1)同步传输

同步传输

  1. 同步传输数据帧为单位传输数据(注意每个数据帧的大小是不固定的!)。
  2. 在短距离的高速传输中,时钟信号可由专门的时钟线路传输。双方按相同的时钟信号进行收发。
  3. 计算机网络采取的同步方式,常将时钟信号(前同步码)植入数据信号帧中,以实现接收端与发送端的时钟同步。

(2)异步传输

异步传输

  1. 异步传输以字符为单位传输数据(注意:传输单位是固定的,如8比特为一个单位)。
  2. 异步传输,接收方是不知道数据什么时候会到达。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据己经到达。在传输结束时,一个停止位表达该次传输的终止。当接收方收到停止位后,就一直处于空闲位(如高电平1),如果这时出现一个起始位(如高电平0)就表示应该开始接收数据。发送完一个字符,还会继续发送一个停止位,通知字符发送完毕并把信号切换为1,让接收方又进入等待的空闲状态。
  3. 发送方需要将发送的帧拆分成以字符为单位进行传输,每个字符前加一个起始位,后有一位停止位,字符之间的时间间隔就是空闲位(大小不固定)。接收方收到陆续到来的字符,组装成一个完整的帧。

(3)同步传输和异步传输的区别

  1. 异步传输是面向字符的传输,传输单位为字符。而同步传输是面向比特的传输,传输单位是帧。
  2. 异步传输通过字符的开始码和停止码抓住再同步的机会,而同步传输则是从前同步码中抽取同步信息。
  3. 异步传输每个字符中要多传递2比特信息,总传输负载量增加不小。其传输效率比同步传输效率低。异步传输对于那些数据传输量的高速设备来说,增加了不少传输量。因此,适合用于数据传输量较小的低速设备。

封装成帧

PPP协议的帧格式

PPP协议帧格式
首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),规定0x7E(二进制01111110,中间有6个1)。标志字段表示一个帧的开始或结束,因此标志字段就是PPP帧的定界符。 连续两帧之间只需要用一个标志字段,如果出现连续两个标志字段,就表示这是一个空帧。
地址字段 A 规定为0xFF(二进制11111111)
控制字段 C 规定为0x03(二进制00000011)

最初曾考虑以后再对A、C字段的值进行其他定义,但至今没有给出,可见这两个字段实际上并没有携带PPP帧的信息。

PPP首部第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报,若为0xC021,则信息字段是PPP链路控制协议LCP的数据,若为0x8021,则表示网络层的控制数据


透明传输

(1)当 PPP 用在异步传输时,使用字节(字符)填充
PPP字节填充

  1. 在异步传输的链路上,数据传输以字节为单位,PPP帧的转义字符定为0x7D,并使用字节填充。
  2. 把信息字段(即除开始和结束定界符外)中出现的每一个0x7E字节转变为2字节的(0x7D,0x5E)
  3. 若信息字段中出现一个0x7D的字节(即出现了和转入字符一样的比特组合),则把0x7D转变为2字节序列(0x7D,0x5D)

(2)当 PPP 用在同步传输时,使用零比特填充
零比特填充

  1. 在同步传输的链路上,数据传输以帧为单位,PPP协议采用零比特填充的方法来实现透明传输。(注意PPP协议帧定界符为0x7E,二进制为01111110,中间有连续的6个1)。
  2. 发送端先扫描整个信息字段(通常由硬件实现),只要发现有连接的5个1,则立即填入一个0。从而保证在信息字段中不会出现帧定界符(6个连续的1)。
  3. 接收端收到数据后,从确定一个帧的开始,接着扫描比特流,如果发现连续的5个1,就把其后的0删除,还原成原来的信息比特流。

PPP 协议的工作状态

  • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

  • PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。

  • 这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。

  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
    PPP协议的状态图

参考资料:
https://my.oschina.net/xinxingegeya/blog/297774
http://www.cnblogs.com/5iedu/p/6940007.html
http://www.cnblogs.com/wuchaodzxx/p/6553415.html
http://blog.csdn.net/cainv89/article/details/50614218


http://www.niftyadmin.cn/n/1337619.html

相关文章

计算机网络读书笔记——数据链路层(3)

局域网 广域网是使用点到点信道的数据链路层&#xff0c;使用的是PPP协议 局域网是使用广播信道的数据链路层&#xff08;所以需要在广播信道中实现一对一传输&#xff09; 局域网的特点 网络为一个单位所拥有&#xff0c;且地理范围和站点数目均有限。 局域网具有如下的一…

计算机网络读书笔记——数据链路层(4)

以太网的两个标准 DIX Ethernet V2是世界上第一个局域网产品&#xff08;以太网&#xff09;的规约。IEEE的802.3标准。 DIX Ethernet V2标准与IEEE的802.3标准只有很小的差别&#xff0c;因此可以将802.3局域网简称为“以太网”&#xff0c;但严格来说&#xff0c;“以太网”…

计算机网络读书笔记——数据链路层(5)

扩展的以太网 在物理层扩展以太网 以太网主机的距离不能太远&#xff0c;否则主机发送的信号经过铜线的传输就会衰减到使CSMA/CD协议无法正常工作。在过去广泛使用粗缆或细缆以太网时&#xff0c;常使用工作在物理层的转发器来扩展以太网的地理覆盖范围。那时两个网段可用一个…

线性表的线性存储和链式存储

顺序存储结构 线性表的顺序存储结构&#xff0c;指的是用一段地址连续的存储单元依次存储线性表的数据元素。 在C语言中可以用一维数组或连续堆空间来实现顺序存储结构 1. 存储空间的起始位置&#xff1a;数组node 2. 线性表的最大容量&#xff1a;数组长度MAXSIZE&#xff…

void空类型指针仅传地址无指向操作

#include <stdio.h> #include <stdlib.h> int main() {//void * 指针类型:指向空类型或不指向确定的类型数据的指针。void *p1NULL;int a3;p1&a;//p1得到a的纯地址&#xff0c;但并不指向a&#xff0c;不能通过*p1操作a//printf("p1%d,*p1%d\n"…

vim查找替换

&#xff1a;n&#xff0c;$s/SeqList/LinkList/ 替换第 n 行开始到最后一行中每一行的第一个SeqList为LinkList &#xff1a;n&#xff0c;$s/SeqList/LinkList/g 替换第 n 行开始到最后一行中每一行所有SeqList为LinkList &#xff08;n 为数字&#xff0c;若 n 为 .&#…

unp源码文件编译安装

下载unp中的源代码: 点击下载 切换到解压后的目录 unpv13e&#xff0c;先查看下 README&#xff0c;依次执行&#xff1a; ./configurecd lib makecd ../libfree make 此处报错&#xff1a; inet_ntop.c:56:1: error: conflicting types for ‘inet_ntop’ inet_ntop(af, …

1.计算机硬件组成

冯诺依曼体制 引进存储程序概念计算机以运算器为核心的集中式控制指令由操作码和地址码两部分组成&#xff0c;指令在计算机中是顺序执行的&#xff0c;并受PC的统一控制。提出计算机系统应由&#xff1a;运算器、控制器、存储器、输入设备和输出设备五大部分组成。 这些理论…