KR20050077740A - 패킷 네트워크에서의 종단점 어드레스 변경 - Google Patents
패킷 네트워크에서의 종단점 어드레스 변경 Download PDFInfo
- Publication number
- KR20050077740A KR20050077740A KR1020050005793A KR20050005793A KR20050077740A KR 20050077740 A KR20050077740 A KR 20050077740A KR 1020050005793 A KR1020050005793 A KR 1020050005793A KR 20050005793 A KR20050005793 A KR 20050005793A KR 20050077740 A KR20050077740 A KR 20050077740A
- Authority
- KR
- South Korea
- Prior art keywords
- carrier
- endpoint address
- new
- address
- current
- Prior art date
Links
- 230000008859 change Effects 0.000 title claims description 33
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000004891 communication Methods 0.000 claims abstract description 24
- 238000012546 transfer Methods 0.000 claims abstract description 24
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000001914 filtration Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 12
- 238000013508 migration Methods 0.000 abstract description 7
- 230000005012 migration Effects 0.000 abstract description 7
- 230000004044 response Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 11
- 235000014510 cooky Nutrition 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 101150053844 APP1 gene Proteins 0.000 description 3
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 3
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005641 tunneling Effects 0.000 description 3
- 230000027455 binding Effects 0.000 description 2
- 238000009739 binding Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 1
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 1
- 101100219553 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SRV2 gene Proteins 0.000 description 1
- 241000153282 Theope Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0011—Control or signalling for completing the hand-off for data sessions of end-to-end connection
- H04W36/0019—Control or signalling for completing the hand-off for data sessions of end-to-end connection adapted for mobile IP [MIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/06—Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
무결절성 전송 종단점 이동성(STEM) 구조는 전송 접속 종단점을 이전의 IP 어드레스에서 새로운 IP 어드레스로 세션의 손실 없이 이송한다. 이송 처리는 두 개의 종단점들 사이에서 협상된다. 전송 종단점 이동성은 두 개의 STEM 데몬들 간의 통신을 포함하고, 각각의 종단점 내의 하나의 STEM 데몬은 세션과 관련된 커널 데이터 구조들(예를 들면, TCP/IP 애플리케이션과 관련된 5-투플의 요소들)을 동적으로 업데이트시킨다. 이송은 데이터 전송을 위한 기본적 전송 접속을 사용하는 애플리케이션에 투명적이다.
Description
관련 분야
본 발명은 통신 네트워크에서 전송 접속(transport connection)들을 이송하는 것에 관한 것이며, 보다 상세하게는, 패킷 네트워크에서 어드레스를 통한 기존 세션(session)들의 이송(migration)에 관한 것이다.
배경 기술
인터넷에 액세스하는 이동 계산 장치(mobile computing device)들 및 무선 계산 장치들(이동 장치들)의 성장 및 확산으로, 인터넷 프로토콜(Internet Protocol; IP) 서브네트워크(subnetwork)들(서브넷들)에 걸쳐 무결절성 로밍(seamless roaming)을 지원하기 위한 인프라구조가 요구된다. 많은 사용자들은 접속을 위한 IP 어드레스를 획득하기 위해 동적 호스트 설정 프로토콜(Dynamic Host Configuration Protocol; DHCP)을 사용하지만, DHCP를 사용하는 것은 이동성(portability)만을 제공할 뿐이며 무결절성 로밍을 위한 관련 투명성(transparency)을 제공하지 않는다. 이동 장치에 의한 IP 서브넷에 걸친 모든 이동은 이전 IP 어드레스를 먼저 릴지징(releasing)하는 것이 요구되며, 그후 새로운 IP 어드레스를 획득하는 것이 요구되며, 이것은 결과적으로 전송(및 더 높은 계층(higher-layer)) 접속들의 손실을 가져온다.
두 개의 엔티티(entity)들 간의 정상 네트워크 통신은 통신 기간 동안 변경되지 않는 IP 어드레스와 같은 특정 종단점 식별자(endpoint identifier)를 지정하는 것을 포함한다. 예를 들면, 두 개의 종단점들(예를 들면, 호스트들) 간의 전형적인 전송 제어 프로토콜(Transmission Control Protocol; TCP) 접속 확립 절차는 소켓(socket) 응용 프로그램 인터페이스(Application Programming Interface; API) 패킷을 사용하는 애플리케이션으로 시작한다. 각각의 소켓 API는 다음의 5 개의 요소들을 포함하는 주어진 5-투플(tuple)로 명확히 묶여진다. 제 1 요소는 패킷을 위한 특정 통신 프로토콜을 식별하는 "프로토콜" 요소이다. 제 2 요소는 패킷을 시작하는 소스 노드(source node)의 IP 어드레스를 식별하는 "소스 IP 어드레스" 요소이다. 제 3 요소는 패킷을 시작하는 소스 노드의 포트(port)를 나타내는 "소스 전송 포트" 요소이다. 제 4 요소는 패킷을 수신하기 위해 최종 목적지 노드(destination node)의 IP 어드레스를 식별하는 "최종 목적지 IP 어드레스" 요소이다. 제 5 요소는 패킷을 수신하는 최종 목적지 노드의 포트를 나타내는 "최종 목적지 전송 포트" 요소이다. 세션 동안 이들 5-투플 요소들 중 어느 하나로의 임의 변경들은 세션 실패를 일으킬 것이며, 전형적으로 접속 재-확립을 개시한다. 5-투플 구조가 주어지면, 다음은 현재 TCP-순응 패킷 네트워크(TCP-compliant packet network)들에서 접속의 확립 및 유지를 약술한다. TCP 엔진의 접속 확립 절차(connection establishment procedure)는 클라이언트(제 1 종단점)와 서버(제 2 종단점) 간의 메시지 교환들의 시퀀스(sequence)를 수반한다. 클라이언트는 SYN 메시지를 서버로 전송함으로써 시작하고 클라이언트는 응답하여 서버로부터 SYN-ACK 메시지를 수신한다. 클라이언트는 응신(acknowledgment)하여 ACK 메시지로 서버에 다시 응답하고, 그후 클라이언트와 서버 간의 접속은 개방되고 완전히 기능한다. 접속의 양 종단(end)들 상의 TCP 엔진은 동작하는 시스템 커널(kernel) 내의 TCP 제어 블럭(TCP Control Block; TCB)에서 유지되는 상태 정보로 확립된 상태(ESTABLISHED state)가 된다. 네트워크를 가로지르는 IP 데이터그램들에 포함되는 5-투플에 의해 네트워크에서 TCP 세션은 이제 특별히 식별 가능하다. 애플리케이션의 퍼스펙티브(perspective) 및 동작하는 시스템 커널의 퍼스펙티브로부터의 이러한 세션은 이들 세션과 관련된 소켓에 의해 특별히 식별될 수 있다. 5-투플의 요소들 중 하나로의 임의 변경은 세션 실패의 원인이 된다.
TCP 세션 실패는 TCP가 접속을 중단하고 관련 소켓 바인딩(socket binding)들을 폐쇄할 때 발생한다. TCP가 접속을 중단하는 많은 이유들이 있으며, 이유들 중 몇몇은 1) 원격 종단(remote end)로부터 TCP RST(reset)를 수신함; 프로토콜에 의해 정의된 재전송 시도들의 수를 초과함; 3) 너무 많은 비응신된 "살아 있는(keep-alive)" 프로브(probe)들; 4) 애플리케이션에 의한 요청; 및 5) 비정상적인 외부 조건을 포함한다. 이들 TCP 리셋 조건(reset condition)들은 패킷 네트워크의 정상 동작시 일상적으로 발생하며, 인터페이스 IP 어드레스, 접속 손실의 확장된 기간들, 호스트 크래쉬들/리부트들(crashes/reboot), 또는 TCP 접속 실패에 대한 유사한 기여들로부터 일어날 수 있다.
TCP 전송 세션을 사용하는 애플리케이션은 원래 5-투플을 갖는 소켓으로 묶여지기 때문에, 인터페이스의 IP 어드레스를 변경하는 것은 관련된 애플리케이션 소켓 바인딩을 변경하지 않는다. 애플리케이션에 의해 커널로 전송된 어떠한 사용자 데이터는 TCP의 전송-대기열(send-queue) 내의 전송 계층 세크먼트들과 같이 TCP 계층에서 큐잉되는데(queued), 데이터 온을 나오게 하기 위한, 이전 IP 어드레스를 갖는 어떠한 유효한 출력 인터페이스도 없기 때문이다. TCP 재전송 메카니즘은 유효 루트/인터페이스(route/interface)가 나타날 때까지 또는 접속 시간들이 종료할 때까지 이러한 데이터를 나오게 하려고 재시도하려 한다. 두 개의 종단 시스템들 간에 어떠한 도달 가능성(reachability)도 없다면, 어느 한쪽의 TCP 상태는 (정상적으로) 그의 이전 상태가 계속된다(예를 들면, 양쪽은 확립된 상태가 계속된다). 인터페이스의 IP 어드레스가 그의 원래 어드레스(그에 의해 원래 5-투플)로 되돌아 가면, 루트가 존재한다고 가정하면, 종단점 애플리케이션들 간의 통신은 재시작된다. 그러나, 인터페이스의 IP 어드레스가 변하면, 원격 호스트로부터 수신된 어떠한 데이터 패킷들은 IP 계층에서 드롭되는데, 데이터와 관련한 어떠한 유효 인터페이스도 없기 때문이다. 로컬 종단 및 먼 종단 모두는 그들 TCP 상태에 의존하는 그들 각각의 접속들을 종료한다.
이러한 세션 확립 및 유지 처리는 제한적이며 제한들을 사용자 이동성 또는 고장 허용 접속(fault tolerant connection)들과 같은 특정 형태의 애플리케이션들에게 부과한다. 종래 기술의 이동 IP는 네트워크 계층(network layer)에서 라우팅(routing) 기술들을 사용하는 이러한 제약을 회피함으로써 호스트 이동성을 획득하도록 발전되었다. 이동 IP에 따라, 그의 통신하는 기능을 상실하지 않고 첨부의 그의 점을 변경하기 위한 노드에서, 두 개의 다음 메카니즘들, 1) 노드가 그의 연결 지점(point of attachment)을 변경할 때마다 노드가 그의 IP 어드레스를 변경해야 하거나, 또는 2) 호스트 특정 루틴들이 많은 인터넷 라우팅 패브릭(internet routing fabric)를 통해 전파되는 메카니즘들 중 어느 하나가 전형적으로 사용되어야 한다. 이들 대안들 모두는 종종 받아들일 수 없다. 제 1 메카니즘은 노드가 위치를 변경할 때 노드가 전송 계층 접속 및 더 높은 계층 접속을 유지하는 것을 불가능하게 만든다. 특히 노트북(이동) 컴퓨터들의 판매가 폭발적으로 성장하는 것을 고려하면 제 2 메카니즘은 심각한 스케일링 문제점(scaling problem)들이 나타난다.
호스트 이동성 문제들 및 고장 회복(fault resiliency) 문제들을 감소시키도록 제안된 종래 기술의 많은 기술들이 존재한다. 이들 기술들은 네트워크 계층(예를 들면, IP 계층), 전송 계층(예를 들면, TCP/UDP(User Datagram Protocol)), 또는 더 높은 계층(예를 들면, 소켓 또는 응용 계층)에 해결책을 제공하는 것으로 분류될 수 있다.
이동 IP는 라우팅 간접의 레벨 또는 대응하는 호스트에서 이동 노드로 모든 패킷들의 삼각 라우팅(triangular routing)의 레벨을 사용함으로써 네트워크 계층에서 호스트 이동성 문제점들을 해결하려고 시도한다. 이러한 라우팅 간접은 이동 노드에 서비스들을 제공하는 프럭시들인 "홈 에이전트(home agent)들" 및 "외부 에이전트(foreign agent)들"의 사용을 통해 성취된다. 이동 IP는 호스트 이동성 문제들 및 도달 가능성 문제들을 잘 처리하지만, 이동 IP는 전송 접속 실패들(예를 들면, 전송 종단점들에 대한 어떠한 변경들은 세션 실패의 원인이다)을 처리하지 않는다. 전형적으로, 전송 세션 접속에 의존하는 애플리케이션들은 재시작될 필요가 있으며, 새로운 전송 접속이 확립되어야 한다. 이동 IP의 다른 단점들은 비최적화된 삼각 라우팅 및 IP 터널링(tunneling)의 광범위한 사용을 포함한다. 보안 이유들로 인하여, 서비스 제공자들은 터널링된 패킷들을 전형적으로 허용하지 않는다. 또한, 서비스 거부(Denial-Of-Service; DOS) 공격들의 증가된 주파수로 인하여, 서비스 제공자들은 소스 어드레스를 속이는 블럭 패킷들에 대한 입장 필터링(ingress filtering)을 사용한다. 입장 필터링 문제는 역 터널링(reverse tunneling)을 사용함으로써 해결될 수 있지만, 역 터널링은 네트워킹 리소스들의 다른 서브-최적 사용의 원인이 되며, 두 개의 종단점들 간의 여분의 패킷 지연들을 추가한다.
전송 계층들 또는 더 높은 계층들에서 종단 대 종단 호스트 이동성의 문제를 해결하려 시도하는 방법들은 전형적으로 1) 접속을 다중 세그먼트들로 분할시키거나 2) 새로운 메시지들 및 상태들을 TCP 상태 기계에 추가함으로써 표준 TCP 구현을 수정하거나 또는 3) 애플리케이션을 속여서 접속이 여전히 존재한다고 믿도록 하며, 한편 접속을 재확립하기 위한 시도가 이루어 진다.
예를 들면, MSOCKS(Mobile Sockets)은 접속 방향 변경을 위해 분리-접속 프럭시를 사용한다. MSOCKS는 이동 노드와 그의 대응 호스트들 간의 통신 경로에 프럭시(proxy)를 삽입하고 다중 세그먼트들로의 접속을 깨기 위해 TCP 연결 메카니즘(TCP splice mechanism)을 사용하므로 대응 호스트들로부터 이동 노드의 이동성 문제들을 숨긴다. 그러나, 통신 경로 프럭시를 추가하는 것은 서비스를 상당히 저하시킬 수 있다.
몇몇 기술들은 연속적 접속 인스턴스들 상의 단일, 끊기지 않은 접속의 일루전을 보호하는 소켓 API와 애플리케이션 간의 라이브러리(library)를 도입하는 것을 포함한다. 모든 이들 접근법들은 애플리케이션과 그들 각각의(특정) 라이브러리들을 링크하는 것을 요구한다. 끊기지 않은 접속의 일루전(illusion)은 애플리케이션을 속여, 전송 세션이 폐쇄하였을지라도 전송 세션이 여전히 활성 상태라고 믿도록 한다. 그후 중간 라이브러리는 (새로운)전송 접속을 재확립하려고 시도하며, 전송 접속을 사용하는 애플리케이션에 대한 새로운 전송 접속을 맵핑(mapping)한다. 그러한 해결책들의 구현 및 그러한 해결책과 관련된 동작의 어려움들은 I/O 폴링(polling)과 같은 가상 메카니즘들, 비대칭 및 비블록킹 I/O 처리들, 타이머들 및 신호 처리기들에 대한 필요, 및 "대기(wait)", "킬(kill)" 및 "실행(exec)"과 같은 추가 처리 제어 인터페이스들에 대한 필요를 포함한다.
다른 기술은 전송 계층 프로토콜 및 종단 애플리케이션을 수정함으로써 종단 대 종단 이동성을 획득하기 위한 메카니즘을 제공한다. 수정은 새로운 상태들 및 의미(semantics)를 TCP 한정 상태 기계에 추가한다. TCP 헤더, 패킷 포맷, 프로토콜 의미를 변경하거나 또는 추가적 헤더들을 패킷들에 추가하는 것에 관여하는 다른 기술들이 존재한다. 그러나, 이들 기술들의 단점은 종단 사용자 애플리케이션들이 그러한 기술을 사용하기 위하여 새로운 특성을 알아야만 하고 기존 애플리케이션들에 대한 변화가 요구된다는 것을 의미한다.
본 발명의 예시적인 실시예에 따라, 무결절성 전송 종단점 이동성(STEM) 구조는 세션의 손실 없이, 전송 접속 종단을 이전 주소에서 새로운 주소로 이송한다. 이송 처리는 두 개의 종단들 사이에서 협상된다. 전송 종단점 이동성은 두 개의 STEM 데몬(daemon)들 간의 통신을 포함하며, 각각의 종단점 내의 하나의 데몬은 세션과 관련된 커널 데이터 구조들(예를 들면, TCP/IP 애플리케이션과 관련된 5-투플의 요소들)을 동적으로 업데이트시킨다. 이송은 데이터 전송을 위한 기본적 전송 접속을 사용하는 애플리케이션에 투명적이다.
본 발명의 예시적인 실시예에 따라, 이송자(migrator)는 패킷 기반 통신 시스템에서 이송자와 비이송자(non-migrator) 간의 세션 동안 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송한다. 이송자는 (a) 상기 이송자에서, 상기 현재 종단점 어드레스를 상기 새로운 종단점 어드레스로 변경하는 단계, (b) 상기 새로운 종단점 어드레스를 갖는 패킷들의 상기 비이송자로의 전송을 보류시키는 단계, (c) 상기 비이송자에게 상기 새로운 종단점 어드레스로의 상기 변경을 알리는 단계, 및 (d) 상기 새로운 종단점을 갖는 패킷들의 상기 비이송자로의 전송을 재시작하는 단계에 의해 이송한다.
본 발명의 다른 예시적인 실시예에 따라, 비이송자는 패킷 기반 통신 네트워크에서 비이송자와 이송자 간의 세션 동안 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송한다. 비이송자는 (a) 상기 새로운 종단점 어드레스로의 상기 이송자의 변경을 나타내는 제어 메시지를 수신하는 단계, (b) 상기 비이송자에서, 상기 현재 종단점 어드레스를 상기 새로운 종단점 어드레스로 변경하는 단계, (c) 상기 새로운 종단점 어드레스로의 상기 비이송자의 변경을 상기 이송자로 응신하는 단계, 및 (d) 상기 새로운 종단점 어드레스를 갖는 상기 세션의 패킷들을 상기 이송자와 교환하는 단계에 의해 이송한다.
본 발명의 다른 특징들, 특성들 및 장점들은 다음의 상세한 설명, 첨부된 청구 범위, 및 첨부한 도면들로부터 보다 완전히 명백해질 것이다.
다음의 용어 및 정의들은 본 발명의 이해에 대한 목적으로서 사용된다. "이송자" 또는 "이송하는 종단점"은 인터넷 프로토콜(IP)을 변경하는 현재 처리 중이거나 그의 인터넷 프로토콜 어드레스를 이미 변경한 종단 시스템이다. 이송자는 그의 새로운 IP 어드레스를 식별하는 원격 종단점으로 제어 메시지를 개시하는 종단 시스템이다. "비이송자" 또는 "비이송하는 종단점" 또는 "고정된 종단점"은 그의 IP 어드레스를 변경하지 않는 원격 종단점 시스템이다. 비이송자는 이송자에 의해 전송된 제어 메시지를 받아들이고 응신 메시지들로 이송자에 다시 응답한다. 이송자/비이송자 및 클라이언트/서버 간의 일-대-일 관계는 반드시 존재하지는 않는다. TCP 접속들에서, 클라이언트는 다른 시스템으로의 TCP 접속을 개시하는 시스템이며, 한편 서버는, 파일 전송 전송 프로토콜(File Transport Protocol; FTP), 텔넷, 또는 시큐어 셀(Secure Shell; SSH)과 같은 서비스를 클라이언트에게 제공하는 시스템이다. 이송자/비이송자는 클라이언트 또는 서버 중 어느 하나일 것이다.
이송자와 비이송자 간의 세션 확립 처리 및 유지 처리는 다음의 특성들을 따른다. 노드는 그의 IP 어드레스 또는 인터페이스를 변경하면서, 다른 노드들과의 기존 통신을 유지한다. 다양한 방향 변경 및 되풀이 공격 기술들과 같은 세션의 보안에서 침해(breach)들에 대비하여 보호를 제공하기 위해 접속을 새로운 IP 어드레스로 이송할 필요가 있는 모든 메시지들은 선택적으로 인증될 수 있다. 노드는 예를 들면, 동적 호스트 구성 프로토콜(DHCP), 메뉴얼 구성, 또는 다른 유효한 네트워크 메카니즘을 통해 IP 어드레스를 획득한다. IP 어드레스(또는 연결 지점)는 빠르게 변하지 않는다. 대응하는 전송 계층 접속을 유지하면서, IP 어드레스가 변할 수 있는 레이트는, 노드가 서로 다른 노드 와 통신할 수 있고 인증 후에 그들의 커널 데이터 구조들을 업데이트시킬 수 있는 속도에 의존한다. 접속 종단 시스템들 모두는 본 발명의 실시예를 구현하는 상대적으로 대칭적 코드를 갖는 것이 바람직하다.
본 발명의 예시적인 실시예에 따라, 무결절성 전송 종단점 이동성(STEM) 구조는 이송자의 커널 데이터 구조에서 유지되는 확립된 세션(접속)을 위한 5-투플 연계를 동적으로 변경하고 그의 커널 데이터 구조에 대한 동일한 IP 어드레스 수정을 수행한다는 것을 비이송자에게 알린다. 동적, 로드(load) 가능한 커널 모듈 및 제어 정보 통신 데몬은 종단점 둘 모두의 패킷들 내의 소스 및 최종 목적지 IP 어드레스를 변경하기 위해 각각의 종단점들에서 사용된다. 따라서, 새로운 IP 어드레스에 대한 성공적인 전송 종단점 이송을 성취하기 위해, 이전 IP 어드레스에 대한 참조들은 데이터 전송 동안 제거되는 것이 바람직하다. 이송자에서, 비이송자로 전송된 모든 IP 패킷들은 소스 어드레스로서 새로운 IP 어드레스를 포함하며, 한편 비이송자로부터 수신된 모든 패킷들은 최종 목적지 주소로서 새로운 IP 어드레스를 포함한다. 비이송자의 퍼스펙티브에서, 이송자로부터 수신된 모든 IP 패킷들은 소스 어드레스로서 새로운 IP 어드레스를 포함해야 하며, 한편 이송자로 전송된 모든 패킷들은 최종 목적지 어드레스로서 새로운 IP 어드레스를 포함해야 한다.
도 1는 인터넷(103)을 통해 통신하는 노드(101) 및 노드(102)에 대한 STEM 시스템을 도시한다. 노드(101)는 인터넷(103)을 통해 패킷들로서 전송 이전에 전송 계층 모듈(106) 및 네트워크 계층 모듈(107)에 의해 처리된 데이터를 생성하는 두 개의 사용자 애플리케이션(APP1) 및 사용자 애플리케이션(APP2)을 포함한다. 노드(102)는 인터넷(103)으로부터 수신된 패킷들을 처리하고 데이터를 애플리케이션 서버들(SRV1, SRV2 및 SRV3)에 제공하기 위해 네트워크 계층 모듈(108) 및 전송 계층 모듈(109)을 포함한다. 전송 계층 모듈들(106 및 109)은 예를 들면, 전송 제어 프로토콜(TCP)에 기초하여 통신하고, 통신 계층 모듈들(107 및 108)은 예를 들면, IP에 기초하여 통신한다. TCP/IP 통신은 당분야에 잘 알려져 있으며, 예를 들면, 앤드류 에스. 태넌바움(Andrew S. Tannenbaum)의 "컴퓨터 네트워크들", 2판, 프렌티스 홀, 1988년에서 찾아볼 수 있다.
애플리케이션(APP1)은 애플리케이션 서버(SRV1)을 갖는 TCP/IP 세션을 설정하고 유지한다. STEM 데몬들(104 및 105)은 노드들(101 및 102) 각각에 대하여, 소스 및 최종 목적지 IP 어드레슬를 포함하는 5-투플 정보를 식별하는 것과 같은 데이터 교환 및 제어를 조정한다. STEM 데몬들(104 및 105)은 인터넷(103)을 경유하는 사용자 데이터 그램 프로토콜(UDP)로서 도시된, 대역외 채널(out-of-band channel)(TCP 세션로부터 분리된 채널)을 통해 통신할 수 있다.
각각의 STEM 데몬은 동적으로 로드 가능한 커널 모듈(도 1에 도시되지 않음)로 구현된다. 데몬은 컴퓨터 시스템이 수신하고자 하는 주기적 서비스 요청들을 취급할 목적으로 존재하고 계속적으로 실행하는 프로그램이다. 데몬 프로그램은 주어진 통신 프로토콜에 의해 지정된 바와 같이, 요청들을 다른 프로그램들(또는 처리들)로 전송한다. STEM 데몬들(104 및 105)의 커널 모듈들은 5-투플 정보를 저장하는 그들의 커널 데이터 구조들을 수정한다. 5-투플은 특히 커널 소켓 디스크립터(descriptor)(애플리케이션에서 TCP/IP를 식별하는 디스크립터)를 식별한다.
도 2는 이송자와 고정된 종단(비이송자) 간의 예시적인 이송 이벤트 시퀀스를 도시한다. 정상 데이터 전송은 이송자에 대한 IP 어드레스 192.168.1.1를 사용하는 기간(201) 동안, 두 개의 종단점들 사이에 위치한다. 도 2에서, TCP 세션을 통한 메시지들은 이송자로부터의 데이터에 대한 (M) 및 고정된 종단으로부터의 데이터에 대한 (F) 아래에 도시되고, 한편 대역외 채널(예를 들면, UDP 세션)을 통한 제어 메시지들은 이송자로부터의 메시지들에 대한 (MD) 및 고정된 종단으로부터의 메시지들에 대한 (FD) 아래에 도시된다. 접속 설정 후, IP 어드레스 변경점(202) 전의 점에서, 이송자는 고정된 종단이 대역외 채널을 통한 응답으로 응신하는 등록 요청을 사용하여 고장된 종단에 선택적으로 등록한다. 고정된 종단에게 이송자가 그의 IP 어드레스를 지금 막 옮기거나 변경하려 한다는 것을 알리기 위해서 그리고 보안을 위해, 이송자는 고정된 종단에 선택적으로 등록한다.
이송자는 많은 다른 방법들로 그의 인터페이스를 위한 새로운 IP 어드레스를 획득할 수 있다. 이송자는 그 자신에게 더 높은 레벨 네트워크 매니저 또는 DHCP 서버로부터의 어드레스를 요철할 수 있으며, 그후 더 높은 레벨 네트워크 매니저 또는 DHCP 서버는 어드레스를 할당하고 제공할 것이다. 또한, 인터페이스는 수동으로 새로운 IP 어드레스로 재구성될 수 있다.
IP 어드레스 변경점(202)에서, 이송자는 IP 어드레스 192.168.2.99로 변경하기 시작한다. IP 어드레스 변경 이벤트(202) 후 기간(203) 동안, 이송자(예를 들면, 노드(101))의 커널 모듈은 소켓 디스크립터와 관련된 5-투플 데이터 내의 IP 어드레스를 업데이트시킨다. 각각의 소켓 디스크립터는 5-투플과 특히 관련된다. 커널 데이터 구조 업데이트는 모든 개방 소켓 디스크립터들을 탐색하고 그것들을 지정된 5-투플(투플들 중 하나로서 이전 IP 어드레스를 포함함)에 대하여 매칭시킴으로써 시작한다. 유효한 매치가 식별되면, 새로운 IP(종단점) 어드레스를 반영하기 위해, 적절한 변경이 이러한 데이터에 이루어진다. 또한, 최종 목적지 노드로의 패킷 전송은 보류된다. TCP 데이터 세그먼트들은 유효한 루트가 확립될 때까지 노드의 전송 대기열(TCP 전송-Q)에서 버퍼링된다.
따라서, 애플리케이션(예를 들면, APP1)이 관련되는 한, 커널에 대한 변경들은 투명적인데, 애플리케이션은 동일한 소켓 디스크립터로 여전히 묶여지기 때문이다. 따라서, 애플리케이션은 동일한 소켓 디스크립터를 사용하고 정상적으로 동작을 계속한다. 수정된 소켓 디스크립터 상으로 전송된 데이터는 루트 룩업 처리 동안 유효한 루트/인터페이스를 산출한다. 동시에, 이송자는 원격(고정된) 종단에게 대역외 통신(제어 메시지 "이송 req"로서 도시됨)을 통해 새로운 종단점 IP 어드레스로의 변경을 알린다. 이러한 정보에 기초하여, 고정된 종단은, 고정된 종단에 의해 나오게 된 데이터 패킷들의 IP 헤더 내의 최종 목적지 어드레스가 새로운 값을 반영하도록, 유사한 변경들을 그의 커널 데이터 구조들에 적용한다. 고정된 종단은 그의 커널(제어 메시지 "이송 응답"으로서 도시됨)의 수정을 이송자에게 응신하고, 두 개의 종단점들은 이송자에 대한 새로운 IP 어드레스를 사용하여, 기간(205) 내에서 정상 TCP 세션으로서 통신을 재시작한다. TCP 전송-Q 내의 버퍼링된 TCP 데이터는 인터페이스에서 최종 목적지로 전송되는데, 유효한 루트가 존재하기 때문이며, 전송된 모든 패킷들의 IP 어드레스는 IP 헤더 내에 적절한 새로운 어드레스를 포함한다.
매끄럽고 조직적이 방식으로 이송 처리를 제어하는 것은, 소위 경쟁 상태들이라 불리우는, 조건들을 예방하며, 이러한 조건들은 접속을 종결하는 TCP 리셋 메시지들을 생성할 수 있다. 상세하게는, 바람직한 실시예들은, 1) 이송자의 커널 변경은 항상 비이송자에게 이러한 변경들이 알려지기 전에 먼저 적용되고, 2) 제어 메시지 교환 기간 동안 이송자는 세션 상으로 어떠한 데이터도 전송하지 않는다는 것을 보장함으로써 이들 조건들을 예방할 수 있다. 이송 처리가 완료될 때까지, 임의의 세션 데이터가 시스템을 떠나는 것을 예방하기 위해, 그러한 예방은 예를 들면, 시스템에서 방화벽 규칙들(리눅스 운영 시스템에서 iptables의 출력 체인 규칙들)을 사용함으로써 성취될 수 있다. 이러한 세션에서 원격 종단으로의 전송을 명백히 예방하기 위해, 규칙들은 커널에 동적으로 추가된다. 비이송자로부터의 응신이 수신될 때, 규칙들은 정상 동작을 재시작하기 위해 취소된다. 또한, 바람직한 실시예는 특정 시간 기간 동안 이전 종단점 IP 어드레스의 재할당을 지연할 수 있다. 이것은 두 개의 다른 세션들이 현재 동일한 IP 어드레스를 사용하지 않는다는 것을 보장한다.
도 3는 도 2의 이벤트 시퀀스 동안 이송자에서 사용되는 예시적인 방법을 도시한다. 단계(301)에서, 이송자는 현재 종단점 IP 어드레스를 사용하는 비이송자를 갖는 기존 세션에 현재 참여하고 있다. 단계(302)에서, 비이송자에 이송자를 등록하기 위해, 이송자는 대역외 채널(예를 들면, UDP 채널)을 통해 등록 요청 제어 메시지를 비이송자에게 전송한다. 단계(303)에서, 단계(302)가 수행되면, 이송자는 비이송자에 의한 등록 응신으로서 등록 응답 제어 메시지를 대역외 채널을 통해 비이송자로부터 수신한다.
단계(304)에서, 이송자는 그의 현재 종단점 IP 어드레스를 새로이 획득된 종단점 IP 어드레스("새로운 종단점 IP 어드레스")로 변경하기 시작한다. 단계(305)에서, 이송자는 패킷들의 전송을 보류시키고, TCP 전송-Q 내의 패킷들을 인큐잉한다(enqueue). 단계(306)에서, 이송자는 이전 종단점 IP 어드레스를 포함하는 비이송자로부터 수신된 패킷들을 드롭하기 시작한다. 단계(307)에서, 이송자는 새로운 종단점 IP 어드레스를 포함하기 위해 STEM 데몬의 이송자의 커널 데이터 구조를 업데이트시킨다.
단계(308)에서, 이송자가 새로운 종단점 IP 어드레스로 변경한 것을 나타내기 위해, 이송자는 대역외 채널을 통해 종단점 어드레스 변경 제어 메시지를 비이송자에게 전송한다. 이러한 기간 동안, 이송자는 TCP 전송-Q 내의 패킷들의 인큐잉을 계속한다. 단계(309)에서, 새로운 종단점 IP 어드레스를 포함하기 위해, 이송자는 대역외 채널을 통해, 비이송자가 그의 커널 데이터 구조를 변경한 것을 나타내는 종단점 변경 응신 제어 메시지를 비이송자로부터 수신한다. 단계(310)에서, 이송자는 TCP 전송-Q 로부터 패킷들을 릴리징함으로써 새로운 종단점 IP 어드레스를 갖는 세션을 계속한다.
도 4는 도 2의 이벤트 시퀀스 동안 비이송자에 의해 사용되는 예시적인 방법을 도시한다. 단계(401)에서, 비이송자는 현재 종단점 IP 어드레스를 사용하는 이송자를 갖는 기존 세션에 현재 참여하고 있다. 단계(402)에서, 이송자를 비이송자에 등록하기 위해, 비이송자는 대역외 채널을 통해 등록 요청을 이송자로부터 수신한다. 단계(403)에서, 단계(402)가 수행되면, 비이송자는 이송자를 등록하고, 비이송자에 의한 등록 응신으로서 등록 응답 제어 메시지를 대역외 채널을 통해 이송자로 전송한다.
단계(404)에서, 비이송자는 이전 종단점 IP 어드레스를 포함하는 이송자로부터의 패킷들 수신을 계속한다. 단계(405)에서, 비이송자가 새로운 종단점 IP 어드레스로 변경한 것을 나타내기 위해, 비이송자는 대역외 채널을 통해 종단점 어드레스 변경 제어 메시지를 이송자로부터 수신한다. 단계(406)에서, 새로운 종단점 IP 어드레스를 포함하기 위해, 비이송자는 STEM 데몬의 비이송자의 커널 데이터 구조를 업데이트시킨다.
단계(407)에서, 새로운 종단점 IP 어드레스를 포함하기 위해, 비이송자는, 대역외 채널을 통해 비이송자가 그의 커널 데이터 구조를 변경한 것을 나타내는 종단점 어드레스 변경 응신 제어 메시지를 이송자로 전송한다. 단계(408)에서, 비이송자는 새로운 종단점 IP 어드레스를 갖는 세션을 계속한다.
도 1로 돌아가서, STEM 시스템(100)은 STEM 데몬 모듈(104 및 105)와 같은 피어들과 통신하기 위해, UDP 채널(150)로서 도시된 대역외 제어 채널을 사용한다. UDP 채널(150)을 통한 대역외 통신은, IP 어드레스 변경이 발생한 후 조차, 이송자가 그의 변경들을 비이송자에게 전달할 수 있다는 장점을 제공한다. 또한, 대역외 통신은 다중 TCP 세션들과 관련한 정보를 동시에 전달할 수 있다. 도 5 내지 8는 이송자 및 UDP 채널(150)을 통해 교환될 수 있는 비이송자에 대한 예시적인 제어 메시지들을 위한 포맷들을 도시한다. 공통 헤더는 모든 제어 메시지들에서 사용되고, 모든 제어 메시지들은 비제로 체크섬(non-zero checksum)을 갖는 UDP 포맷을 따를 수 있다.
도 5는 STEM 시스템 제어 메시지 공통 제어 헤더의 예시적인 포맷을 도시한다. 도 5에서, "버전"은 프로토콜의 버전의 수로 식별하고, "시퀀스#"는 데이터 메시지 시퀀스 내의 16 비트 메시지 카운트를 식별하고, "식별자 쿠키(Identifier cookie)"는, 특히 노드를 식별하는 48 비트 식별자이고, "되풀이 보호 ID(Replay Protect ID)"는 되풀이 공격들에 대해서 보호하기 위해 타임스탬프 또는 임의값에 기초하는 64 비트 특정 식별자이다. "타입(Type)"은 제어 메시지 타입으로서 패킷을 식별하고, 4 개의 값들을 취할 수 있으며, "1"은 메시지가 등록 요청이라는 것을 나타내고, "2"는 메시지가 등록 응답이라는 것을 나타내고, "3"은 메시지가 이송 요청이라는 것을 나타내고, "4"는 메시지가 이송 응답이라는 것을 나타낸다. "플래그들/코드들(Flags/Codes)"은 플래그들을 식별하고 이송 등록 제어 메시지에서 사용되는 코드들로 되돌리며, 여기서 "1"은 등록 요청이 수락된다는 것을 나타낸다. "플래그들/코드들"의 다른 값들은 등록 요청이 주어진 이유에 대하여 거부되는 것을 나타낼 수 있다.
등록 처리는 이송자의 성능들을 나타내는 등록 요청 제어 메시지를 비이송자로 전송하는 이송자로 시작한다. 인증 및 확인 후에, 비이송자는 요청의 상태를 나타내는 적절한 응답 코드 세트를 갖는 등록 응답 제어 메시지로 응답한다. "식별자 쿠키" 필드는 특히 노드를 식별하는데 사용된다. 쿠키를 생성할 수 있는 많은 방법들 당분야에 알려져 있다. 예를 들면, SCTP 또는 TCP(예를 들면, SYN 쿠키 생성)에서 사용되는 쿠키 생성 방법들이 사용될 수 있다. 전형적으로, 쿠키는 노드를 식별하는 불변 함수이다. 예를 들면, IP 어드레스는 계속해서 변하기 때문에, 도메인 네임에 적용된 일방향 해시 함수를 갖는 완전 규정화 도메인 네임은 특정 48 비트 엔트리 쿠키를 산출한다.
이송자에 의해 구성된 되풀이 보호 ID 필드는 등록 요청들과 가로지르는(thwart) 재생(playback)/되풀이(replay) 공격들에 대한 응답 메시지들을 일치시키기 위해 사용된다. 되풀이 공격은 다른 구문(context)으로부터 원래 구문으로 메시지들을 되풀이하는 것을 사용하는 보안 프로토콜 상의 공격이며, 그로 인해 정직한 참여자(들)을 속여 그들이 프로토콜 실행을 성공적으로 완료하였다고 믿게 한다. 비이송자로부터의 등록 응답 메시지는 이러한 필드를, 요청 메시지에서 수신된 되풀이 보호 ID 필드, 및 사용된 되풀이 보호 메카니즘(예를 들면, 노드의 보안 연계(security association)에 의해 주어진 타임스탬프 또는 논스들(nonces))의 스타일에 기초하여 계산된 값으로 설정한다.
도 6는 인증을 위한 STEM 시스템 제어 메시지 확장 헤더의 예시적인 포맷을 도시한다. 도 6에서, "타입"은 인증 헤더 타입으로서 패킷을 식별하고, "길이"는 패킷의 길이이고, "SPI"는 두 개의 피어(peer)들 간의 보안 구문을 식별하는 보안 파라미터 인덱스이고, "인증(Authentication)"은 변수 길이 인증 필드이다.
예시적인 STEM 시스템에 의해 사용되는 인증 메카니즘은 이동 IP에서 사용되는 메카니즘과 유사할 수 있다. 각각의 노드는 오페크 보안 파라미터 인덱스(Secure Parameter Index; SPI) 및 식별자 쿠기에 의해 인덱싱된 보안 연계를 지원한다. 인증 확장 헤더 내의 SPI는 인증값을 계산하는데 사용되고, 수신기에 의해 인증값을 검사하는데 사용되는 보안 구문을 정의한다. 수신기는 인증 알고리즘(예를 들면, 암호 알고리즘(cipher algorithms)들 HMAC-MD5(해싱된 메시지 인증 코드-메시지 다이제스트 버전 5)) 및 SHA(Secure Hash Algorithm), 알고리즘 모드 및 SPI에 기초하여 인증을 계산하는데 사용되는 보안 구문을 정의한다. 계산된 인증값은 UDP 채널 패킷들의 페이로드(등록 요청/응답 제어 메시지들) 또는 다른 확장들(이송 요청/응답 제어 메시지들) 및 패킷 헤더의 개시 부분(타입, 길이 및 SPI)을 보호한다.
도 7는 이송을 위한 STEM 시스템 제어 메시지 확장 헤더의 예시적인 포맷들을 도시한다. 도 7에서, "타입"은 이송 헤더 타입으로서 패킷을 식별하고, "길이'는 데이터의 길이이고, "프로토콜 플래그들"은 프로토콜 타입(예를 들면, 비트 0=TCP, bit 1=UDP)을 나타내고 "이전 IP addr"은 이송 전의 IP 어드레스이고, "새로운 IP addr"는 이송 후의 IP 어드레스이고, "이전 포트"는 이송 전의 포트 수이고, "새로운 포트"는 이송 후의 새로운 포트의 수이다.
전술된 바와 같이, 이송 처리는 이송 요청/응답 제어 메시지들을 피어들 사이에서 교환하는 것을 포함한다. 공통 헤더 및 선택적 인증 헤더를 추가하여, 제어 메시지는 하나 이상의 이송 헤더들을 포함한다. 각각의 이송 헤더는, 피어들 간의 하나 이상의 세션들에 대하여, 이전 5-투플을 새로운 5-투플로의 맵핑 상의 정보를 포함한다. "프로토콜 플래그들" 필드 내의 각각의 비트는 미리 정의된 프로토콜을 나타낸다. 한 비트 이상은 공동 다중 프로토콜들의 이송을 나타내기 위해 동시에 전송될 수 있다. 필드를 널 값으로 설정하는 것은 모든 프로토콜들에 대한 이송을 나타낸다. "이전 IP" 및 "새로운 IP" 필드들은 종단점을 이송하는, 이전 IP 어드레스로부터 새로운 IP 어드레스로의 지정된 맵핑을 제공하고, 한편 "이전 포트" 및 "새로운 포트" 필드들은 이전 세션에서 사용되는 포트들에 대하여 동등한 맵핑들을 제공한다. "프로토콜 ID 플래그들" 필드에서와 같이, 이동 노드가 IP 서브넷들을 통해 이동할 때 및, 이동 노드가 모든 개방 세션들을 동시에 이송하기를 원할 때와 같이, 이송자가 두 개의 종단점들 간의 모든 세션들을 이송하기를 원한다는 것을 나타내기 위해, 포트 필드들은 널(null) 값으로 또한 설정될 수 있다.
도 5, 6 및 7에 관하여 설명된 대역외 채널의 메시지들을 추가하여, 추가한 대역외 메시지들은 STEM 시스템의 특정 애플리케이션들을 위해 사용될 수 있다. STEM 시스템은 호스트 이동성을 위해 사용될 수 있기 때문에, 접속 핸드오프(handoff) 및 위치 관리를 위한 메시지들이 사용될 수 있다. 그러한 메시지들은 위치, 고정된 종단점, 신호-대-잡음비(Signal-to-Noise Ratio; SNR), 접속 품질 또는 유사한 정보와 같은 데이터, 올바른 용어로는 "오페크 데이터(opaque data)"를 포함할 수 있다. 도 8는 오페크 데이터를 위한 STEM 시스템 제어 메시지 확장 헤더의 예시적인 포맷을 도시한다. 도 8에서, "타입"은 오페크 헤더 타입으로서 패킷을 식별하고, "길이"는 "서브-타입" 및 "오페크 데이터" 필드의 길이를 식별하고, "서브-타입"은 오페크 데이터(예를 들면, 위치 업데이트 정보)에 포함된 업데이트 정보의 타입을 나타내고, "플래그들/코드들"은 오페크 데이터 교환을 용이하게 하기 위해 사용되는 플래그들 또는 코드들이고, "오페크 데이터"는 패킷의 변수-길이 오페크 데이터이다.
본 발명은 다음의 장점들을 고려할 수 있다. STEM 시스템의 하나 이상의 실시예들에 따라 동작하는 종단점들은 종단-대-종단 TCP 접속을 끊지도 않고 종단점들 사이에 통신 경로 내의 임의의 코드/프럭시를 할당하지도 않는다. 어떠한 새로운 코드도 데이터 경로에 추가되지 않고, 애플리케이션은 접속이 여전히 유지된다고 믿게 하는 속임을 당하지 않는다. STEM 시스템의 하나 이상의 실시예들은 새로운 어드레스 또는 새로운 연결 지점에 동일한 TCP 접속을 이송한다(즉, 종단점 TCP 상태 기계는 이송 처리 동안, "확립된" 상태로 계속된다).
본 발명은 TCP-IP 통신 처리에 따라 동작하는 패킷 네트워크에 관하여 설명되었지만, 본 발명은 그렇게 제한되지 않는다. 당업자는 여기의 사상들을, 한 노드가 그의 접속을 다른 노드로 전송하는 다른 패킷 네트워크들까지 쉽게 확장할 수 있다. 또한, 본 발명은 무선, 라디오, 셀룰러 또는 다른 비연결된 애플리케이션(올바른 용어로는 "무선" 애플리케이션들)에서 사용하는데 바람직할 수 있지만, 본 발명은 그렇게 제한되지 않으며, 패킷 기반 통신들을 지원하는 연결된 네트워크 또는 광학 네트워크에서 사용될 수 있다.
본 발명은 방법들 및 그러한 방법들을 실행하기 위한 장치의 형태로 실현될 수 있다. 본 발명은 플로피 디스켓들, CD-ROM들, 하드 드라이브들, 또는 어떤 다른 기계-판독 가능 저장 매체와 같은 깨지기 쉬운 매체에서 구현되는 프로그램 코드의 형태로 또한 구현될 수 있으며, 여기서, 프로그래 코드가 컴퓨터와 같은 기계로 로딩되고 그러한 기계에 의해 실행될 때, 그러한 기계는 본 발명을 실행하기 위한 장치가 된다. 본 발명은 예를 들면, 저장 매체에 저장되고, 기계로 로딩되고 및/또는 기계에 의해 실행되든지, 또는 전기 배선 또는 케이블링, 광섬유, 또는 전자 복사와 같은 몇몇 전송 매체를 통해 전송되든지 간에 프로그램 코드의 형태로 또한 구현될 수 있으며, 여기서, 프로그램 코드가 기계로 로딩되고 기계에 의해 실행될 때, 컴퓨터와 같은 기계는 본 발명을 실행하기 위한 장치가 된다. 범용 프로세서에서 구현될 때, 프로그램 코드 세그먼트들은, 특정 논리 회로로 유사하게 동작하는 특별 장치를 제공하기 위해 프로세서와 결합한다.
본 발명의 성질을 설명하기 위해 설명되고 예시된 명세서의 다양한 변경들, 물질들 및 장치들의 부분들은, 다음의 청구 범위에서 표현된 바와 같이, 본 발명의 원리 및 범위를 벗어나지 않고 당업자에 의해 이루어질 수 있다는 것은 또한 이해될 것이다.
도 1는 패킷 네트워크를 통해 통신하는 두 개의 노드들을 위한 무결절성 전송 종단점 이동성(STEM) 구조를 도시한 도면.
도 2는 이송자 및 비이송자 간의 대표적인 이송 이벤트 시퀀스를 도시한 도면.
도 3는 도 2의 이벤트 시퀀스 동안 이송자에서 사용된 대표적인 방법을 도시한 도면.
도 4는 도 2의 이벤트 시퀀스 동안 비이송기에서 사용된 대표적인 방법을 도시한 도면.
도 5는 STEM 시스템 제어 메시지 공통 제어 헤더의 대표적인 포맷을 도시한 도면.
도 6는 인증을 위한 STEM 시스템 제어 메시지 확장 헤더의 대표적인 포맷을 도시한 도면.
도 7는 이송을 위한 STEM 시스템 제어 메시지 확장 헤더의 대표적인 포맷을 도시한 도면.
도 8는 오페크 데이터를 위한 STEM 시스템 제어 메시지 확장 헤더의 대표적인 포맷을 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
101, 102: 노드 103: 인터넷
104, 105: STEM-데몬 106, 109: 전송 계층
107, 108: 네트워크 계층 202: 어드레스 변경점
Claims (10)
- 패킷 기반 통신 시스템에서 이송자와 비이송자 간의 세션 동안, 상기 이송자에 의해 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송하는 방법으로서, 상기 방법은,(a) 상기 이송자에서, 상기 새로운 종단점 어드레스로 논리적으로 변경하는 단계(a1) 및 상기 이송자의 커널 구조를 업데이트시키는 단계(a2)에 의해 상기 현재 종단점 어드레스를 상기 새로운 종단점 어드레스로 변경하는 단계,(b) 상기 새로운 종단점 어드레스를 갖는 패킷들의 상기 비이송자로의 전송을 보류시키는 단계,(c) 상기 비이송자에게 상기 새로운 종단점 어드레스로의 상기 변경을 알리는 단계, 및(d) 상기 새로운 종단점 어드레스를 갖는 패킷들의 상기 비이송자로의 전송을 재시작하는 단계를 포함하는, 이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 1항에 있어서, 상기 이송자는 상기 현재 종단점 어드레스를 포함하는 현재 5-투플(current 5-tuple)에서 상기 새로운 종단점을 포함하는 새로운 5-투플(new 5-tuple)로 변경함으로써 상기 새로운 현재 어드레스로 변경하고, 상기 이송자의 상기 커널 구조를 업데이트시키는 단계는 상기 새로운 5-투플을 반영하기 위해 상기 현재 5-투플을 갖는 소켓을 수정하는 단계를 포함하고, 상기 소켓은 상기 세션과 관련되는, 이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 1항에 있어서, 단계(a)는 상기 새로운 종단점 어드레스로의 상기 변경을 개시하기 전에 상기 비이송자에 등록하는 단계를 포함하는, 이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 1항에 있어서, 단계(b)는 네트워크 계층에서 수신된 상기 비이송자로부터 패킷들을 드롭하는 단계, 및 전송 계층에서 상기 비이송자로의 패킷들의 전송을 보류시키는 단계를 포함하고, 상기 전송 계층에서 상기 비이송자로의 패킷들 전송을 보류시키는 상기 단계는 방화벽-필터링 규칙들과 경쟁 상태 동안 패킷 전송을 보류시키는, 이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 1항에 있어서, 단계(c)는 상기 비이송자에게 상기 새로운 종단점 어드레스로의 상기 변경을 알리는 제어 메시지를 상기 비이송자로 전송하는 단계, 및 상기 비이송자가 상기 새로운 종단점 어드레스로 변경하였다는 확인을 상기 비이송자로부터 수신하는 단계를 포함하는, 이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 패킷 기반 통신 네트워크에서 비이송자와 이송자 간의 세션 동안 상기 비이송자에 의해 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송하는 방법으로서, 상기 방법은,(a) 상기 새로운 종단점 어드레스로의 상기 이송자의 변경을 나타내는 제어 메시지를 수신하는 단계,(b) 상기 비이송자에서, 상기 현재 종단점 어드레스를 상기 새로운 종단점 어드레스로 변경하는 단계,(c) 상기 새로운 종단점 어드레스로의 상기 비이송자의 변경을, 상기 이송자에게 응신(acknowledging)하는 단계, 및(d) 상기 새로운 종단점 어드레스를 갖는 상기 세션의 패킷들을 상기 이송자와 교환하는 단계를 포함하는, 비이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 6항에 있어서, 단계(b)는 상기 새로운 종단점 어드레스로 논리적으로 변경하는 단계, 및 상기 비이송자의 커널 구조를 업데이트시키는 단계를 포함하며, 상기 비이송자는 상기 현재 종단점 어드레스를 포함하는 현재 5-투플에서 상기 새로운 종단점 어드레스를 포함하는 새로운 5-투플로 변경함으로써 상기 새로운 현재 어드레스로 변경하고, 상기 비이송자의 상기 커널 구조를 업데이트시키는 단계는 상기 새로운 5-투플을 반영하기 위해 상기 현재 5-투플을 갖는 소켓을 수정하는 단계를 포함하며, 상기 소켓은 상기 세션과 관련되는, 비이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 7항에 있어서, 단계(a)는 상기 제어 메시지를 수신하기 전에, 상기 이송자를 등록하는 단계를 포함하는, 비이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 6항에 있어서, 단계(b)는 상기 변경 동안, 상기 이송자로부터 패킷들의 수신을 계속하는 단계를 포함하는, 비이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
- 제 1 항 또는 제 6 항에 있어서, 상기 세션은 전송 제어 프로토콜 및 인터넷 프로토콜을 따르는, 비이송자에 의한 현재 종단점 어드레스에서 새로운 종단점 어드레스로 이송 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/766,164 US8195835B2 (en) | 2004-01-28 | 2004-01-28 | Endpoint address change in a packet network |
US10/766,164 | 2004-01-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050077740A true KR20050077740A (ko) | 2005-08-03 |
KR101099382B1 KR101099382B1 (ko) | 2011-12-29 |
Family
ID=34654327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050005793A KR101099382B1 (ko) | 2004-01-28 | 2005-01-21 | 패킷 네트워크에서의 종단점 어드레스 변경 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8195835B2 (ko) |
EP (1) | EP1560397B1 (ko) |
JP (1) | JP4672382B2 (ko) |
KR (1) | KR101099382B1 (ko) |
CN (1) | CN1649351B (ko) |
DE (1) | DE602005005724T2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100925493B1 (ko) * | 2007-12-20 | 2009-11-05 | 한국전자통신연구원 | Ip주소에 기반한 네트워킹에서의 통신 세션 관리 방법 및시스템 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895648B1 (en) * | 2004-03-01 | 2011-02-22 | Cisco Technology, Inc. | Reliably continuing a secure connection when the address of a machine at one end of the connection changes |
US20050246346A1 (en) * | 2004-04-30 | 2005-11-03 | Gerdes Reiner J | Secured authentication in a dynamic IP environment |
US20060101090A1 (en) * | 2004-11-08 | 2006-05-11 | Eliezer Aloni | Method and system for reliable datagram tunnels for clusters |
US7908286B2 (en) * | 2004-12-08 | 2011-03-15 | Oracle International Corporation | Techniques for providing XQuery access using web services |
US20070033301A1 (en) * | 2005-07-18 | 2007-02-08 | Eliezer Aloni | Method and system for transparent TCP offload with dynamic zero copy sending |
US20070233822A1 (en) * | 2006-04-03 | 2007-10-04 | International Business Machines Corporation | Decrease recovery time of remote TCP client applications after a server failure |
US8122492B2 (en) * | 2006-04-21 | 2012-02-21 | Microsoft Corporation | Integration of social network information and network firewalls |
US20080219271A1 (en) * | 2006-04-25 | 2008-09-11 | Nokia Corporation | IP multicast based systems, apparatuses and methods for TCP connection migration |
US8079073B2 (en) * | 2006-05-05 | 2011-12-13 | Microsoft Corporation | Distributed firewall implementation and control |
US8176157B2 (en) * | 2006-05-18 | 2012-05-08 | Microsoft Corporation | Exceptions grouping |
WO2008052580A1 (en) | 2006-10-31 | 2008-05-08 | Telecom Italia S.P.A. | Management of seamless handover between different communication systems in an ip dual-mode terminal |
US8412207B2 (en) | 2006-12-21 | 2013-04-02 | Core Wireless Licensing S.A.R.L. | Method of providing a mobility service |
JP5034495B2 (ja) * | 2006-12-27 | 2012-09-26 | 日本電気株式会社 | ストレージシステムとプログラム並びに方法 |
CN101047716B (zh) * | 2007-01-04 | 2011-05-04 | 华为技术有限公司 | 一种ip传输会话迁移的方法和装置 |
US7983218B2 (en) * | 2007-03-29 | 2011-07-19 | Intel Corporation | Techniques to support seamless mobility of electronic devices engaged in a session initiation protocol (SIP) session |
EP2195994A1 (en) * | 2007-09-28 | 2010-06-16 | Telefonaktiebolaget L M Ericsson (publ) | Method of controlling a communication device |
US20100296486A1 (en) * | 2007-12-21 | 2010-11-25 | Carlo Sansone | Method, Apparatus and Computer Program for Handover From A First Access Point To A Second Access Point |
JP4623177B2 (ja) * | 2008-09-17 | 2011-02-02 | 富士ゼロックス株式会社 | 情報処理システム |
US8443109B2 (en) * | 2009-05-22 | 2013-05-14 | Sprint Communications Company L.P. | Selection of a communication device for a user by a base station in response to receiving a communication session hand-off |
US20100311401A1 (en) * | 2009-06-09 | 2010-12-09 | Sprint Communications Company L.P. | Communication session transfer from one communication device to another based on location correlated to time |
EP2649841A1 (en) * | 2010-10-12 | 2013-10-16 | XG Technology, Inc. | A method to support rapid inter base station handoffs in ip based wireless networks |
US9164806B2 (en) | 2011-01-28 | 2015-10-20 | Oracle International Corporation | Processing pattern framework for dispatching and executing tasks in a distributed computing grid |
US9081839B2 (en) | 2011-01-28 | 2015-07-14 | Oracle International Corporation | Push replication for use with a distributed data grid |
US9063852B2 (en) * | 2011-01-28 | 2015-06-23 | Oracle International Corporation | System and method for use with a data grid cluster to support death detection |
US9262229B2 (en) | 2011-01-28 | 2016-02-16 | Oracle International Corporation | System and method for supporting service level quorum in a data grid cluster |
CN102223307B (zh) * | 2011-06-29 | 2017-02-15 | 中兴通讯股份有限公司 | 一种处理套接字的方法、分组数据传输的方法及装置 |
US8868710B2 (en) | 2011-11-18 | 2014-10-21 | Amazon Technologies, Inc. | Virtual network interface objects |
KR20130097358A (ko) * | 2012-02-24 | 2013-09-03 | 삼성전자주식회사 | 다이렉트 푸시 이메일 서비스 제공 방법과 그를 위한 이메일 클라이언트 및 이메일 서버 |
US9916545B1 (en) | 2012-02-29 | 2018-03-13 | Amazon Technologies, Inc. | Portable network interfaces for authentication and license enforcement |
US8813225B1 (en) | 2012-06-15 | 2014-08-19 | Amazon Technologies, Inc. | Provider-arbitrated mandatory access control policies in cloud computing environments |
US9160497B2 (en) * | 2012-07-02 | 2015-10-13 | Intel Corporation | Application continuity with reroute and reset in a wireless communication network |
US9075953B2 (en) * | 2012-07-31 | 2015-07-07 | At&T Intellectual Property I, L.P. | Method and apparatus for providing notification of detected error conditions in a network |
US9614918B2 (en) * | 2013-03-14 | 2017-04-04 | International Business Machines Corporation | Migration of network connection under mobility |
US9345060B1 (en) | 2013-03-21 | 2016-05-17 | Sprint Spectrum L.P. | Invoking circuit switched fallback in response to VoIP call setup failure |
US9021157B2 (en) * | 2013-03-28 | 2015-04-28 | Microsoft Technology Licensing, Llc | Reliable socket transfer based on initializing and re-initializing a communication link and retaining a connected state |
US9635114B2 (en) * | 2014-01-24 | 2017-04-25 | Netapp, Inc. | Externally initiated application session endpoint migration |
US20150236904A1 (en) * | 2014-06-02 | 2015-08-20 | Hsiaokuei Tsui | Internet Device Architecture to Save Power And Cost |
US9787499B2 (en) | 2014-09-19 | 2017-10-10 | Amazon Technologies, Inc. | Private alias endpoints for isolated virtual networks |
US10664495B2 (en) | 2014-09-25 | 2020-05-26 | Oracle International Corporation | System and method for supporting data grid snapshot and federation |
US10021196B1 (en) | 2015-06-22 | 2018-07-10 | Amazon Technologies, Inc. | Private service endpoints in isolated virtual networks |
US10860378B2 (en) | 2015-07-01 | 2020-12-08 | Oracle International Corporation | System and method for association aware executor service in a distributed computing environment |
US10585599B2 (en) | 2015-07-01 | 2020-03-10 | Oracle International Corporation | System and method for distributed persistent store archival and retrieval in a distributed computing environment |
US10798146B2 (en) | 2015-07-01 | 2020-10-06 | Oracle International Corporation | System and method for universal timeout in a distributed computing environment |
US11163498B2 (en) | 2015-07-01 | 2021-11-02 | Oracle International Corporation | System and method for rare copy-on-write in a distributed computing environment |
WO2017222511A1 (en) | 2016-06-22 | 2017-12-28 | Intel Corporation | Communication device and a method for full duplex scheduling |
US10038639B2 (en) * | 2016-09-16 | 2018-07-31 | Alcatel Lucent | Congestion control based on flow control |
CN113169984B (zh) * | 2019-02-13 | 2023-06-23 | 联发科技(新加坡)私人有限公司 | 传输协议选择方法及用户设备 |
CN114503528B (zh) * | 2019-08-16 | 2024-07-05 | 上海诺基亚贝尔股份有限公司 | 设备、方法和计算机程序 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6072942A (en) * | 1996-09-18 | 2000-06-06 | Secure Computing Corporation | System and method of electronic mail filtering using interconnected nodes |
US6018659A (en) * | 1996-10-17 | 2000-01-25 | The Boeing Company | Airborne broadband communication network |
JP3442257B2 (ja) | 1997-05-06 | 2003-09-02 | 日本電信電話株式会社 | パケット通信方法 |
US6332163B1 (en) * | 1999-09-01 | 2001-12-18 | Accenture, Llp | Method for providing communication services over a computer network system |
US8077679B2 (en) * | 2001-03-28 | 2011-12-13 | Qualcomm Incorporated | Method and apparatus for providing protocol options in a wireless communication system |
US6781963B2 (en) * | 2002-02-14 | 2004-08-24 | Qualcomm Inc | Method and an apparatus for terminating a user from a group call in a group communication network |
US6721907B2 (en) * | 2002-06-12 | 2004-04-13 | Zambeel, Inc. | System and method for monitoring the state and operability of components in distributed computing systems |
US20040151158A1 (en) * | 2002-11-08 | 2004-08-05 | Ecrio, Inc. | Method and apparatus for exchanging voice over data channels in near real time |
US7058052B2 (en) * | 2003-04-11 | 2006-06-06 | Nokia Corporation | System and method for using a mobile router tunneling protocol to locate functionality in a distributed architecture |
-
2004
- 2004-01-28 US US10/766,164 patent/US8195835B2/en active Active
-
2005
- 2005-01-07 EP EP05250067A patent/EP1560397B1/en active Active
- 2005-01-07 DE DE602005005724T patent/DE602005005724T2/de active Active
- 2005-01-21 KR KR1020050005793A patent/KR101099382B1/ko active IP Right Grant
- 2005-01-26 CN CN2005100047865A patent/CN1649351B/zh active Active
- 2005-01-28 JP JP2005020844A patent/JP4672382B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100925493B1 (ko) * | 2007-12-20 | 2009-11-05 | 한국전자통신연구원 | Ip주소에 기반한 네트워킹에서의 통신 세션 관리 방법 및시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR101099382B1 (ko) | 2011-12-29 |
US8195835B2 (en) | 2012-06-05 |
CN1649351B (zh) | 2010-10-13 |
DE602005005724D1 (de) | 2008-05-15 |
JP4672382B2 (ja) | 2011-04-20 |
DE602005005724T2 (de) | 2009-06-04 |
US20050198384A1 (en) | 2005-09-08 |
CN1649351A (zh) | 2005-08-03 |
EP1560397B1 (en) | 2008-04-02 |
JP2005218111A (ja) | 2005-08-11 |
EP1560397A1 (en) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101099382B1 (ko) | 패킷 네트워크에서의 종단점 어드레스 변경 | |
EP3635939B1 (en) | Seamless mobility and session continuity with tcp mobility option | |
US10009230B1 (en) | System and method of traffic inspection and stateful connection forwarding among geographically dispersed network appliances organized as clusters | |
Snoeren et al. | An end-to-end approach to host mobility | |
KR100938519B1 (ko) | 네트워크 스택으로 오프로딩된 네트워크 스택 연결을 동기화 및 업로딩하는 방법, 공유 방법, 제어 방법, 및 컴퓨터 판독가능 매체 | |
US8032641B2 (en) | Assymmetric traffic flow detection | |
US20080095138A1 (en) | Method for performing handovers in a communication system | |
US20020080752A1 (en) | Route optimization technique for mobile IP | |
JP2013251925A (ja) | モバイル機器に対するネットワークアドレス変更のための方法及び装置 | |
Snoeren | A session-based architecture for internet mobility | |
JP2006191537A (ja) | 統合ホストプロトコルスタック管理を使用するセキュアなインターネットプロトコル(ispec)オフロードのための方法および装置 | |
RU2373654C1 (ru) | Способ установления однорангового соединения и предназначенная для этого система | |
US11863655B2 (en) | Method and system for reliable application layer data transmission through unreliable transport layer connections in a network | |
KR20000062144A (ko) | 이동 티씨피와 이동 티씨피 접속의 개설 및 유지 방법 | |
EP1421746B1 (en) | Device, method and system for enhanced routing in mobile ip networking | |
Bhagwat et al. | MSOCKS+: an architecture for transport layer mobility | |
MacDonald et al. | Microsoft windows 2000 tcp/ip implementation details | |
JP3841417B2 (ja) | 通信接続方法、サーバ計算機、および、プログラム | |
Tilak et al. | A concurrent migration extension to an end-to-end host mobility architecture | |
Ansari et al. | STEM: seamless transport endpoint mobility | |
Rikitake et al. | T/TCP for DNS: A performance and security analysis | |
Schütz | Network Support for Intermittently Connected Mobile Nodes | |
Thothadri | Design and implementation of the mobile internet protocol on the linux kernel to support internet mobility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20141212 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151211 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161209 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20171208 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20181115 Year of fee payment: 8 |