用于连接异类协议节点的方法和设备的制作方法

文档序号:7611819阅读:192来源:国知局
专利名称:用于连接异类协议节点的方法和设备的制作方法
技术领域
本发明涉及一种用于连接使用异类(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日
发明者金坪洙, 金善友, 金永根 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1