1 / 33
文档名称:

协议控制块.pdf

格式:pdf   页数:33页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

协议控制块.pdf

上传人:lu6966 2014/12/24 文件大小:0 KB

下载得到文件列表

协议控制块.pdf

文档介绍

文档介绍:下载
第22章协议控制块
引言
协议层使用协议控制块( P C B )存放各U D P和T C P插口所要求的多个信息片。 I n t e r n e t协议维
协议控制块( protocol control block)和T C P控制块(TCP control block)。因为
U D P是无连接的,所以一个端结点需要的所有信息都可以在 PCB中找到;不存在U D P
控制块。
PCB含有所有U D P和T C P端结点共有的信息:外部和本地 I P地址、外部和本地端
号、I P首部原型、该端结点使用的 I P选项以及一个指向该端结点目的地址选路表入口的指针。
T C P控制块包含了T C P为各连接维护的所有结点信息:两个方向的序号、窗口大小、重传次数
等等。
本章我们描述N e t / PCB,在详细讨论T C P时再探讨T C P控制块。我们将研
PCB的函数,会在描述 U D P和T C P时遇到它们。大多数的函数以 i n _ p c b
开头。
图2 2 - 1总结了协议控制块以及它们与 f i l e和s o c k e t结构之间的关系。该图中有几点要
考虑:
•当s o c k e t或a c c e p t创建一个插口后,插口层生成一个 f i l e结构和一个s o c k e t结构。
文件类型是D T Y P E _ S O C K E T,U D P端结点的插口类型是 S O C K _ D G R A M,T C P端结点的
插口类型是S O C K _ S T R E A M。
•然后调用协议层。 U D PCB(一个i n p c b结构),并把它链接到s o c k e t
结构上:s o _ p c b成员指向i n p c b结构,i n p _ s o c k e t成员指向s o c k e t结构。
• T C P做同样的工作,也创建它自己的控制块(一个t c p c b结构),并用指针i n p _ p p c b和
t _ i n p c b把它链接到i n p c b上。在两个UDP i n p c b中,i n p _ p p c b成员是一个空指针,
因为U D P不负责维护它自己的控制块。
•我们显示的其他四个 i n p c b结构的成员,从i n p _ f a d d r到i n p _ l p o r t,形成了该端结
点的插口对:外部I P地址和端口号,以及本地 I P地址和端口号。
• U D P和T C P用指针i n p _ n e x t和i n p _ p r e PCB的双向链表。它们
在表头分配一个全局 i n p c b结构(命名为u d b和t c b),在该结构中只使用三个成员:下
一个和前一个指针,以及本地端口号。后一个成员中包含了该协议使用的下一个临时端
口号。
PCB是一个传输层数据结构。 T C P、U D P和原始I P使用它,但I P、I C M P或I C M P
不用它。
我们还没有讲过原始 I P, PCB。与T C P和U D P不同,原始I P在P C B中不
用端口号成员,原始 I P只用本章中提到的两个函数: i n _ p c b a l l o c 分配 P C B ,
i n _ p c b d e t a c h释放P C B。第3 2章将讨论原始I P。
第 22 章协议控制块计计573
下载
描述符描述符描述符描述符
插口层
协议层
所有UDP的双向循环链表
协议控制块
TCP
协议控制块和相关的TCP控制块
图22-1 协议控制块以及与其他结构之间的关系
代码介绍
所有P C B函数都在一个C文件和一个包含定义的头文件中,如图 2 2 - 2所示。
文件描述
n e t i n e t / i n _ p c b . h i n _ p c b结构定义
n e t i n e t / i n _ p c b . c P C B函数
图22-2 本章中讨论的文件
574计计TCP/IP详解卷 2:实现
下载
全局变量
本章只引入一个全局变量,如图 2 2 - 3所示。
变量数据类型描述
z e r o i n _ a d d r struct in_addr 32 bit全零I P地址
图22-3 本章中引入的全局变量
统计量
PCB和TCP PCB都是内核的m a l l o c函数分配的M _ P C B类型。这只是内核分配的
大约