Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76489
  • 博文数量: 25
  • 博客积分: 692
  • 博客等级: 上士
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-29 15:42
文章分类
文章存档

2011年(25)

分类: 系统运维

2011-03-04 19:35:21

协议数据单元 下文摘自:UNIX网络编程第一卷

    计算机网络各层对等实体间交换的单位信息称为协议数据单元(PDU),分节就是PDU之一,它对应于TCP传输层。就TCP/IP协议族而言,应用层实体(如普通的客户和服务器进程)间交换的PDU称为数据(data,TCP应用进程)或记录(record,UDP应用进程),其中数据的大小没有限制,但记录不能超过UDP发送缓冲区大小(这个缓冲区实际上并不存在,但它具备大小这个属性)。传输层实体间交换的PDU是分节(segment,TCP协议)或数据报(datagram,UDP协议),它们的大小都是有限的。TCP应用进程的数据由TCP划分成块(chunk)后封装在分节中传送,UDP应用进程的记录则由UDP整个封装到数据报中传送。网络层实体之间交换的PDU是分组(packet,俗称包),其大小自然有限。传输层的分节或数据报都由IP封装在分组中传送。有时分组可能太大,超过了数据链路层单个PDU的容量,这时分组需要划分成若干个片段(fragment),因此片段也是网络层实体之间交换的信息单元。TCP/IP为提高效率,一般尽可能避免这种分片操作。数据链路层实体之间交换的PDU是帧(frame),网络层的每个小分组(即无需划分片段的分组)或片段由数据链路层封装到一个帧中。由于UDP应用进程、UDP和IP都是无连接的,有时统一用数据报表示记录、数据报或分组。每层的PDU除用来封装自紧邻上层的数据单元(称为服务数据单元SDU)外,也用于本层内部的协议通信。例如SYN和FIN分节就是TCP专门用来建立与拆除连接的PDU,通常不再携带来自应用进程的SDU。另外书中讨论的MSS是应用层与传输层之间的接口属性,MTU则是网络层与数据链路层之间的接口属性。
阅读(4886) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~