【PPP协议应该满足的要求】
简单、封装成帧、透明性、多种网络层协议、多种类型链路、差错检测、检测连接状态、最大传送单元、网络层地址协商、数据压缩协商。
PPP协议不需要满足的要求:
纠错、流量控制、序号、多点线路、单双工或单工链路。
(一)PPP协议的组成
(1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大接收单元MRU (Maximum Receive Unit)的限制。MRU的默认值是1500字节
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP (link Control Protocol)。通信的双方可协商一些选项。在[RFC 1661]中定义了11种类型的LCP分组
(3)一套网络控制协议NCP (Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet以及AppleTalk等。
(二)PPP协议帧格式
各字段意义
标志(Flag):0111 1110(0x7E)
地址:为固定值 “FF”(11111111),点-点协议,地址无意义
控制:为固定值“03”(00000011),无编号
数据:长度可变,不能超过1500字节
协议字段:
0021:信息字段内容为IP数据报
C021:信息字段内容为PPP链路控制数据
8021:信息字段内容为网络控制数据
(三)字节填充
(1)将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
(2)若信息字段中出现一个 0x7D 的字节, 2 字节序列(0x7D, 0x5D)。
(3)若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
(四)零比特填充
(1)发送端在 5 个连 1 之后填入 0 比特再发送出去
(2)在接收端将 5 个连 1 之后的 0 比特删除,恢复原样
【C语言文件知识复习备考思路】
一、文件的打开
fopen("文件名","操作方式");
参数说明:"文件名"是指要打开的文件,"操作方式"是以何种方式打开,常用的有:"r"只读,"w"只写,"a"追加,"r+"读写,"w+"读写,这些都是对文本文件进行操作,如果需要对二进制文件进行读写操作,则需要带上b,如"rb"。
基本功能:以指定的操作方式打开文件名所指文件,如果打开成功,返回文件的地址,否则返回NULL,所以需要一个文件类型的指针保存fopen()函数的返回值。
【例如】
FILE *fp;
if((fp=fopen("abc.txt","r"))==NULL)
{
printf("can not open this file!n");
exit(0);
}
二、文件的关闭
fclose(fp);
参数说明:fp指向文件的指针。
基本功能:关闭文件指针fp所指向的文件,如果关闭成功,返回0,否则返回非0。
当一个文件使用完毕后,就应该关闭它。关闭文件实际上就是关闭与该文件相关的数据流,并将缓冲区中的数据输出到磁盘文件中,然后释放文件指针。一定要记得,打开文件与关闭文件是一对一操作。



