TCP/IP协议详解 卷1—读书笔记(1)

0. 前言

  本系列简要记录该书的关键点,用以梳理知识点。

1. 简介

  简述链路层下的一些相关协议,如以太网IP数据报,802标准,SLIP,CSLIP,PPP。

  链路层主要为上层(IP)和本层(ARP和RARP)的协议提供服务。

2. 以太网IP数据报和IEEE 802

  以太网IP数据报协议是由Intel和其他公司发布的一个标准,采用CSMA/CD的接入方法。其速率为10Mb/s,地址为48bit。在RFC 894中定义。

  IEEE 802发布的一个标准和以太网IP数据报有些不同,前两个地址字段相同,之后两个字节不一样。但是可以通过这两个字节来区分。其如下所示(图为百度百科的):

  从这里可以看出,这两种报文可以通过802.3标准的长度字段和RFC 894的类型字段区分开(因为有效长度<=1500 < 2^11=2048=0x0800)

TCP/IP协议详解 卷1—读书笔记(1)

3. SLIP:串行线路IP(Serial Line IP)

  SLIP是一种在串行线路上对IP数据报进行简单封装的协议。

协议定义:

  1)IP数据报以END(0xc0)的特殊字符结束。(多数实现会在开头也添加一个END)

  2)如果IP数据报中包含END,则以0xdb 0xdc来代替。其中0xdb称为SLIP的ESC字符。

  3)如果IP数据报中包含ESC,则使用0xdb 0xdd来替代。

协议的缺陷:

  1)每一段必须知道对方的IP地址。(因为没有类似以太网IP数据报中的地址字段信息)

  2)数据帧中没有类型字段。在一条线路中使用则不能使用其他协议(没有协议字段,没法和其它协议区分)

   3)没有校验和

4. 压缩SLIP

  对报文的IP和TCP(或其他协议)首部信息进行压缩到3或5个字节。在RFC 1144中定义。

5. PPP:点对点协议

  PPP协议修改的SLIP的一些缺陷。RFC 1548描述报文封装方法和链路控制协议。RFC 1332描述针对IP的网络控制协议。

  协议的格式如下:

    每一帧均以0x7e开始和结束。之后是一字节的地址,然后是一字节0x03的控制字节。

    协议字段:0x0021表示IP数据报,0xc021表示链路控制数据,0x8021表示网络控制数据。

    FCS是帧校验序列,用以检测数据传输过程产生的错误。

  TCP/IP协议详解 卷1—读书笔记(1)

  对比与SLIP

    1)PPP协议在一条线路上可以使用多种协议,而不仅仅是IP协议。

    2)有校验码,可以检测传输产生的错误。

    3)通信双方可以进行IP地址的动态协商(通过IP网络控制协议)

    4)可以协商是否采用报文头部压缩。

    5)链路控制协议可以分别对多个数据链路选项进行设置。

上一篇:android快速开发--常用utils类


下一篇:Mac OS X平台上Java环境的配置