计算机网络在当今的生活中变得越来越重要所以我们需要学习网络知识。 网络通信分为学习研究的便利性,物理层、数据链路层、网络层、传输层、APP传输层5层。
在数据链路层主要负责数据传输,虽然有很多协议,但使用最多的是局域网中的以太网协议和广域网中的PPP协议、HDLC协议。
Etherne II首部8目的地地址6源地址6以太网类型2有效载荷46-1500帧检查序列4首部: 8字节,前七个0、1交替字节(10101010 )用于同步接收台报头提供接收机同步和帧定界符服务。 目标: 6字节、单播、多播或广播。 单播地址也称为个人、物理、硬件或MAC地址。 广播地址全部为1,0xffffff。 源地址: 6字节。 指示发送节点的单播地址。 以太网类型:表示以太网帧内包含的上层协议的2字节。 即,帧格式的协议标识符。 对于IP消息,此字段的值为0x0800。 对于ARP信息,以太网类型字段的值为0x0806。 有效载荷:由上层协议的协议数据单元PDU构成。 可以发送的最大有效载荷为1500字节。 由于以太网冲突检测特性,有效载荷至少为46字节。 如果上层协议的数据单元长度小于46字节,则需要补充到46字节。 帧检查序列: 4字节。 验证位完整性。
HDLC帧格式
帧信息的分段
SDLC/HDLC的一帧信息包含以下字段,所有字段从最低有效位开始传输:
1. SDLC/HDLC标志字符
SDLC/HDLC协议要求所有信息传输都必须以一个标志字符开始,并以同一字符结束。 此标志字符为01111110,称为标志字段(f )。 从开始和结束标志组成一个完整的信息单元,称为“一帧”(Frame )。 所有信息都作为帧传输,标志字符提供每个帧的边界。 接收方可以通过搜索“01111110”来检测到帧的开始和结束,并建立帧同步。
PPP协议有三个组成部分。e-height:26px;”>(1)一个将IP数据报封到串行链路的方法。PPP既支持异步链路(无奇偶校验的8比特数据),也支持面向比特的同步链路。
(2)一个用来建立、配置和测试数据链路的链路控制协议LCP(Link Control Protocol)。通信的双方可协商一些选项。在[RFC 1661]中定义了11种类型的LCP分组。
(3)一套网络控制协议NCP(Network Control Protocol),支持不同的网络层协议,如IP、OSI的网络层、DECnet、AppleTalk等。
二、PPP帧格式
PPP帧格式和HDLC帧格式相似,如图1所示。二者主要区别:PPP是面向字符的,而HDLC是面向位的。
图1 PPP帧格式
可以看出,PPP帧的前3个字段和最后两个字段与HDLC的格式是一样的。标志字段F为0x7E(0x表示7E),但地址字段A和控制字段C都是固定不变的,分别为0xFF、0x03。PPP协议不是面向比特的,因而所有的PPP帧长度都是整数个字节。
与HDLC不同的是多了2个字节的协议字段。协议字段不同,后面的信息字段类型就不同。如:
0x0021——信息字段是IP数据报
0xC021——信息字段是链路控制数据LCP
0x8021——信息字段是网络控制数据NCP
0xC023——信息字段是安全性认证PAP
0xC025——信息字段是LQR
0xC223——信息字段是安全性认证CHAP
当信息字段中出现和标志字段一样的比特0x7E时,就必须采取一些措施。因PPP协议是面向字符型的,所以它不能采用HDLC所使用的零比特插入法,而是使用一种特殊的字符填充。具体的做法是将信息字段中出现的每一个0x7E字节转变成2字节序列(0x7D,0x5E)。若信息字段中出现一个0x7D的字节,则将其转变成2字节序列(0x7D,0x5D)。若信息字段中出现ASCII码的控制字符,则在该字符前面要加入一个0x7D字节。这样做的目的是防止这些表面上的ASCII码控制字符被错误地解释为控制字符。
三、PPP链路工作过程
当用户拨号接入ISP时,路由器的调制解调器对拨号做出应答,并建立一条物理连接。这时PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。这些分组及其响应选择了将要使用的一些PPP参数,接着就进行网络层培植,NCP给新接入的PC机分配一个临时的IP地址,这样PC机就成为Internet上一个主机了。
当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着LCP释放数据链路层连接,最后释放的是物理层的连接。
上述过程可用图2来描述。
图2 PPP协议过程状态图
当线路处于静止状态时,并不存在物理层的连接。当检测到调制解调器的载波信号,并建立物理层连接后,线路就进入建立状态,这时LCP开始协商一些选项。协商结束后就进入鉴别状态。若通信的双方鉴别身份成功,则进入网络状态。NCP配置网络蹭,分配IP地址,然后就进入可进行数据通信的打开状态。数据传输结束后就转到终止状态。载波停止后则回到静止状态。