《TCP/IP详解》笔记——网络接口层

本系列是针对《TCP/IP详解》的笔记总结,包含各章节的主要内容。有助于帮助你快速了解并掌握TCP/IP协议的相关内容。

 在《TCP/IP详解》笔记——TCP/IP基本工作原理概述,简述了TCP/IP的四层协议以及各层的作用及常用协议,数据传输中的封装和拆封过程,举例说明主机A至主机B在局域网和广域网传输概述。接下来几节将详细讲解TCP/IP各层协议及作用。本节讲述最低层网络接口层。

目录

1、概述
2、以太网和IEEE802的封装
3、SLIP、CSLIP、PPP
4、最大传输单元 MTU

1、概述

在TCP/IP协议族中,网络接口层主要有三个目的:
1)为IP模块发送和接收数据
2)为ARP模块发送ARP请求和接收ARP应答
3)为RARP模块发送RARP请求和接收RARP应答
 TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网,令牌环网,FDDI(光纤分布式数据接口)及RS-232串行线路等。
网络接口层层的协议数据单元——帧:将IP层(网络层)的数据报添加首部和尾部封装成帧。
网络接口层层协议有许多种,都会解决三个基本问题,封装成帧,透明传输,差错检测。

2、以太网和IEEE802的封装

 在网络接口层主要包括两种封装格式:以太网和IEEE802,如下图所示,两者的协议帧基本相同,两者对比如下:
1)目的地址和源地址长度相同:
 两者前面都分别用两个6字节来表示目的地址和源地址,这个地址指的是物理地址,也就是MAC地址(48bit)。
2)源地址后面2个字节两者表示的不同
 IEEE802.2/802.3中表示后面跟的数据的长度,也就是表示的从DSAP到CRC之前(不包括CRC),长度的范围是:46-1500。减去后面格式占用的8个字节,也就是IP数据报占用的长度为38-1492;
 以太网表示的为后面跟的数据的类型, 其中0800表示后面封装的为IP数据报, 0806表示的是ARP请求/应答,8035表示的是RARP请求/应答。
 那么这两种封装怎么区分?很简单,对于IEEE802.2/802.3长度的合理范围是:46-1500,而对于以太网类型部分有三个值:分别为0800,0806,8035换成10进为:2048,2054,32821,后面的三个值都不在46-1500范围内,所以不会产生冲突。
3)IEEE802.2/802.3后面8个字节简述
DSAP:目的访问点,通常为0xAA;
SSAP:源访问点,通常为0xAA;
cntl:控制字段,通常为0x03;
org code:通常为0x00;
类型:与以太网类似,用于区分ARP和RARP。
这里写图片描述

3、SLIP、CSLIP、PPP

 在网络接口层的数据传输中,主要有三种传输协议,SLIP、CSLIP和PPP,可根据实际需要选择不同的处理方式。

3.1 SLIP:Serial Line IP

 串行线路 IP (SLIP)用于运行 TCP/IP 的点对点串行连接。 SLIP 通常专门用于串行连接,有时候也用于拨号,使用的线路速率一般介于 1200bps 和 19.2Kbps 之间。 SLIP 允许主机和路由器混合连接通信(主机 - 主机、主机 - 路由器、路由器 - 路由器都是 SLIP 网络通用的配置),因而非常有用。
 SLIP 只是一个包组帧协议,仅仅定义了在串行线路上将数据包封装成帧的一系列字符。它没有提供寻址、包类型标识、错误检查 / 修正或者压缩机制。
 1) IP数据报以一个称作END(0 x c 0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个E N D字符(如果有线路噪声,那么E N D字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个错误报文交给上层后,会发现其内容毫无意义而被丢弃)。
 2) 如果I P报文中某个字符为END,那么就要连续传输两个字节0 x d b和0 x d c来取代它。0 x d b这个特殊字符被称作SLIP的ESC字符,但是它的值与ASCII码的E S C字符(0 x 1 b)不同。
 3) 如果I P报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0 x d b和0 x d d来取代它。
这里写图片描述

3.2 CSLIP

 压缩串行线路 IP (CSLIP)在传送出的 IP 分组上执行 Van Jacobson 头部压缩。CSLIP(即压缩SLIP)的新协议,它在RFC 1144[Jacobson 1990a]中被详细描述。C S L I P一般能把上面的4 0个字节压缩到3或5个字节。它能在C S L I P的每一端维持多达1 6个T C P连接,并且知道其中每个连接的首部中的某些字段一般不会发生变化。这个压缩过程显著提高了交互式会话吞吐量。

3.3 PPP

 PPP包括以下三部分:
 1) 在串行链路上封装I P数据报的方法。P P P既支持数据为8位和无奇偶检验的异步模式(如大多数计算机上都普遍存在的串行接口),还支持面向比特的同步链接。
 2) 建立、配置及测试数据链路的链路控制协议( L C P:Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。
 3) 针对不同网络层协议的网络控制协议( N C P:Network Control Protocol)体系。当前R F C定义的网络层有I P、O S I网络层、D E C n e t以及A p p l e Ta l k。例如,IP NCP允许双方商定是否对报文首部进行压缩,类似于C S L I P(缩写词N C P也可用在T C P的前面)。
 PPP协议都以标志字符0x7e开始和结束,紧接着是一个地址字节,值始终是0xff,然后是一个0x03的控制字节。接下来是协议字段。
 0x0021:IP数据报
 0xc021:链路控制数据
 0x8021:网络控制数据
这里写图片描述

4、最大传输单元 MTU

最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。
如果在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片。一个数据报会被分为若干片,每个分片的大小都小于或者等于链路层的MTU值。
当同一网络上的主机互相进行通信时,该网络的MTU对通信双方非常重要。但当主机间要通过很多网络才能通信时,对通信双方最重要的是通信路径中最小的MTU,因为在通信路径上不同网络的链路层MTU不同。通信路径中最小的MTU被称为路径MTU。
网络中一些常见链路层协议MTU的缺省数值如下:

  • FDDI协议:4352字节

    扫描二维码关注公众号,回复: 1452453 查看本文章
  • 以太网(Ethernet)协议:1500字节

  • PPPoE(ADSL)协议:1492字节 //IEEE802.2/802.3

  • X.25协议(Dial Up/Modem):576字节

  • Point-to-Point:4470字节
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/xk7298/article/details/80557910