在ARCNET上进行IP传输

/ns/wz/net/data/20020805053516.htm


  

本文说明了在ARCNET网络上使用ARCNET包头定义标准传送IP和ARP数据报。

1. ARCNET包格式

在1989年,苹果电脑,Novell,ACTINET Systems公司,Standard Microsystems和Pure Data Research同时在ARCNET上使用ARCNET包头定义标准。我们先简要描述此协议。

2.1. ARCNET帧传输

ARCNET硬件支持两种类型的帧:短帧(256字节)和长帧(512字节)。所有帧以硬件头开始,以用户数据和软件头结束。软件负责在硬件头和软件头之间填充数据以保证帧长度是固定的。而传输时,硬件删除这些填充。

短帧可以保存0到249字节的用户数据,长帧则可以保存253到504字节。如果需要处理250到252字节的问题,数据链路层协议引入了第三种帧类型:例外(exception)帧。下面三图代表三种帧,每一块代表一个字节:



包格式是软件通过ARCNET硬件看到的包格式。传输中的格式与上面看到的稍有不同:目的ID被复制,在offset域和协议ID之间的填充不传输,包中有一些硬件帧信息。硬件传输的一些特殊帧,这些帧用于缓冲区分配和接收确定未在这里描述。

2.2. 数据链路层分段

ARCNET硬件限制单个帧为512字节,其中504字节为用户数据。ARCNET数据链路协议允许数据链路层将包分为120段传输。用户可以在ARCNET上传输60,480字节的包。分隔标记描述数据链路层包分段,有三种分段情况:包未分段,分段包的第一段,分段包的其它段。包未分段时分隔标记为0;分段包的第一段中的分隔标记=((T-2)*2)+1,其中T等于包被分的段数;分段包的其它段中的分隔标记=((N-1)*2),其中N是此段的序号。如果是第4个段,则N=4,分隔标记=6。接收时,只要接收到的段大于第一段的分隔标记,那这一段就是最后一段。过去的老ARCNET数据链路协议定义中只允许包被分为两段,为了和过去的老协议兼容,可以把最大用户数据定为1008字节。决不许将包分为大于120或120多段。同一包的所有段带有相同的序列号。

2.3. 数据链路层重组

前节中已经提供了有关重组的有关过程。为了避免在重组中缓冲分配的问题,建议在第一段到达时就为整个包分配空间。因为段是按顺序发送的,因此如果未按顺序接收则可以放弃这个包。接收过程可以不理会重复的段,而不必抛弃整个包。因为传输过程很快,因此传输过程在几秒钟以后可以对部分重组的包抛弃。

2.4. 数据链路层重传

对于每个单播ARCNET包,硬件指出接收者是否要确认接收到包。为了提高可靠性,数据链路实现推荐重新传送未确认的包或包的某一段。多次重传有时也是必要的。因为广播包不需要确认,因此不需要重传广播包。成功接收的包也可以未被成功确认,因此出现多个包或包段的复本。重复的包对于IP或ARP来说不是问题。而ARCNET的重组过程也忽略多余的段。

3. 传输IP和ARP数据报

IP和ARP数据报在ARCNET用户数据域中传输,数据链路支持将每个数据报放入合适的ARCNET帧中,至于将大于504字节的IP数据报放入帧中已经在前面讲过了。

4. IP地址映射

本节解释如何将三类基本IP地址映射到8位ARCNET地址。

4.1. 单播地址

单播IP地址映射到ARCNET地址时使用ARP协议。可以将IP地址的后8位指定和ARCNET地位对应。这可以不使用协议而直接进行地址管理。但这并不好,硬件地址映射看起来也不错,可是ARP提供的是一种灵活,方便而且高效的管理方法。

4.2. 广播地址

所有IP广播地址必须映射到ARCNET广播地址0上。不象单播包,ARCNET不保证广播包的传输,所以它可能会丢失。这对IP和ARP并不是问题,因为它们也不要求非要广播包不丢失。

4.3. 多播地址

因为ARCNET不支持多播,所有IP多播地址必须映射到ARCNET广播地址0上。

5. ARP

ARP包在ARCNET网络上传输时,硬件地址只有1位,ARCNET的ARP硬件类型是7。ARP请求包通过ARCNET广播地址0进行广播。

6. RARP

RARP包也可以在ARCNET上传输。为了数据链路传输和接收,RARP和ARP以相同方式处理。RARP在ARCNET和在以太网上运行还有一些不同。以太网地址是6字节,而ARCNET只有1字节。ARCNET只有256个地址,而以太网则多得多,ARCNET地址在不同的网络中可能是重复的,而在以太网中不会重复,ARCNET地址不象以太地址那样是固定的。

7. 最大传输单元(MTU)
转自:蓝盾在线


最大IP包长度可以是60,480字节,因为这个值是不实际的,因此ARCNET只需要支持一个小一些的值就可以了,在本文中MTU是可配置的。在任何情况下,必须能够接收和发送576字节的包,推荐支持1500字节的包。可以会接收到大于MTU的IP数据报,但不能抛弃这些数据报。如果能够让IP的MTU变化当然最好,这减少了分段带来的压力,但是可能会对网络传输带来问题。