zoukankan      html  css  js  c++  java
  • 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)链路控制协议可以分别对多个数据链路选项进行设置。

  • 相关阅读:
    【转】c++继承中的内存布局
    Google 开源项目风格指南
    常见面试题
    PHP7.1中使用openssl替换mcrypt
    phpunit实践笔记
    PHP的错误处理
    CI的扩展机制
    #CI的MVC实现
    Laravel中的队列处理
    laravel的模块化是如何实现的
  • 原文地址:https://www.cnblogs.com/jabnih/p/4972727.html
Copyright © 2011-2022 走看看