分享
 
 
 

RFC893 - Trailer encapsulations

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Network Working Group Samuel J. Leffler

Request for Comments: 893 Michael J. Karels

University of California at Berkeley

April 1984

Trailer Encapsulations

Status of this Memo

This RFCdiscusses the motivation for use of "trailer encapsulations"

on local-area networks and describes the implementation of sUCh an

encapsulation on various media. This document is for information

only. This is NOT an official protocol for the ARPA Internet

community.

Introduction

A trailer encapsulation is a link level packet format employed by

4.2BSD UNIX (among others). A trailer encapsulation, or "trailer",

may be generated by a system under certain conditions in an effort to

minimize the number and size of memory-to-memory copy operations

performed by a receiving host when processing a data packet.

Trailers are strictly a link level packet format and are not visible

(when properly implemented) in any higher level protocol processing.

This note cites the motivation behind the trailer encapsulation and

describes the trailer encapsulation packet formats currently in use

on 3 Mb/s EXPerimental Ethernet, 10 Mb/s Ethernet, and 10 Mb/s V2LNI

ring networks [1].

The use of a trailer encapsulation was suggested by Greg Chesson, and

the encapsulation described here was designed by Bill Joy.

Motivation

Trailers are motivated by the overhead which may be incurred during

protocol processing when one or more memory to memory copies must be

performed. Copying can be required at many levels of processing,

from moving data between the network medium and the host's memory, to

passing data between the operating system and user address spaces.

An optimal network implementation would expect to incur zero copy

operations between delivery of a data packet into host memory and

presentation of the appropriate data to the receiving process. While

many packets may not be processed without some copying operations,

when the host computer provides suitable memory management support it

may often be possible to avoid copying simply by manipulating the

appropriate virtual memory hardware.

In a page mapped virtual memory environment, two prerequisites are

usually required to achieve the goal of zero copy operations during

packet processing. Data destined for a receiving agent must be

RFC893 April 1984

aligned on a page boundary and must have a size which is a multiple

of the hardware page size (or filled to a page boundary). The latter

restriction assumes virtual memory protection is maintained at the

page level; different architectures may alter these prerequisites.

Data to be transmitted across a network may easily be segmented in

the appropriate size, but unless the encapsulating protocol header

information is fixed in size, alignment to a page boundary is

virtually impossible. Protocol header information may vary in size

due to the use of multiple protocols (each with a different header),

or it may vary in size by agreement (for example, when optional

information is included in the header). To insure page alignment the

header information which prefixes data destined for the receiver must

be reduced to a fixed size; this is normally the case at the link

level of a network. By taking all (possibly) variable length header

information and moving it after the data segment a sending host may

"do its best" in allowing the receiving host the opportunity to

receive data on a page aligned boundary. This rearrangement of data

at the link level to force variable length header information to

"trail" the data is the substance of the trailer encapsulation.

There are several implicit assumptions in the above argument.

1. The receiving host must be willing to accept trailers. As this

is a link level encapsulation, unless a host to host negotiation

is performed (preferably at the link level to avoid violating

layering principles), only certain hosts will be able to converse,

or their communication may be significantly impaired if trailer

packets are mixed with non-trailer packets.

2. The cost of receiving data on a page aligned boundary should be

comparable to receiving data on a non-page aligned boundary. If

the overhead of insuring proper alignment is too high, the savings

in avoiding copy operations may not be cost effective.

3. The size of the variable length header information should be

significantly less than that of the data segment being

transmitted. It is possible to move trailing information without

physically copying it, but often implementation constraints and

the characteristics of the underlying network hardware preclude

merely remapping the header(s).

4. The memory to memory copying overhead which is expected to be

performed by the receiver must be significant enough to warrant

the added complexity in the both the sending and receiving host

software.

The first point is well known and the motivation for this note.

RFC893 April 1984

Thought has been given to negotiating the user of trailers on a per

host basis using a variant of the Address Resolution Protocol [2]

(actually augmenting the protocol), but at present all systems using

trailers require hosts sharing a network medium to uniformly accept

trailers or never transmit them. (The latter is easily carried out

at boot time in 4.2BSD without modifying the operating system source

code.)

The second point is (to our knowledge) insignificant. While a host

may not be able to take advantage of the alignment and size

properties of a trailer packet, it should nonetheless never hamper

it.

Regarding the third point, let us assume the trailing header

information is copied and not remapped, and consider the header

overhead in the TCP/IP protocols as a representative example [3]. If

we assume both the TCP and IP protocol headers are part of the

variable length header information, then the smallest trailer packet

(generated by a VAX) would have 512 bytes of data and 40+ bytes of

header information (plus the trailer header described later). While

the trailing header could have IP and/or TCP options included this

would normally be rare (one would expect most TCP options, for

example, to be included in the initial connection setup exchange) and

certainly much smaller than 512 bytes. If the data segment is

larger, the ratio decreases and the expected gain due to fewer copies

on the receiving end increases. Given the relative overheads of a

memory to memory copy operation and that of a page map manipulation

(including translation buffer invalidation), the advantage is

obvious.

The fourth issue, we believe, is actually a non-issue. In our

implementation the additional code required to support the trailer

encapsulation amounts to about a dozen lines of code in each link

level "network interface driver". The resulting performance

improvement more than warrants this minor investment in software.

It should be recognized that modifying the network (and normal link)

level format of a packet in the manner described forces the receiving

host to buffer the entire packet before processing. Clever

implementations may parse protocol headers as the packet arrives to

find out the actual size (or network level packet type) of an

incoming message. This allows these implementations to avoid

preallocating maximum sized buffers to incoming packets which it can

recognize as unacceptable. Implementations which parses the network

level format on the fly are violating layering principles which have

been extolled in design for some time (but often violated in

implementation). The problem of postponing link level type

RFC893 April 1984

recognition is a valid criticism. In the case of network hardware

which supports DMA, however, the entire packet is always received

before processing begins.

Trailer Encapsulation Packet Formats

In this section we describe the link level packet formats used on the

3 Mb/s Experimental Ethernet, and 10 Mb/s Ethernet networks as well

as the 10 Mb/s V2LNI ring network. The formats used in each case

differ only in the format and type field values used in each of the

local area network headers.

The format of a trailer packet is shown in the following diagram.

+----+-------------------------------------------------+----+

LH data TH

+----+-------------------------------------------------+----+

^ ( ^ ) ^

LH:

The fixed-size local network header. For 10 a Mb/s Ethernet,

the 16-byte Ethernet header. The type field in the header

indicates that both the packet type (trailer) and the length of

the data segment.

For the 10 Mb/s Ethernet, the types are between 1001 and 1010

hexadecimal (4096 and 4112 decimal). The type is calculated as

1000 (hex) plus the number of 512-byte pages of data. A

maximum of 16 pages of data may be transmitted in a single

trailer packet (8192 bytes).

data:

The "data" portion of the packet. This is normally only data

to be delivered to the receiving processes (i.e. it contains no

TCP or IP header information). Data size is always a multiple

of 512 bytes.

TH:

The "trailer". This is actually a composition of the original

protocol headers and a fixed size trailer prefix which defines

the type and size

of the trailing data. The format of a trailer is shown below.

The carats (^) indicate the page boundaries on which the receiving

host would place its input buffer for optimal alignment when

RFC893 April 1984

receiving a trailer packet. The link level receiving routine is able

to locate the trailer using the size indicated in the link level

header's type field. The receiving routine is expected to discard

the link level header and trailer prefix, and remap the trailing data

segment to the front of the packet to regenerate the original network

level packet format.

Trailer Format

+----------------+----------------+------~...~----------+

TYPE HEADER LENGTH ORIGINAL HEADER(S)

+----------------+----------------+------~...~----------+

Type: 16 bits

The type field encodes the original link level type of the

transmitted packet. This is the value which would normally be

placed in the link level header if a trailer were not generated.

Header length: 16 bits

The header length field of the trailer data segment. This

specifies the length in bytes of the following header data.

Original headers: <variable length>

The header information which logically belongs before the data

segment. This is normally the network and transport level

protocol headers.

Summary

A link level encapsulation which promotes alignment properties

necessary for the efficient use of virtual memory hardware facilities

has been described. This encapsulation format is in use on many

systems and is a standard facility in 4.2BSD UNIX. The encapsulation

provides an efficient mechanism by which cooperating hosts on a local

network may oBTain significant performance improvements. The use of

this encapsulation technique currently requires uniform cooperation

from all hosts on a network; hopefully a per host negotiation

mechanism may be added to allow consenting hosts to utilize the

encapsulation in a non-uniform environment.

RFC893 April 1984

References

[1] "The Ethernet - A Local Area Network", Version 1.0, Digital

Equipment Corporation, Intel Corporation, Xerox Corporation,

September 1980.

[2] Plummer, David C., "An Ethernet Address Resolution Protocol",

RFC-826, Symbolics Cambridge Research Center, November 1982.

[3] Postel, J., "Internet Protocol", RFC-791, USC/Information

Sciences Institute, September 1981.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有