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)
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是帧校验序列,用以检测数据传输过程产生的错误。
对比与SLIP
1)PPP协议在一条线路上可以使用多种协议,而不仅仅是IP协议。
2)有校验码,可以检测传输产生的错误。
3)通信双方可以进行IP地址的动态协商(通过IP网络控制协议)
4)可以协商是否采用报文头部压缩。
5)链路控制协议可以分别对多个数据链路选项进行设置。