專利名稱:客戶請求的外部地址映射的制作方法
技術領域:
本發(fā)明總的涉及通信系統(tǒng),更具體地,涉及與通信系統(tǒng)中的消息傳送有關的尋址。
被連接到網絡的設備常常被分配以地址,諸如由互聯網協議(IP)版本規(guī)定的地址。地址允許把網絡中的信息路由到正確的目的設備。典型地,有“本地”地址和“公共”地址。這些地址例如被使用來把網絡分成私有和公共的域。在私有域中的設備相對自由地與該域中的其它設備相互作用。無論何時私有域中的設備試圖連接到公共域中的設備,或反之亦然,都通常對連接施加多種限制。例如,安全限制可能不允許在私有和公共域之間進行某些類型的發(fā)送或接收。
為了提供限制和允許分離開私有和公共域,典型地使用網關。由網關執(zhí)行的一個分離功能是地址翻譯。多個本地地址被留出用于私有域。網關通常把這些本地地址翻譯成在公共域(例如,互聯網)上有效的一個或幾個公共地址。公共域中的目的地將使用由網關提供的公共地址,并且網關把從目的地接收的信息映射到私有域中適當的設備。這種地址翻譯--通常被稱為網絡地址翻譯(NAT)--的一個原因是因為只有有限數目的可用地址。
在IP版本中,互聯網地址具有特定的格式。這種格式在理論上可被使用來尋址非常大量的設備。然而,由于各種原因不支持大的地址塊。例如,一個公司可以具有被指配給它的一個地址塊,即使它只使用相對較少的指配地址。也有地址塊不被支持用于私有使用,諸如在家庭中使用。因此,對于互聯網上的地址存在地址短缺。雖然NAT改善這個問題,但NAT在處理某些應用時也有問題。
所以,在技術上需要提供用于網絡上通信的適當的地址映射技術。
給出了用于客戶請求的外部地址映射技術。
本發(fā)明的第一方面,從本地主機接收一個用于訪問公共網的請求。確定將被用于訪問公共網的公共地址。相應于本地主機的本地地址被映射成公共地址。把公共地址返回給本地主機。
另外,可以從公共網訪問本地主機或從本地主機訪問公共網??梢詣?chuàng)建具有一個或多個報頭和一個或多個有效負荷區(qū)域的分組。公共地址可被放置在該一個或多個有效負荷區(qū)域中的給定的一個有效負荷區(qū)域內。而且,本地主機可以為該訪問請求一個全局端口,以及該全局端口可為該訪問被映射到本地主機。
本發(fā)明的第二方面,確定一個外出訪問是到本地網還是到公共網。當該外出訪問是到公共網時,則請求訪問公共網。響應于該請求接收公共信息。公共信息被放置在為外出訪問創(chuàng)建的一個或多個分組的有效負荷部分。所述公共信息通常包括至少一個公共端口,但也可包括一個公共地址。所述請求可以提供一個本地端口,這樣,所述公共信息中的一個公共端口通常與所述本地端口相一致。
參照以下的詳細說明和附圖將更全面地了解本發(fā)明以及本發(fā)明的另外的特征和優(yōu)勢。
圖1示例了按照本發(fā)明的一個有利的實施例通信的私有和公共域;圖2為按照本發(fā)明的一個有利的實施例的被用來描述在一個私有域的一個家庭主機與互聯網上的一個主機之間的通信期間報頭地址如何被改變的一個表;圖3示例了按照本發(fā)明的一個有利的實施例的用于登記客戶請求外部地址映射(CREAM)本地主機的一個示例性對象相互作用圖;圖4示例了按照本發(fā)明的一個有利的實施例的用于創(chuàng)建一個CREAM套接字的示例性對象相互作用圖;圖5示例了按照本發(fā)明的一個有利的實施例的用于綁定一個CREAM套接字的示例性對象相互作用圖;圖6示例了按照本發(fā)明的一個有利的實施例的用于連接一個CREAM套接字的示例性對象相互作用圖;圖7示例了按照本發(fā)明的一個有利的實施例的用于接收數據的示例性對象相互作用圖;圖8示例了按照本發(fā)明的一個有利的實施例的用于通過使用send()方法發(fā)送數據的示例性對象相互作用圖;圖9示例了按照本發(fā)明的一個有利的實施例的用于通過使用sendto()方法發(fā)送數據的示例性對象相互作用圖10示例了按照本發(fā)明的一個有利的實施例的用于一個客戶應用的一個使用情形的示例性對象相互作用圖;以及圖11示例了按照本發(fā)明的一個有利的實施例的用于一個服務器應用的一個使用情形的示例性對象相互作用圖。
詳細說明為了便于參考,把詳細說明劃分成題目為引言、示例性設備與方法、以及示例性方法定義三個部分。
引言如上所述,互聯網上存在地址短缺。具體地,互聯網協議的第4版本(IPv4)由于其中所定義的IP地址而促使造成短缺。響應于所述地址短缺,已建立多個解決方案來克服這個短缺。在這些解決方案中,網絡地址翻譯(NAT)或網絡地址端口翻譯(NAPT)技術是最常使用的。
NAT和NAPT允許把私有域內如在家庭“私有”網內使用的地址翻譯成公共域內如在公共互聯網內使用的一個或多個地址。雖然被普遍使用,但NAT和NAPT具有多個缺點,至少有以下的幾點缺點(1)進入的訪問僅僅基于在配置時間上確定的設置值才有可能;和(2)需要穿過私有網與公共互聯網的邊界的這些協議倘若包含尋址信息,那么這些協議需要一個應用層網關(ALG)。
對于NAT和NAPT的適當的替換例是具有解決IPv4地址短缺潛力的、域特定的互聯網協議(RSIP)協議。RSIP的優(yōu)點在于它以動態(tài)方式且缺少ALG地支持進入的訪問,而無需改變應用。RSIP的主要缺點在于,它與當前安裝的應用基礎不兼容,并且缺乏主要聯網有關的供應商的支持。
而且,存在某些協議允許應用去檢測或控制一個地址翻譯設備,由此克服對于ALG的需要或允許進入的訪問或是二者。這樣的協議的例子是允許應用來詢問地址映射的通用即插即放(UPnP)網關技術規(guī)范。這個協議的缺點是所述應用應當知道所述地址翻譯正在執(zhí)行。所以,它適用于新的應用,但不適用于現有的應用。
本發(fā)明提供對于這些問題的其它的解決方案。具體地,本發(fā)明的使用可以不需要ALG。在一個示例性實施例中,本發(fā)明給請求訪問一個公共網的本地主機提供一個公共地址和一個公共端口。訪問可以從本地主機到公共網,從公共網到本地主機,或二者。本地主機然后在填充一個分組的有效負荷時使用公共地址和公共端口。
被用來填充有效負荷的信息來自本地主機上的一個應用。在使用ALG的傳統(tǒng)系統(tǒng)中,本地主機將用本地地址和本地端口填充一個分組的有效負荷。一個ALG然后被用來用公共地址和公共端口來代替有效負荷中的本地地址和本地端口。在本發(fā)明的一個示例性方面中,因為本地主機已具有有效的公共地址和公共端口,通過使用本發(fā)明創(chuàng)建的一個分組的有效負荷將已經包含公共地址和公共端口,因此不需要ALG。
本發(fā)明至少提供以下的好處(1)不用使用ALG而允許進入訪問;(2)創(chuàng)建一個穩(wěn)定的地址翻譯設備,它可以由許多用戶操作的消費電子(CE)操作系統(tǒng)來控制或維護;(3)無需配置;(4)去除對于ALG的需要;(5)現有的應用或協議無需修改也能夠工作;(6)可以使用當前安裝的基礎;(7)與UPnP的合作是可能的;(8)安全性可以增加;以及(9)用于CE設備的示例性實現是輕便的。
現在轉到圖1,一個私有域與一個公共域正在按照本發(fā)明的一個示例性實施例進行通信。所述私有域包括通過本地網絡165進行通信的兩個主機105-1和105-2(也稱作CREAM客戶)以及網關系統(tǒng)135(也稱作CREAM服務器)。在私有域中的每個設備具有一個本地地址170-1,170-2或170-3(也稱作本地地址或地址170)。公共域包括遠端主機150和網關系統(tǒng)135,它們通過公共網160進行通信。在公共域中的每個設備具有一個公共地址180-1,或180-2(也稱作公共地址或地址180)。在本例中,網關系統(tǒng)135具有一個本地地址170-3和一個公共地址180-1。應當指出,網關系統(tǒng)135可以具有多個私有地址170和被指配給它的公共地址180。
本地主機105-1和105-2預期是相似的,為了簡化起見,只具體示出本地主機105-1。本地主機105-1包括一個處理器106和一個存儲器107。存儲器107包括一個應用108、一個操作系統(tǒng)109、一個傳輸控制協議-互聯網協議(TCP/IP)堆棧110、一個CREAM套接字111、一個本地子網列表112和一個端口113。通常,TCP/IP堆棧110和CREAM套接字111是操作系統(tǒng)109的一部分,但為了易于說明,它們被分開顯示。CREAM套接字111被這樣稱呼,以便把它與傳統(tǒng)的套接字區(qū)分開。在示例性實施例中,本發(fā)明的功能性可以在TCP/IP堆棧110的第三層和第四層(未示出)內操作。網關系統(tǒng)135包括被耦合到一個存儲器137的一個處理器136。該存儲器137包括一個CREAM網關138、一個子網列表139、一個地址映射信息140、示出了具有地址、端口、和標識的一個條目145(下面更詳細地描述)、以及一個地址翻譯器146。CREAM網關138被這樣稱呼,以便把它與傳統(tǒng)的網關區(qū)分開。遠端主機150包括一個端口155。
在圖1的例子中,存在一個在本地主機105-1(例如)與網關系統(tǒng)135之間通信的分組120-1。分組120-1包括報頭121-1和有效負荷122-1。報頭121-1包括報頭地址信息123-1,該地址信息可包括源地址125-1、源端口126-1、目的地地址127-1、和目的地端口128-1。有效負荷122-1包括有效負荷地址信息(包括地址129-1和端口130-1)以及數據131-1。分組120-2在通過網關系統(tǒng)135以后被示出。
本公開內容將描述兩組地址信息。一組是報頭地址信息123,另一組是有效負荷地址信息124。本發(fā)明的示例性方面處理這兩組地址以便例如允許使用先存在的應用而無需使用ALG。然而,應當指出,如果需要的話本發(fā)明可以結合ALG使用。
本發(fā)明的一個實施例的一個示例性操作可以通過例子被最佳地描述。將描述用于處理報頭地址信息123的示例性技術的概括說明。同樣地,將描述用于處理有效負荷地址信息124的示例性技術的概括說明。然后,將描述它們的詳細說明。
關于報頭地址信息123,本地主機105-1要與處在私有或公共域中的一個目的地進行通信。例如,本地主機可以把由應用108創(chuàng)建的消息(未示出)傳送到目的地。
所使用的報頭121的類型由所使用的協議來確定。例如,當使用TCP時,一個分組120在報頭121中將包括一個IP報頭和一個TCP報頭。作為另一個例子,當使用用戶數據報協議(UDP)時,分組120在報頭121中將包括一個IP報頭和UDP報頭。所述IP報頭通常包含源IP地址125和目的地IP地址127。TCP和UDP報頭包含源端口126和目的地端口128。作為另一個例子,在封裝安全協議(ESP)的IP安全擴展(IPsec)的情形下,IP報頭后面是一個IPsec報頭。因此,報頭121的精確配置可以根據所使用的協議而變化。為了簡化起見,這里假設,報頭地址信息123如圖1所示,雖然本發(fā)明的技術適用于許多不同的報頭類型和相應的協議。例如,在本地主機105與公共網165之間的訪問可以使用以下的任一項協議請求評注(RFC)959的文件傳送協議(FTP);H.323國際電信聯盟(ITU)標準;會話發(fā)起協議(SIP)RFC 2543;資源保留協議(RSIP)RFC 2205;互聯網協議封裝安全協議(Ipsec-ESP)RFC 2402;kerberos 4;kerberos 5;telnet(遠程登錄)RFC 854;和rlogin(遠程登錄命令)RFC 1282。
不管使用哪種協議,TCP/IP堆棧110通常是創(chuàng)建分組120及其報頭121及用于有效負荷122的空間的處理過程。應用108通常是用信息填充有效負荷122-1或提供被用來填充有效負荷122-1的信息的實體。在后面的說明,將會看到,假設TCP/IP堆棧110創(chuàng)建報頭地址信息123。例如,在下面顯示的對象相互作用圖上,為了清晰起見,不顯示對于創(chuàng)建報頭121的TCP/IP堆棧110的調用,但假設它是發(fā)生的。
假設應用108把一個消息(未示出)發(fā)送到遠端主機150,所以將請求訪問一個公共網160。該應用108用操作系統(tǒng)109、TCP/IP堆棧110和CREAM套接字111來操作,并且創(chuàng)建了分組120-1。應用108提供用來填充有效負荷125-1的信息。有效負荷122-1將在后面描述。分組120-1被傳送到網關系統(tǒng)135。網關系統(tǒng)135接受分組120-1,并把分組120-1送給CREAM網關138。CREAM網關138通常以如下更詳細地描述的且簡單地參照圖2的方式改變源地址125-1和源端口126-1。在本發(fā)明的一個實施例中,源地址125-1將是本地地址170-1并且源端口將是相應于端口113的一個號碼,其中該號碼通過與CREAM網關138協商而確定。在分組120-1中的目的地地址127-1將是公共地址180-2并且目的地端口通常將是相應于端口155的一個號碼。
CREAM網關138用分組120-2中的源地址125-2代替源地址125-1。源地址125-2通常是公共地址180-1。源端口126-1通常不改變并且作為源端口126-2輸出。同樣地,標號126,127,128,129,130,131通常在分組120-1與分組120-2之間保持不變。CREAM網關138因此通過把“本地”源地址125-1(例如本地地址170-1)修改為一個“公共”源地址125-2(例如公共地址180-1)而用一個公共地址180代替一個本地地址170。
CREAM網關138保持被用來把本地源地址125-1映射為公共源地址125-2的一個地址映射140。該映射包括地址、端口、以及標識,如參考數字145所示,并將在下面進行詳細說明。通常,本地源端口126-1和公共源端口126-2在本發(fā)明的示例性方面是一樣的。
所述地址翻譯器146由CREAM網關138使用以便將一個本地地址170翻譯成一個公共地址180。所述子網列表139被用來決定是否有報頭地址信息123應當被改變以及被用來定義哪些地址是本地地址和哪些是公共地址。例如,如果本地主機105-1正在把分組120-1發(fā)送給本地主機105-2,則網關系統(tǒng)135不需要執(zhí)行地址映射,因為報頭地址信息123將包含本地地址170。通常,在本地主機105-1與105-2之間一個分組120-1的通信中不涉及到網關系統(tǒng)135,但網關系統(tǒng)135可以具有一個路由器(未示出),如果本地主機105-1和本地主機105-2是在不同的子網絡中的話。該路由器在子網絡之間通信。應當指出,本地主機105通過各種方法調用來請求地址映射,正如下面詳細地描述的。子網列表112可以被本地主機105-1使用來確定地址翻譯是否必要。在本公開內容中,地址翻譯被認為按照諸如地址映射140的地址映射來改變地址的處理。
關于有效負荷地址信息124,在傳統(tǒng)的系統(tǒng)中,地址129與端口130可以是本地地址170與本地端口。如果是這種情形,則一個ALG典型地被用作為網關系統(tǒng)135的一部分,以便創(chuàng)建地址映射和用一個確定的地址與端口代替地址129和端口30。ALG工作的方式如下(1)如果地址129-1是一個本地地址或者端口130-1是一個本地端口,則ALG創(chuàng)建映射,以用存在于公共域中的一個地址或端口代替地址129-1或端口130-1;以及(2)如果地址129-1是一個公共地址或者端口130-1是一個在公共域中有效的端口,則ALG什么也不做。ALG通常創(chuàng)建NAT規(guī)則,以便形成映射。這意味著,一個ALG(圖1上未示出),作為一個傳統(tǒng)的網關系統(tǒng)135的一部分,對于所使用的每個協議是必需的。如前所述,這是低效率的并且意味著無論何時一個新的協議被開發(fā)或一個老的協議被改變時,應當創(chuàng)建新的ALG。
相比,在本發(fā)明的示例性方面,CREAM網關138將確定在公共域中一個適當的公共地址180和一個適當的公共端口(例如端口155)。CREAM網關當被應用108請求時,將確定適當的公共地址180和適當的端口,并把這些給予應用108。所以該應用將創(chuàng)建用來用不必修改的地址129-1和端口130-1來填充(populate)有效負荷地址信息124的信息。CREAM網關138把適當的公共地址180與適當的公共端口的映射保存在地址映射140中。應用108的當前安裝基礎適合用于本發(fā)明,并且應用108不需要改變。
應當指出,網關系統(tǒng)135與本地主機105-1可以被組合到一個單個計算機系統(tǒng)中。事實上,本地主機105-1、網關系統(tǒng)135和遠端主機150可被全部組合到一個單個計算機系統(tǒng)中。本地主機105-1和遠端主機150可以宿有客戶應用、服務器應用和點對點(p2p)應用。不管哪種應用,重要的是,本地主機與遠端主機可以發(fā)起它們之間的通信。
還應當指出,可以有互相連接在一起和甚至聯網的多個網絡。例如,可以有通過一個CREAM網關2與一個私有網絡1分開的一個私有網絡2。CREAM網關1把諸如互聯網的一個公共網與私有網絡1分離開。通過使用這種特定的網絡布局,如果在私有網絡2中的一個主機想要與互聯網中的一個主機通信,則在私有網絡2內向CREAM網關2發(fā)出一個外出訪問請求。通過查看目的地地址,CREAM網關2知道應當進行附加地址翻譯,所以在私有網絡1中在CREAM網關1處也執(zhí)行一個外出訪問請求。這樣,可得到對于聯網的“私有”網絡的支持。應當指出,在一個CREAM使能的私有網絡在非CREAM使能的私有網絡內被聯網的情形下,該非CREAM使能的私有網絡保持對地址翻譯功能性負責,例如,對于穿過在非CREAM使能的私有網絡與公共網之間的邊界的協議使用ALG。
應用108可以是創(chuàng)建被放置在一個有效負荷122-1中的具有地址129-1或端口130-1或二者的數據的任何應用。例如,應用108可以是一個或多個以下的應用一個對等的應用;一個需要保留地址映射的應用;一個remote shell(遠程外殼)(RSH)應用;一個X視窗系統(tǒng)應用;以及一個X-term應用。
這里描述的本發(fā)明可被實施為包括一個機器可讀介質的產品的一部分,例如作為存儲器107或137的一部分,包含在實施本發(fā)明的實施例時執(zhí)行的一個或多個程序。例如,所述機器可讀介質可以包含被配置來執(zhí)行CREAM套接字111或CREAM網關138或二者的步驟的程序。機器可讀介質例如可以是諸如硬盤驅動、光盤或磁盤、電子存儲器或其它存儲裝置的可記錄介質。
現在轉到圖2,圖上一個表格被示出并將被使用來描述在私有域中的一個家庭主機與互聯網上的一個主機之間通信期間報頭地址信息123如何改變。在圖2的例子中,本地主機105-1是一個家庭主機以及遠端主機150是互聯網上的一個主機。第二行顯示了在家庭主機處發(fā)起的、并在互聯網上的主機處結束的一個通信。在該通信中,家庭主機的本地IP地址(例如由圖1的CREAM網關138)被改變成網關的一個公共IP地址。源端口保持不變,因為它在協商期間有利地一次被確定。源端口可以改變,如果需要的話。第三行顯示在互聯網上的主機處發(fā)起的并且在家庭主機處結束的通信。在該通信中,目的地IP地址(例如由圖1的CREAM網關138)被改變成家庭主機的本地地址。目的地端口保持不變。
圖3至11中的對象相互作用圖描述示例性技術來提供適當的有效負荷地址信息124和用于提供和改變(當必要時)報頭地址信息123。圖3至11的對象相互作用圖上許多方法調用在傳統(tǒng)的系統(tǒng)中已經被定義,并且本公開內容指出對于被使用來實施本發(fā)明的示例性方面的調用的特定變化。從應用108的觀點,應用108可以只執(zhí)行它當前執(zhí)行的方法調用,并且本發(fā)明的示例性方面將自動確定適當的公共地址和公共端口,這樣應用108將已經具有公共地址和公共端口并且將不需要ALG。
在可以著手進行地址翻譯使用之前,對于一個CREAM客戶而言在CREAM網關138處登記是有利的。在一個示例性實施例中,一個CREAM客戶105必須登記一次;然而,登記被綁定到一定的時間。這個登記時間被CREAM網關138監(jiān)視并在CREAM客戶105處成功輪詢后由網關138延伸。最大登記時間的值在網關處被配置。
圖3示出了用于通過CREAM使能的操作系統(tǒng)(OS)109的登記CREAM客戶105的一個對象相互作用圖。在CREAM客戶105啟動期間,OS 109在CREAM網關138處登記本身作為CREAM客戶105(序列1)。CREAM網關138確認該登記(序列2)。在確認期間,CREAM網關138包括本地子網列表112。這個信息可被CREAM客戶105使用來決定是否需要地址翻譯。在成功登記后,CREAM客戶105能夠從網關138租用地址和端口映射。
在規(guī)則的時間間隔上,網關138經由OS 109輪詢CREAM客戶105以用于登記延長(序列3)。在這個延長登記期間,倘若在本地子網絡中作出改變,則網關105通過它的OS 109可以包括一個新的本地子網列表112。倘若CREAM客戶沒有對該登記進行響應,則撤消用于該CREAM客戶的租用的地址和端口映射。倘若CREAM客戶105經由OS 109在需要的時間內響應(序列4)該登記,則延長租用的地址和端口映射。
當CREAM客戶105的OS 109關閉時,CREAM客戶105通過使用OS 109而在網關處撤消登記(序列5)。網關138確認撤消登記請求(序列6)。
圖4示出了用于創(chuàng)建CREAM套接字111的示例性對象相互作用圖。在登記的CREAM客戶105處運行的應用108通過使用OS 109創(chuàng)建一個CREAM套接字111(序列1)。OS 109創(chuàng)建CREAM套接字111的一個新的實例(序列2)并把句柄(例如它指向CREAM套接字111)返回到應用109。應當指出,還沒有執(zhí)行通信。
圖5示出了用于綁定一個CREAM套接字111的示例性對象相互作用圖。為了把一個CREAM套接字111與某個接收機端口相聯系,應用108執(zhí)行在登記的CREAM客戶105的CREAM套接字111(序列1)處的綁定。在綁定調用期間,CREAM套接字111將在CREAM網關138處執(zhí)行一個INBOUND_ACCESS_REQUEST(進入訪問請求)請求(序列2)。按照INBOUND_ACCESS_CONFIRM(進入訪問確認)(序列3),綁定調用將失敗或成功。
應當指出,INBOUND_ACCESS_CONFIRM返還在公共域中使用的公共地址和要由應用108使用的端口。所以,應用108具有一個適當的公共地址和端口,并將用有效的公共地址和端口填充它的將被轉換成有效負荷122信息的消息。因此,不需要ALG來分析有效負荷122以用公共尋址信息來代替本地尋址信息。
在使用CREAM套接字111后,通過使用任選的關斷調用(序列4)和通常強制性的關閉調用(序列5),CREAM套接字111的工作期限結束。在關閉調用期間,通過使用FREE_LEASE_REQUEST(釋放租用請求),套接字將釋放在CREAM網關138處的所有使用的資源(序列6)。CREAM網關138通過使用FREE_LEASE_CONFIRM(釋放租用確認)進行響應(序列7)。
圖6示例了用于連接到一個CREAM套接字111的示例性對象相互作用圖。為了為CREAM套接字111定義一個端點,在登記的CREAM客戶105處運行的應用108調用在CREAM套接字111處的連接功能(序列1)。在這個連接調用期間,CREAM套接字111通過使用以前從CREAM網關138接收的本地子網列表112,來檢驗目的地地址是在網關內(即,一個本地地址)還是在網關外(即,一個公共地址)。如果目的地地址是在網關外面(即,一個公共地址),則執(zhí)行OUTBOUND_ACCESS_REQUEST(外出訪問請求)(序列2)。這個請求的結果從CREAM網關138被接收(序列3)。如果所有的請求是成功的,則連接調用將成功返回。應當指出,倘若目的地地址是在網關內(即目的地地址為一個本地地址),或CREAM套接字111已被綁定,則不向CREAM網關138作出OUTBOUND_ACCESS_REQUEST。倘若CREAM套接字111已被綁定并且目的地地址是本地的,則請求的地址和端口映射可以被釋放。
在CREAM套接字111關閉期間(序列5),CREAM網關138被請求釋放租用的地址和端口映射(序列6);這將由CREAM網關138確認(序列7)。
當接收數據時,可以由應用作出已定義的多個調用。例如,一個應用可以作出listen(偵聽)(),accept(接受)(),recv()和recvfrom()調用。對于listen()的執(zhí)行,當前沒有預見到改變。對于accept()的執(zhí)行,當前沒有預見到改變。雖然recv()只能被用在一個被連接的套接字上,但recv()和recvfrom()典型地只在套接字被連接,或被綁定,或實現二者時才能工作。所以,一個CREAM租用通??偸强傻玫降?。
圖7示例了用于接收數據的一個示例性對象相互作用圖。在公共互聯網內的一個發(fā)送者(本例中的一個遠端主機150)發(fā)送數據到CREAM網關138的租用地址和端口(序列1)。該數據作為一個分組120-2被發(fā)送。CREAM網關138按照包括地址與端口映射的一個租約來執(zhí)行地址映射或端口映射或二者(序列2)。如以上參照圖1和2描述的地址與端口映射把公共地址與公共端口轉換成在報頭地址信息124中的本地地址與端口。這種映射的分組120-1通過私有網絡165被發(fā)送(序列3)。CREAM套接字111接收分組120-1,并把接收的分組120-1加到它的緩沖器中(序列4)。應用108在某個時間點從該緩沖器讀出這個分組120-1(序列5)。在讀出后,分組120-1從緩沖器中被去除(序列6)。
通常,send()方法只能在一個被連接的CREAM套接字111處被使用。當把數據發(fā)送到一個公共IP地址和公共端口時,已執(zhí)行需要的CREAM租約。CREAM租約包括在應用108與遠端主機150之間的一個映射。這個映射通常被存儲在圖1的地址映射中。所以,CREAM客戶105的OS 109只必須發(fā)送分組120-1到CREAM網關138。CREAM網關138用租用的地址與端口(即,公共地址與公共端口)來替代本地地址或本地端口或二者,并把包含修訂的報頭地址信息123的分組120-2發(fā)送到打算中的接收者。
圖8示例了用于通過使用send()方法發(fā)送數據的一個示例性對象相互作用圖。應用108發(fā)送數據到位于公共互聯網內的接收者(例如,遠端主機150)(序列1)。數據的TCP/UDP報頭包含發(fā)送者(例如在源地址125-1處)的本地地址和接收者(例如在目的地地址127-1處)的公共地址。分組125-1通過使用缺省路由在本地網絡165上被發(fā)送(序列2)。當CREAM網關138接收分組125-1時,本地尋址信息被替換為租用的地址或端口映射(序列3)并且剩余的分組125-2被通過互聯網發(fā)送(序列4)。租用的地址或端口映射通常把源地址125-1轉換為網關135的互聯網地址(例如,公共地址180-1)并且端口通常保持相同,正如以上參照圖2所描述的。
Sendto()只能在使用一個無連接協議(例如,UDP)時被使用。倘若數據要被發(fā)送到一個本地IP地址,通常不使用地址映射。倘若數據要被發(fā)送到一個公共IP地址,如果一個CREAM租約還沒有得到的話,將得到一個CREAM租約。應當指出,這意味著當使用sendto()時,應當對IP地址的定位執(zhí)行檢驗,且與對該套接字的地址映射的以前使用無關地,根據那個檢驗來使用或者不使用地址映射。
圖9示例了用于通過使用sendto()方法發(fā)送數據的一個示例性對象相互作用圖。應用108發(fā)送數據到一個特定的端口和IP地址(序列1)。首先按照本地子網列表112檢驗目的地地址127-1是本地的還是公共的。倘若目的地地址127-1是公共的并且還沒有進行租用(例如,一個OUTBOUND_ACCESS_REQUEST或INBOUND_ACCESS_REQUEST),則從CREAM網關138得到一個租約(序列2和響應序列3)。用本地地址信息創(chuàng)建一個分組,并且把該分組發(fā)送到CREAM網關138(序列4)。CREAM網關138用租用的地址和端口組合替換本地地址信息或端口信息或二者(序列5),并且通過公共網發(fā)送分組120-2(序列6)。
在關閉套接字后(序列7),得到的CREAM租約被釋放(序列8和確認序列9)。
本發(fā)明的一個優(yōu)點在于,有可能把尋址信息包括在分組的有效負荷內。然而,有某些考慮。為了得到正確的尋址信息,應用108應當在正確的時間點上調用正確的功能。而且,對于這些功能的正確的行為應當由OS 109進行實施。
諸如getsockname(),gethostname(),getaddrinfo()的返回尋址信息的所有函數,應當返回用于本地CREAM客戶105的IP地址和端口的以下值(1)倘若CREAM套接字111被連接到具有公共IP地址的對等體,則CREAM客戶105的IP地址是租用的IP地址。端口號是租用的端口號。
(2)倘若CREAM套接字111被連接到具有私有IP地址的對等體,則CREAM客戶105的IP地址是它本身的本地IP地址。端口號是本地端口號。
(3)倘若是一個未連接的套接字,則不應當返回有效的IP地址。(有效的IP地址是私有的或租用的IP地址,但取決于所述對等體。)在這種情形下,返回值零。
由于IP地址通常只能按照對等體的IP地址來確定,應用應當知道,當IP地址被包括在有效負荷內時,應當從被綁定到包含有效負荷的分組的接收者的一個CREAM套接字111來確定CREAM客戶105的IP地址。
按照本發(fā)明的地址映射的用戶是應用108。應用108例如可以是一個服務器應用或一個CREAM客戶應用。由于家庭通信的性質,主要用戶通常是其服務器應用位于互聯網內的一個CREAM客戶應用。除了CREAM客戶應用以外,本發(fā)明還可被使用于其CREAM客戶應用位于互聯網內的服務器應用。然而,這最后一類用戶可能受到某些限制。
圖10示例了對于一個CREAM客戶應用的一種使用情形的一個示例性對象相互作用圖。在這個圖上,給出當一個CREAM客戶應用108通過使用這里給出的技術來穿過CREAM網關138(即,從私有域進到公共域)的邊界從而連接到一個服務器應用(例如,在公共主機150)時的一個相互作用例子。在本例中,CREAM客戶應用108位于一個私有網絡165內,而服務器應用位于互聯網內(例如,一個公共網160)。
在CREAM客戶105的OS 109開始工作期間,CREAM客戶105把自己登記在CREAM網關138(序列1和2)。
為了與公共主機150上的服務器應用進行通信,應用108創(chuàng)建一個CREAM套接字111(序列3)。在創(chuàng)建CREAM套接字111之后,應用108使用CREAM套接字111連接到服務器(序列4)。應用108不明顯地綁定CREAM套接字111,因為它可以從任何端口到遠端主機150處的服務器應用進行通信。在CREAM套接字111實際上可以連接到遠端主機150之前,首先必須檢驗服務器應用位于私有網絡165內還是位于互聯網內(例如公共網160)。在本例中,這個檢驗是通過使用本地子網列表112執(zhí)行的。對于本例,目的地IP地址是公共的,所以執(zhí)行OUTBOUND_ACCESS_REQUEST(序列5和6)。在成功執(zhí)行OUTBOUND_ACCESS_REQUEST之后,現在可以執(zhí)行與connect()方法有關的缺省行為。倘若應用108請求IP地址和在源側創(chuàng)建的CREAM套接字111的端口,則返回租用的IP地址和端口號。通常,租用的IP地址和端口號不同于本地IP地址,并且甚至可能不同于本地使用的端口。
在規(guī)則的時間間隔上,CREAM網關138可以通過執(zhí)行EXTEND_REGISTRATION_INDICATION(延長登記指示)來延長租用時間(序列7),這觸發(fā)了來自CREAM客戶105的EXTEND_REGISTRATION_CONFIRM(延長登記確認)(序列8)。
當應用108發(fā)送數據到服務器時(序列9),CREAM套接字111通過使用在IP和TCP/UDP報頭內的本地尋址信息把該數據發(fā)送到服務器應用(序列10)。CREAM網關138截取分組并且替換在IP與TCP/UDP報頭內的本地尋址信息(例如報頭地址信息123)(序列11)以及把它發(fā)送到公共遠端主機150上的服務器應用(序列12)。
當應用108關閉CREAM套接字111時(序列13)或甚至當OS 109關閉CREAM套接字111時,CREAM套接字111釋放租用的IP地址和端口的組合(序列14和15)。
當CREAM客戶105的OS 109被關閉時,CREAM客戶105在CREAM網關138處撤消登記(序列16和17)。
圖11示例了對于一個服務器應用108的一種使用情形的一個示例性對象相互作用圖。在這個圖上,給出當服務器應用108打開偵聽端口并且一個家庭客戶應用105-2和一個公共客戶應用150連接到服務器應用108時的一個相互作用例子。在本例中,服務器應用108位于私有網絡165內,并且是本地主機105-1的一部分,而一個客戶應用(作為公共主機150的一部分)位于互聯網內(例如,公共網160)并且一個客戶應用(作為本地主機105-2的一部分)位于私有網絡165內。為了簡化起見,作為公共主機150的一部分的客戶應用將被稱為“客戶應用150”。同樣地,作為本地主機105-2的一部分的客戶應用將被稱為“客戶應用105-2”。服務器應用108使用這里給出的技術來與位于互聯網內的客戶應用150通信。
在OS 109開始工作時,CREAM客戶105-1在CREAM網關138處登記(序列1和2)。
為了接收進入的通信,服務器應用108通常創(chuàng)建一個CREAM套接字111(序列3)。在創(chuàng)建CREAM套接字111之后,服務器應用108使用CREAM套接字111在特定的端口處偵聽進入的消息,所以,服務器應用108把CREAM套接字111綁定到一個端口上(序列4)。由于CREAM套接字111可能不能確定這個綁定對于內部端口號、外部端口號或二者是否應當發(fā)生,所CREAM套接字111被綁定到內部和外部端口。為了把CREAM套接字111綁定到外部端口,由CREAM客戶在CREAM網關138處租用一個端口與地址的組合(序列5和6)。用作端口租用的端口號與在綁定請求內使用的端口號相同,這樣,已知的端口約定(convention)沒有被打破。倘若沒有定義端口號,CREAM網關138指配一個端口號。內部端口和外部端口的端口號通常保持相同,這樣,潛在的端口映射沖突被排除。
在規(guī)則的時間間隔上,CREAM網關138可以通過執(zhí)行EXTEND_REGISTRATION_INDICATION而延長租用時間(序列7)。這從CREAM客戶105-1觸發(fā)EXTEND_REGISTRATION_CONFIRM(序列8)。應用108在偵聽狀態(tài)下設置CREAM套接字111(序列9)。
本地家庭客戶應用105-2發(fā)送數據到服務器應用108(序列10)。由于這個通信是本地的,不執(zhí)行地址或端口映射。CREAM套接字111把分組加到它的緩沖器中(序列11)。服務器應用108使用accept()方法來從本地主機105-2接受與本地客戶應用的連接(序列12)。服務器應用108通過使用recv()調用讀出它的隊列(序列13),并且CREAM套接字111從它的緩沖器中去除所述分組(序列14)并把分組給予服務器應用108。
在公共互聯網內的一個客戶應用150發(fā)送數據到服務器應用108(序列15)。被包括在IP和TCP/UDP報頭內的租用的地址和端口組合通過CREAM網關138被映射成本地地址和端口組合(序列16),并且把分組傳送到本地服務器應用108(序列17)。CREAM套接字111把重新映射的分組加到其緩沖器中(序列18)。服務器應用108使用accept()方法來從公共主機150接受與公共客戶應用的連接(序列19)。服務器應用通過調用recv()從隊列中讀出數據(序列20),以及CREAM套接字111從它的緩沖器中去除分組(序列21),以便把它傳送到服務器應用108。
當OS 109被關閉時,CREAM客戶105-1在CREAM網關138處撤消登記(序列22和23)。
還有其它的其中本發(fā)明的技術是有利的示例性實例。下面描述幾個實例。
本地主機登記可以如下地執(zhí)行。在任何CREAM客戶105的OS109開始工作期間,CREAM客戶105通常在CREAM網關138處登記。CREAM網關138或者接受登記,或者表示CREAM客戶105已登記。
在第一種情形下(例如,登記被接受),對于CREAM客戶105還沒有進行租用。在后一種情形下(例如,CREAM客戶105已登記),對于與CREAM客戶105有關的當前的租約沒有加以改變。在這兩種情形下,CREAM客戶105被登記。一旦CREAM客戶105的OS 109不知道任何已存在的租約,CREAM客戶105將先撤消登記以便在CREAM客戶105再次登記之前釋放資源。
在本發(fā)明的一個示例性方面,在登記確認期間返回表示本地地址范圍的一個表格。這個表格也被包括在已登記的指示期間。
本地主機撤消登記或關閉的例子如下。在OS 109關閉期間,CREAM客戶105在CREAM網關138處撤消登記。CREAM網關138或者確認CREAM客戶105被撤消登記或者表示CREAM客戶105沒有登記。在兩種情形下,在CREAM網關138處該CREAM客戶105不再使用資源。
一個偵聽端口可被如下創(chuàng)建。CREAM客戶105在CREAM網關138處執(zhí)行INBOUND_ACCESS_REQUEST來租用一個地址與端口組合用于進入的訪問。本地端口號與租用的端口號由CREAM網關138假定相等,雖然不一定是這種情形。
CREAM客戶105可以指定要被租用的端口號(例如,用于http服務器的端口80),在這種情形下,CREAM網關138或者確認該租用或者拒絕該租用。
CREAM客戶105也可以不指定端口號。在這種情形下,CREAM網關138將指定端口號并確認該租用。倘若不能得到相同的本地端口號,則CREAM客戶105應當釋放租用,并重新嘗試租用一個進入的訪問端口。
由于端口租用的性質,在TCP超時時間后用于租用的端口將再次可得,這有利于避免TCP連接的不想要的重新連接。
創(chuàng)建一個發(fā)送端口的例子如下。一個CREAM本地主機105在CREAM網關138處執(zhí)行OUTBOUND_ACCESS_REQUEST,以便租用地址與端口組合用于外出訪問。CREAM本地主機105可以指定要被租用的端口號,在這種情形下,CREAM網關138或者確認該租約或者拒絕該租約。
CREAM本地主機105也可以不指定端口號;在這種情形下,CREAM網關138將指定端口號并確認該租用。
由于端口租用的性質,在TCP超時時間后用于租用的端口將再次可得,并且這有利于避免TCP連接的不想要的重新連接。
接著是解析對等體的例子。CREAM本地主機105或者使用被包括在登記請求內的表格或者使用RESOLVE_PEER_REQUEST(解析對等體請求)函數或二者來決定對等體是位于互聯網內還是位于本地網絡內。
接著是釋放選擇的資源的例子。登記的CREAM本地主機105可請求CREAM網關138通過定義與映射有關的租用的地址或端口而釋放一個或多個地址或端口映射。另外,在撤消登記確認后釋放所有的資源。
示例性方法定義下面使用的定義如下主機具有IP地址的任何設備CREAM本地主機 支持CREAM協議的主機CREAM網關 支持CREAM協議的網關遠端主機位于公共互聯網中的主機本地主機位于私有網中的主機;具有一個私有域內的IP地址本地地址在私有域內的一個IP地址公共地址在互聯網的公共域內的一個IP地址下面使用的字首組合詞和縮略詞如下CREAM 客戶請求的外部地址映射ALG 應用級別網關NAT 網絡地址翻譯NAPT網絡地址端口翻譯一般符號慣例如下。對于句法使用下面的符號慣例。每個參數按以下的方式被定義。
一般分組描述
通過使用符號慣例,分組部分a包含以下句法Length1是一個固定的預定義長度(例如,0x02)。Value1是一個固定的預定義值(例如,0x01)。名稱Name1取決于分組內容(例如,My1stVariable)。通過使用這個信息,頭兩個字節(jié)字節(jié)0和1包含具有固定值(0x01)和固定長度(0x02)的變量My1stVariable。
第一個符號的例子
Length2是一個固定的預定義長度(例如,0x04)。Value2是一個變量(例如,字符串中的字符數目),正如用括號表示的。然而,該值應當遵從它的句法和語義。名稱Name2取決于分組的內容(例如,LengthOfName)。通過使用這個信息,字節(jié)2到5包含具有固定長度(0x04)的值為#CharsString的變量LengthOfName。
第二個符號的例子
Value2是一個預定義變量的值,在這種情形下是變量Name2的值(定義以前被稱為“LengthOfName”的字符串的長度),這由括號表示。Value3是值,并取決于長度(例如,具有Value2個字符的字符串)。Name3代表參數的名稱。名稱Name3取決于分組的內容(例如,Local hostName)。通過使用這個信息,字節(jié)6到#CharsString+5包含#CharsString字符長的代表變量LocalhostName的字符串。
第三個符號的例子
Parameter1是一個預定義參數(例如,Version(版本))。這個參數具有它本身的句法和語義。在百分數符號之間的參數表示這個參數是強制的。通過使用這個信息,變量Local hostName后面跟隨參數Version。
從獲得的上述結果中已經發(fā)現,在樣本1至4中的任意一個中,每組中的臨界電流值都具有大約10A的變化。從而,已經發(fā)現,在通過在恒定條件下在第一滾壓和第一燒結之間保持超導線所獲得的超導線的每個性能中,發(fā)生變化的可能性很小。進而,由于樣本3和4中的臨界電流值高于樣本2中,所以已經發(fā)現通過在減壓環(huán)境下在第一滾壓和第一燒結之間保持線可以獲得高性能的超導線。而且,由于樣本3和4具有比樣本1和2更小的厚度,并且它們也在厚度上具有較小的變化,所以已經發(fā)現,通過在減壓環(huán)境下在第一滾壓和第一燒結之間保持線,空氣中的CO2、H2O、O2等侵入到線中的可能性很小,并且去除含在線中的殘留物。
第二例子在本例子中,對第一滾壓(步驟S8)之后在真空保持(步驟S9)中線的保持時間的效果進行檢查。特別地,超導線1通過幾乎與第一例子中相同的方法獲得。樣本5的多芯線1c首先受到第一滾壓(步驟S8),此后在大氣壓下在室溫中保持一天(步驟S9)。樣本6至9的多芯線1c首先受到第一滾壓(步驟S8),此后在0.01Mpa的環(huán)境中在室溫下分別保持一天、三天、十天和一個月(步驟S9)。對超導線1的相應樣本的厚度(毫米)進行測量。表2示出了結果。在表2中,樣本6為在0.01Mpa環(huán)境中保持了一天的超導線,樣本7為在0.01Mpa環(huán)境中保持了三天的超導線,樣本8為在<p>
Version包含這個CREAM協議的版本。當前,僅僅描述了版本1??偟陌姹綯LV的長度是固定的,并且應當對于CREAM協議的所有版本保持不變。
Address(0x01)地址字段包含尋址信息。以下的地址類型得到支持IPv4
IPv4 netmask(網絡掩碼)
IPv6
如表3中所示,關于樣本10,A組和B組中的臨界電流值都是80至90A。關于樣本11,A組和B組中的臨界電流值都是80至90A。關于樣本12,A組和B組中的臨界電流值都是85至90A。關于樣本13,A組和B組中的臨界電流值都是85至90A。
從上述獲得的結果來看,由于樣本12和13具有比樣本10和11更高的臨界電流值,并且它們也具有臨界電流值的較小改變,所以已經發(fā)現,通過在不低于80℃的減壓環(huán)境下在第一滾壓和第一燒結之間保持線可以獲得具有較高性能和一致性能的超導線。
應當理解的是,此處公開的實施例和例子在所有方面都是為了說明,而不是為了進行限制。本發(fā)明的范圍不是由上述說明,而是由所附權利要求進行限制,并且期望包括與權利要求相等效的意義和范圍中的所有修改。
相應地,作為檢查來自批處理程序的數據集的結果,本發(fā)明人已經發(fā)現在g/tm,lm/tm,lc/tm的三維參數空間中存在ψ的單個最大值。
在表1中列出了基于ψ的最大值的最優(yōu)尺寸關系。
表格1
表格中與每一項相關的誤差估計了在所示值與參數最大實際值之間的誤差。誤差是輸出數據中數值噪聲的結果,其是由模型的稀薄(thinner)區(qū)域中的非理想元件形狀產生的。應該注意,當g和lc從它們最優(yōu)選的值增加時,ψ降低得比這些量降低時更緩慢。于是,為了確保設計中ψ的良好值,最好選擇大的g和lc。
實際中,參數比值被包括在一定的范圍內,其可能是由于生產公差所引起的,其優(yōu)選地大致對應于發(fā)電機效率的+/-10%變化。
當根據表格1中所規(guī)定的最優(yōu)選尺寸關系選擇參數時,圖12中示出了磁芯設計的磁場圖案。
參數比值tm/lc對于獲得高效率具有很高的重要性,因為其與磁體幾何相關。根據本發(fā)明,參數比值tm/lc的范圍從0.40至0.55,優(yōu)選地從0.43至0.53,并且最優(yōu)選地為大約0.48。
參數比值lm/lc對于獲得高效率具有很高的重要性,因為其也與磁體幾何相關。根據本發(fā)明,參數比值lm/lc的范圍優(yōu)選地從0.1至0.24,并且最優(yōu)選地為大約0.17。
當磁體閉合在一起時,即具有低的參數值g,則大多數磁力線直<p>
消息類型TLV的長度是固定的,并且應當在所有的CREAM版本上保持不變。
REGISTRATION_REQUEST說明這個消息被使用來在CREAM網關處登記一個CREAM本地主機。
句法
語義如下Version見以上的版本信息。
MessageType消息類型應當表示REGISTRATION_REQUEST消息。
Length分組的總的剩余長度對于這個版本等于0x00。
為了登記,CREAM網關應當知道所使用的CREAM協議的類型和消息的內容(REGISTRATION_REQUEST)。當本地主機未登記時,一個CREAM本地主機只被允許發(fā)送REGISTRATION_REQUEST。
BehaviorCREAM網關應當用一個REGISTRATION_CONFIRM或一個ERROR_INDICATION消息進行響應。
REGISTRATION_CONFIRM說明這個消息被使用來確認一個CREAM本地主機的登記。
句法
語義Version定義CREAM協議的版本。
MessageType定義消息類型;指定的消息應當是REGISTRATION_CONFIRM。
Length定義這個消息的總的剩余長度。
Local host ID定義作為由CREAM網關指配的本地主機ID。這個值應當在CREAM本地主機與CREAM網關之間的進一步通信中使用。
Local Subnet List定義不用地址翻譯而可達到的本地子網絡。對于示例的定義,參閱以上內容。
通過使用REGISTRATION_CONFIRM消息,CREAM網關確認CREAM本地主機的REGISTRATION_REQUEST。在該消息內,一個本地主機ID被指配為應當用于在CREAM網關與CREAM本地主機之間的進一步的通信中。
在所述消息內也定義了一個本地子網列表。CREAM本地主機應使用該列表來決定是否應當做出一個進入/外出訪問請求用于通信。在該列表內至少包括CREAM本地主機的本地子網絡。
Behavior
通過接收這個消息,本地主機應當發(fā)送一個撤消登記請求,倘若它想要撤消作為CREAM本地主機的登記的話。而且,在接收這個消息后,可以預期有周期的輪詢來檢驗CREAM本地主機的工作期限。
EXTEND_REGISTRATION_INDICATION說明這個消息被使用來輪詢登記的CREAM本地主機的工作期限。而且,本地子網列表的更新可被包括在該消息內。
句法
語義Version定義CREAM協議的版本。
MessageType定義這個消息的消息類型,應當是EXTEND_REGISTRATION_INDICATION。
Length這個消息的總的剩余長度,以字節(jié)計。
Local host ID包含本地主機ID,應當把與以前指配的本地主機ID相同的值給這個CREAM本地主機。
Local Subnet List任選的參數。如果被包括,則包含不需要地址翻譯的新的本地子網列表。如果不包括,則保持老的表存在。
Behavior倘若本地主機ID與登記期間接收的相同并且本地主機仍舊被登記,則CREAM本地主機應當用一個EXTEND_REGISTRATION_RESPONSE消息來響應這個消息。
倘若一個本地子網列表參數被包括,這個新的列表在接收時刻變?yōu)榛顒?。然而,與附加的本地子網絡內的主機的已開始通信保持被翻譯的地址。應當指出,由于存在競態(tài)條件,在CREAM本地主機知道一個新的本地子網絡之前可以發(fā)生在本地主機中的二個主機之間的通信。在這種情形下,通信可以有利地保持為地址翻譯。這么做是為了防止打破Berkley套接字接口的語義。
EXTEND_REGISTRATION_RESPONSE說明這個消息被使用來確認一個登記的本地主機的工作期限的成功輪詢。通過發(fā)送這個消息,CREAM本地主機確認它被登記。
句法
語義VersionCREAM協議的版本。
Message Type標識消息的類型,應當是EXTEND_REGISTRATION_RESPONSE。
Length這個消息的總的剩余長度,以字節(jié)計。
Local host IDCREAM本地主機的ID,如在登記期間被指配的。
Behavior倘若接收到正確的EXTEND_REGISTRATION_INDICATION,本地主機應當發(fā)送EXTEND_REGISTRATION_RESPONSE。
DE-REGISTRATION_REQUEST說明這個消息被CREAM本地主機用來在CREAM網關處撤消登記。
句法
語義VersionCREAM協議的版本。
Message Type標識消息的類型,應當是DE-REGISTRATION_REQUEST。
Length這個消息的總的剩余長度,以字節(jié)計。
Local host IDCREAM本地主機的ID在登記期間被指配。
CREAM本地主機應當被登記,以便發(fā)送這個消息。CREAM本地主機保持被登記直至收到相應的DE-REGISTRATION_CONFIRM或ERROR_INDICATION為止。
Behavior這個消息應當被DE-REGISTRATION_CONFIRM消息確認或由定義了拒絕原因的ERROR_INDICATION來拒絕。
DE-REGISTRATION_CONFIRM說明這個消息確認DE-REGISTRATION_REQUEST。
句法
語義VersionCREAM協議的版本。
Message Type標識消息的類型,應當是DE-REGISTRATION_CONFIRM。
Length這個消息的總的剩余長度,以字節(jié)計。
Local host IDCREAM本地主機的ID,如在登記期間被指配的。
在接收這個消息后,CREAM本地主機不再被登記,并且用于這個本地主機的所有的租約被去除(如果有的話),如果CREAM本地主機已發(fā)送一個DE-REGISTRATION_REQUEST的話。
Behavior
倘若這個消息被接收而不發(fā)送DE-REGISTRATION_REQUEST,則本地主機應當發(fā)送一個ERROR_INDICATION。
INBOUND_ACCESS_REQUEST說明一個登記的CREAM本地主機使用這個消息來請求一個進入訪問端口映射。
句法
語義VersionCREAM協議的版本。
Message Type標識消息的類型,應當是INBOUND_ACCESS_REQUEST。
Length這個消息的剩余長度,以字節(jié)計。
Local host IDCREAM本地主機的ID,如在登記期間被指配的。
Address(local)這是為其請求進入訪問的、本地網絡內的主機的本地地址。這個參數是任選的,如果沒有被包括,則CREAM本地主機的本地地址由CREAM網關假定。應當指出通過指定不同的本地地址,一個CREAM本地主機可以請求用于另一個本地主機的一個地址映射。然而,CREAM本地主機保持負責租約的工作期限。
Port(local)這是為其請求該映射的本地端口。這個參數是任選的。倘若這個參數不被包括,則由CREAM網關選擇一個映射。
過請求一個進入端口映射,主機(或者CREAM本地主機或者在本地地址中指定的其它本地主機)保持負責對于在本地有效負荷內的地址信息的地址翻譯,所以,當對于不同于CREAM本地主機的主機請求進入訪問時,應當注意。在這種情形下,應當使用諸如NAT
將0.9kg干物質(d.s.)的C☆Maltidex H 163K9(Cerestar產品-70%干物質的麥芽糖醇糖漿)引入進料筐。通過液壓氣動多頭噴嘴將液體糖漿噴在粉末上。
將粒狀產物干燥30分鐘以達到水分含量<0.5%。
用Retsch SK 100研磨機對產物進行研磨。
然后在流化床中將3kg所述產物作為粉末重復利用以便用C☆Maltidex H 163K9進一步?;?br>
重復涂布(成粒)/干燥/研磨,直到在粒狀粉末中的麥芽糖醇含量已降低ca.3.0%,達到96.3%的麥芽糖醇含量(基于干物質)。
用HPLC測量最終粉末的麥芽糖醇含量。
實施例2固化麥芽糖醇在烘烤產品中的應用配方
1C☆Gel 20006=小麥淀粉公共域內有效的地址。
Port Mapping被創(chuàng)建的一組端口映射。
如果在所述一組端口映射內,至少包括一個有效的映射,則倘若不再需要映射的話,Lease ID應當被用來釋放這個映射。倘若沒有有效的映射被包括,則Lease ID可以被略去。一個有效的映射被定義為具有成功的狀態(tài)代碼的映射。倘若狀態(tài)碼定義了已得到的值映射,則通過使用不同于CREAM的另一個方法(例如,NAT ALG或UPnP)創(chuàng)建這個映射。
Behavior如用Lease ID標識的每組映射應當通過FREE_LEASE_REQUEST明顯地被釋放。
倘若接收到INBOUND_ACCESS_CONFIRM而沒有首先由該CREAM本地主機發(fā)送相應的INBOUND_ACCESS_REQUEST,則應當發(fā)送相應的ERROR_INDICATION。
OUTBOUND_ACCESS_REQUEST說明一個登記的CREAM本地主機使用這個消息來請求外出訪問端口映射。
句法
語義VersionCREAM協議的版本。
Message_Type標識消息的類型,應當是OUTBOUND_ACCESS_REQUEST。
實施例5和后述實施例6、7,比較例5~8所制造的色變換層的微粒的含量、濁度值和色變換效率如表2所示。
表2
實施例6、7,比較例5~8除了改變涂布了氧化鋁的氧化鈦微粒的添加量之外,和實施例5一樣,制造綠色變換層和發(fā)光元件,并進行評價。
在實施例5~7和比較例5~8中,微粒含量與濁度值的關系如圖4所示。此外,濁度值與綠色變換效率的關系如圖5所示。
這樣,通過調整氧化鈦微粒的含量,可以控制濁度值,并且,在濁度值為50%或以上的范圍中,可以確認綠色變換效率升高。
實施例8微粒表面處理效果進一步使用烘箱對實施例3的紅色變換基板(紅色變換效率37.8%)進行200℃、30分鐘的熱處理。結果是,紅色變換效率為36.2%,略低。
進而,在氮氣中,對該紅色變換基板連續(xù)照射藍色LED(GaN系)光(400cd/m2),測定紅色變換效率和色度的隨時間的變換。通過1000<p>Message Type標識消息的類型,應當是OUTBOUND_ACCESS_CONFIRM。
Length這個消息的剩余長度,以字節(jié)計。
Local host IDCREAM本地主機的ID,如在登記期間被指配的。
Lease IDLease ID被指配給這個特定組的端口映射。這個ID應當被使用于進一步參考。
Address地址被用于與外部網絡通信。這是在互聯網的公共域內有效的地址。
Port Mapping被創(chuàng)建的一組端口映射。
Behavior如用Lease ID標識的每組端口映射應當通過FREE_LEASE_REQUEST明顯地被釋放。
倘若接收到INBOUND_ACCESS_CONFIRM而沒有首先由該CREAM本地主機發(fā)送相應的INBOUND_ACCESS_REQUEST,則應當發(fā)送相應的ERROR_INDICATION。
FREE_LEASE_REQUEST說明一個登記的CREAM本地主機使用這個消息來釋放由INBOUND_ACCESS_REQUEST或OUTBOUND_ACCESS_REQUEST創(chuàng)建的一組端口映射。
句法
語義VersionCREAM協議的版本。
MessageType標識消息的類型,應當是FREE_LEASE_REQUEST。
Length這個消息的剩余長度,以字節(jié)計。
Local host IDCREAM本地主機的ID,如在登記期間被指配的。
Lease IDLease ID被指配給應當被釋放的這個特定組的端口映射。
Behavior在發(fā)送FREE_LEASE_REQUEST后,一個CREAM本地主機不再被許可使用端口映射用于發(fā)送的目的。在接收相應的FREE_LEASE_CONFIRM后,保證不再通過使用與Lease ID有關的路徑接收消息。
倘若CREAM網關接收來自未登記的CREAM本地主機的或包含一個未知的Lease ID的FREE_LEASE_REQUEST,則發(fā)送相應的ERROR_INDICATION。
FREE_LEASE_CONFIRM說明這個消息是對于一個成功的FREE_LEASE_REQUEST的響應,并且確認所識別的一組端口映射被釋放。
句法
語義VersionCREAM協議的版本。
Message Type標識消息的類型,應當是FREE_LEASE_CONFIRM。
Length這個消息的剩余長度,以字節(jié)計。
Local host IDCREAM本地主機的ID,如在登記期間被指配的。
.Horz_mux Slice0 PLA0(每位都具有單獨的使能).HMUX
是16個水平狀態(tài)行之一;.每個mux(多路復用)也都需要三態(tài)使能。
語義VersionCREAM協議的版本。
Message Type標識消息的類型,應當是ERROR_INDICATION。
Length這個消息的剩余長度,以字節(jié)計。
Message Type標識引起錯誤的消息類型。
Error_Response_Code錯誤響應碼。其定義見上面的表。
Local host ID任選的,CREAM本地主機的ID,如在登記期間被指配的。倘若這個消息由CREAM網關發(fā)送,這標識引起該行動的CREAM本地主機,如果已知的話。倘若這個消息由CREAM本地主機發(fā)送,這標識本地主機,如果被指配的話。
Parameter_Type標識引起錯誤的參數的類型,任選的。
Behavior這個消息表示錯誤。
應當看到,這里示出的和描述的實施例和變例僅僅是本發(fā)明的原理的說明,以及可以由本領域技術人員在不背離本發(fā)明的范圍和精神的條件下作出各種修正。
權利要求
1.一種用于客戶請求的外部地址映射的方法,所述方法包括以下步驟從一個本地主機接收一個用于訪問一個公共網的請求;確定要被用于訪問所述公共網的一個公共地址;把相應于所述本地主機的一個本地地址映射成該公共地址;以及把所述公共地址返回給所述本地主機。
2.權利要求1的方法,其中請求的所述訪問是從公共網到本地主機。
3.權利要求1的方法,其中請求的所述訪問是從本地主機到公共網。
4.權利要求1的方法,其中所述公共地址是相應于公共網上的一個遠端主機的一個地址。
5.權利要求1的方法,還包括以下步驟創(chuàng)建具有一個或多個報頭和一個或多個有效負荷區(qū)域的一個分組,該分組被用于所述訪問;以及把至少該公共地址放置在所述一個或多個有效負荷區(qū)域內的給定的一個有效負荷區(qū)域。
6.權利要求5的方法,其中以下的一項或多項被加密所述一個或多個報頭和所述一個或多個有效負荷區(qū)域。
7.權利要求1的方法,其中所述公共網由一組或多組地址來定義。
8.權利要求7的方法,其中所述一組或多組地址由一個或多個子網列表來定義。
9.權利要求1的方法,其中所述確定一個公共地址的步驟還包括確定一個公共端口的步驟;所述映射的步驟還包括把所述公共端口映射到所述本地主機的步驟;以及所述返回公共地址的步驟還包括返回所述公共端口給所述本地主機的步驟。
10.權利要求1的方法,其中所述請求訪問一個公共網的步驟還包括請求在訪問期間要使用的一個端口的步驟;所述映射的步驟還包括把所述請求的端口映射到所述本地主機的步驟;以及所述返回公共地址的步驟還包括返回所述請求的端口給所述本地主機的步驟。
11.權利要求1的方法,其中所述映射的步驟還包括為所述本地主機確定一個標識并且把該標識返回給所述本地主機的步驟。
12.權利要求1的方法,其中所述映射的步驟還包括為所述本地主機確定一個本地子網列表并且把該本地子網列表返回給所述本地主機的步驟。
13.權利要求12的方法,其中所述本地子網列表定義了一個本地網絡,由此區(qū)分所述本地網絡與所述公共網。
14.權利要求1的方法,其中所述訪問是從所述本地主機到所述公共網;所述訪問包括所述本地地址和一個本地端口;以及該方法還包括以下步驟把所述本地地址修改為所述公共地址;以及如果必要,把所述本地端口修改為相應于一個公共主機的一個公共端口。
15.權利要求1的方法,其中所述訪問是從所述公共網到所述本地主機;所述訪問包括一個第二公共地址和一個公共端口;以及該方法還包括以下步驟把所述第二公共地址修改為所述本地地址;以及如果必要,把所述公共端口修改為相應于所述本地主機的一個本地端口。
16.一種用于客戶請求的外部地址映射的系統(tǒng),包括一個存儲器;以及至少一個被耦合到所述存儲器的處理器,用來從一個本地主機接收一個用于訪問一個公共網的請求;確定要被用于訪問所述公共網的一個公共地址;把相應于所述本地主機的一個本地地址映射成所述公共地址;以及把所述公共地址返回給所述本地主機。
17.一種用于客戶請求的外部地址映射的方法,所述方法包括以下步驟確定一個外出訪問是到一個本地網絡還是到一個公共網;以及當所述外出訪問是到一個公共網時,執(zhí)行以下步驟請求一個到公共網的訪問;響應于該請求而接收公共信息;以及把所述公共信息放置在為所述外出訪問創(chuàng)建的一個或多個分組的一個或多個有效負荷部分。
18.權利要求17的方法,其中所述公共信息包括一個公共地址。
19.權利要求17的方法,其中所述公共信息包括一個公共端口。
20.權利要求17的方法,其中所述請求一個到所述公共網的訪問的步驟還包括請求一個本地端口的步驟,以及其中把所述公共信息放置在一個有效負荷的步驟還包括把所述請求的本地端口放置在有效負荷的步驟。
21.權利要求17的方法,還包括執(zhí)行所述到公共網的外出訪問的步驟,其中該外出訪問使用一個或多個以下的協議請求評注(RFC)959的文件傳送協議(FTP);H.323國際電信聯盟(ITU)標準;會話發(fā)起協議(SIP)RFC 2543;資源保留協議(RSIP)RFC2205;互聯網協議封裝安全協議(IPsec-ESP)RFC 2402;kerberos4;kerberos 5;telnet RFC 854;和rlogin RFC 1282。
22.權利要求17的方法,其中一個應用執(zhí)行確定、請求、接收、和放置步驟,并且其中所述應用是以下的一項或多項一個對等應用;一個需要保留地址映射的應用;一個remote shell(RSH)應用;一個X視窗系統(tǒng)應用;以及一個X-term應用。
全文摘要
由一個本地主機請求一個到公共網的訪問。確定要被使用于訪問該公共網的一個公共地址。相應于本地主機的一個本地地址被映射成所述公共地址。把該公共地址返回給本地主機。決定外出訪問是到本地網絡還是到公共網。當外出訪問是到公共網時,則請求訪問公共網。響應于該請求而接收公共信息。公共信息被放置在為所述外出訪問創(chuàng)建的一個或多個分組的一個有效負荷部分。公共信息通常至少包括一個公共端口,但也可包括一個公共地址。請求可以提供一個本地端口,這樣,公共信息中的一個公共端口通常與本地端口一致。
文檔編號H04L29/06GK1860768SQ200480028289
公開日2006年11月8日 申請日期2004年9月27日 優(yōu)先權日2003年9月30日
發(fā)明者J·H·埃辛克 申請人:皇家飛利浦電子股份有限公司