【TCP/IP详解卷1:协议】第二章 链路层

2.1 引言

链路层的三个主要目的:

  1. 为IP模块发送和接收IP数据报。
  2. 为ARP模块发送ARP请求和接收ARP应答。
  3. 为RARP发送RARP请求和接收RARP应答。

本章介绍:

  1. 连个串行接口链路层协议(SLIP和PPP)。
  2. 环回(loopback)驱动程序。
  3. MTU(最大传输单元)

2.2 以太网和IEEE 802封装

以太网:

  1. 一个已公布的标准。
  2. TCP/IP采用的主要局域网技术。
  3. 采用CSMA/CD(带冲突检测的载波侦听多路接入)媒体接入方法。
  4. 速率10Mb/s,地址为48bit。

802标准封装格式与以太网标准封装格式的比较:

【TCP/IP详解卷1:协议】第二章 链路层_第1张图片

在802标准中,帧从左往右依次为:

  • 目的地址和源地址(一般都为48bit(6字节),即硬件地址)
  • 长度字段(占2个字节,代表后续数据的字节长度,不包括CRC检验码)
  • DSAP(占1字节,目的服务访问点)
  • SSAP(占1字节,源服务访问点)
  • ctrl(占1字节)
  • org code(占3字节)
  • 类型字段(占2个字节)
  • 数据字段(占38~1492个字节)
  • CRC(占4个字节,帧检验序列)

在以太网标准中,帧从左往右依次为:

  • 目的地址和源地址(一般都为48bit(6字节),即硬件地址)
  • 类型字段(占2个字节)
  • 数据字段(占38~1492个字节)
  • CRC(占4个字节,帧检验序列)

2.3 SLIP:串行线路IP

SLIP(Serial Line IP)定义的帧格式:

【TCP/IP详解卷1:协议】第二章 链路层_第2张图片
  1. 首尾各有一个END(0xc0)字符。
  2. 报文中间的END字符用0xdb、0xdc取代,0xdb又称为ESC字符但不同于ASCII的ESC(0x1b)字符。
  3. 报文中间的ESC(0xdb)字符用0xdb和0xdd取代。

缺陷:

  1. 两端必须知道对方的IP地址。
  2. 没有类型字段,无法与其他帧区别开来,所以只能单独用于一条串行线路。
  3. 没有校验和,只能通过上层协议或其他方法检测纠错报文。

CSLIP(压缩SLIP):

  • 将SLIP线路上TCP分组交换时用到的40个字节的TCP/IP首部压缩至3或5个字节,并在每一端维持多达16个TCP连接。

2.4 PPP:点对点协议

数据帧格式:

【TCP/IP详解卷1:协议】第二章 链路层_第3张图片

从左往右依次为:

  • 开始标志字段(占1个字节,固定为0x7e)
  • 地址字段(占1个字节,固定为0xff)
  • 控制字段(占1个字节,固定为0x03)
  • 协议字段(占2个字节,类似于以太网中的类型字段)
  • 信息字段(占最多1500个字节,类似于数据字段)
  • CRC字段(占2个字节,帧检验序列)
  • 结束表示字段(占1个字节,固定为0x7e)

注:与SLIP类似的,当帧中间部分出现标志字段0x7e,则用0x7d、0x5e取代,当遇到字符0x7d时,用0x7d、0x5d代替。

优点:

  1. 因为有协议字段,所以可在单根串行线路上运行多种协议。
  2. 每一帧都有循环冗余检验
  3. 通信双方可进行IP地址的动态协商

2.5 环回接口

用途:允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信,大多数系统的环回IP地址为127.0.0.1,称为localhost。

简单过程:

【TCP/IP详解卷1:协议】第二章 链路层_第4张图片
  1. 传给环回地址的任何数据均作为IP输入
  2. 传给广播地址或多播地址的数据复制一份传给环回接口
  3. 传给该主机IP地址的数据传给环回接口

2.6 最大传输单元MTU

当数据报的长度比链路层MTU大时,需要进行分片处理,将数据报分成若干片小于MTU的数据报再进行传输。

几种常见的最大传输单元:

【TCP/IP详解卷1:协议】第二章 链路层_第5张图片

2.7 路径MTU

  • 两台通信主机路径中的最小MTU称为路径MTU。
  • 路径MTU不一定是个常数。
  • 路径MTU在两个方向上不一定是一致的。

(完)

你可能感兴趣的:(【TCP/IP详解卷1:协议】第二章 链路层)