CN1195937A - 通信系统中通信栈发送与接收数据的系统与方法 - Google Patents
通信系统中通信栈发送与接收数据的系统与方法 Download PDFInfo
- Publication number
- CN1195937A CN1195937A CN98104273A CN98104273A CN1195937A CN 1195937 A CN1195937 A CN 1195937A CN 98104273 A CN98104273 A CN 98104273A CN 98104273 A CN98104273 A CN 98104273A CN 1195937 A CN1195937 A CN 1195937A
- Authority
- CN
- China
- Prior art keywords
- data
- segment
- mentioned
- data flow
- preamble
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9021—Plurality of buffers per packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
信道中传输数据流前,通过提供数据分块的办法来作建立数据流的管理,从而减少数据的移动和拷贝,以提高通信系统性能。从通信栈更高一层接收的多个报头段被拷贝到数据流报头区内,则报头段顺序地存贮在数据流报头区内,具有指向报头区的入口记录的数据流缓冲器列表也产生了出来。指向数据段的入口记录也被存于数据流缓冲器列表。数据段在处理过程中就不用物理地移动或拷贝到数据流中,而由通信栈产生一个“虚拟”数据流来发送。
Description
该项发明涉及到数据通信,更具体的是,涉及在通信系统中数据的发送和接收。
一般地,一个通信系统或网络可以定义为能从网络中的一台计算机(也即节点)连接和发送数据到另一台计算机的一组计算机或运算系统。这些节点的功能从具有最少的本地处理能力的终端到能作高速本地处理的复杂的多重处理器不等。包含于节点中的一组控制功能需确认网络接口是否遵从网络标准或构架。这些这些控制功能可以归结于基于功能的集合里。比如,在“系统网络结构”(SNA)里,这是由国际商用机器公司(IBM)开发的,同时IBM又是这项发明的受让人,SNA定义了一个“物理单元”(PU),此“物理单元”控制诸如链接的对真实的网络资源的操作,以及一个“逻辑单元”(LU),它控制诸如应用的基于逻辑软件的实体。其它的网络构架也定义了类似的功能组。
连接节点之间的通信设备可以是从高速的输入/输出(I/O)通道到低速的点对点的电话线不等。举例来说,用于实现通信设备的媒体可以包括卫星线路或宽带光纤。
参看图1,这是一个高层次的框图,它描述了一个具有两个节点的“应用到应用”通信网络的组成部分,在这里,处于直接接触环境的宿主计算机被描述位于位置10。这种“应用到应用”通信网络方式有时又被称作“端到端”的方式。两个宿主计算机分别描述于位置12和14。举个例子,宿主计算机可以是IBM390主机,它是由国际商用机器公司制造,同时IBM公司又是该项发明的受让人。每个宿主计算机都有一个用于在网络间发送数据的“发送端”(位于位置16),和一个用于接收在网络间所发送的数据的“接收端”(位于位置18)。另外,在宿主计算机中执行的应用描述于20和22的位置上。一旦一个应用处理了数据并要求把数据送往网络中另一个节点,那么,这组将被发送的数据就由节点上的通信栈(位置24和26)处理,这个应用是在节点上通过系统的输入/输出(I/O)接口(位置28)执行和传送的。系统I/O接口(位置28)同时也起到在网络中协助接收和发送数据的作用。
例如,该项发明也可以应用于类似于图2中10′所示的通信网络环境中。在图2所示的通信网络中,两个宿主计算机被描绘在位置50和52。按照本发明,图中的宿主计算机(50)在通信栈里具有管理相对较大的数据块的能力计算机54是一个简单地用作网络中的路由器的控制器,它的作用是为已被宿主计算机50处理来发送的数据寻找路由以跨过网络60。宿主计算机50上执行的应用描述在位置62。一旦一个应用已经处理了数据并要求在网络中发送数据到另一个节点,那么,要传送的数据就在通信栈64中处理。
在诸如图1和图2所描述的通信系统中的通信可由一个网络构架来控制。一种可在诸如图1和图2所示的通信系统来完成时网络结构也即系统网络结构(“SNA”),这是由本发明的受让人IBM开发的。SNA是一种意在允许用户在通信系统中建立自己私用网络的网络构架。一个SNA网络可以定义为一系列的机器或计算机(也即节点)的集合。在SNA网络中,有好几种不同类型的节点,其中包括终端、监控终端及外设行为的控制器,以及前端处理器,前端处理器用来减轻中心主处理器的工作负担,并且中断与数据通信及有关的处理,主宿主计算机。SNA基本上规定了节点如何与另一个节点连接和通信。而且,SNA使得系统可以共享网络资源,方法是不必为不同类型的工作站或不同的应用安装分离的通信线路,同时减少了程序和设备的数量。
在SNA网络里,通信栈的功能可以归结到几个层次里。参看图3,一种通常的描述方式如100所示,它描述了对于一个给定的通信系统中的节点,在完成SNA协议时,在SNA中的各个层次,也就是通信栈。一般地,通信网络中工作于SNA协议的每个节点具有同样的分层软件结构,使得节点间能进行通信。图3中,通信栈的层次包括:物理控制层102,它在相邻的节点间作物理和电气的连接,用来从一个机器到另一个机器物理地传送比特信号:数据链路控制层104,它将行数据比特流组合成帧用于在相邻节点间传送数据,并以一种对高层透明的方式,检测和恢复传输错误,路由控制层106,(有时又称作网络层)。它在信源和信宿之间为数据选择路由,并且在网络里进行数据流量控制;传输控制层108,(有时又称作传输层),它产生、控制和清除传输连接(也即对话);SNA协议层也包括数据流控制层110,(有时又称作对话层),它使得对话端点之间数据流同步,以便于在两个要交谈的终端用户之间建立和控制对话;表示服务层112,它为不同形式的表示介质格式化数据,并且协调资源共享;事务服务层114,它提供分布式数据库的访问和文件互换等应用服务;最后,还有网络用户或应用层116,它与两个终端用户间的通讯有关。
物理控制102、数据链路控制104、路由控制106和发送控制108层在SNA模型中可被看作SNA模型中“低级”的层次120,这是相对于“开放系统界面参考模型(“OSI”)来说的。数据流控制110、表示服务112和事务服务114层可看作协议中“高级”的层次122。最后,高级层122低级层120的组合可被看作通信组站124。
存在于宿主处理器中的访问方法为SNA网络提供了一个控制源。一种访问方式就是虚拟电信访问方式(VTAM),它在应用程序、宿主计算机及其它SNA网络资源之间起中介作用。基本上,VTAM是一个程序,它控制在相同或不同SNA节点中,在终端、应用程序之间,不同应用之间的通信。在VTAM应用程序,宿主和网络终端之间的通信一般只能通过VTAM产生。VTAM也监控网络的性能,标出潜在问题的地方,协助对网络失败的恢复。VTAM工作于虚拟操作系统控制之下,这种系统有“多重虚拟存储”(MVS),“虚拟机器/系统输出”(VM/SP),以及“虚拟扩展存储”(VSE)等操作系统。当工作于MVS环境之下,VTAM可以让独立的SNA网络作相互之间的通信。
VTAM应用程序在类似于其他任何一个程序的操作系统控制之下运行。不管怎样,一个VTAM应用程序在与网络中的终端或其它应用通信之前,总是同VTAM连接。一个VTAM应用程序采用VTAM宏指令来同终端通信。在网络中任何一个地方都可以使用宿主处理器里的应用程序而不须让程序了解网络的构造。VTAM主要提供如下主要功能:启动和停止网络;动态地修改网络的配置;分配网络资源;输入/输出处理的控制。
参见图4,图中描绘了工作于VTAM下的通信系统200的主要部分,其中包括主计算机202,主计算机又包括VTAM206和VTAM应用程序204。宿主计算机202同次要存储器(即辅助存储器)208相连,又和通信网络210相连。通信网络210可以分为SNA终端环境212和本地3270,BSC和启动/关机终端环境214。特别是,宿主计算机同诸如本地3790终端216、本地3270终端218的本地计算机和终端相连,而且,VTAM又同本地通信控制器220相连接,后者被称作NCP,它紧接着又同远程通信控制器222,交换线路上的终端224,以及非交换线路上的终端226相连。
SNA网络结构和VTAM被详细地描述于如下资料中:“系统网络结构”概念和产品,IBM GC30-3072-3“VTAM概念”独立研究项目IBM,1982;教科书“计算机网络”第一章,作者是Tanenbaum,Prentice Hall,Inc出版。(1988年第2版),这些都包含在参考资料里。VTAM也详细描述于如下资料中:标题为“计算机网络系统及其在信息单元传输中的应用”的美国专利No.4,586,134,标题为“计算机网络中提供应用连续可用性的方法和设备”的美国专利No.5,027,269,二者都包含在参考资料里。
在大多数通信系统里数据的运动对系统的效率具有重要的影响,随着数据传输的数量及频率的增加,诸如存储总线及中央处理单元等处理器部件的应用也显著地增加。当由于一个部件未能充分有效地使用致使对其的使用到达最大能力时,通信系统支持的总的通信量便大受限制。
尽管传输大的数据块会给系统性能带来负面影响,但工业化发展趋势却是,只要可能就使用单个传输操作在通信系统中传输大的数据块。大数据块的传输特别容易在与多媒体、图象和大的文件转发的操作中发生。当一个应用指示出一个将要被发送到通信系统中另一个节点的相对较大的数据块,这个相对较大的数据块便通过作为单个缓冲区的通信栈作处理,用于为网络中传输,并且依数据块可能包含一个或多个网络数据包。用于多个网络数据包的单个传送缓冲区的使用,允许通过单个传输操作来发送多个网络数据包。
在通信栈中从事务服务层114到物理控制层102(参看图3)对相对较大的数据块的处理过程中,由于网络对传输信息的最大长度的限制,相对较大的数据块可能会被分成多个小一些的数据块。此外,在通信栈的不同层里,会给这些相对较大的数据块和/或新产生的相对较小的数据段加上包含有协议特有的信息的报头。每个新产生的报头和相应的数据段将被传送到通信组站的下一层,并且要同其它的报头及数据段分隔开来。一种将相对较大的数据块分为相对较小的数据块及相应的报头的方法和系统被描述在“美国专利申请系列No.RA996028 08/802,547-,它正同本申请一同进行申请,标题为“在通信栈中对处理相对较大数据块的管理的系统及方法”,它属于本项发明的受让人IBM,并且包含于参考资料中。
为了在通信系统的通道中实现传送较大数据块(例如多个数据段及相应的报头)的目的,当这些报头及相应的数据段到达物理控制层102时(参看图3),可将这些报头及相应的数据段合成为一个较大的数据流用于将其传送过通信系统的通信。这要求调入一个有最大容量的写发送缓冲区,将报头和相应的数据段移入或拷贝到写发送缓冲区里,借助于系统的I/O接口28(参看图1和图2),以便于利用一个写命令在通信系统的通道中尽可能多地传送数据。这样,对于在一个写发送缓冲区里的源自于同一个相对较大的数据块的数据段及相应的报头来讲,就可以通过数据的移动或拷贝来最大程度地利用系统资源。
在支持多个用户时,为了增强系统性能,资源共享是当前的另一个趋势。支持多用户的资料共享常通过在系统I/O接口28(参看图1和图2)对数据流作复用和解复用的操作来实现。作为这种系统I/O接口的例子有IBM390系统I/O接口,这是由本发明的受让人IBM公司开发的。
但是,作资源共享的努力的结果却带来了复杂程度的增加。对从不同信源得到的将在信道中传输的数据,采用将它们拷贝到单个写发送缓冲区或输入/输出操作缓冲区的办法来将其复合,以此来更有效地利用中央处理单元及输入/输出设备。这常常用“复接”的办法来做。典型地,复接需要将数据移入或拷贝到用于构造在通信系统信道中传输的单个数据流的单个数据缓冲器。这种数据流动有时又叫“数据分块”。大量的数据流动出现在“数据分块”期间,这会给通信栈和通信系统的性能级别带来极大影响。
多媒体应用要在通信系统的节点之间处理和传送大量的数据块,为了提高这类应用的性能,在通信栈中和在通信系统的节点之间的处理过程中,数据的移动和拷贝的操作是应当被消除却,或至少要显著地减少。有种用于避免或至少数据移动和拷贝的解决办法是发送分离的报头和相应的数据段,将它们作为独立的报头和数据段在通信系统信道中传输。类似地,大家都知道采用以序列的方式将分离的报头和数据段移动到一个数据流的办法来组成数据流,例如,每个报头与相应的数据段相邻。但是,许多通信系统为了维持最佳性能,在存储器地址方面都有所限制。
作为例子,在存储器寻址方面的限制有对寻址“范围”条件的限制。比如,有2k byte范围的寻址条件,在这种情形下,假设有个字长50byte的报头存储在地址1000处,相应的长度为20k byte的数据存储在地址5000处。缓冲区列表的入口记录应当分别指到报头和数据。在这个通信系统中可能存在的限制如下:指向起初数据的指针的缓冲区列表必须指向长度为20k byte的数据块,并且列表的增量为2k byte,这样,20kbyte长的数据段便对应于2k byte的地址范围。这种范围要求的例外情况只有:第一个入口记录不必有2k byte长,而且不必从2k byte的边界上开始入口记录,但必须在2k byte的边界上结束;最后的入口记录不必有2k byte长,也不必在2k byte的边界上结束,但必须在2k byte的边界上开始。如果报头是和与其对应的数据段分开存储的,则需要为报头段落准备一个单独的缓冲区列表,因为对每个不同的地址区域都要有个单独的缓冲区列表。
在上面的例子中,如果要在通信系统中传送两个段落,其中每个段落都包含一个报头和相应的数据,若要避免移入数据而形成具有4个入口记录(如报头1号,数据段1号,报头2号,数据段2号)的单个列表,而不违反缓冲区列表地址的规则(即2k byte范围的限制),要完成这项工作通常是不可能的。
一种解决这个问题的已有方案是,将所有的报头和数据段拷贝到单个发送缓冲区中,这样,发送缓冲区中包括:报头1号;数据段1号;报头2号;数据段2号;……报头n号;数据段n号。这个单独的发送缓冲区的信息便在信道中传送。
考虑到通信系统寻址方面的限制,为了减少数据移动的另一种方案是,为每个信息段落提供单独的缓冲区列表,信息段落中包含将在信道中传送的报头及数据。这样,就不会有数据的拷贝或移动的情况出现了。但是,这会造成用于在信道中起传输作用的存储器及缓冲区空间的过多的浪费,还可能发生由于没有数据块的出现而过多地占有输入/输出进程。
最近,还出现了一种方案,它试图不用移动或拷贝数据、不用准备用于信道传输的数据来完成数据的分块,方法是,不管报头的长度,将其拷贝到和相应的数据段分离的2k byte的存储区里。这样,包含报头的存储区也会有大量的“垃圾”数据。报头和这些“垃圾”数据一起在信道中被传输,并且是和数据段分开传输的,这样就可以保持地址范围的一致性。
然而,不幸的是,这些已有的方案在遵从通信系统存贮方面的限制的前提下,要解决数据的拷贝和移动的问题,仍显不足。比如,这些方案要求有附加的缓冲区列表,而这便增加了写操作。而且,为了遵守地址范围的限制,这些方案要产生和传送大量的“垃圾”数据以保持地址范围的一致性,这样,存贮空间就被浪费了。更进一步,传送“垃圾”数据都会对节点和通信系统的性能造成负面影响。
还有,已有的方案可能要求通信栈在运行过程中获取新的存贮单元或缓冲区,无论数据段或报头的长度是多少。这样却不仅会由于数据段长度可能与相对较大的数据块的整个长度无关而造成存贮资源的过多的浪费,而且还会由于有大量的数据拷贝和移动而对通信栈的性能产生极大影响。
综上所述,本发明的一个目的就是提供用于在通信系统里管理相对较大的数据块的发送,同时又增进通信系统的性能的方法、系统和计算机程序。
本发明的另一个目的是通过对数据分块,同时减少数据的移动和拷贝来提供用于管理在通信系统中数据的发送的方法、系统和计算机程序。
根据本发明,系统提供这些和另外一些目的来增加与在节点间传输大的数据块有关的通信系统的性能,特别是大量的数据段在信道中传输之前,由系统来增加处理它们的能力。
在信道中发送数据段之前,管理大量数据段的处理是这样来完成的,标明已形成成包含控制或最初数据的数据流部分,同时继续完成数据分块以避免存贮器资源的浪费。在通信栈的数据链路控制层中,控制或最初的数据拷贝到数据流的报头区内,指向数据流缓冲区中控制或最初的数据的数据流缓冲区列表入口记录也形成了,同时,指向应用数据或静态数据段的数据流缓冲区列表的入口记录也产生了。应用数据段只由数据流缓冲区列表的入口记录所指示。这样一来,就不会产生应用数据的移动和拷贝。
例如,假如采用一个数据流缓冲区列表能在信道中传送的最大数据(比如报头和应用数据)长度是64k byte。这64k byte的数据流可以分为数据流报头区和数据流数据区,其中报头区占4k byte,数据区占60kbyte。报头区包括由通信栈产生的多个报头,同样,数据区也包括由通信栈产生的多个应用数据段。每个应用数据段与数据流报头区内某个特定的报头相对应。这样,该项发明允许在发送信息时形成数据流,数据流包含报头区和数据区。报头区和数据区形成单个的线性比特数据流,这里的报头段和数据段在数据流中不是相邻地包含在数据流中,而远处的节点则可以从中构成成网络数据单元。
本项发明源于认识到,在通信系统信道中传送数据时,为了减少数据流的存贮资源的浪费,需要将数据合成一个单独的数据流(比如分块)。而且,又认识到通信系统会在存贮地址和存贮范围方面有限制,而这间数据分块发生了矛盾,不仅如此,还认识到在遵守各种各样的通信系统的限制的前提下,数据分块会造成数据的过多的移动和拷贝。如果这种报头和数据段的移动或拷贝被消除了或至少减少了,那么,系统的性能将会得到增强。
这样,根据本发明,准备在通信系统的信道中发送信息时,数据就在通信栈中被系统的I/O接口处理,方法是利用数据分块在数据链路控制层中形成“虚拟”的数据流,同时减少数据的移动和拷贝,并遵从存贮范围的限制。在数据链路控制层接收到从通信栈中更高一层传来的多重数据段及相应的报头段,这些多重报头段被拷贝到报头区,这样,报头段就被顺序地存入了报头区。有指向报头区中报头段的入口记录的数据流缓存区列表也产生了,指向从更高一层接收到的数据段的数据流缓存区列表入口记录也存在于数据流缓存区列表之中。在被发送之前,数据段在数据链路控制层中不是物理地移入或拷贝到数据流的数据区中,而是仅仅在系统I/O接口直接地拷贝到通信系统的信道中。结果,在通信栈的发送前,只产生一个“虚拟”数据流,并减少了数据移动与拷贝。
实际通过信道发送的数据流由系统输入/输出接口在发送时通过使用数据流缓冲器列表记录以访问存于数据流报头区的报头段及将这些报头段直接写入信道来产生。在所有由数据流列表指示的报头段被写入信道之后,利用相应的数据流缓存区列表入口记录,将数据段(还未被拷贝)直接从它们原来的存储位置写到通信系统的信道中,因而就减少完成数据分块时紧接着要做的数据拷贝。结果产生了一个具有“带外的”(Out-of-band)报头(即数据流中与相应的数据段不是相邻的的报头)的数据流。
数据流的报头区是只用来放控制或最初的数据的。这个控制或最初的数据有时又被称作“非相邻的协议数据单元报头”或者是“非相邻的PDU.”网络协议报头之类的最初的数据与非相邻的PDU报头一起,但不必是相邻的,存在于数据流的报头区中。这可有象任何单个的非相邻的PDU报头所要求那么多的到数据流的指向标记,以保持数据的联系。只要数据区的控制状态被保持着,在单个或多个数据流中这种联系也就可以被保持着。
数据流的数据区总是开始于由数据流报头区末尾指示的预先设置的页面边界。这就会对数据区的开头造成一个固定的偏移。根据所采用的当前的最大缓存区的长度,数据可以是任意长度。这样,任意一条要传送的信息,可以填充到任意大小的数据流中,直到最大的接收缓存区长度减去报头区长度的大小。
最后一点,数据链路控制层也通过系统I/O接口接收在通信系统的信道中传送的真实的数据流,并且分解数据流,以便将各个报头与其相应的数据段重新联系起来。一旦从在信道中接收到的数据流中分解出一个报头段及与其相应的数据段,那么,它们便被依次送入通信栈的更高的一层接受处理。这个分解过程一直要持续到从信道中接收到的整个数据流都被分解为单个的报头及其相应的数据段。并且每个报头段及其相应的数据段被依次送入通信栈的更高一层之后。
图1是一个具有在直接接触的环境中两个主计算机的“应用到应用”通信网络的框图。
图2是描述了由两个主计算机及一个网络控制器组成的“应用到应用”通信网络的组成部分的框图。
图3是描绘了一个通信栈的网络协议层的框图,它源自于遵循“系统网络结构”的计算机软件;该软件运行于如图1所示的一个“应用到应用”的通信网络中的一个特定的节点。
图4是一个框图,它描述了用于能完成图3所示SNA构架的通信系统的VTAM系统的主要组成部分。
图5是一个原理图,它描绘了一种通信栈的网络协议的各个层次,它源自于在通信中适用于SNA结构的计算机软件,根据本发明,它与作了标记的共享存贮管理器相联系。
图6A和6B描绘了IDAW数据流缓存区列表入口记录及与其不相邻的包含报头区和数据区的数据流,这是根据本项发明而作出的。
图7是一个框图,描绘了根据本发明对报头段及相应的数据段作处理的过程,其中包括在数据流传送之前的IDAM数据流缓冲区列表入口记录的产生,该数据流包括信道中的不相邻的报头段及数据段。
图8是一个流程图,它描述了根据该项发明,与对将在信道中传送的大的报头段与数据段的处理有关的操作过程。
图9是一个框图,它描绘了按照该项发明,将从信道中接收到的间隔的数据流分解为单个的报头段及相应的数据段以供通信栈处理的过程。
图10至图11,都是流程图,描绘了按照该项发明,与将从信道中接收的间隔的数据流分解为单独的报头段及相应的数据段以便于通信栈处理有关的操作。
现在,本项发明将在下文中以参照附图的形式作更加完整的描述,附图中显示了这项发明的最佳实施例。但是,将对这项发明给出多种不同的形式的实施例,但不必将实施例看作是对本发明的限制;而且,提供这样的最佳实施例,目的在于做一个完整而详细的披露,将该项发明的范围告知专业人员。相同的数字指的是相同的单元。
这里描述的本项发明,基本上是基于IBM SNA构架及VTAM寻址方式的。在SNA构架环境中,SNA网络的各层102-106直接同指定的共享存贮管理器130通信,这个管理器属于本项发明,如图5中在100′位置上的简略描绘所示。根据本发明,可以在通信栈的任何一层对将大量的单个的报头段及相应的数据段处理成间隔的数据流和相应的数据流的分解,这些操作进行管理。在最佳实施例中,这些操作发生在数据链路控制层104(参看图5)。尽管如此,对于那些在大的数据块传输于通信栈各层时需要有相对较大的数据块的分段和/或包含协议特定信息的附属报头的网络或网络构架来讲,本项发明适用于其中任何一种。
参看图6A和6B,框图显示了按照本发明的多通道(“MPC”)数据流的结构。特别绘出了间接地址字(“IDAW”)数据流缓冲区列表及包含报头区和数据区的不连续数据流。不连续数据流350(如MPC数据流)被传送过通信系统的信道,而IDAW缓存区列表320则不被传送通过通信系统的信道。此外,MPC数据流350描绘了当它在由系统I/O接口28传送过信道时的MPC数据流。(参看图1和图2),它没有绘出在数据传送过信道之前,数据流在宿主计算机中存贮的位置。
MPC数据流350有两个主要部分,名字分别叫数据流报头区360和数据流数据区380。如图6A中所示,MPC数据流350有2k byte的范围限制。这样,在此例中,报头区360中的原始数据和数据区380中的静态数据必须遵守2k byte的范围限制。
参看图6B,报头区360有几个部分,包括MPC整个数据流350的数据块报头361以及象362所示的一样的多重报头段。数据块报头361包括将整个MPC数据流350看作数据流长度的管理数据。
IDAW缓冲区列表302是个指向实际数据(即报头数据和应用数据)的指针的缓冲区列表。它包含两种指向不同类型数据的指针,即通常在304的位置上指向报头段的指针和通常在306的位置上指向应用数据段的指针。通道程序IDAW指针300指向IDAW缓冲区列表302。IDAW缓冲区列表报头区的第一个指针(即304a中的HDR PTR1)指向MPC数据流350的数据块报头361。在IDAW缓冲区列表302的报头区304中的每个后续指针(即HDR PTR2 304b)指向报头区另一个2k byte部分的开头。IDAW缓冲器列表302的数据指针区306中的每个指针都指向MPC数据流350中的数据区的另一个2k byte部分。例如,数据PTR1 306a指向MPC数据流350中静态数据段380a的开始。
报头段(如报头段362)是提供给由通信栈接收的,并用于在信道中传输的。每个报头及其相应的数据段的组合,每个报头段(如报头段362)包含一个底层协议数据单元(PDU)报头(如“底层PDU报头A 362a”),它包括与特定的报头段的长度相关联的管理数据,以及在MPC数据流350中指到下一个底层PDU报头的偏移量362a(如下一个指针段367)。还有,报头段362也包含一个开始于362d.1的原始数据报头的偏移量362b,(即“原始数据A.1”)。和一个与开始于380a.1的静态数据段相关的偏移量362c(即“静态数据A.1”)。原始数据是指向诸如SNA或TCP/IP报头的网络协议报头的控制数据。静态数据就是应用数据。
原始数据入口记录362d.1-362d.n的数目要和需要管理与静态数据相关的所有需要的原始数据的数目相等。而且,在MPC数据流350中,原始数据入口记录(如“原始数据A.1”362d.1)的偏移量362.b的数目,要同MPC数据流中的原始数据入口记录362d的数量相等。每个原始数据的偏移量都唯一地指向相应的原始数据入口记录。
同样,静态数据段的数目要同为了处理从通信栈接收的数据段的必需数目相等。在原始数据偏移量和起始数据入口记录之间存在一一对应关系。同样,在MPC数据流350中,静态数据偏移量和静态数据入口记录之间也有一一对应关系。
图7-11是描绘出了按照本项发明的方法,系统及程序输出的框图,流程图和控制流程。每个框图,流程图及控制流的功能块和步骤以及框图、流程图及控制流图中的功能块的组合,都可以用程序指令来完成,这是很容易理解的。这些计算机程序指令可以被调入到计算机和其它可编程设备中,使得这些运行于计算机和其它程序设备的指令将产生完成框图、流程图或控制流块或步骤流程所示的功能。这些程序指令也可以存在计算机可读寄存器里,它可以以一种特定的方式来指示计算机或其它可编程设备来完成某些功能以使得存于可读寄存器中的指令产生包括完成功能块图、流程图或控制流块图或控制流步骤图所示功能的指令方法的产品。计算机程序指令也可以调入到计算机或其它可编程设备中,以使得在计算机或其它可编程设备上操作一系列的操作步骤产生一个计算机可执行的进程,以使得执行于计算机或其它可编程设备的指令提供完成功能的步骤,这些功能示于框图、流程图或控制流块图或控制流步骤图。
相应地,功能框图或步骤图、流程图或控制流图支持执行特定功能的装置的组合,支持用于执行特定功能的步骤及程序装置的组合。功能框图、流程图或控制流图的每块或步骤、以及框图、流程图或控制流图的组合中的每个块或步骤的组合,都可以由基于有特定用途的硬件的计算机系统来完成,该计算机系统实现有特殊用途的硬件及计算机指令的特有功能或步骤或其组合。
参看图7,一个框图描绘了报头段及相应的数据段的处理过程,包括在发送数据流之前,在数据链控制层中IDAW数据流缓冲器列表的产生。IDAW数据流缓冲器列表302(参看图6)和“虚拟”MPC数据流350(参看图6)的产生始于从通信栈的更高一层接收到报头及相应数据段。多于一个的报头段和相应的数据段可以依次进入数据链路控制层。报头及相应的数据段可以由通信栈来产生,方法描述于“美国专利申请系列No.-RA996028-08/802,597-中,它正与本申请一同申请,并且标题为“用于管理通信栈中相对大的数据块的系统及方法”,它属于本发明的受让人IBM公司,写到这里以供参考。
在图7中的第一步,数据链路层获得了数据流报头区的存储区,并且将指向数据流报头区的地址的指针以指针的形式存在IDAW数据流缓冲区列表的第一个入口记录402a中,这个列表大致如402所描述。然后,数据链路层开始产生数据流报头区404,该数据区的位置在由第2步中IDAW缓冲器列表402的第一个入口记录402a所指示的位置。数据链路控制层通过在404a的位置上产生数据块报头,在404b的位置上产生基本PDU报头产生数据流报头区。然后,第3步,数据链路控制层,将从通信栈的更高层中接收到的SNA或其它协议报头406拷贝到数据流报头区的原始数据段404c。
数据链路控制层,利用从通信栈接收的SNA或其它协议报头406,与SNA报头对应的通信栈内部缓冲器列表以及与它对应的数据段,将指向数据段地址的指针存到增量为2k byte的入口记录中,该入口记录在第4步中IDAW缓冲器列表402b-402n。然后,第5步,数据链路控制层将原始数据(例如D1)数据段或静态数据的偏移量存在数据流报头区,如图7所示。通信栈终端缓冲器列表可以遵照“XBUFLIST”的形式,“XBUFLIST”描述于最近同本申请一起申请,标题为“管理通信栈中相对大的数据块的处理的系统及方法”的美国专利申请No.RA996028 08/802,597中,它属于本发明的受让人IBM公司,写到这里作参考。
参看图8,在准备在信道中传送数据的过程中,与数据链路控制层中大量的报头段和数据段的处理有关的操作的流程图如图所示。概括地说,图8描绘了IDAW缓冲器列表302(见图6)和MPS数据流(见图6)的数据流报头区360的形成过程。数据链路控制层在图8的500的位置上开始处理,并且为位于502的数据流报头区构成IDAW缓冲区列表。数据流报头区的IDAW入口记录的形式对应于图7中的第一步。下一步,数据链路控制层开始处理从通信栈接收到的报头及相应的数据段。特别地,这样的处理一直不断地进行着,如504所示,直到下列三个条件之一得到满足:(1)没有更多的数据从通信栈中接收到(即所排列数据为0),(2)MPC数据流报头区被填充满;(3)数据流数据区被填满。数据链路控制层在506的位置上将从通信栈中更高一层中接收到的信息(即报头及相应的数据段)重新打散顺序以供处理。然后,数据链路控制层在508的位置上形成数据流报头区的基本PDU报头。这一步相当于图7中的第2步。
然后,在数据链路控制层中从通信栈的更高层接收到的报头及数据段的组合体的内部缓冲器列表在510的位置上被寻址到。在512的位置上作一个判断,判断从数据流控制层110中接收的内部缓冲器列表的入口记录是不是原始数据。如果这个从更高一层接收到的缓冲器列表的入口记录对应于原始数据,那么,在514,这个终端缓冲器列表的入口记录便被用于对相应的原始数据的寻址和将原始数据拷贝到数据流报头区。这个拷贝原始数据到数据流报头区的操作对应于图7的第3步,如果在512判断出从更高一层接收到的终端缓冲器列表的入口记录不是原始数据(即,更进一步说,它是静态数据),那么,IDAW缓冲器列表的一个入口记录便产生了出来,它指向静态数据的位置。在516,为每个2k byte的静态数据形成一个分离的IDAW缓冲器列表入口记录。IDAW缓冲器列表入口记录的形成过程对应于图7中的第4步。
然后,在518,不论是原始数据还是静态数据的偏移量存入MPC数据流报头区的相应报头段内。将数据偏移量存储到数据流的报头区的过程对应于图7的第5步。最后,在520的位置上作一个判断,判断在从通信栈的更高一层接收到的内部缓冲器列表中是否还有入口记录。如果内部缓冲区列表中还有入口记录,那么控制将回到步骤510来处理终端缓冲器列表的附加入口记录。如果没有,那么控制将回到504继续作处理,直到数据队列中没有附加数据,或者数据流报头区被填充满或数据流数据区被填满。
参看图9,这个框图描绘了在从通信系统信道中接收MPC数据流的基础上数据及其相应的报头的重新排列的情况。特别地,图9描绘了通信系统中接收节点上数据链路控制层组织的IDAW缓冲器列表及通信栈内部缓冲器列表的结构。图9描绘了在602由存储管理器保持的数据存储区(即“CSM DS”或通信存储管理器数据存贮区)。在602所示的数据存贮区包括数据链路控制层向存贮管理器申请的共享存贮缓冲器。
在图9的第1步,数据链路控制层开始形成IDAW缓冲器列表604以便于通过通信系统信道接收MPC数据流350(参看图6)。数据链路控制层第一步开始在增量为2k byte的IDAW缓冲器列表中形成入口记录,方法是在604a将数据流报头区的参照数据加入到IDAW缓冲器列表。然后,数据链路控制层开始在存贮增量为2kbyte的IDAW缓冲器列表中形成入口记录,方法是将MPC数据流数据区的参照数据加入到在604b~604n上的IDAW缓冲器列表。
在图9中的第3步,一旦有数据从信道中读入,数据链路控制层便为每个接收到的报头及相应的数据段的保留一个存贮块,如608所示。然后,数据链路控制层从MPC数据流的报头区获取原始数据(如SNA报头),并且在第4步中将其拷贝到由数据链路控制层保留的存贮区608中的610存贮块中。在图9的第5步,数据链路控制层根据从信道接收的存贮于602a的静态数据及存贮于610的SNA报头来产生内部缓冲器列表。这个缓冲器列表入口记录是为静态数据及原始数据而产生的。在第6步中,静态数据的缓冲器列表一般产生在612的位置上,方法是将缓冲器地址或偏移量拷贝到保存静态数据的位于612a的缓冲器之中,静态数据的长度存贮在位于612b的缓冲器里,此例中标明为“TK2”的首要的或次要的标志存于612c,指示数据段为“静态”的标志(即“S”)存于612d。
原始数据(即SNA报头)的内部缓冲器列表入口记录614也被产生了出来。象其它内部缓冲器列表入口记录一样,报头610的内部缓冲器列表入口记录包括报头610存于内部通信栈存贮608位置的位于614a的一个地址。比如,通信栈将报头610的长度存于内部缓冲器列表入口记录的614b的位置;在内部缓冲器列表入口记录的614c位置上置0,表明这个缓冲器列表入口记录没有标志,如在614d为“P”则表示存于610的数据是“原始”的。一旦一个内部缓冲器列表形成,这个缓冲器列表就可以列队进入通信栈中更高一层进行处理。
参见图10至11,这个流程图描述了这样一个过程:将从通信系统信道中接收到的不连续数据流(如“带外”报头数据流)分解为单独的报头段及相应的数据段,以便于通信栈作进一步的处理,这个处理过程将在下面描述。通信栈的数据链路控制层于700开始作分解处理,并且为IDAW列表及数据流报头区702申请存贮空间。然后,通信栈形成指向数据流报头区的IDAW缓冲器列表,这个数据流将在704的位置上被读取。指示出MPC数据流的报头区的IDAW缓冲器列表入口记录的形成过程对应于图9的第1步。通信栈于是在706开始处理数据流中真实的报头段,直到I/O设备去激励。
在从信道中读取数据之前,数据链路控制层在708向存贮控制器申请共享存贮缓冲器。于是通信栈在710形成指向数据区(如静态数据)的IDAW缓冲器列表的存贮部分。这些IDAW缓冲器列表中的入口记录指向共享存贮缓冲器。指向数据流数据区的IDAW缓冲器列表入口记录的形成过程对应于图9的第2步。然后,通信栈就在712通过输入/输出设备将数据(如起始数据和静态数据)读入到报头及数据段区域内。通信栈于是继续处理MPC数据流的报头区的单个PDU报头。
如果在714判断出在MPC数据流报头区里没有PDU报头,那么控制将回到706以准备接收另一个数据流。否则,通信栈在716指定内存给通信栈以形成通信栈内部缓冲器列表,这样就为协议报头保留了入口记录。在716为通信栈指定内存的过程对应于图9的第3步。
接着在718判断在数据流的PDU报头段是否有原始数据。如果判断有原始数据,通信栈就在720将这些原始数据拷贝到内部通信栈存贮器中。在720位置上将原始数据拷贝到内部通信栈存贮器里的过程对应于图9的第4步。然后,通信栈为通信栈内部缓冲器列表生成缓冲器列表入口记录,方法是在722上将数据的地址或偏移量,及其长度,以及其它信息存贮起来。722的中继缓冲器列表入口记录的建立过程对应于图9的第5步。
然后在724判断是否存在更多的PDU元素等待被处理。如果没有附加的PDU元素等待被处理,数据就在726列队进入通信栈中下一个更高层,控制回到714来处理数据流报头区的附加PDU。如果有更多的PDU元素等待被处理,控制将回到718来处理报头段中的附加数据。
如果在718判断出在数据流报头区中没有提供数据,那么就得在728作另一个判断,判断在共享存贮缓冲器里是否有不止一个PDU。如果在共享存贮缓冲器里有附加的PDU,那么,通信栈就会在730从存贮管理器那里获得一个次要的标志,并且在732将获得的次要的标志存贮到与特定数据对应的内部缓冲器列表中。如果在728判断出在共享存贮缓冲器中没有附加的PDU报头。那么,在732,通信栈将主标志存于内部缓冲器列表中。在732将次要或主要的标志存于中继缓冲器列表的过程对应于图9的第6步。主要及次要的令牌和内部缓冲器列表更完整地描述于美国专利申请No.RA996027-08/802,596-和RA 996028-08/802,597-,它们最近同本申请一同申请,且标题为“在通信系统中控制相对较大的数据对象传输的系统和方法”以及“在通信栈中管理相对较大的数据对象的处理的系统及方法”。特别地,它属于本发明的受让人IBM公司,写到这里作参考。
在附图与详述中,已公开了本发明的典型最佳实施例,虽然使用了一些专业术语,但它们仅是以一种普遍的,描述性的方式使用,而不是由于限制的目的,本发明的范围由下列权利要求所设定。
Claims (33)
1.一种方法,用来将一连串数据段和一连串报头段组合为数据流以供在网络信道中传输,每个上述数据段唯一地对应于一个上述的报头段,上述网络通道通常要求每个上述数据段相邻于与其唯一对应的上述报头段,使得在网络信道中传送数据段及相应的报头段更有效率,上述方法包括以下步骤:
将报头段数据中拷贝到数据流缓冲器中的数据流报头区,上述的报头段顺序地存入数据流缓冲器的上述数据流报头区;
将每个存在数据流缓冲器的报头区里的上述报头段同对应的一个上述数据段联系起来;
生成一个数据流缓冲器列表,其中包括在指向数据流缓冲器中的上述数据流报头区中的上述报头段的入口记录及指向上述数据段的入口记录。
其中上述数据段,上述数据流缓冲器列表,以及上述有数据流报头区的数据流缓冲器可以用来集中地形成在网络信道中传输的数据流,而不用在传送数据流之前物理地移动数据段或产生数据段的拷贝,上述数据流有报头区和数据区,这样,在上述报头区中的报头段可以同与其对应的上述的数据段不相邻地放入数据流中,上述数据流形成于这个的数据流在上述网络通道中作传送的时候。
2.根据权利要求1的一种组合方法。其特征在于进一步包括下述步骤:
在网络信道中发送具有报头段的大量数据流报头区;
根据数据流缓冲器列表的指示,获取大量数据段;
根据数据流缓冲器列表的指示,将获取的大量数据段作为数据流数据区在网络通道中发送;
其中上述数据流报头区的报头段和上述数据区的数据段的结合形成了数据流,上述数据流报头区的报头段和与其对应的上述数据区的数据段不相邻地放在上述数据流内。
3.根据权利要求1的一种组合的方法,其特征在于:上述的排列出现在具有多个层次的通信栈中,上述的拷贝步骤之前的步骤是,从通信栈的上述多个层中的一个层中接收数据段和报头段。
4.根据权利要求1的一种组合的方法,其特征在于:上述的数据流缓冲器的报头区有一个块报头部分,上述的拷贝步骤之前的步骤是将数据流的特定信息存贮到上述的块报头部分。
5.根据权利要求1的一种排列的方法,其特征在于相关步骤包括:
确定数据流中报头区的每个上述的报头段同与其相应的上述的数据段之间的偏移量;并且将所确定的偏移量存贮到与这个上述的报头段相关的数据流报头区内,这个上述的报头段对应于上述的数据段。
6.根据权利要求3的一种组合方法,其特征在于上述通信栈就是在一种虚拟电信寻址方式(VTAM)系统中完成的通信栈。
7.一种方法,在一个具有多层的通信栈中,用于从网络通道中接收到的不连续的数据流中得到的报头段及相应的数据段,上述接收的不连续数据流包含一个有许多报头段的报头区和一个有许多数据段的数据区,每个上述的数据段唯一地对应于一个上述的报头段,上述的其中一个数据段在特定的数据流中以一种不相邻的方式和一个与其对应的上述报头段相联系,这种方式包括以下步骤:
生成一个数据流缓冲器列表,其中包括一个指向上述不连续数据流中的一个上述报头段的报头入口记录,和一个指向不连续数据流中的一个上述数据段的数据入口记录,该数据入口记录唯一地与一个上述报头段对应;
存贮一个上述的报头段到一个报头段缓冲器内;
存贮一个上述的数据段到一个数据段缓冲器内;
将上述数据段中的一段及与其唯一对应的上述报头段中的一段在上述的信道中不相邻地传送到在上述的通信栈中的层,其中每个上述数据段中的一段和与其相关的上述报头段中的一段不相邻地传送到第二层而不需物理地移动与上述报头段中的一段相关的上述数据段中的一段,也不需对及与报头段中的一段相关的上述的数据段中的一段产生拷贝。
8.根据权利要求7的一种组合的方法,其特征在于所产生步骤包括如下步骤:
识别不连续数据流中报头段中的一段;
将指向上述报头段的报头指针存贮到数据流缓冲器列表中;
识别出在不连续数据流中与已识别的上述报头段唯一对应的上述一个数据段;
将指向上述数据段的已识别一段的数据指针存贮到数据流缓冲区列表中。
9.根据权利要求7的组合的一种方法,其特征在于,不连续传送步骤包括以下步骤:
为一个上述数据段产生通信栈内部缓冲器列表,这个内部缓冲器列表唯一地与一个上述的数据段及与其关联的上述报头段相联;
在上述通信栈中将内部缓冲器列表从一个层次送到更高一个层次,其中每个上述数据段和与其相关联的报头段不相邻地传送到通信栈中更高的一层,而不需移动一个上述的数据段及与其相关的上述报头段,也不需为与一个上述报头段相关联的一个上述的数据段产生一个拷贝。
10.根据权利要求9的组合的一种方法,其特征在于产生一个通信栈的内部缓冲器列表包括下述过程:
产生一个用于代表一个上述数据段的标记,这个标记唯一地与上述数据段对应;
产生一个唯一地指向一个上述数据段的缓冲区列表报头指针,这个上述的数据段与上述的报头段相对应;
将这个标记存贮在内部缓冲器列表中;
将缓冲器列表报头指针存贮到内部缓冲器列表中。
11.根据权利要求7的一种组合方法,其特征在于通信栈是一个完成于虚拟电信寻址方式(VTAM)系统中的通信栈。
12.一种将大量数据段和大量报头段组合到一个数据流中以便于在网系通道中传输的系统,每个上述的数据段唯一地对应于上述的报头段,上述网络通道通常要求每个上述数据段和与其唯一对应的上述报头段不相邻,这样就可以有效地在网络通道中传送数据段及相应的报头段,该系统包括:
一个有数据流报头区的数据流缓冲器;
将大量报头段拷贝到数据流缓冲器的报头区中的装置,上述报头段被顺序地存入数据流缓冲器中上述的数据流报头区中;
将每个存于数据流缓冲器的上述报头区的上述报头段和与其唯一对应的数据段相联的装置;
用于产生数据流缓冲器列表的装置,包括指向数据流缓冲器中上述报头区的上述报头段的入口记录及指向上述数据段的入口记录;
其中上述的数据段,上述数据流缓冲器列表及有数据流报头区的上述数据流缓冲器都可以用来集中地形成用于在网络通道中传送的数据流,在传送数据流之前不需要物理地移动数据段,也不需要为数据段产生拷贝,上述的数据流具有报头区和数据区,这样,上述的报头区的报头段可以同与其对应的上述数据区中的数据段不相邻地放到数据流中,上述的数据流形成于在上述网络通道中传送该数据流的时候。
13.根据权利要求12的组合的系统,其特征在于更进一步包括:
在网络通道中传送含有大量报头段的数据流报头区的装置;
获取由数据流缓冲器列表指示的大量数据段的装置;
在网络通道中将获取的由数据流缓冲区列表所指示的大量数据段作为数据流数据区发送出去的装置;
其中上述数据流报头区中的报头段与上述数据流数据区的数据段的结合形成数据流,上述的数据流报头区的报头段和与其对应的上述数据流数据区的数据段不相邻地放在该数据流内。
14.根据权利要求12的一个用于组合的系统,与具有多个层次的通信栈有效地相联系的用于组合的系统,该系统还包括从通信栈的多个层次中的一层接收上述数据段和上述报头段的装置。
15.根据权利要求12的一个用于组合的系统,其特征在于上述数据流缓冲器的报头区有一个块报头部分,该系统还包括将数据流特有信息存贮到该块报头部分的方法。
16.根据权利要求12的一个用于组合的系统,其特征在于,用于相连的设备包括:
用于确定每个数据流中报头区的上述报头段和与其对应的数据段之间的偏移量的装置;
所确定用于将偏移量存贮到上述的报头区中的装置,该报头区和与一个上述数据段对应的上述报头段相关联。
17.根据权利要求14的一个用于组合的系统,其特征在于,通信栈是在虚拟电信寻址方式(VTAM)系统中实现的通信栈。
18.在通信栈中用于组合的一个系统具有多层报头段及相应的数据段,这些报头段和数据段在从网络通道中接收到的非相邻的数据流中,该接收到的非相邻的数据流包括一个具有大量报头段的报头区和一个具有大量数据段的数据区,每个数据段唯一地与一个报头段对应,一个数据段和与其对应的特定的报头段以不相邻的方式存贮于该数据流中,该系统包括:
产生数据流缓冲器列表的装置,该缓冲器列表有一个指向非相邻数据流中一个上述报头段的报头入口记录,和一个指向唯一与该报头段对应的非相邻数据流中一个上述数据段的入口记录;
一个报头段缓冲器;
将一个上述的报头段存贮到一个报头段缓冲区内的装置;
一个数据段缓冲器;
将一个上述的数据段存储到一个数据段缓冲区内的装置;
将一个上述的数据段和一个与其第一对应的报头段不相邻地传送到该通信栈的第二层的装置,在该通信栈中一个上述的数据段同与其对应的上述的报头段不相邻地传送到第二层,而不需要物理地移动与上述报头段对应的数据段,也不需为及与上述报头段对应的数据段产生拷贝。
19.根据权利要求18的用于组合的系统,其特征在于产生装置包括:
用于在上述的不连续数据流中识别一个上述报头段的装置;
用于将所识别的上述报头段的报头指针存贮到数据流缓冲器列表中的装置;
用于在上述不连续的数据流中识别出与已识别的报头段唯一地对应的一个上述的数据段的装置;
用于将已识别的上述数据流的数据指针存贮到数据流缓冲器列表中的装置。
20.根据权利要求18的用于组合的一个系统,其特征在于,非相邻传送装置包括:
用于为一个上述数据段生成一个通信栈内部缓冲器列表的装置,这个内部缓冲器列表唯一地与一个上述的数据段及与其对应的报头段相关联;
用于将内部缓冲器列表从通信栈中一个层次送到更高层的装置。其中将上述的数据段和与其对应的报头段不相邻地送入该通信栈的更高一层,而不需物理地移动与上述报头段相对应的上述的数据段,也不需为与上述报头段对应的上述的数据段产生拷贝。
21.根据权利要求20的用于组合的系统,其特征在于,产生内部缓冲器列表的装置包括:
用于产生代表一个上述数据段的标志的装置,该标志唯一地与相应的数据段相联系;
用于产生唯一地指向与一个报头段相对应的数据段的缓冲器列表报头指针的装置;
用于将标志存于内部缓冲器列表的装置;
用于将缓冲器列表报头指针存于内部缓冲器列表的装置。
22.根据权利要求18的用于组合的系统,其特征在于通信栈是在一个虚拟电信寻址方式(VTAM)系统中实现的通信栈。
23.一个用于将大量数据段和大量报头段组合成数据流用以在网络通道中传送计算机程序产品,每个数据段唯一地对应于一个上述报头段,上述网络通道一般要求每个上述数据段和与其唯一对应的上述报头段相邻,使得数据段及与其对应的报头段有效地在网络通道中传输,该计算机程序产品包括:
计算机可读的存储媒质,该存储媒质具有包括在该媒质的计算机可读编码装置,该计算机可读编码装置包括:
用于将大量报头段拷贝到数据流缓冲器的报头区的计算机指令装置,该报头段被顺序地存贮到数据流缓冲器的报头区内;
用于将贮存于数据流缓冲器的报头区中的上述报头段和与其对应的上述数据段联系起来的计算机指令装置;
用于产生包含指示在数据流缓冲器报头区中的上述报头段的入口记录及指示上述数据段的入口记录的数据流缓冲器列表的计算机指令装置;
其中上述数据段、数据流缓冲器列表及具有报头区的数据流缓冲器都可以用来集中地形成用于在网络通道中传送的数据流,而不需物理地移动数据段,也不需要为数据段产生拷贝,直至数据被传送,该数据流具有报头区和数据区,这样,上述报头区中报头段就可以和与其对应的上述数据区中数据段不相邻地放在数据流中,该数据流形成于在上述网络通道中传输该数据流的时候。
24.根据权利要求23,用于组合的一种计算机程序产品,其特征在于,上述计算机可读编码方法,更进一步地包括:
用于在网络通道中传送具有大量报头段的数据流报头区的计算机指令装置;
用于获取由数据流缓冲器列表指示的大量数据段的计算机指令装置;
用于在网络通道中,以一个数据流数据区的方式,发送由数据流缓冲器列表指示的大量数据段的计算机指令装置;
其中上述数据流报头区的报头段和上述数据流数据区的数据段的组合形成数据流,上述数据流报头区的报头段是和与其对应的上述数据流数据区的数据段不相邻地放在数据流中的。
25.根据权利要求23的用于组合的计算机程序产品,其特征在于,该组合产生于具有多个层次的通信栈中,该计算机可读编码装置更进一步地包括从通信栈多层中的一层接收上述数据段和上述报头段的计算机指令装置。
26.根据权利要求23的用于组合的计算机程序产品,其特征在于,上述数据流缓冲器的报头区有块报头部分,计算机可读编码装置更进一步地包括用于将数据流特定的信息存放到该块报头部分的计算机指令装置。
27.根据权利要求23的用于组合的计算机程序产品,其特征在于,计算机指令包括:
用于确定每个数据流报头区中的报头段和与其对应的数据区数据段之间的偏移量的计算机指令装置。
用于将所确定的偏移量存入到同报头段相关联的报头区内的计算机指令装置,该报头段对应于数据段。
28.根据权利要求25的用于组合的计算机程序,其特征在于,该通信栈是在虚拟电信寻址方式(VTAM)系统中实现的通信栈。
29.用于在具有多个分层的通信栈中从接收自网络信道的不连续数据流中组合出报头段及相应的数据段的计算机程序,该接收到的不连续数据流包括一个有大量报头段的报头区和一个有大量数据段的数据区,每个数据段唯一地对应于一个报头段,该数据段和与其对应的报头段以非相邻的方式放于数据流中,该计算机程序产品包括:
具有包括于该媒质的计算机可读编码装置的计算机可读存贮媒质,该计算机可读编码装置包括:
用于产生数据流缓冲器列表的计算机指令装置,这个数据流缓冲器列表有一个指向不连续数据流中的报头段的报头入口记录和一个指向不连续数据流中数据段的数据入口记录,该数据段唯一地与该报头段对应。
用于将报头段存到报头段缓冲器的计算机指令装置;
用于将数据段存到数据段缓冲器的计算机指令装置;
用于不相邻地将数据段及唯一与其对应的的报头段传送到该通信栈的下一层的计算机指令装置,将上述数据段同与其对应的报头段不相邻地传送到该通信栈的下一层,而不需要物理地移动该数据段及相应的报头段,也不用拷贝到该数据段及相应的报头段。
30.根据权利要求29,用于组合的计算机程序产品,其特征在于,用于生成的计算机指令装置,包括:
用于在非相邻的数据流中识别一个报头段的计算机指令装置;
用于将指示识别出的报头段的报头指针存到数据流缓冲器列表的计算机指令装置;
用于在非相邻数据流中识别出与已识别出的报头段唯一对应的数据段的计算机指令装置;
用于将指示已识别的数据段的数据指针存到数据流缓冲器列表的计算机指令装置。
31.根据权利要求30的用于组合的计算机程序产品,其特征在于,用于非相邻传输的计算机指令装置,包括:
用于为一个数据段生成一个通信栈内部缓冲器列表的计算机指令装置,这个内部缓冲器列表唯一地与该数据段及相应的报头段相关联;
用于在该通信栈中从一个层次将这个内部缓冲器列表发送到更高一层的计算机指令装置,其中一个数据段在该通信栈中和与其对应的报头段不相邻地被传送到更高一层,而不需物理地移动该数据段及报头段,也不拷贝该数据段及上述报头段。
32.根据权利要求31的用于组合的计算机程序产品,其特征在于,生成一个通信栈内部缓冲器列表的计算机指令装置,包括:
用于为了表示一个数据段而生成一个标志计算机指令装置,该标志唯一地与该数据段对应;
用于生成缓冲器列表报头指针的计算机指令装置,该报头指针唯一地指示对应于该报头段的数据段;
用于将标志存于内部缓冲器列表的计算机指令装置;
用于将缓冲区列表报头指针存于内部缓冲器列表的计算机指令装置。
33.根据权利要求29的用于组合的计算机程序产品,其特征在于,通信栈是在一个虚拟电信寻址方式(VTAM)系统中实现的通信栈。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US802598 | 1991-12-05 | ||
US08/802,598 US5983259A (en) | 1997-02-19 | 1997-02-19 | Systems and methods for transmitting and receiving data in connection with a communications stack in a communications system |
US802,598 | 1997-02-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1195937A true CN1195937A (zh) | 1998-10-14 |
CN1089973C CN1089973C (zh) | 2002-08-28 |
Family
ID=25184175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98104273A Expired - Lifetime CN1089973C (zh) | 1997-02-19 | 1998-01-19 | 通信系统中通信栈发送与接收数据的系统与方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5983259A (zh) |
JP (1) | JPH10243051A (zh) |
KR (1) | KR100255503B1 (zh) |
CN (1) | CN1089973C (zh) |
CA (1) | CA2227366A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616661B2 (en) | 2000-02-26 | 2009-11-10 | Samsung Electronics Co., Ltd. | Apparatus for transmitting/receiving a bit stream in a network and method therefor |
CN1534533B (zh) * | 2003-03-26 | 2012-05-16 | 微软公司 | 流的邮件处理流水线 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6278532B1 (en) * | 1996-12-20 | 2001-08-21 | Link2It | Apparatus and method for reception and transmission of information using different protocols |
JP3223355B2 (ja) * | 1998-11-12 | 2001-10-29 | 株式会社エヌ・ティ・ティ・ドコモ | 通信制御方法、通信制御装置、記録媒体およびデータ端末 |
US6324583B1 (en) * | 1998-11-17 | 2001-11-27 | International Business Machines Corp. | Method and apparatus for enabling communication between dissimilar protocol stacks |
US6848003B1 (en) * | 1999-11-09 | 2005-01-25 | International Business Machines Corporation | Multi-node data processing system and communication protocol that route write data utilizing a destination ID obtained from a combined response |
US6791994B1 (en) | 2000-04-19 | 2004-09-14 | Rockwell Collins, Inc. | Method and apparatus for assigning receive slots in a dynamic assignment environment |
US6810022B1 (en) | 2000-08-29 | 2004-10-26 | Rockwell Collins | Full duplex communication slot assignment |
US6885651B1 (en) | 2000-08-29 | 2005-04-26 | Rockwell Collins | Maintaining an adaptive broadcast channel using both transmitter directed and receiver directed broadcasts |
US6781967B1 (en) | 2000-08-29 | 2004-08-24 | Rockwell Collins, Inc. | Scheduling techniques for receiver directed broadcast applications |
US20020078246A1 (en) * | 2000-12-19 | 2002-06-20 | Ing-Simmons Nicholas K. | Method and system for network protocol processing |
EP1379933A4 (en) * | 2001-02-24 | 2007-10-17 | Ibm | STORAGE SYSTEM ACCESS WITH LOW LATENCY |
US7325026B1 (en) | 2001-11-12 | 2008-01-29 | Compuware Corporation | Network communications analysis |
US20030161265A1 (en) * | 2002-02-25 | 2003-08-28 | Jingjun Cao | System for end user monitoring of network service conditions across heterogeneous networks |
JP3891145B2 (ja) | 2003-05-16 | 2007-03-14 | ソニー株式会社 | 無線通信装置、無線通信方法及びプログラム |
US6877730B2 (en) * | 2003-05-29 | 2005-04-12 | Btm Corporation | Powered clamp |
US7529895B2 (en) | 2003-08-22 | 2009-05-05 | International Business Machines Corporation | Method for prefetching non-contiguous data structures |
US7385999B1 (en) | 2003-10-20 | 2008-06-10 | Rockwell Collins, Inc. | Heuristics for combining inter-channel and intra-channel communications in a wireless communications environment |
US7249227B1 (en) * | 2003-12-29 | 2007-07-24 | Network Appliance, Inc. | System and method for zero copy block protocol write operations |
US7403780B2 (en) | 2004-02-19 | 2008-07-22 | Rockwell Collins, Inc. | Hybrid open/closed loop filtering for link quality estimation |
US7826372B1 (en) | 2004-03-26 | 2010-11-02 | Rockwell Collins, Inc. | Network routing process for regulating traffic through advantaged and disadvantaged nodes |
US7382799B1 (en) | 2004-05-18 | 2008-06-03 | Rockwell Collins, Inc. | On-demand broadcast protocol |
US7310380B1 (en) | 2004-05-28 | 2007-12-18 | Rockwell Collins, Inc. | Generic transmission parameter configuration |
US7397810B1 (en) | 2004-06-14 | 2008-07-08 | Rockwell Collins, Inc. | Artery nodes |
US7606171B1 (en) | 2005-07-28 | 2009-10-20 | Rockwell Collins, Inc. | Skeletal node rules for connected dominating set in ad-hoc networks |
JP5768683B2 (ja) * | 2011-11-28 | 2015-08-26 | 富士通株式会社 | 受信データ処理方法、通信装置、及びプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
SE448919B (sv) * | 1983-03-04 | 1987-03-23 | Ibm Svenska Ab | Metod for att overfora informationsenheter i ett datornetsystem, samt datornetsystem for genomforande av metoden |
US4926322A (en) * | 1987-08-03 | 1990-05-15 | Compag Computer Corporation | Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5027269A (en) * | 1989-04-27 | 1991-06-25 | International Business Machines Corporation | Method and apparatus for providing continuous availability of applications in a computer network |
US5269013A (en) * | 1991-03-20 | 1993-12-07 | Digital Equipment Corporation | Adaptive memory management method for coupled memory multiprocessor systems |
US5386536A (en) * | 1991-03-28 | 1995-01-31 | Courts; Howard R. | Apparatus and method for managing memory allocation |
US5278834A (en) * | 1992-05-26 | 1994-01-11 | Alcatel Network Systems, Inc. | Method for implementing a data communication protocol stack |
US5396614A (en) * | 1992-06-25 | 1995-03-07 | Sun Microsystems, Inc. | Method and apparatus for a secure protocol for virtual memory managers that use memory objects |
-
1997
- 1997-02-19 US US08/802,598 patent/US5983259A/en not_active Expired - Lifetime
- 1997-12-23 KR KR1019970072660A patent/KR100255503B1/ko not_active IP Right Cessation
-
1998
- 1998-01-16 CA CA002227366A patent/CA2227366A1/en not_active Abandoned
- 1998-01-19 CN CN98104273A patent/CN1089973C/zh not_active Expired - Lifetime
- 1998-02-09 JP JP10027638A patent/JPH10243051A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7616661B2 (en) | 2000-02-26 | 2009-11-10 | Samsung Electronics Co., Ltd. | Apparatus for transmitting/receiving a bit stream in a network and method therefor |
CN1534533B (zh) * | 2003-03-26 | 2012-05-16 | 微软公司 | 流的邮件处理流水线 |
Also Published As
Publication number | Publication date |
---|---|
KR100255503B1 (ko) | 2000-05-01 |
KR19980070206A (ko) | 1998-10-26 |
US5983259A (en) | 1999-11-09 |
CA2227366A1 (en) | 1998-08-19 |
CN1089973C (zh) | 2002-08-28 |
JPH10243051A (ja) | 1998-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1089973C (zh) | 通信系统中通信栈发送与接收数据的系统与方法 | |
KR100241218B1 (ko) | 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법 | |
US5920703A (en) | Systems and methods for managing the processing of relatively large data objects in a communications stack | |
EP0449500B1 (en) | Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data | |
JP2677744B2 (ja) | 分散メモリ式デジタル計算システム | |
US7768522B2 (en) | Virtualization of graphics resources and thread blocking | |
US20060262124A1 (en) | Virtualization of graphics resources | |
US6393459B1 (en) | Multicomputer with distributed directory and operating system | |
CN1157659C (zh) | 非均匀存储器访问数据处理系统及其通信方法 | |
US7124255B2 (en) | Message based inter-process for high volume data | |
US20060262127A1 (en) | Virtualization of graphics resources | |
CN1216339C (zh) | 显示多模式Web页面的部分的方法和装置 | |
CN1516831A (zh) | 有状态程序实体的工作负荷管理 | |
CN1786927A (zh) | 应用层高速缓存映像知晓和再分配的系统和方法 | |
CN101470623A (zh) | 队列管理方法和队列管理器、队列消息的处理方法和系统 | |
JPH08147234A (ja) | ストリーム処理装置及び方法 | |
US6389478B1 (en) | Efficient non-contiguous I/O vector and strided data transfer in one sided communication on multiprocessor computers | |
CN113296890B (zh) | 一种基于系统调用代理的安卓虚拟化方法及系统 | |
EP4036730A1 (en) | Application data flow graph execution using network-on-chip overlay | |
CN1602469A (zh) | 用在多处理器数据处理系统中的数据处理方法和相应的数据处理系统 | |
US20050060714A1 (en) | Data gather scatter - redistribution machine | |
CN1042979C (zh) | 执行具有多个可调用过程的单线程计算机程序的方法 | |
JPH0728736A (ja) | マルチウィンドウ制御方式 | |
CN1794143A (zh) | 一种基于原语机制的外设网络调用方法 | |
CN1234550A (zh) | 加载/存储协助引擎 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20020828 |
|
CX01 | Expiry of patent term |