TcpIP详解--链路层

TcpIP详解--链路层


在链路层使用什么协议,取决于网络所使用的硬件.根据硬件的不同,我们将网络分成:以太网,令牌环网,FDDI(光纤分布式数据接口)及RS-232串行线路等.
1.链路层协议
--1.局域网
我们现在知道局域网有很多种,有以太网(采用CSDN/CD技术),令牌总线网,令牌环网.每种网络都要处理该网络内的计算器之间通信问题,按照分层的原理,所以人们首先想到的就是定义发送与接收数据的格式,在链路层的数据的最小单位,我们称之为帧.最开始每个网络都是自已定义自已的帧格式,但后来人们发现,局域网之间也需要互联,能不能将这些协议进行转换呢?不行,因为这些帧的定义太不同了,这样一来人们就想到了在这些不同的网络之间定义一个统一的帧格式.于是出来个IEEE802委员会,提取这三种网络的共同特性制成了802.2标准,又分别对这三种网络也制定了相应的标准,其中以太网由802.3标准定义,令牌总线网由802.4标准定义,令牌环网由802.5标准定义.(这样一来几种常见的网络就可以连通了,我们的网络更大了(叫英特网?),不过还是有些网络没包括进来啊.另,这里的"标准",就叫"协议"吧,也没个名字,只是用个数字做代号,真是的.)

但是802制定的这个标准并不能完全与人家先前定好的标准相符.估计那三种网络的经营者也很希望大家共同改成802的那套标准,可是谁来买单啊?于是人们采取常用的方法,两种标准同时执行,慢慢过渡,(好像现在还在过渡ing,晕).

两种标准不同,但它们又要同时运行,所以它们还是要有某种统一的规则在里面才行啊.很巧合,也很庆幸,更是饶幸,老天让它们统一了(在这里我只能说是老天了,因为估计人们根本没有想过用这种方式去统一).

还是来看看两套标准有什么不同吧,以及它们是如何踫巧统一的.用以太网为例,先前的以太网帧格式(在文件RFC894中定义)与802.2及802.3共同定义的以太网帧格式(在文件RFC1042中定义)比较如下图:


--2.串行线路IP
如果让计算器通过使用RS-232串行端口和高速调制解调器直接连接到英特网中,那么它可以使用的链路层的协义是SLIP协议.那么SLIP协议对帧的格式是如何规定(在文件RFC1055中定义)的呢?见下图:

TcpIP详解--链路层_第1张图片
1.数据报的前后各有一个END字符.
2.如果数据中的某个字符为END,那么用两个字节0xdb和0xdc来取代.0xdd是SLIP的ESC字符,它与ASCII码的ESC字符(0x1b)不同.
3.如果数据中的某个字符为SLIP的ESC字符,那么应用两个字节0xdb和oxdd来取代.

--3.PPP:点对点协义
它的帧的格式定义如下图所示:

TcpIP详解--链路层_第2张图片
每一帧都以标志字符0x7e开始和结束,紧接着是一个地址字节,值始络是0xff,然后是一个值为0x03的控制字节.
接下来是协议字段,类似于以太网中类型字段的功能,当字的值为0x0021时,表示信息字段是一个IP数据报,当值为0xc021时,表示信息字段是链路控制数据,值为0x8021时,表示信息是网络控制数据.
CRC字段(或FCS,帧检验序列)是一个循环冗余检验码,以检测数据帧中的错误.
由于标志字符的值是0x7e,因此当该字符出现在信息字段中时,PPP就需要对它进行转义.转义方法在此省略.


2.其它的一些概念
--1.环回接口
我们一直在考虑计算器与别的计算器进行通信,那么同一台计算器里的不同应用程序如何进行通讯呢?难道也要将信号发送到网络中再传回来吗?多此一举啦.这里提供了一个环回接口,就是为同一台计算器中不同应用程序之间通信准备的.

TcpIP详解--链路层_第3张图片

--2.最大传输单元MTU

在链路层数据帧的最大长度就叫做最大传输单元(MTU).以下是一些典型的MTU值:

TcpIP详解--链路层_第4张图片
--3.路径MTU

在同一个网络中,MTU是固定的,但不同的网络,它们的链路层就可能有不同的MTU,当两台计算机通信时,如果经过多个网络,那么在经过的这些网络中最小的那个MTU就是路径MTU.因为路由是不固定的,所以两台计算机通信时的路径MTU也是不固定的.

--4.串行线路吞吐量计算

 略.

 参考文献:1.<<TCP/IP详解>>

你可能感兴趣的:(网络,通讯)