zoukankan      html  css  js  c++  java
  • 『TCP/IP详解——卷一:协议』读书笔记——05


    2013-08-19 22:35:57


    • 2.6 PPP:点对点协议

    PPP点对点协议修改了SLIP协议中的所有缺陷:

    1. 在串联链路上封装IP数据报的方法。PPP即支持数据为8位&无奇偶检验的异步模式(大多数计算机上普遍存在的串行接口)、还支持面向比特的同步链接
    2. 建立、配置及测试数据链路的链路控制协议(LCP:Link Contrl Protocol)。它允许通讯双方进行协商,以确定不同的选项  
    3. 针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)体系。

    关于SLIP和PPP协议的区别和联系,请看http://network.51cto.com/art/201009/223824.htm

    抄一些下来~

    1、PPP可以进行IP地址的协商,而SLIP需要静态指定;
    2、PPP的LCP控制过程可以进行很多选项的协商,相应的增加了可靠性和管理性,但也带来了复杂性的问题;
    3、PPP可以支持多个网络层协议,而SLIP只支持IP;
    4、PPP的认证过程可以支持较为强大的CHAP(比如MD5)方式,而SLIP只能适用明文密码;
    5、PPP可以进行练路完整性验证;
    6、二者都支持一些扩充技术比如压缩TCP;

     这些优点的代价是每一帧的首部增加三个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。

     关于格式的说明:

    首部 每一帧都以标志字符0x7e开始和结束。紧接着是一个地址字节,值始终是0xff。然后是值为0x03的控制字节
    协议字段 类似与以太网中类型字段的功能。
    0x0021 表示信息字段是一个IP数据报
    0xc021 表示信息字段是链路控制数据
    0x8021 表示信息字段是网络控制数据
    CRC字段 或称FCS,帧检验序列,是一个循环冗余检验码,以检测数据帧中的错误
    字符转义 由于标志字符的值为0x7e,因此当它出现在信息字段中时,需要对其进行转义。
    同步链路:通过比特填充(bit stuffing)的硬件技术来完成
    异步链路:特殊字符0x7d用作转义字符,当它出现在数据帧时,紧接着的字符的第6位要取补码,具体过程如下
    字符0c7e 连续传送两个字符0x7d和0x5e
    字符0x7d 连续传送两个字符0x7d和0x5d
    字符值小于0x20(一个ASCII控制字符) 例如遇到0x01,连续传送两个字符0x7d和0x21(这时,第6位取补码后变为1)
    •  2.7 环回接口

      环回接口(Lookback Interface),义允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络好号127就是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。一个传给环回接口的数据报不能在任何网络上出现。

      我们想象,一旦传输层检测到目的端地址是环回地址时,应该可以省略部分传输层和所有网络层的逻辑操作。但是大多数的产品还是照样完成传输层和网络层的所有过程,只是当IP数据报离开网络层时把它返回给自己。

     图中关键点:

    1. 传给环回地址(一般是127.0.0.1)的任何数据均视为IP输入
    2. 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身
    3. 任何传送给主机IP地址的数据均送到环回接口
  • 相关阅读:
    ACM题集以及各种总结大全
    ACM题集以及各种总结大全
    线段树题集
    线段树题集
    POJ 1159 Palindrome【LCS+滚动数组】【水题】
    POJ 1159 Palindrome【LCS+滚动数组】【水题】
    开课博客
    第一周学习进度
    开学测试
    寒假总结
  • 原文地址:https://www.cnblogs.com/raphael-wang/p/3269128.html
Copyright © 2011-2022 走看看