用於連接異類協議節點的方法和設備的製作方法
2023-06-14 22:35:36 2
專利名稱:用於連接異類協議節點的方法和設備的製作方法
技術領域:
本發明涉及一種用於連接使用異類(heterogeneous)協議的節點的方法和設備,更具體地講,涉及一種用於將網際網路協議版本4(IPv4)節點連接到網際網路協議版本6(IPv6)節點,以及用於將非移動節點連接到移動節點的方法和設備。
背景技術:
存在於包括網際網路協議版本4(IPv4)和網際網路協議版本6(IPv6)的網絡中的節點在網絡的IP層可能未配備有IPv4/IPv6轉換功能。在這種情況下,在現有技術中IPv4節點和IPv6節點不能被相互連接。此外,存在於行動網路中的IP節點在網絡的IP層可能未配備有移動IP功能。因此,不具有移動IP功能的非移動節點不能和具有移動IP功能的移動節點連接。此外,由於這種IP層被包括在用戶或終端提供者不能管理的內核級(kernel level)中,所以對於用戶或終端提供者難以解決上述問題。
發明內容
本發明提供了一種用於連接使用異類協議的節點的方法和設備,更具體地講,提供了一種用戶或終端提供者能夠容易地實現的方法和設備。
根據本發明的一方面,提供了一種連接異類協議節點的方法,該方法包括(a)通過第一套接字接收從使用第一協議的第一節點傳送的第一數據;和(b)通過第二套接字將接收的第一數據發送給使用第二協議的第二節點。
根據本發明的另一方面,提供了一種用於連接異類協議節點的設備,該設備包括第一套接字通信單元,通過第一套接字接收第一數據,該第一數據被從使用第一協議的第一節點傳送;和第二套接字通信單元,通過第二套接字將由第一套接字通信單元接收的第一數據發送給第二節點。
根據本發明的另一方面,提供了一種連接異類協議節點的方法,該方法包括(a)分別產生用於基於第一協議的通信和基於第二協議的通信的第一套接字和第二套接字;和(b)通過第一套接字與使用第一協議的第一節點通信和通過第二套接字與使用第二協議的第二節點通信。
根據本發明的另一方面,提供了一種已在其上包含用於連接異類協議節點的方法的電腦程式的計算機可讀記錄介質。
根據本發明的另一方面,提供了一種已在其上包含用於與異類協議節點通信的方法的電腦程式的計算機可讀記錄介質。
通過下面參照附圖對其示例性實施例進行詳細的描述,本發明的上述和其他特性和優點將會變得更加清楚,其中圖1是根據本發明示例性實施例的網絡環境的配置示圖;圖2是根據本發明示例性實施例的第一網絡環境的配置示圖;圖3是根據本發明示例性實施例的第二網絡環境的配置示圖;圖4是根據本發明示例性實施例的第三網絡環境的配置示圖;圖5是根據本發明示例性實施例的第四網絡環境的配置示圖;圖6是根據本發明示例性實施例的連接異類協議節點的第一方法的流程圖;圖7是根據本發明示例性實施例的連接異類協議節點的第二方法的流程圖;圖8是根據本發明示例性實施例的連接異類協議節點的第三方法的流程圖;和圖9是根據本發明示例性實施例的連接異類協議節點的第四方法的流程圖。
具體實施例方式
現在,將參照附圖更充分地描述本發明,其中示出了本發明的實施例。所有附圖中,相同的標號表示相同的部件。
圖1是根據本發明示例性實施例的網絡環境的配置示圖。
參照圖1,網絡環境包括節點1、2和3。根據本發明的實施例,節點1配備有包括使用第一協議和第二協議的兩個協議棧的雙協議棧(dual stack),節點2使用第一協議,並且節點3使用第二協議。
參照圖1,根據本發明的實施例,雙協議棧包括應用層100、第一套接字200、第二套接字300、第一協議400、第二協議500、和低層600。在雙協議棧中,右棧包括第一協議400並且左棧包括第二協議500。雙協議棧的應用層100和低層600是共同的層。
通過在應用層100中調用用於和特定子程序連接的函數,節點1產生作為應用程式接口(API)的用於基於第一協議的通信的第一套接字200和作為API的用於基於第二協議的通信的第二套接字。
節點1經通過在應用層中調用用於連接特定的子程序的函數來產生的第一套接字和使用第一協議的節點2通信,並經通過在應用層中調用用於連接特定子程序的函數來產生的第二套接字和使用第二協議的第二節點3通信。這裡,特定子程序涉及通過套接字的通信。換句話說,從使用第一協議的節點2發送的數據經網絡被傳送到節點1。由節點1接收的數據穿過低層600、第一協議400和第一套接字200,然後到達應用層100。到達應用層100的數據穿過第二套接字300、第二協議500、和低層600。節點3經網絡接收已經穿過低層600的數據。相反的數據流可被簡單地建立。
如上所述,節點1通過第一套接字和使用第一協議的第一節點2通信,並且通過第二套接字和使用第二協議的第二節點3通信。因此,即使當用戶或終端提供者不能管理的內核級的層,即,第一協議400和第二協議500,不包括第一協議和第二協議之間的轉換機制時,節點1也能完成與彼此使用不同協議的節點2和節點3的通信。這裡,第一協議可以是IPv6並且第二協議可以是IPv4,或者相反。此外第一協議可以是移動IP並且第二協議可以是非移動IP,或者相反。下面將更詳細地描述上述內容的每一個。
圖2根據本發明示例性實施例的第一網絡環境的配置示圖。
參照圖2,根據本發明實施例,第一網絡環境包括節點11,包括用於連接異類協議節點的設備;IPv6節點21,與客戶機相應;和IPv4節點31,與伺服器相應。節點11起與IPv6節點21相應的伺服器的作用,並同時起與IPv4節點31相應的客戶機的作用。
參照圖2,根據本發明的實施例,用於連接異類協議節點的設備包括雙套接字生成單元101、雙套接字連接單元102、第一套接字通信連接單元103、和第二套接字通信單元104。如圖2所示,用於連接異類協議節點的設備被安裝在應用層100上。
雙套接字生成單元101生成用於任何應用程式的IPv6通信的第一套接字200和用於任何應用程式的IPv4通信的第二套接字300。更詳細地說,作為伺服器和客戶機的雙套接字生成單元101通過在應用層100調用套接字函數socket生成第一套接字200,該socket包括關於IPv6的信息。socket被定義為int socket(int family,int type,int protocol)的類型。PF_INET被寫在用於生成第一套接字200的socket的family欄位中以表示網際網路協議族被使用,SOCK_STREAM被寫在type欄位中以表示面向連接的通信的TCP(傳輸控制協議)被使用,並且IPv6被寫入protocol欄位中以指示IPv6的使用。如果面向非連接的通信的UDP(用戶數據報協議)被使用,則不是SOCK_STREAM,而是SOCK_DGRAM被寫入type欄位中。此外,雙套接字生成單元101通過在應用層中調用socket生成第二套接字300,該socket包括關於IPv4的信息。除了IPv4被寫入socket的protocol欄位以識別IPv4的使用之外,用於生成第二套接字300的socket與用於生成第一套接字200的socket相同。
此外,雙套接字生成單元101作為伺服器通過在應用層100中調用連接函數bind來連接節點1的地址和第一套接字200,該連接函數包括關於第一套接字200的信息和被設置為IPv6節點21的目的地的節點11的地址。bind被定義為int bind(int sockfd,struct sockaddr*myaddr,int addrlen)的類型。第一套接字200的套接字描述符被寫入用於連接地址和第一套接字200的bind的sockfd欄位中,包括由TCP/UDP 401和IPv6 402提供的IPv6地址和埠號的地址結構被寫入myaddr欄位中,並且該地址結構的大小被寫入addrlen欄位中。因為第一套接字200的套接字描述符僅僅被節點11的應用程式知道並使用,所以bind被調用以將IPv6節點21所知道的節點11的IPv6地址和埠號與第一套接字200的套接字描述符連接。
雙套接字連接單元102將在雙套接字產生單元101中產生的第一套接字200和第二套接字300分別與IPv6節點21和Ipv4節點31連接。更具體地講,作為伺服器的雙套接字連接單元102通過在應用層100中調用等待函數listen來等待接收目的地是與第一套接字200連接的地址的連接請求,listen包括關於第一套接字200的信息。listen被定義為int listen(int sockfd,int backlog)的類型。第一套接字200的套接字描述符被寫在用於接收目的地是與第一套接字200連接的地址的連接請求的listen的sockfd欄位中,並且可等待的連接請求的最大數量被寫在backlog欄位中。
另外,作為伺服器的雙套接字連接單元102通過在應用層100中調用接受函數accept來許可接收的連接請求,該接受函數包括關於第一套接字200的信息和發送連接請求的IPv6節點21的地址。這裡,產生新的套接字用於與包含在在與客戶機對應的IPv6節點21中執行的應用程式中的進程(process)的一對一通信。accept被定義為int accept(int sockfd,struct sockaddr*clientaddr,int addrlen)的類型。第一套接字200的套接字描述符被寫在用於許可來自與客戶機對應的IPv6節點21的連接請求的accept的sockfd欄位中,地址結構被寫在clientaddr欄位中,該地址結構包括IPv6節點21的IPv6地址和埠號,並且該地址結構的大小被寫在addrlen欄位中。
另外,作為客戶機的雙套接字連接單元102通過在應用層100中調用連接函數connect來請求連接到Ipv4節點31,該connect包括關於第二套接字300的信息和等待接收連接請求的Ipv4節點31的地址。connect被定義為intconnect(int sockfd,struct sockaddr*serveraddr,int addrlen)的類型。第二套接字的套接字描述符被寫在用於請求連接到與伺服器對應的Ipv4節點31的connect的sockfd欄位中,地址結構被寫在serveraddr中,該地址結構包括Ipv4節點31的Ipv4地址和埠號,並且該地址結構的大小被寫在addrlen欄位中。
第一套接字通信單元103當節點11使用UDP時通過在雙套接字產生單元101中產生的第一套接字200接收從IPv6節點21傳送的數據,或者當節點11使用TCP時通過連接在雙套接字連接單元中的第一套接字200接收從IPv6節點21傳送的數據。這是因為,在面向連接的通信比如TCP的情況下,listen和accept應被調用,但是在面向非連接的通信比如UDP的情況下,數據能夠被直接接收和發送而不需調用listen和accept。
更具體地講,作為伺服器的第一套接字通信單元103通過在應用層100中調用接收函數recv或recvfrom經第一套接字200接收從IPv6節點21傳送的數據,該接收函數包括關於第一套接字200和從IPv6節點21傳送的數據的信息。作為客戶機的第二套接字通信單元104通過在應用層100中調用發送函數send或sendto經第二套接字300發送從IPv6節點21傳送的數據,該發送函數包括關於第二套接字300和從IPv6節點21傳送的數據的信息。在面向連接的通信比如TCP中,recv和send被調用,或者在面向非連接的通信比如UDP中,recvfrom和sendto被調用。
recv被定義為int recv(int sockfd,char buf,int buflen,int flags)的類型。第一套接字200的套接字描述符被寫在用於通過第一套接字200接收從IPv6節點傳送的數據的recv的sockfd欄位中,用於存儲接收的數據的緩衝器的指針被寫在buf欄位中,該緩衝器的大小被寫在buflen欄位中,並且指示out ofband等的值被寫在flags欄位中。另一方面,recvfrom被定義為int recvfrom(int sockfd,char buf,int buflen,int flags,struct sockaddr*fromaddr,int addrlen)的類型。也就是說,與recv相同的值被寫在用於通過第一套接字200接收數據的recvfrom的sockfd欄位、buf欄位、buflen欄位、和flags欄位中,源地址結構被寫在fromaddr欄位中,該源地址結構包括IPv6節點2l的IPv6地址和埠號,並且源地址結構的大小被寫在addrlen欄位中。
send被定義為int send(int sockfd,char buf,int buflen,int flags)的類型。第二套接字300的套接字描述符被寫在用於通過第二套接字300發送從IPv6節點21傳送的數據的send的sockfd欄位中;用於存儲將被發送的數據的緩衝器的指針被寫在buf欄位中,根據本發明實施例,該指針與recv的值相同;以及指示out of band等的值被寫在flags欄位中,根據本發明實施例,該值與recv的值相同。這個過程可應用於應用層100中的IPv6到Ipv4的轉換過程。另一方面,sendto被定義為int sendto(int sockfd,char buf,int buflen,int flags,struct sockaddr*toaddr,int addrlen)。也就是說,與send相同的值被寫在用於通過第二套接字300發送從IPv6節點21傳送的數據的sendto的sockfd欄位、buf欄位、buflen欄位、和flags欄位中;源地址結構被寫在toaddr欄位中,該源地址結構包括Ipv4節點31的Ipv4地址和埠號;並且該地址結構的大小被寫在addrlen欄位中。
另外,第二套接字通信單元104當節點11使用UDP時通過在雙套接字產生單元101中產生的第二套接字300接收從Ipv4節點31傳送的數據,或者當節點11使用TCP時通過連接在雙套接字連接單元102中的第二套接字300接收從Ipv4節點31傳送的數據。第一套接字通信單元103當節點11使用UDP時通過在雙套接字產生單元101中產生的第一套接字200發送從Ipv4節點31傳送的數據,或者通過連接在雙套接字連接單元102中的第一套接字200發送從Ipv4節點31傳送的數據。
更具體地講,作為伺服器的第二套接字通信單元104通過在應用層100中調用接收函數recv或recvfrom經第二套接字300來接收從Ipv4節點31傳送的數據,該接收函數包括關於第二套接字300和從Ipv4節點31傳送的數據的信息。作為客戶機的第一套接字通信單元103通過在應用層100中調用發送函數send或sendto經第一套接字200發送從Ipv4節點31傳送的數據,該發送函數包括關於第一套接字和從Ipv4節點31傳送的數據的信息。
第二套接字300的套接字描述符被寫在用於通過第二套接字300接收從Ipv4節點31傳送的數據的recv的sockfd欄位中;用於存儲接收的數據的緩衝器的指針被寫在buf欄位中;該緩衝器的大小被寫在buflen欄位中;並且指示out of band等的值被寫在flags欄位中。另一方面,與recv相同的值被寫在用於通過第二套接字300接收從Ipv4節點31傳送的數據的recvfrom的sockfd欄位、buf欄位、buflen欄位、和flags欄位中;源地址結構被寫在fromaddr欄位中,該源地址結構包括Ipv4節點31的Ipv4地址和埠號;並且該地址結構的大小被寫在addrlen欄位中。
第一套接字200的套接字描述符被寫在用於通過第一套接字200發送從Ipv4節點31傳送的數據的send的sockfd欄位中;用於存儲將被發送的數據的緩衝器的指針被寫在buf欄位中,根據本發明實施例,該指針與recv的值相同;以及指示out of band等的值被寫在flags欄位中,根據本發明實施例,該值與recv的值相同。這個過程可應用於應用層100中的Ipv4到Ipv6的轉換過程。另一方面,與send相同的值被寫在用於通過第一套接字200發送從Ipv4節點31傳送的數據的sendto的sockfd欄位、buf欄位、buflen欄位、和flags欄位中;源地址結構被寫在toaddr欄位中,該源地址結構包括Ipv6節點21的Ipv6地址和埠號;並且該地址結構的大小被寫在addrlen欄位中。
圖3是根據本發明另一示例性實施例的第二網絡環境的配置示圖。
參照圖3,第二網絡環境包括配備有用於連接異類協議節點的設備的節點12、相應於客戶機的IPv4節點22、和相應於伺服器的IPv6節點32。節點12起到相應於IPv4節點22的伺服器的作用,並且同時起到相應於IPv6節點32的客戶機的作用。現在,本發明的實施例的描述將更明確地集中在第一和第二網絡環境之間的不同上,忽略兩個網絡環境之間的相似性。
雙套接字產生單元101產生用於任何應用程式的IPv4通信的第一套接字200和用於應用程式的IPv6通信的第二套接字300。作為伺服器和客戶機的雙套接字產生單元101通過在應用層100中調用套接字函數socket產生第一套接字200,該socket包括關於IPv4的信息。IPv4寫在用於產生第一套接字200的socket的protocol欄位中以指示IPv4的使用。雙套接字產生單元101通過在應用層中調用socket來產生第二套接字300,該socket包括關於IPv6的信息。IPv6寫在用於產生第二套接字300的socket的protocol欄位中以指示IPv6的使用。此外,作為伺服器的雙套接字產生單元101通過在應用層100中調用連接函數bind將節點12的地址與第一套接字200連接,該連接函數包括關於第一套接字200的信息和設置為IPv4節點22的目的地的節點12的地址。地址結構被寫在用於將該地址與第一套接字200連接的bind的myaddr欄位中,該地址結構包括由TCP/UDP 403和IPv4 404提供的IPv4地址和埠號。
作為伺服器的雙套接字連接單元102通過在應用層100中調用接受函數accept許可接收的連接請求,該接受函數包括關於第一套接字200的信息和發送連接請求的IPv4節點22的地址。地址結構寫在用於許可來自相應於客戶機的IPv4節點22的連接請求的accept的clientaddr欄位中,該地址結構包括IPv4節點22的IPv4地址和埠號;並且該地址結構的大小寫在addrlen欄位中。
另外,作為客戶機的雙套接字連接單元102通過在應用層100中調用連接函數connect來請求連接到IPv6節點32,該連接函數包括關於第二套接字300的信息和等待接收連接請求的IPv6節點32的地址。地址結構寫在用於請求連接到相應於伺服器的IPv6節點32的connect的serveraddr中,該地址結構包括IPv6節點32的IPv6地址和埠號。
當節點12使用UDP時,第一套接字通信單元103經過在雙套接字產生單元101中產生第一套接字200接收從IPv4節點22傳送的數據,或者當節點12使用TCP時,第一套接字通信單元103經過在雙套接字連接單元102中連接的第一套接字200接收從IPv4節點22傳送的數據。當節點12使用UDP時,第二套接字通信單元104經過在雙套接字產生單元101中產生的第二套接字300接收從IPv4節點22傳送的數據,或者當節點12使用TCP時,第二套接字通信單元104經過在雙套接字連接單元102中連接的第二套接字300接收從IPv4節點22傳送的數據。
作為伺服器的第一套接字通信單元103通過調用在應用層100中的接收函數recv或recvfrom經過第一套接字200接收從IPv4節點22傳送的數據,該接收函數包括關於第一套接字200和從IPv4節點22傳送的數據的信息。作為客戶機的第二套接字通信單元104通過在應用層100中調用發送函數send或sendto經過第二套接字300發送從IPv4節點22傳送的數據,該發送函數包括關於第二套接字和從IPv4節點22傳送的數據的信息。
源地址結構被寫在用於接收數據的recvfrom的fromaddr欄位中,該源地址結構包括IPv4節點22的IPv4地址和埠號;並且該源地址結構的大小被寫在addrlen欄位中。
第二套接字300的套接字描述符被寫在用於經過第二套接字300發送從IPv4節點22傳送的數據的send的sockfd欄位中;存儲將被發送的數據的緩衝器的指針被寫在buf欄位中,根據本發明實施例,該指針與recv的值相同;緩衝器的大小被寫在buflen欄位中,根據本發明實施例,該大小與recv的值相同;並且指示out of band等的值被寫在flags欄位中,根據本發明實施例,該值與recv的值相同。此過程可被應用到應用層100中的IPv4到IPv6的轉換過程中。另一方面,源地址結構被寫在用於經過第二套接字300發送從IPv4節點22傳送的數據的toaddr欄位的toaddr欄位中,該源地址結構包括IPv6節點32的IPv6地址和埠號。
另外,當節點12使用UDP時,第二套接字通信單元104經過在雙套接字產生單元101中產生第二套接字300接收從IPv6節點32傳送的數據,或者當節點12使用TCP時,第二套接字通信單元104經過在雙套接字連接單元102中連接的第二套接字300接收從IPv4節點31傳送的數據。當節點12使用UDP時,第一套接字通信單元103經過在雙套接字產生單元101中產生的第一套接字200發送從IPv6節點32傳送的數據,或者經過在雙套接字連接單元102中連接的第一套接字200發送從IPv6節點32傳送的數據。
作為伺服器的第二套接字通信單元104通過調用在應用層100中的接收函數recv或recvfrom來經過第二套接字300接收從IPv6節點32傳送的數據,該接收函數包括關於第二套接字300和從IPv6節點32傳送的數據的信息。作為客戶機的第一套接字通信單元103通過在應用層100中調用發送函數send或sendto來經過第一套接字200發送從IPv6節點32傳送的數據,該發送函數包括關於第一套接字和從IPv6節點32傳送的數據的信息。
源地址結構被寫在用於經過第二套接字300接收從IPv6節點32傳送的數據的recvfrom的fromaddr欄位中,該源地址結構包括IPv6節點32的IPv6地址和埠號。
第一套接字200的套接字描述符被寫在用於經過第一套接字200發送從IPv6節點32傳送的數據的send的sockfd欄位中;存儲將發送的數據的緩衝器的指針被寫在buf欄位中,根據本發明實施例,該指針與recv的值相同;該緩衝器的大小被寫在buflen欄位中,根據本發明實施例,該欄位與recv的值相同;指示out of band等的值被寫在flags欄位中,根據本發明實施例,該值與recv的值相同。此過程可被應用於應用層100中的IPv6到IPv4的轉換過程。另一方面,源地址結構被寫在用於經過第一套接字200發送從IPv6節點32傳送的數據的sendto的toaddr欄位中,該源地址結構包括IPv4節點22的IPv4地址和埠號。
圖4是根據本發明另一示例性的實施例的第三網絡環境的配置框圖。
參照圖4,第三網絡環境包括節點13,其配置有用於連接異類協議節點的設備;移動節點23,其與客戶機相應;和非移動節點33,其與伺服器相應。節點13起相應於移動節點23的伺服器的作用,並且同時起相應於非移動節點33的客戶機的作用。現在將集中在第一和第三網絡環境之間的差別而略去這兩個網絡環境之間的類似來更詳細地描述本發明的實施例。
雙套接字產生單元101產生用於任何應用程式的移動通信的第二套接字300和用於應用程式的非移動IP通信的第二套接字300。作為伺服器和客戶機的雙套接字產生單元101通過在應用層100中調用套接字函數socket來產生第一套接字200,該socket包括關於移動IP的信息。移動IP被寫入用於產生第一套接字200的socket的protocol欄位中,以指示移動IP的使用。雙套接字產生單元101通過在應用層中調用socket來產生第二套接字300,該socket包括關於非移動IP的信息。非移動IP被寫入用於產生第二套接字300的socket的protocol欄位中,以指示非移動IP的使用。此外,作為伺服器的雙套接字產生單元101通過在應用層100中調用連接函數bind來將節點13的地址和第一套接字200連接,該連接函數包括關於第一套接字200的信息和被設置為移動節點23的目的地的節點13的地址。地址結構被寫入用於將地址和第一套接字200連接的bind的myaddr欄位中,該地址結構包括由TCP/UDP 405和移動IP 406提供的移動IP位址和埠號。
作為伺服器的雙套接字連接單元102通過在應用層100中調用接受函數accept來許可接收到的連接請求,該接受函數包括關於第一套接字200的信息和發送連接請求的移動節點23的地址。地址結構被寫入用於許可來自相應於客戶機的移動節點23的連接請求的accept的clientaddr欄位中,該地址結構包括移動節點23的移動IP位址和埠號,並且該地址結構的大小被寫入addrlen欄位中。
另外,作為客戶機的雙套接字連接單元102通過在應用層100中調用連接函數connect來請求連接到非移動節點33,該連接函數包括關於第二套接字300的信息和等待接收連接請求的非移動節點33的地址。地址結構被寫入用於請求連接到相應於伺服器的非移動節點33的connect的serveraddr欄位中,該地址結構包括非移動節點33的非移動IP位址和埠號。
當節點13使用UDP時,第一套接字通信單元103通過在雙套接字產生單元101中產生的第一套接字200接收從移動節點23傳送的數據,或者當節點13使用TCP時,第一套接字通信單元103通過在雙套接字連接單元102中連接的第一套接字200接收從移動節點23傳送的數據。當節點13使用UDP時,第二套接字通信單元104通過在雙套接字產生單元101中產生的第二套接字300接收從移動節點23傳送的數據,或者當節點13使用TCP時,第二套接字通信單元104通過在雙套接字連接單元102中連接的第二套接字300接收從移動節點23傳送的數據。
作為伺服器的第一套接字通信單元103通過在應用層100中調用接收函數recv或recvfrom經第一套接字200來接收從移動節點23傳送的數據,該接收函數包括關於第一套接字200的信息和關於從移動節點23傳送的數據的信息。作為客戶機的第二套接字通信單元104通過在應用層100中調用發送函數send或sendto經第二套接字300來發送從移動節點23傳送的數據,該發送函數包括關於第二套接字300的信息和關於從移動節點23傳送的數據的信息。
源地址結構被寫入用於通過第一套接字200接收數據的recvfrom的fromaddr欄位中,該源地址結構包括移動節點23的移動IP位址和埠號;並且該源地址結構的大小被寫入addrlen欄位中。
第二套接字300的套接字描述符被寫入用於通過第二套接字300發送從移動節點23傳送的數據的send的sockfd欄位中;存儲將被發送的數據的緩衝器的指針被寫入buf欄位,根據本發明實施例,該指針和recv的值相同;並且根據本發明實施例,和緩衝器相等的值的大小被寫入buflen欄位中;並且指示out of band等的值被寫入flags欄位中,根據本發明實施例,該值和recv的值相同。這個過程可應用於應用層100中的移動IP到非移動IP的轉換過程。另一方面,源地址結構被寫入用於通過第二套接字300發送從移動節點23傳送的數據的sendto的toaddr欄位中,該源地址結構包括非移動節點33的非移動IP位址和埠號。
此外,當節點13使用UDP時,第二套接字通信單元104通過在雙套接字產生單元101中產生的第二套接字300接收從非移動節點33傳送的數據,或者當節點13使用TCP時,第二套接字通信單元104通過在雙套接字連接單元102中連接的第二套接字300接收從非移動節點33傳送的數據。當節點13使用UDP時,第一套接字通信單元103通過在雙套接字產生單元101中產生的第一套接字200發送從非移動節點33傳送的數據,或者當節點13使用TCP時,第一套接字通信單元103通過在雙套接字連接單元102中連接的第一套接字200發送從非移動節點33傳送的數據。
作為伺服器的第二套接字通信單元104通過在應用層100中調用接收函數recv或recvfrom經第二套接字300來接收從非移動節點33傳送的數據,該接收函數包括關於第二套接字300的信息和關於從非移動節點33傳送的數據的信息。作為客戶機的第一套接字通信單元103通過在應用層100中調用發送函數send或sendto經第一套接字200來發送從非移動節點33傳送的數據,該發送函數包括關於第一套接字的信息和關於從非移動節點33傳送的數據的信息。
源地址結構被寫入用於通過第二套接字300發送從非移動節點33傳送的數據的recvfrom的fromaddr欄位中,該源地址結構包括非移動節點33的非移動IP位址和埠號。
第一套接字200的套接字描述符被寫入用於通過第二套接字300發送從非移動節點33傳送的數據的send的sockfd欄位中;存儲將被發送的數據的緩衝器的指針被寫入buf欄位,根據本發明實施例,該指針和recv的值相同;並且該緩衝器的大小被寫入buflen欄位中,根據本發明實施例,該值和recv的值相同;並且指示out of band等的值被寫入flags欄位中,根據本發明實施例,該值和recv的值相同。這個過程可應用於應用層100中的非移動IP到移動IP的轉換過程。另一方面,源地址結構被寫入用於通過第一套接字200發送從非移動節點33傳送的數據的sendto的toaddr欄位中,該源地址結構包括移動IP節點23的移動IP位址和埠號。
圖5是根據本發明另一示例性的實施例的第四網絡環境的配置框圖。
參照圖5,第四網絡環境包括節點14,其配置有用於連接異類協議節點的設備;非移動節點24,其與客戶機相應;和移動節點34,其與伺服器相應。節點14起相應於非移動節點24的伺服器的作用,並且同時起相應於移動節點34的客戶機的作用。現在將集中在第一和第四網絡環境之間的差別而略去這兩個網絡環境之間的類似來更詳細地描述本發明的實施例。
雙套接字產生單元101產生用於任何應用程式的非移動通信的第一套接字200和用於應用程式的移動IP通信的第二套接字300。作為伺服器和客戶機的雙套接字產生單元101通過在應用層100中調用套接字函數socket來產生第一套接字200,該socket包括關於非移動IP的信息。非移動IP被寫入用於產生第一套接字200的socket的protocol欄位中,以指示移動IP的使用。雙套接字產生單元101通過在應用層中調用socket來產生第二套接字300,該socket包括關於移動IP的信息。移動IP被寫入用於產生第二套接字300的socket的protocol欄位中,以指示移動IP的使用。此外,作為伺服器的雙套接字產生單元101通過在應用層100中調用連接函數bind來將節點14的地址和第一套接字200連接,該連接函數包括關於第一套接字200的信息和被設置為非移動節點24的目的地的節點14的地址。地址結構被寫入用於將地址和第一套接字200連接的bind的myaddr欄位中,該地址結構包括由TCP/UDP 405和非移動IP 408提供的非移動IP位址和埠號。
作為伺服器的雙套接字連接單元102通過在應用層100中調用接受函數accept來許可接收到的連接請求,該接受函數包括關於第一套接字200的信息和發送連接請求的非移動節點24的地址。地址結構被寫入用於許可來自相應於客戶機的非移動節點24的連接請求的accept的clientaddr欄位中,該地址結構包括非移動節點24的非移動IP位址和埠號,並且該地址結構的大小被寫入addrlen欄位中。
另外,作為客戶機的雙套接字連接單元102通過在應用層100中調用連接函數connect來請求連接到移動節點34,該連接函數包括關於第二套接字300的信息和等待接收連接請求的移動節點34的地址。地址結構被寫入用於請求連接到相應於伺服器的移動節點34的connect的serveraddr中,該地址結構包括移動節點34的移動IP位址和埠號。
當節點14使用UDP時,第一套接字通信單元103通過在雙套接字產生單元101中產生的第一套接字200接收從非移動節點24傳送的數據,或者當節點14使用TCP時,第一套接字通信單元103通過連接在雙套接字連接單元102中的第一套接字200接收從非移動節點24傳送的數據。當節點14使用UDP時,第二套接字通信單元104通過在雙套接字產生單元101中產生的第二套接字300發送從非移動節點24傳送的數據,或者當節點14使用TCP時,第二套接字通信單元104通過連接在雙套接字連接單元102中的第二套接字300發送從非移動節點24傳送的數據。
作為伺服器的第一套接字通信單元103通過在應用層100中調用接收函數recv或recvfrom經第一套接字200來接收從非移動節點24傳送的數據,該接收函數包括關於第一套接字200的信息和關於從非移動節點24傳送的數據的信息。作為客戶機的第二套接字通信單元104通過在應用層100中調用發送函數send或sendto經第二套接字300來發送從非移動節點24傳送的數據,該發送函數包括關於第二套接字300的信息和關於從非移動節點24傳送的數據的信息。
源地址結構被寫入用於通過第一套接字200接收數據的recvfrom的fromaddr欄位中,該源地址結構包括非移動節點24的非移動IP位址和埠號;並且該源地址結構的大小被寫入addrlen欄位中。
第二套接字300的套接字描述符被寫入用於通過第二套接字300發送從非移動節點24傳送的數據的send的sockfd欄位中;存儲將被發送的數據的緩衝器的指針被寫入buf欄位,根據本發明實施例,該指針和recv的值相同;該緩衝器的大小被寫入buflen欄位中,根據本發明實施例,該大小和recv的值相同;並且指示out of band等的值被寫入flags欄位中,根據本發明實施例,該值和recv的值相同。這個過程可應用於應用層100中的非移動IP到移動IP的轉換過程。另一方面,源地址結構被寫入用於通過第二套接字300發送從非移動節點24傳送的數據的sendto的toaddr欄位中,該源地址結構包括移動節點34的移動IP位址和埠號。
此外,當節點14使用UDP時,第二套接字通信單元104通過在雙套接字產生單元101中產生的第二套接字300接收從移動節點34傳送的數據,或者當節點14使用TCP時,第二套接字通信單元104通過連接在雙套接字連接單元102中的第二套接字300接收從移動節點34傳送的數據。當節點14使用UDP時,第一套接字通信單元103通過在雙套接字產生單元101中產生的第一套接字200發送從移動節點34傳送的數據,或者當節點14使用TCP時,第一套接字通信單元103通過連接在雙套接字連接單元102中的第一套接字200發送從移動節點34傳送的數據。
作為伺服器的第二套接字通信單元104通過在應用層100中調用接收函數recv或recvfrom經第二套接字300來接收從移動節點34傳送的數據,該接收函數包括關於第二套接字300的信息和關於從移動節點34傳送的數據的信息。作為客戶機的第一套接字通信單元103通過在應用層100中調用發送函數send或sendto經第一套接字200來發送從移動節點34傳送的數據,該發送函數包括關於第一套接字200的信息和關於從移動節點34傳送的數據的信息。
源地址結構被寫入用於通過第二套接字300接收從移動節點34傳送的數據的recvfrom的fromaddr欄位中,該源地址結構包括移動節點34的移動IP位址和埠號。
第一套接字200的套接字描述符被寫入用於通過第一套接字200發送從移動節點34傳送的數據的send的sockfd欄位中;存儲將被發送的數據的緩衝器的指針被寫入buf欄位,根據本發明實施例,該指針和recv的值相同;該緩衝器的大小被寫入buflen欄位中,根據本發明實施例,該大小和recv的值相同;並且指示out of band等的值被寫入flags欄位中,根據本發明實施例,該值和recv的值相同。這個過程可應用於應用層100中移動IP到非移動IP的轉換過程。另一方面,源地址結構被寫入用於通過第一套接字200發送從移動節點34傳送的數據的sendto的toaddr欄位中,該源地址結構包括非移動節點24的非移動IP位址和埠號。
圖6是根據本發明另一個實施例的連接異類協議節點的第一方法的流程圖。
參考圖6,該連接異類協議節點的第一方法包括如下描述的操作。在圖2示出的第一網絡環境中實現了該連接異類協議節點的第一方法。
首先,作為伺服器和客戶機的節點11通過在應用層中調用socket(IPv6)產生第一套接字,該socket(IPv6)包括關於IPv6的信息,通過在應用層中調用socket(IPv4)產生第二套接字,該socket(IPv4)包括關於IPv4的信息(操作步驟601和602)。同時,IPv6節點21通過調用包括關於IPv6的信息的socket(IPv6)產生第三套接字,並且IPv4節點31通過調用包括關於IPv4的信息的socket(IPv4)產生第四套接字(操作步驟603和604)。
接下來,作為伺服器的節點11通過在應用層中調用bind(IPv6)將節點11的地址和第一套接字連接,該bind(IPv6)包括關於第一套接字的信息和由IPv6節點21設置為目的地的節點11的地址(操作步驟605)。接下來,作為伺服器的節點11通過在應用層中調用listen(IPv6)來等待接收目的地是與第一套接字連接的地址的連接請求,該listen(IPv6)包括關於第一套接字的信息(操作步驟606)。同時,作為伺服器的IPv4節點31通過在應用層中調用bind(IPv4)將IPv4節點的地址和第四套接字連接,該bind(IPv4)包括關於第四套接字的信息(操作步驟607)。然後,作為伺服器的IPv4節點31通過在應用層中調用listen(IPv4)等待接收目的地是與第四套接字連接的地址的連接請求(操作步驟608)。
其後,作為客戶機的IPv6節點21通過在應用層中調用connect(IPv6)請求連接到節點11,該connect(IPv6)包括關於第三套接字的信息和等待接收連接請求的節點11的地址(操作步驟609)。接下來,作為伺服器的節點11通過在應用層中調用accept(IPv6)來許可該連接請求,該accept(IPv6)包括關於第一套接字的信息和發送連接請求的IPv6節點21的地址(操作步驟610)。同時,作為客戶機的節點11通過在應用層中調用connect(IPv4)來請求連接到IPv4節點31,該connect(IPv4)包括關於第二套接字的信息和等待接收連接請求的IPv4節點31的地址(操作步驟611)。然後,IPv4節點31通過在應用層中調用accept(IPv4)來許可接收的連接請求,該accept(IPv4)包括關於第四套接字的信息和發送該連接請求的節點11的地址(操作步驟612)。在非移動通信如UDP的情況下,調用listen、connect、和accept的操作步驟被省略。
接下來,作為客戶機的IPv6節點21通過在應用層中調用send(IPv6),經過第三套接字來發送(來自IPv6節點21的)數據,該send(IPv6)包括關於第三套接字的信息和關於從IPv6節點21傳送的數據的信息(操作步驟613)。隨後,作為伺服器的節點11通過在應用層中調用recv(IPv6),經過第一套接字來接收從IPv6節點21傳送的數據,該recv(IPv6)包括關於第一套接字和從IPv6節點21傳送的數據的信息(操作步驟614)。其後,節點11通過在應用層中調用send(IPv4)經第二套接字來發送從IPv6節點21傳送的數據,該數據包括關於第二套接字和從IPv6節點21傳送的數據的信息(操作步驟615)。這個過程可應用到在應用層中的IPv6到IPv4的轉換過程。接下來,作為伺服器的IPv4節點31通過在應用層中調用recv(IPv4)經過第四套接字來接收從IPv6節點21傳送的數據,該recv(IPv4)包括關於第四套接字和從IPv6節點21傳送的數據的信息(操作步驟616)。IPv4節點31處理從IPv6節點21傳送的數據。
接下來,作為伺服器的IPv4節點3 1通過在應用層中調用send(IPv4)經過第四套接字來發送從IPv4節點31傳送的數據,該send(IPv4)包括關於第四套接字和從IPv4節點31傳送的數據的信息(操作步驟617)。然後,作為客戶機的節點11通過在應用層中調用recv(IPv4)經過第二套接字來接收從IPv4節點31傳送的數據,該recv(IPv4)包括關於第二套接字和從IPv4節點31傳送的數據的信息(操作步驟618)。其後,作為伺服器的節點11通過在應用層中調用send(IPv6)經過第一套接字來發送從IPv4節點31傳送的數據,該send(IPv6)包括關於第一套接字和從IPv4節點31傳送的數據的信息(操作步驟619)。這個過程可應用到在應用層中的IPv4到IPv6的轉換過程。接下來,作為客戶機的IPv6節點21通過在應用層中調用recv(IPv6),經過第三套接字來接收從IPv4節點31傳送的數據,該recv(IPv6)包括關於第四套接字和從IPv4節點31傳送的數據的信息(操作步驟620)。IPv6節點21處理從IPv4節點31傳送的數據。在非移動通信如UDP的情況下,sendto和recvfrom分別被調用,以代替send和recv。
圖7是根據本發明另一個實施例的連接異類協議節點的第二方法的流程圖。
參考圖7,連接異類協議節點的第二方法包括如下描述的操作步驟。該連接異類協議節點的第二方法在圖3示出的第二網絡環境中實現。
首先,作為伺服器和客戶機的節點12通過在應用層中調用socket(IPv4)產生第一套接字,該socket(IPv4)包括關於IPv4的信息,並且通過在應用層中調用socket(IPv6)產生第二套接字,該socket(IPv6)包括關於IPv6的信息(操作步驟701和702)。同時,IPv4節點22通過調用包括關於IPv4的信息的socket(IPv4)產生第三套接字,並且IPv6節點32通過調用包括關於IPv6的信息的socket(IPv6)產生第四套接字(操作步驟703和704)。
接下來,作為伺服器的節點12通過在應用層中調用bind(IPv4)來將節點12的地址和第一套接字連接,該bind(IPv4)包括關於第一套接字的信息和由IPv4節點22設置為目的地地址的節點12的地址(操作步驟705)。接下來,作為伺服器的節點12通過在應用層中調用listen(IPv4)來等待接收目的地是與第一套接字連接的地址的連接請求,該listen(IPv4)包括關於第一套接字的信息(操作步驟706)。同時,作為伺服器的IPv6節點32通過在應用層中調用bind(IPv6)來將IPv6節點32的地址和第四套接字連接,該bind(IPv6)包括關於第四套接字的信息和由IPv6節點32設置為目的地的節點12的地址(操作步驟707)。然後,作為伺服器的IPv6節點32通過在應用層中調用listen(IPv6)來等待接收目的地是與第四套接字連接的地址的連接請求,該listen(IPv6)包括關於第四套接字的信息(操作步驟708)。
其後,作為客戶機的IPv4節點22通過在應用層中調用connect(IPv4)來請求連接到節點12,該connect(IPv4)包括關於第三套接字的信息和等待接收連接請求的節點12的地址(操作步驟709)。接下來,作為伺服器的節點12通過在應用層中調用accept(IPv4)來許可該連接請求,該accept(IPv4)包括關於第一套接字的信息和發送連接請求的IPv4節點22的地址(操作步驟710)。同時,作為客戶機的節點12通過在應用層中調用connect(IPv6)請求連接到IPv6節點32,該connect(IPv6)包括關於第二套接字的信息和等待接收連接請求的IPv6節點32的地址(操作步驟711)。然後,IPv6節點32通過在應用層中調用accept(IPv6)來許可接收的連接請求,該accept(IPv6)包括關於第四套接字的信息和發送連接請求的節點12的地址(操作步驟712)。在非移動通信如UDP的情況下,調用listen、connect、和accept的操作步驟被省略。
接下來,作為客戶機的IPv4節點22通過在應用層中調用send(IPv4),經過第三套接字發送從IPv4節點22傳送的數據,該send(IPv4)包括關於第三套接字和從IPv4節點22傳送的數據的信息(操作步驟713)。接下來,作為伺服器的節點12通過在應用層中調用recv(IPv4)經過第一套接字接收從IPv4節點22傳送的數據,該recv(IPv4)包括關於第一套接字和從IPv4節點22傳送的數據的信息(操作步驟714)。其後,節點12通過在應用層中調用send(IPv6),經過第二套接字來發送從IPv4節點22傳送的數據,該數據包括關於第二套接字和從IPv4節點22傳送的數據的信息(操作步驟715)。這個過程可以應用到在應用層中的IPv4到IPv6的轉換過程。接下來,作為伺服器的IPv6節點32通過在應用層中調用recv(IPv6),經過第四套接字來接收從IPv4節點22傳送的數據,該recv(IPv6)包括關於第四套接字和從IPv4節點22傳送的數據的信息(操作步驟716)。IPv6節點32處理從IPv4節點22傳送的數據。
接下來,作為伺服器的IPv6節點32通過在應用層中調用send(IPv6)經過第四套接字發送從IPv6節點32傳送的數據,該send(IPv6)包括關於第四套接字和從IPv6節點32傳送的數據的信息(操作步驟717)。然後,作為客戶機的節點12通過在應用層中調用recv(IPv6),經過第二套接字來接收從IPv6節點32傳送的數據,該recv(IPv6)包括關於第二套接字和從IPv6節點32傳送的數據的信息(操作步驟718)。其後,作為伺服器的節點12通過在應用層中調用send(IPv4),經過第一套接字來發送從IPv6節點32傳送的數據,該send(IPv4)包括關於第一套接字和從IPv6節點32傳送的數據的信息(操作步驟719)。該過程可以應用到在應用層中的IPv6到IPv4的轉換過程。接下來,作為客戶機的IPv4節點22通過在應用層中調用recv(IPv4),經過第三套接字來接收從IPv6節點32傳送的數據,該recv(IPv4)包括關於第四套接字和從IPv6節點32傳送的數據的信息(操作步驟720)。IPv4節點22處理從IPv6節點32傳送的數據。在非移動通信如UDP的情況下,sendto和recvfrom被分別調用,以代替send和recv。
圖8是根據本發明另一個實施例的連接異類協議節點的第三方法的流程圖。
參考圖8,該連接異類協議節點的第三方法包括如下描述的操作步驟。在圖4示出的第三網絡環境中實現該連接異類協議節點的第三方法。
首先,作為伺服器和客戶機的節點13通過在應用層中調用socket(移動IP)來產生第一套接字,該socket(移動IP)包括關於移動IP的信息,並且通過在應用層中調用socket(非移動IP)來產生第二套接字,該socket(非移動IP)包括關於非移動IP的信息(操作步驟801和802)。同時,移動節點23通過調用包括關於移動IP的信息的socket(移動IP)來產生第三套接字,並且非移動節點33通過調用包括關於非移動IP的信息的socket(非移動IP)來產生第四套接字(操作步驟803和804)。
隨後,作為伺服器的節點13通過在應用層中調用bind(移動IP)將節點13的地址和第一套接字連接,該bind(移動IP)包括關於第一套接字的信息和由移動節點23設置為目的地的節點13的地址(操作步驟805)。接下來,作為伺服器的節點13通過在應用層中調用listen(移動IP)來等待接收目的地是與第一套接字連接的地址的連接請求,該listen(移動IP)包括關於第一套接字的信息(操作步驟806)。同時,作為伺服器的非移動節點33通過在應用層中調用bind(非移動IP)將非移動IP節點33的地址和第四套接字連接,該bind(非移動IP)包括關於第四套接字的信息和由節點13設置為目的地的非移動節點33的地址(操作步驟807)。然後,作為伺服器的非移動節點33通過在應用層中調用listen(非移動IP)來等待接收目的地是與第四套接字連接的地址的連接請求,該listen(非移動IP)包括關於第四套接字的信息(操作步驟808)。
其後,作為客戶機的移動節點23通過在應用層中調用connect(移動IP)來請求連接到節點13,該connect(移動IP)包括關於第三套接字的信息和等待接收連接請求的節點13的地址(操作步驟809)。接下來,作為伺服器的節點13通過在應用層中調用accept(移動IP)來許可連接請求,該accept(移動IP)包括關於第一套接字的信息和發送連接請求的移動節點23的地址(操作步驟810)。同時,作為客戶機的節點13通過在應用層中調用connect(非移動IP)來請求連接到非移動節點33,該connect(非移動IP)包括關於第二套接字的信息和等待接收連接請求的非移動節點33的地址(操作步驟811)。然後,非移動節點33通過在應用層中調用accept(非移動IP)來許可接收的連接請求,該accept(非移動IP)包括關於第四套接字的信息和發送連接請求的節點13的地址(操作步驟812)。在非移動通信如UDP的情況下,調用listen、connect和accept的操作步驟被省略。
接下來,作為客戶機的移動節點23通過在應用層中調用send(移動IP)經過第三套接字來發送從移動節點23傳送的數據,該send(移動IP)包括關於第三套接字的信息和關於從移動節點23傳送的數據(操作步驟813)。接下來,作為伺服器的節點13通過在應用層中調用recv(移動IP)經第一套接字來接收從移動節點23傳送的數據,該recv(移動IP)包括關於第一套接字和從移動節點23傳送的數據的信息(操作步驟814)。其後,節點13通過在應用層中調用send(非移動IP),經過第二套接字來發送從移動節點23傳送的數據,該數據包括關於第二套接字和從移動節點23傳送的數據的信息(操作步驟815)。這個過程可以應用到在應用層中的移動IP到非移動IP的轉換過程。接下來,作為伺服器的非移動節點33通過在應用層中調用recv(非移動IP)經第四套接字來接收從移動節點23傳送的數據,該recv(非移動IP)包括關於第四套接字和從移動節點23傳送的數據的信息(操作步驟816)。非移動節點33處理從移動節點23傳送的數據。
接下來,作為伺服器的非移動節點33通過在應用層中調用send(非移動IP),經過第四套接字來發送從非移動節點33傳送的數據,該send(非移動IP)包括關於第四套接字和從非移動節點33傳送的數據的信息(操作步驟817)。然後,作為客戶機的節點13通過在應用層中調用recv(非移動IP),經過第二套接字接收從非移動節點33傳送的數據,該recv(非移動IP)包括關於第二套接字和從非移動節點33傳送的數據的信息(操作步驟818)。其中,作為伺服器的節點13通過在應用層中調用send(移動IP)經第一套接字來發送從非移動節點33傳送的數據,該send(移動IP)包括關於第一套接字和從非移動節點33傳送的數據的信息(操作步驟819)。這個過程可應用到在應用層中的非移動IP到移動IP的轉換過程。接下來,作為客戶機的移動節點23通過在應用層中調用recv(移動IP),經過第三套接字來接收從非移動節點33傳送的數據,該recv(移動IP)包括關於第四套接字和從非移動IP 31傳送的數據的信息(操作步驟820)。移動節點23處理從非移動節點33傳送的數據。在非移動通信如UDP的情況下,sendto和recvfrom分別被調用,以代替send和recv。
圖9是根據本發明另一個實施例的連接異類協議節點的第四方法的流程圖。
參考圖9,該連接異類協議節點的第四方法包括如下描述的操作步驟。在圖5示出的第四網絡環境中實現該連接異類協議節點的第四方法。
首先,作為伺服器和客戶機的節點14通過在應用層中調用socket(非移動IP)來產生第一套接字,該socket(非移動IP)包括關於非移動IP的信息,並且通過在應用層中調用socket(移動IP)來產生第二套接字,該socket(移動IP)包括關於移動IP的信息(操作步驟901和902)。同時,非移動節點24通過調用包括關於非移動IP的信息的socket(非移動IP)來產生第三套接字,並且移動節點34通過調用包括關於移動IP的信息的socket(移動IP)產生第四套接字(操作步驟903和904)。
隨後,作為伺服器的節點 4通過在應用層中調用bind(非移動IP)將節點14的地址與第一套接字連接,該bind(非移動IP)包括關於第一套接字的信息和由非移動節點24設置為目的地的節點14的地址(操作步驟905)。接下來,節點14作為伺服器通過在應用層中調用listen(非移動IP)等待接收目的地為與第一套接字連接的地址的連接請求,該listen(非移動IP)包括關於第一套接字的信息(操作步驟906)。同時,移動節點34作為伺服器通過在應用層中調用bind(移動IP)來將移動IP節點34的地址與第四套接字連接,該bind(移動IP)包括關於第四套接字的信息(操作步驟907)。然後移動節點34作為伺服器通過在應用層中調用listen(移動IP)來等待接收目的地為與第四套接字連接的地址的連接請求,該listen(移動IP)包括關於第四套接字的信息(操作步驟908)。
其後,非移動節點24作為客戶機通過在應用層中調用connect(非移動IP)來請求連接到節點14,該connect(非移動IP)包括關於第三套接字的信息和等待接收連接請求的節點14的地址(操作步驟909)。接下來,節點14作為伺服器通過在應用層中調用accept(非移動IP)來許可連接請求,該accept(非移動IP)包括關於第一套接字的信息和發送連接請求的非移動節點24的地址(操作步驟910)。同時,節點14作為客戶機通過在應用層中調用connect(移動IP)請求連接到移動節點34,該connect(移動IP)包括關於第二套接字的信息和等待接收連接請求的移動節點34的地址(操作步驟911)。然後移動節點34通過在應用層中調用accept(移動IP)許可接收的連接請求,該accept(移動IP)包括關於第四套接點的信息和發送連接請求的節點14的地址(操作步驟912)。在非移動通信如UDP的情況下,調用listen、connect、和accept的操作步驟被省略。
接下來,非移動節點24作為客戶機通過在應用層中調用send(非移動IP)來通過第三套接字發送從非移動節點24傳送的數據,該send(非移動IP)包括關於第三套接字的信息和關於從非移動節點24傳送的數據的信息(操作步驟913)。隨後,節點14作為伺服器通過在應用層中調用recv(非移動IP)來通過第一套接字接收從非移動節點24傳送的數據,該recv(非移動IP)包括關於第一套接字和從非移動節點24傳送的數據的信息(操作步驟914)。隨後,節點14通過在應用層中調用send(移動IP)通過第二套接字發送從非移動節點24傳送的數據,該數據包括關於第二套接字和從非移動節點24傳送的數據的信息(操作步驟915)。這種處理可應用到應用層中的非移動IP到移動IP的轉換過程。接下來,移動節點34作為伺服器通過在應用層中調用recv(移動IP)來通過第四套接字接收從非移動節點24傳送的數據,該recv(移動IP)包括關於第四套接字和從非移動節點24傳送的數據的信息(操作步驟916)。移動節點34處理從非移動節點24傳送的數據。
隨後,移動節點34作為伺服器通過在應用層中調用send(移動IP)通過第四套接字發送從移動節點34傳送的數據,該send(移動IP)包括關於第四套接字和從移動節點34傳送的數據的信息(操作步驟917)。然後,節點14作為客戶機通過在應用層中調用recv(移動IP)來通過第二套接字接收從移動節點34傳送的數據,該recv(移動IP)包括關於第二套接字和從移動節點34傳送的數據的信息(操作步驟918)。然後,節點14作為伺服器通過在應用層中調用send(非移動IP)來通過第一套接字接收從移動節點34傳送的數據,該send(非移動IP)包括關於第一套接字和從移動節點34傳送的數據的信息(操作步驟919)。這種處理可應用於應用層中從移動IP到非移動IP的轉換過程。接下來,非移動節點24作為客戶機通過在應用層中調用recv(非移動IP)來通過第三套接字接收從移動節點34傳送的數據,該recv(非移動IP)包括關於第四套接字和從移動IP 31傳送的數據的信息(操作步驟920)。非移動節點24處理從移動節點34傳送的數據。在非移動通信如UDP的情況下,sendto和recvfrom分別被調用而不調用send和recv。
本發明的實施例可被寫為電腦程式並且可在使用計算機可讀記錄介質執行程序的通用數字計算中被實現。計算機可讀記錄介質的例子包括磁存儲介質(例如,ROM、軟盤、硬碟,等等)、光學記錄介質(例如CD-ROM、或DVD)、和如載波(例如通過網絡傳輸)的存儲介質。
根據本發明,可將使用異類協議的節點彼此連接。例如,IPv4節點可以和IPv6節點連接,非移動節點可與移動節點連接。尤其是,由於本發明可在用戶或終端發行者能夠管理的應用層中執行,所以用戶或終端發行者可以容易地執行本發明。
儘管已參照其優選實施例具體地表示和描述了本發明,但本領域技術人員應該理解,在不脫離由所附權利要求限定的本發明的精神和範圍情況下,可以對其進行形式和細節的各種修改。優選實施例應視為描述性的而非用於限制的目的。因此,本發明的範圍不是由對本發明的詳細描述而是由所附權利要求來限定的,並且在該範圍內的所有差別應被解釋為包括在本發明中。
權利要求
1.一種連接異類協議節點的方法,該方法包括(a)通過第一套接字接收從使用第一協議的第一節點傳送的第一數據;和(b)通過第二套接字將接收的第一數據發送給使用第二協議的第二節點。
2.如權利要求1所述的方法,其中,第一協議是IPv6並且第二協議是IPv4,或者相反。
3.如權利要求1所述的方法,其中,第一協議是移動IP並且第二協議是非移動IP,或者相反。
4.如權利要求1所述的方法,其中,在操作步驟(a)中,數據通過在應用層中調用接收函數經第一套接字來被接收,該接收函數包括關於第一套接字和數據的信息,和在操作步驟(b)中,數據通過在應用層中調用發送函數經第二套接字來被發送,該發送函數包括關於第二套接字的信息和與關於數據的信息相同的信息。
5.如權利要求1所述的方法,還包括(c)分別產生用於基於第一協議的通信和基於第二協議的通信的第一套接字和第二套接字,其中,在操作步驟(a)中,數據通過在操作步驟(c)中產生的第一套接字來被接收,和在操作步驟(b)中,數據通過在操作步驟(c)中產生的第二套接字來被發送。
6.如權利要求1所述的方法,還包括(d)分別產生用於基於第一協議的通信和基於第二協議的通信的第一套接字和第二套接字;和(e)將在操作步驟(d)中產生的第一套接字連接到第一節點並將在操作步驟(d)中產生的第二套接字連接到第二節點,其中,在操作步驟(a)中,數據通過在操作步驟(d)中連接的第一套接字來被接收,和在操作步驟(b)中,數據通過在操作步驟(d)中連接的第二套接字來被發送。
7.一種用於連接異類協議節點的設備,該設備包括第一套接字通信單元,通過第一套接字接收第一數據,該第一數據被從使用第一協議的第一節點傳送;和第二套接字通信單元,通過第二套接字將由第一套接字通信單元接收的第一數據發送給第二節點。
8.如權利要求7所述的設備,其中,第一協議是IPv6並且第二協議是IPv4,或者相反。
9.如權利要求7所述的設備,其中,第一協議是移動IP並且第二協議是非移動IP,或者相反。
10.如權利要求7所述的設備,其中,第一套接字通信單元通過在應用層中調用接收函數經第一套接字來接收數據,該接收函數包括關於第一套接字和數據的信息,和第二套接字通信單元通過在應用層中調用發送函數經第二套接字來發送數據,該發送函數包括關於第二套接字的信息和與關於數據的信息相同的信息。
11.如權利要求7所述的設備,還包括雙套接字產生單元,分別產生用於基於第一協議的通信和基於第二協議的通信的第一套接字和第二套接字,其中,第一套接字通信單元通過由雙套接字產生單元產生的第一套接字接收,並且第二套接字通信單元通過由雙套接字產生單元產生的第二套接字發送。
12.如權利要求7所述的設備,還包括雙套接字產生單元,分別產生用於基於第一協議的通信和基於第二協議的通信的第一套接字和第二套接字;和雙套接字連接單元,將第一套接字與第一節點連接並將第二套接字與第二節點連接,第一和第二套接字由雙套接字產生單元產生,其中,第一套接字通信單元通過由雙套接字連接單元連接的第一套接字接收,並且第二套接字通信單元通過由雙套接字連接單元連接的第二套接字發送。
13.一種連接異類協議節點的方法,該方法包括(a)分別產生用於基於第一協議的通信和基於第二協議的通信的第一套接字和第二套接字;和(b)通過在操作步驟(a)中產生的第一套接字與使用第一協議的第一節點通信和通過在操作步驟(a)中產生的第二套接字與使用第二協議的第二節點通信。
14.如權利要求13所述的方法,其中,第一協議是IPv6並且第二協議是IPv4,或者相反。
15.如權利要求13所述的方法,其中,第一協議是移動IP並且第二協議是非移動IP,或者相反。
16.如權利要求13所述的方法,其中,在操作步驟(a)中,作為應用程式接口的第一套接字和第二套接字通過在應用層中調用預定函數來被產生。
17.如權利要求13所述的方法,其中,在操作步驟(b)中,通信通過在應用層中調用預定函數經作為應用程式接口的第一套接字和第二套接字來被執行。
18.一種已在其上包含用於連接異類協議節點的方法的電腦程式的計算機可讀記錄介質,該方法包括通過第一套接字接收第一數據,該數據被從使用第一協議的第一節點傳送;和通過第二套接字將接收的數據發送給第二節點,該第二節點使用第二協議。
19.一種已在其上包含用於與異類協議節點通信的方法的電腦程式的計算機可讀記錄介質,該方法包括分別產生用於基於第一協議的通信和基於第二協議的通信的第一套接字和第二套接字;和通過產生的第一套接字與使用第一協議的第一節點通信和通過產生的第二套接字與使用第二協議的第二節點通信。
全文摘要
提供了一種用於連接異類協議節點的方法和設備。該方法包括通過第一套接字接收第一數據,該數據被從使用第一協議的第一節點傳送;和通過第二套接字將接收的第一數據發送給第二節點,該第二節點使用第二協議,因此,使用異類協議的節點能夠彼此連接。
文檔編號H04L12/28GK1652543SQ200510007259
公開日2005年8月10日 申請日期2005年2月6日 優先權日2004年2月6日
發明者金坪洙, 金善友, 金永根 申請人:三星電子株式會社