KR100255501B1 - 전송 제어 프로토콜 글루를 통한 세션 및 전송 계층 프록시 개선 방법 - Google Patents

전송 제어 프로토콜 글루를 통한 세션 및 전송 계층 프록시 개선 방법 Download PDF

Info

Publication number
KR100255501B1
KR100255501B1 KR1019970061123A KR19970061123A KR100255501B1 KR 100255501 B1 KR100255501 B1 KR 100255501B1 KR 1019970061123 A KR1019970061123 A KR 1019970061123A KR 19970061123 A KR19970061123 A KR 19970061123A KR 100255501 B1 KR100255501 B1 KR 100255501B1
Authority
KR
South Korea
Prior art keywords
proxy
connection
host
packet
tcp
Prior art date
Application number
KR1019970061123A
Other languages
English (en)
Other versions
KR19980070104A (ko
Inventor
프라빈 브하그와트
데이비드 아론 말츠
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR19980070104A publication Critical patent/KR19980070104A/ko
Application granted granted Critical
Publication of KR100255501B1 publication Critical patent/KR100255501B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

공통 호스트에서 종료되는 두 개의 분리된 TCP 접속을 합병하고 두 개의 엔드 시스템 사이의 단일 접속으로 “글루잉(gluing)하는”방법으로서, 단일 접속은 TCP 엔드-투-엔드 의미론을 유지한다. 본 기술은 전송 계층 프록시의 세션 셋업 기능을 유지하지만, 릴레이 동작을 개선하기 위해 커넬 공간으로 데이터 카피를 밀어넣는 방법을 제공한다. 특히 분할 접속의 한 쪽 엔드에 도달하는 바이트 스트림은 다른 분할 접속의 순서 번호 공간으로 직접 매핑된다. 이러한 매핑, 또는 TCP 글루잉 프로세스는 TCP 및 IP 헤더 필드의 서브셋트, 즉 소스 및 데스티네이션 어드레스, 포트 번호, 순서 번호 및 체크섬을 갱신하는 것을 수반한다. TCP/IP 패킷 헤더의 변경은, 패킷이 원래의 분리된 TCP 접속들 사이의 글루잉된 접속을 통해 릴레이 될 때 진행된다.

Description

전송 제어 프로토콜 글루를 통한 세션 및 전송 계층 프록시 개선 방법
본 발명은 일반적으로 패킷 교환 네트워크 통신에 관한 것으로, 특히, 네트워크 화이어월(firewalls)과 같은 세션 계층 프록시와, 인터넷과 같은 통신 네트워크를 통한 통신용 캐싱 프록시의 성능 효율을 개선하는 방법에 관한 것이다.
인터넷은 전세계를 통한 공통 네트워크로서, 정부 대행기관, 교육 기관 및 사기업을 포함하여 가입 조직들 사이에서 자원의 공유를 용이하게 한다. 이러한 네트워크는 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 프로토콜 수트(suite)를 사용하며 공통 어드레스 공간을 공유한다. 따라서, 인터넷상의 컴퓨터는 호환성있는 통신 표준을 사용하며, 서로 접속하고 데이터를 교환하는 기능을 공유한다. 인터넷 사용자는 주로 전자 메일(e-mail), 월드 와이드 웹을 억세스하기 위한 프로토콜인 http, 사용자가 원격 호스트로 로그 인(log in)하도록 하는 프로세스인 텔넷(Telnet). 원격 호스트상의 정보를 로컬 사이트로 전송하도록 허용하는 프로토콜인 파일 전송 프로토콜(FTP)을 통해서 주로 통신한다.
근거리 통신망(LAN)과 같은 네트워크를 인터넷에 접속할 때 가장 큰 문제는 보안이다. 더 중요한 문제중 하나는 로컬 호스트에 대한 억세스를 시도하는 침입자이다. 이러한 유형의 침입을 방지하기 위한 공통 방법은 소위 “화이어월”을 설치하는 것으로 이는 인터넷에 접속을 위한 안전한 단일 포인트(secure single point)이다. 이러한 접속을 위한 안전한 단일 포인트는 어떠한 정보도 통과하는 것을 허용하지 않지만 인입(incoming) 및 송출(outgoing) 접속은 허용하는 화이어월 호스트 형태를 취한다. 전형적인 화이어월 호스트를 실현하는데 있어서, 사용자는 LAN의 호스트상에서 하나의 파일을 인터넷을 통해서 외부 호스트로 전송하고자 할 때 먼저 상기 파일을 화이어월 호스트로 전송하고 이어서 화이어월로 로그인한 뒤 파일을 외부 호스트로 전송한다. 이러한 과정이 단일 사용자에게는 높은 수준의 보안을 제공하지만, 다수의 사용자가 이러한 호스트에 억세스하고자 할 때는 보안을 유지하는 것이 어려워진다. 화이어월에 관한 일반 정보를 얻고자 하면 William R. Cheswick DHK Steven M. Belloven 저, 화이어월 및 인터넷 보안(Firewall and Internet Security), Addison-Wesley (1994)를 참조해 볼 수 있다.
SOCKS 라고 하는 전송 계층 프록시 설계는, 다수의 사용자에 의한 억세스를 허용할 때 보안상의 문제를 최소화하기 위해 시도하는 과정에서 생겨나게 되었다. 예를들어, David Koblas 와 Michelle R. koblas 저 “SOCKS”, UNIX 보안 심포지움, USENIX Association (199_), 77-83 페이지, Ying-Da Lee 저 “SOCKS : protocal for TPC proxy across firewalls”, http://www.socks.nec.com/socks 4.protocal, M. Leech. M.Genis, Y.Lee, R.Kuris, D. koblas 및 L.Jones 저 “SOCKS Protocol Version 5”, ftp://es.internic.net/rfc/rfc 1928.txt를 참조해 볼 수 있다. 전송계층 프록시 아키텍춰에서, 클라이언트라고 하는 하나의 엔드 시스템이 상기 프록시에 접속시키므로 세션을 기동한다. 상기 클라이언트 및 프록시는 인증 또는 프록시 요구와 같은 세션 셋업 정보를 교섭(negotiate)하는 메시지를 교환하기 위한 접속을 사용한다 (예를들면, HTTP (하이퍼텍스트 전송 프로토콜) 프록시를 페치(fetch)하기 위해 화이어월 프록시 또는 URL (균일 자원 로케이터)로 접속하기 위한 외국 호스트). 상기 프록시는 상기 요구를 수행하여, 보통은 클라이언트에 의해서 지시될 때 서버라고 불리는, 상기 화이어월 회부의 또 다른 엔드-시스템으로 접속을 개방한다. 상기 프록시는 상기 접속상에서 상기 서버와 세션 셋트 정보를 교환할 수 있다. 세션 셋업이 양 접속상에서 완료된 후에, 상기 프록시는 상기 두 접속사이에서 전후 방향으로 데이터 카피를 시작하지만 호스트들 사이에서 흐르는 정보를 소거, 추가 또는 변경하지 않게 된다(비록 그것이 HTTP 캐싱 프록시의 경우에, 정보의 카피를 조용히 유지한다 할지라도 그러하다).
TCP 프록시(예를들면, SOCKS 서버)를 구성하는 현재 사용되는 기술에는 TCP 접속을 두 개의 반부(half)(클라이언트-프록시 및 프록시-서버)로 분할하고 이어서 상기 엔드 사이에서 데이터를 교환하기 위한 애플리케이션 계층 서버를 사용하는 것이 포함된다. 모든 공지된 현재의 전송 계층 프록시는 사용자 공간에서 데이터카피 기능을 수행하는데, 말하자면, 사용자 프로세서는 하나의 소켓으로부터 데이터를 판독하며 또 다른 것으로 기록하는 타이트 루프(tight loop)를 대기한다. 상기 클라이언트 또는 서버와 비교해 볼 때, 상기 프록시는 프로토콜 처리, 데이터카피 및 콘텍스트 스위칭시에 두 배의 CPU 사이클을 소모한다. 이때 필요로하는 것은 릴레이 동작을 더 효율적으로 하도록 데이터 이동 동작을 커넬(kernel) 공간으로 효과적으로 밀어넣는 방법이다.
따러서 본 발명의 방법은 네트워크 화이어월과 같은 세션 계층 프록시 및 캐싱 프록시의 성능을 개선하는 방법을 제공하는 것이다.
본 발명에 따르면, 소위 TCP 글루잉(gluing)으로 불리는 기술은 전송 계층 프록시(transport layer proxy)의 세션 셋업 기능을 갖지만 상기 데이터 카피를 커넬 공간으로 밀어넣는 방법을 제공한다. 분할된 접속의 한쪽 엔드상에 도달하는 바이트 스트림은 다른 분할된 접속의 연속되는 번호 공간으로 직접 매핑된다. 상기 매핑 기능, 그리고 관련된 일련의 글루잉 동작은, 상기 클라이어트 및 서버가 이러한 동작을 전혀 모르게 설계된다. 엔드-시스템의 관점에서 볼 때, 어떤 데이터도 손실되거나 카피되지 않는다.
상기 글루잉 프로세스는 단지 TCP 및 IP 헤더 필드의 서브셋트를 변경하는 것을 수반한다. 패킷이 결합된 접속상에서 릴레이됨에 따라 동작중인 TCP/IP 패킷 헤더에 변화가 일어난다. 이것은 비교적 가벼운 동작인데, 왜냐하면 상기 프록시가 상기 표준 IP 헤더 처리에 더해서 몇 개의 특별한 사이클만을 소모하기 때문이다. 상태 유지 또는 애플리케이션 계층 처리는 필요치 않다.
본 발명에 따른 기술은 다음의 네가지 방법으로 종래기술의 현재 상태를 개선한다.
1) 효율: 프록시는 계층 3.5 루터와 같이 동작한다. 그것은 전송 또는 애플리케이션 계층 프로토콜 처리 오버헤드를 야기시키지 않는다.
2) 간략한 부기: TCP 글루 프록시는 상기 분할 접속의 각 엔드에 대해 완전한 TCP 상태를 유지할 필요가 없다. 더욱이, 확인응답(ACKs)이 엔드-투-엔드(end-to-end) 이므로, 상기 프록시는 어떤 패킷을 버퍼하는데 필요치 않다.
3) 더욱 양호한 엔드-투-엔드 (E2E) 의미론(semantics): TCP 글루는 상기 접속의 두 엔드가 피어(peer)로서 통신하게 하여, 확인응답, 라운드 트립타임(RTT) 평가, 윈도우 크기, 수신 버퍼 크기 등과 같은 제어 정보가 엔드-투-엔드로 흐르도록 한다. 다른 장점외에도, 이것은 또한 더 양호한 신뢰성 및 정체 제어를 제공한다.
4) 더욱 양호한 대역외 의미론: 현재의 프록시 해결방법은 대역외 데이터를 사용하는데 상당한 제한을 가한다. 예를들면, SOCKS 만이 대역외(OOB) 데이터를 인-라인으로 지원한다. 이러한 제한으로 텔넷 및 FTP와 같은 공통 애플리케이션이 야기될 수 있으며, 상기 프록시 전체를 통해서 수정이 일어나게 한다. 엔드 호스트사이에 TCP 결합된 접속이 실제의 TCP 엔드-투-엔드 의미론을 제공하므로, 상기 엔드 시스템은 그것들이 선택한 것이면 어떤 방법이든지 OOB 데이터를 사용할 수 있으며 넌-프로시드 접속이 수행한 것과 동일 의미론을 볼 수 있다.
프록시를 통해 데이터를 차단하고 루팅하기 위해 사용자 라이브러리를 사용하는, 다른 전송 계층 프록시와 같이, TCP 글루로 이루어지는 프록시는, 클라이언트 및 서버에게 변화가 보이지 않고, 클라이언트 또는 프로토콜 스택에 변화가 일어나지 않으며, 프록시만이 수정되도록 구성될 수 있다.
제1도는 레이블된 상태 카운터를 갖는 전형적인 TCP 접속을 도시하는 데이터 흐름도.
제2도는 클라이언트 라이브러리에 의한 클라이언트 서지 동기화의 이용을 보여주는, 텔넷 클라이언트, 프록시 화이어월 및 텔넷 서버 사이의 메시지 교환을 예시하는 상태도.
제3도는 서버 서지 동기화의 사용을 보여주는, 웹 브라우저, 캐싱 프록시 및 웹 서버 사이의 메시지 교환을 예시하는 상태도.
제4도는 프록시에 의해서 함께 결합된 두 개의 접속을 도시하는 데이터 흐름도.
제5도는 TCP 글루 설정의 과정을 도시하는 상태도.
제6도는 TCP 글루 처리 로직을 도시하는 흐름도.
제7도는 TCP 글루 해제 과정을 도시하는 상태도.
* 도면의 주요부분에 대한 부호의 설명
11 : 텔넷 클라이언트 12 : 화이어월 프록시
13 : 텔넷 서버 14 : TCP 글루
본 발명의 바람직한 실시예가 TCP/IP 프로토콜에 의해서 기술되지만, 본 기술분야에 숙련된 당업자라면 두 개의 이미 설정된 전송 계층 세션을 취하고 패킷 헤더를 적당히 수정하므로 그것들은 단일 엔드-투-엔드 접속으로 변환하는 개념이, TCP/IP에 외에도 OSI, XNS, Novell, Netbils, IPX 등을 포함하는 모든 패킷에 기초한 통신 네트워크 프로토콜에 적용될 수 있음을 알 수 있다. 이어지는 설명에서, 이러한 기술의 특정 예가 TCP/IP 프로토콜 수트에 적용된다.
본 발명의 바람직한 실시예에 따라서, TCP 데이터의 각 세그먼트가 엔드 시스템으로부터 결합된 접속의 한쪽 소켓에 도달하게 되면, 그것은 즉시 처리되어 상기 결합된 접속의 다른 소켓을 다른 엔드 시스템으로 전달한다. 본 발명의 완전한 해결책은 다음의 네가지 부분을 포함한다. 즉,
1. 상기 엔드 시스템과 상기 프록시 사이에 동기화를 설정한다.
2. 매핑 기능을 선택한다.
3. 패킷 헤더에서 필요한 변화를 실시한다.
4. 완료된 접속을 해제한다.
각각의 부분을 설명하기 전에, TCP에 대한 어느정도의 배경이 필요하다. TCP 글루는 두 개의 보통 TCP 접속상에서 수행되는 동작이다. 상기 글루 동작이 수행되기 전에, 상기 접속은 별개로 일어난다. 상기 글루 동작이 완료된 후에, 상기 접속은 함께 이어지고, 상기 프록시는 어떤 접속도 판독하거나 기록할 수 없다.
도면, 특히 제1도로 돌아가면, 보통의 TCP 접속이 도시되어 있다. 각각의 보통 TCP 접속은 포인트-포인트(point-to-point) 접속이며 어드레스 및 포트 번호로 명명되는 TCP 소켓에서 종료된다. TCP 접속은 그 엔드 포인트에서 두 개의 소켓의 이름으로 유일하게 식별된다. 제1도에 도시된 상기 두 개의 소켓은, <addr1.port1> 명명되는
Figure kpo00001
와, <addr2.port2> 로 명명되는
Figure kpo00002
로 표시된다. 각각의 TCP 소켓에서, 보통 TCP 상태 머신은 다음의 세 개의 카운터를 유지하는데, 이는 TCP가 상기 접속상에서 전달되는 모든 데이터를 레이블하도록 사용하여 데이터 손실 또는 카피를 복구할 수 있다. 즉,
[snd_nxt 전송되는 다음 데이터 바이트의 연속되는 번호]
snd_una 제1의 확인 응답되지 않은 데이터 바이트의 연속되는 번호(수신된 최대 ACK의 연속되는 번호와 동일함)
rcv_nxt 상기 소켓이 수신하기를 예상하는 데이터의 다음 바이트의 연속되는 번호(이제까지 수신된 최대의 연속되는 번호보다 일이 큰 번호와 동일함)
이러한 카운터는 상기 소켓과 결합된 순서 공간을 정의한다. 경사된 폰트로 상기 순서 공간상에 레이블된 카운터는 소켓
Figure kpo00003
로 유지된다. 상기 순서 공간의 하부에서 세리프 볼드(serif bold)로 레이블된 카운터는 일반론을 벗어나지 않은채 소켓
Figure kpo00004
로 유지되며, 이러한 설명에서 각각의 순서 공간이 제로에서 계수되기 시작한다고 가정한다.
TCP 접속은 접속 셋업 타임에서 교섭된 TCP 옵션의 형태의 상태를 갖는다. 본 발명의 바람직한 실시예에서, 상기 TCP 글루는 동일 옵션이 상기 프록시-클라이언트 및 프록시-서버 접속에서 교섭되는 것을 보장하지 않으며, 따라서 이러한 접속이 여러 TCP 옵션으로 교섭되는 것이 가능하다. 이것은 일단 상기 두 개의 접속이 함께 결합될 때 문제를 야기시킬 수 있다. 왜냐하면 엔드 시스템이 예상치 못한 TCP 옵션을 수용할 수 있거나 다른 엔드 시스템에 의해서 처리되는 것으로 예상되는 옵션을 갖을 수 있기 때문이다. 본 발명의 옵션 부정합이 문제를 일으키면, 본 발명의 바람직한 실시예는, 새로운 소켓을 접속할 때 현재의 소켓에서 교섭된 것과 같은 동일 옵션 셋트를 교섭하기 위해 프록시 네트워킹 스택으로 새로운 커넬 호출을 추가하여 수정될 수 있다.
상기 TCP 글루 메카니즘은 상기 글루의 발생을 각각의 엔드 시스템의 데이터 전송에 동기화시키기 위한 방법을 제공한다. 세션 셋업이 상기 애플리케이션 공간에서 발생하며 상기 글루 셋업이 상기 커넬에서 발생하므로, 동기 메카니즘은 소켓상에서 데이터 전송을 시작하는 것이 안전할 때 애플리케이션을 통지하는데 필요하다.
상기 프록시가 상기 TCP 글루를 셋업하기 전에 하나의 엔드 시스템이 다른 엔드 시스템에 대해 의도된 데이터를 전송하면, 그 데이터는 프록시가 판독하는 것이 가능한 프록시 소켓 버퍼에서 종료되지만, 그것들은 다른 엔드 시스템으로 전달되지 않게된다. 이것은 상기 엔드 시스템이 데이터를 전송하는데 상기 프록시를 “서징 어헤드(surging ahead)”므로 클라이언트 또는 서버 서지(server surge)라고 불리운다. TCP 글루는 두 개의 서로 다른 동기화 메카니즘을 제공하는데, 하나는 클라이언트 서지를 카피하기 위한 것이고 다른 하나는 서버 서지로 카피하기 위한 것이다. 상기 프록시 설계자는 프록싱할 때 관심있는 형태의 세션을 동기화하기 위해 정확한 동기화 프리미티브(primitives) 조합을 불러들이도록 선택하여야 한다. 클라이언트가 수정될 수 있으며, 따라서 명시(explicit) OK 메세지를 전송하므로 클라이언트가 동기화된다고 가정한다. 한편, 서버는 수정되지 않는다. 따라서, 서버 서지에 대한 기술에는 상기 서버를 트릭하여 상기 글루가 완벽하게 셋업될 때까지 상기 서버에 그 데이터를 유지하도록 하는 것이 포함된다.
[클라이언트 서지]
TCP 글루는 상기 프록시 설계자가 고정된 크기의 “OK”메시지를 클라이언트에게 전송하게 하여 상기 OK 메시지가 수신될 때, 상기 TCP 글루가 셋업된다. 어떤 데이터는 상기 OK 메시지가 프록시가 아니라, 상기 서버로부터 도출된 후에, 클라이언트의 소켓으로부터 판독된다. 제2도에 도시된 바와같이, 상기 클라이언트의 설계자는, 접속을 상기 서버에 개방하고, 세션 셋업 데이터를 상기 프록시와 교환하고, 이어서 상기 OK 메시지가 도달할 때 까지 블로킹하므로써 동기화를 위한 OK 메시지를 사용할 수 있다.
제2도에 도시된 바와같이 텔넷 클라이언트(11), 프록시 화이어월(12) 및 텔넷서버(13) 사이에서 메시지를 교환할 때, 상기 텔넷 클라이언트(11)는 상기 접속을 개방하고 상기 서버 어드레스를 화이어월 프록시(12)로 전송하므로써 상기 접속을 설정한다. 상기 화이어월 프록시(12)로부터의 인증 챌린지(authentication challenge)에 응답하여, 상기 텔넷 클라이언트(11)는 인증 응답을 제공한다. 상기 TCP 글루(14)는 상기 화이어월 프록시(12)에 의해 셋업되며, 이것이 발생할 때, 상기 텔넷 클라이언트(11)가 또다른 통신을 차단한다. 상기 TCP 글루가 셋업될 때, 텔넷 서버(13)로 접속이 개방되고 OK 메시지가 상기 텔넷 클라이언트(11)로 전달된다. 상기 OK 메시지를 수신할 때, 통신이 차단되지 않으며, 텔넷 클라이언트(11)로 부터의 데이터 1은 상기 화이어월 프록시(12)를 통해서 텔넷 서버(13)로 전송되며 상기 텔넷 서버(13)로 부터의 데이터 2는 화이어월 프록시(12)를 통해서 텔넷 클라이언트로 전송된다.
[서버 서지]
TCP 글루는 상기 프록시 설계자가 소켓을 TCP 확인응답(ACKs)으로 전달하지 못하도록 한다. 그 결과는, 상기 서버에 의해서 전달된 서지 데이터가 도달하였고 상기 프록시에 의해서 판독된다 할지라도, 상기 서버는 그것이 도달하였음을 믿지 않고 ACKs가 리-인에이블되거나 상기 TCP 글루가 완성되고 클라이언트가 상기 데이터를 수신 및 ACK 할 때까지 그것을 재 전송하게 된다는 것이다. 제3도는 HTTP 캐싱프록시에 사용되는 그러한 동기화 스킴을 도시한다.
제3도에 도시된 메시지 호환은 웹 브라우저(클라이언트)(23), 캐싱 프록시(22), 및 웹 서버(23) 사이에서 일어난다. 상기 웹 브라우저(21)는 접속을 개방하고 “http:X”로 어드레스된 U끼을 HTTP 캐싱 프록시(22)로 전달한다. 상기 캐싱 프록시(22)는 상기 ACKS(23)를 턴 오프하며, 웹 브라우저(23)와 접속을 개방하고, 상기 URL “http:X”를 페치한다. 데이터 1은 상기 캐싱 프록시(22)에 의해서 웹 서버(23)으로부터 검색되는데 상기 캐싱 프록시는 TCP 글루(24)를 셋업한다. 일단 상기 TCP 글루가 셋업되었으며, 상기 ACKs는 다시 턴온되며 데이터는 캐싱 프록시(22)로 부터 웹 브라우저(21)로 흐른다.
[TCP 글루를 사용한 웹-프록시 설계]
본 발명의 바람직한 실시예에서, SOCKS 화이어월 서버는 TCP 글루잉 기술을 설명하기 위한 예로서 사용된다. 상기 SOCKS 예는 네트워크 통신에 대한 본 발명의 한가지 응용에 불과하다. 일반적으로, TCP 글루잉 기술은, HTTP 캐싱 프록시를 포함하여, 어떤 전송 계층 프록시의 성능을 개선하기 위해 애플리케이션될 수 있다.
HTTP 캐싱 프록시는 그와 유사한 기술도 채용할 수 있다. 그러나, 언급할 만한 세가지 주된 차이가 있다. 즉,
(1) 지적할 만한 중요한 점은 제2도에 도시된 인증 교환이 상기 SOCKS 프로토콜에서 유일하게 요구된 단계라는 사실이다. 그것은 상기 TCP 글루를 셋업하기 위한 조건이 아니다. 사실상, HTTP 캐싱 프록시는 상기 인증 단계를 누락하도록 선택할 수 있다.
(2) TCP 글루는 임의의 량의 데이터가 각각의 접속상에서 교환된 후에도 설정될 수 있다. 상기 SOCKS 예에서, 상기 TCP 글루는 상기 인증 단계후에 즉시 설정되지만, 일반적으로, 그러한 제한은 없다.
(3) SOCKS 프록시와는 달리, HTTP 프록시는 결합된 접속상에서 릴레이되는 데이터 스트림의 카피를 유지하도록 선택할 수도 있다. 상기 저장된 데이터 스트림은, 동일한 정보에 대한 다른 클라이언트로부터 또다른 요구를 처리하는데 사용되는 데이터 캐시를 채우기 위해 상기 프록시상에서 수행되는 또다른 애플리케이션에 의해서 사용될 수 있다. 그러나, 데이터 스트림의 카피를 유지하는 것은 요구조건은 아니다. 일반적으로, HTTP 프록시는 다음의 요소중 하나에 기초해서 (그러나 그것에 제한되지는 않음) 데이터 스트림의 카피를 유지하거나 버리도록 선택한다.
패킷 인터-어라이벌 타임 - HTTP 캐싱의 목적은 처리량을 개선하고 웹 억세스를 위한 대기시간을 줄이는 것이다. 패킷 인터-어라이벌 타임이 짧으면, 패킷은 이미 상당히 빠른 속도로 서버로부터 도달하고 있다. 그러므로, 프록시는 상기 도달하는 데이터 스트림을 캐싱하도록 선택할 수 있다.
정보 요구에 대한 이력 - 접속을 이루기 위한 판단은 그러한 정보 요구에 대한 이력에 의존할 수 있는데 ; 예를들면, HTTP 프록시는, 과거에 그러한 아이템에 대해 어떤 임계치 이상의 억세스가 있음을 발견할 때 마다 데이터 스트림을 캐시하도록 판단할 수 있다.
프록시상의 가용 자원 - 중앙 처리 장치(CPU), 디스크 공간 및 메모리는 데이터 스트림을 캐싱하기 위해 필요로 하는 세가지 주요 자원이다. 그것중 어느것이 공급이 줄어들면, 캐싱 판단이 영향을 받게 될 수 있다.
상기 프록시 캐시의 현재 내용 - 캐싱 폴리시는 캐싱 판단을 내리는데 프록시 캐시의 현재 내용을 고려할 수 있다.
상기 데이터 내용의 특성 - HTTP 프록시는 그 내용에 기초해서 데이터 스트림을 캐시하도록 선택할 수 있다. 예를 들어, HTTP 프록시는 헤더가 어떤 키워드를 포함하는 웹 페이지만을 캐시할 수 있다.
[순서 번호(sequence number) 매핑]
두 접속 (클라이언트-프록시 및 프록시-서버)이 모두 그 자체의 순서 공간(sequence space)을 가지므로, 세그먼트가 하나의 접속 (말하자면, 상기 프록시-서버 접속) 상에 도달할 때 모든 순서 공간 관련 정보는, 전송전에 다른 접속 (클라이언트-프록시 접속)의 순서 공간으로 매핑될 수 있거나 그 세그먼트가 다른 엔드-시스템(클라이언트)에 감지되지 않게된다.
상기 동기화 프리미티브(primitives)를 적당히 사용하게 되면, 손실되는 데이터가 없게되며, 예외적인 OK 메시지가 클라이언트로 전달될 때, 모든 데이터 흐름은 정지되게 된다. 제4도는 두 개의 접속이 결합될 때 그 접속들을 도시한다. 상기 두 개의 접속, 소켓
Figure kpo00005
대 소켓 ±A와 소켓 ±B대 소켓
Figure kpo00006
는 프록시에 의해서 함께 결합된다. 경사진 폰트로 상기 순서 공간상에서 레이블된 카운터는 상기 프록시의 소켓 ±A 및 ±B에 의해서 유지된다. 상기 순서 공간 아래에서 세리프 볼드로 레이블된 카운터는 엔드 시스템의 소켓들, 즉, 소켓
Figure kpo00007
Figure kpo00008
에 의해서 유지된다. 굵은 화살표는, 하나의 접속상에서 수신된 데이터의 다음 바이트가 어떻게 다른 접속상에서 전달된 데이터의 다음 바이트로 매핑되는지를 도시한다.
서버로부터 클라이언트 순서 공간으로의 매핑은, 소켓
Figure kpo00009
로부터 소켓 ±B에 도달하는 다음 데이터 바이트가 지정되는데, 클라이언트가 프록시상의 소켓 ±A로 부터 수신하기를 예상하는 소켓
Figure kpo00010
상의 다음 순서 번호와 같은 순서 번호로 지정되도록 선택된다. 서버로부터 클라이언트 순서 공간으로의 매핑은 대응하는 방식으로 선택된다. 이러한 매핑은 두 개의 결합된 소켓 각각에 대해서 두 개의 번호로 기술된다. 상기 번호는 새로운 기상 순서 공간에 대한 베이스 포인트로 작용하며 글루 초기 수신 순서 번호 (glue_ire) 및 글루 초기 전달 순서 번호 (glue_iss)로 부른다. 소켓 ±A에 대한 TCP 글루 베이스 포인트는 glue_irs가 rcv_nxt와 같으며 glue_iss가 snd_nxt와 같을 때 설정된다 (OK 메시지를 위해 순서 공간에 방을 남긴다). 소켓 ±B에서, glue_ire는 rcv_nxt와 같으며 glue_iss는 snd_nxt와 같다.
상기 접속 설정 및 해제 단계중에, 상기 프록시에서 종단되는 두 개의 TCP 접속의 엔드 포인트는 여러 상태 전이에 놓인다. 제5도는 전술된 바와같이 상기 글루 설정 과정을 도시하는 상태도이다. 상기 과정에 관련된 두 개의 TCP 접속이 있으므로, 상기 상태도의 각 박스는 수직 바에 의해서 분리된 각각의 접속 상태를 도시하는데, 말하자면, 소켓 A의 상태는 상기 바의 좌측으로 도시되며, 소켓 B의 상태는 상기 바의 우측으로 도시된다.
상기 프록시에서, 소켓 A는 LISTEN 상태(51)로 머무는데, 그것이 클라이언트 또는 로컬 호스트로부터 “OPEN CONNECTION(접속 개방)”메시지(TCP 용어로 SYN 패킷으로 부름)를 수신할 때까지 머물게 된다. 상기 프록시는 SYN & ACK 메시지에 응답하고 SYN_TCVD 상태(52)로 이동한다. 상기 SYN & ACK 에 대한 확인응답이 클라이언트로부터 도달할 때, 클라이언트와 프록시 사이의 접속은 상태(53)에서 설정된다. 새롭게 설정된 접속에서, SOCKS 버전 4 또는 5 프로토콜을 이용하여, 상기 클라이언트 및 프록시는 인증 정보를 교환한다. 클라이언트가 상기 인증 검사에 실패하면, 소켓 A는 LISTEN 상태(51)로 돌아가서, 클라이언트와 프록시 사이의 접속을 리셋트한다. 상기 인증 프로세스를 성공적으로 완수하면, 상기 접속은 ESTABLISHED AND AUTII 상태(54)로 이동한다.
상기 프록시는 클라이언트로부터 SOCKS 접속 또는 SOCKS 바인드 메시지를 수신한다. SOCKS 접속 메시지를 이용하여, 상기 클라이언트는, TCP 접속을 개방하기 위해 상태(55)에서 접속 메시지에서 규정된 어드레스로 상기 프록시를 유도한다. 유사하게, SOCKS 바인드 메시지를 이용하며, 상기 클라이언트는 상태(55)에서 원격 서버로부터 접속의 수용을 시작하기 위한 프록시를 요구한다. 이 두 경우에, 상기 프록시는 새로운 소켓, B를 개방하고, TCP의 표준 스리-웨이 헨드쉐이크(three-way handshake) 프로토콜을 이용하여, 프록시오 kdnjsrur 서버 사이의 새로운 접속을 설정한다. 따라서, SOCKS 접속 메시지의 경우에, 상태(55)에서 표시된 바와같이, 상기 소켓 A의 상태는 ESTABLISHED 상태로 유지되며, 상기 프록시는 소켓 B에서 원격 호스트로 SYN 패킷을 전송한다. SOCKS 바인드 메시지의 경우에, 상태(56)에 표시된 바와같이, 소켓 A는 ESTABLISHED 상태를 유지하고 상기 프록시에서 소켓 B는 LISTEN 상태에 있다. 상기 SYN 패킷이 소켓 B에서 수신될 때, 상태(57)에 도시된 바와같이, 소켓 B의 상태는 SYN_RCVD로 진행된다.
이 시점까지. 소켓 A 및 B는 독립적으로 존재하는데, 말하자면, 그들은 함께 결합되지 않는다. 양 접속상에서 수신된 데이터는 상기 프록시의 소켓 버퍼에서 수신되어 계속해서 상기 프록시상에서 동작중인 애플리케이션 서버에 의해서 처리된다. 상기 두 개의 소켓은, 상태(56)에서 둘다 ESTABLISHED 상태라고 해도, 프리글루(preglue) 상태에 있다. 동기 메시지, “OK”의 전송은 상기 프리글루 상태에서 결합된 상태로 전이를 표시한다. 상기 결합된 상태(59)에서, 상기 결합된 접속상에서 수신된 데이터는 상기 프록시의 소켓 버퍼에서 더 이상 버퍼되지 않는다. 대신에, 상기 데이터는 적당히 헤더를 수정한 후에 다른 엔드로 직접 릴레이된다.
[패킷 헤더 수정]
각각의 세그먼트가 결합된 소켓에서 수신될 때, 상기 세그먼트의 헤더는 상기 결합된 접속의 다른 엔드의 소켓으로 세그먼트를 어드레스하기 위해 변경된다. 상기 세그먼트의 TCP 헤더는 변경되어 상기 세그먼트가 도달할 때 상기 엔드 시스템이 그 세그먼트를 감지하게 된다. 즉, 상기 세그먼트는 보통의 TCP 접속의 연속같이 보이며, 상기 엔드 시스템은 먼저 상기 프록시에서 시작한다. 하나의 세그먼트를 처리하는 것은 세 개의 단계를 요구하는데, 상기 IP 및 TCP 헤더를 변화시키며 특별히 세니티 체크(sanity check)를 수행하는 것이다.
[IP 헤더 변경]
소스(source) 및 데스티네이션(destination) 어드레스를 송출 접속의 어드레스로 변화시킴.
인입 패킷으로부터 IP 옵션을 제거함.
IP 헤더 체크섬(checksum)을 갱신함.
[TCp 헤더 변경]
송출 접속을 매치시키기 위해 소스 및 데스티네이션 포트 번호를 변화시킴.
인입 순서 공간으로부터 송출 공간으로 순서 번호를 매핑함. seq_num=(seq-num - in6glue_irs) + out6glue_iss
인입 순서 공간으로부터 송출 공간으로 ACK 번호를 매핑함. ack_num=(ack-num - in6glue_iss) + out6glue_irs
TCP 헤더 체크섬을 갱신함.
[세니티 체크 수행]
상기 OK 메시지는 프록시와 통신하는 클라이언트와 상기 서버와 통신하는 클라이언트 사이의 경계를 표시한다. 상기 매핑 포인트 전에 클라이언트가 순서 번호에 eogo 수행하는 어떤 레퍼런스도 프록시의 보통(normal) TCP 상태 머신에 의해서 처리되어야 하는데, 그 이유는 상기 클라이언트가 상기 OK 메시지의 재전송 또는 다른 복잡한 기능성을 요구할 수 있기 때문이다.
그것이 간단한 TCP 글루에 대해서는 결코 일어나지 않을 지라도, 상기 서버에서 일반적인 경우에, 클라이언트-프록시 순서 공간으로 매핑될 때 상기 OK 메시지에 의해서 소모된 순서 번호에 중첩되는 데이터를 재전송하는 것이 가능하다. 그러나 이것은 발생되지 않게 된다. 왜냐하면 OK 메시지를 잘못전달되게 할 수 있기 때문이다. 중첩을 방지하기 위해서, 상기 프록시는, 상기 매핑 포인트에서 상기 매핑포인트 ±A6glue_iss와 중첩하는 어떤 세그먼트의 개시를 쵸핑(chop)해야 한다.
OK 메시지에 대한 재전송 요구으로서 국부적으로 포인트를 매핑하기 전에 순서 번호의 클라이언트 ACKS를 번역함.
매핑 포인트에서 서버 세그먼트를 쵸핑하므로써 서버로부터의 의사(spurious) 재전송으로부터 OK 메시지를 보호함.
TCP 옵션은 제자리에 남게되며, 따라서 엔드 시스템이 상기 TCP 전송 계층의 완전한 기능성을 이용할 수 있다.
이러한 프로세스는 제6도의 흐름도에 의해서 더 상세히 설명된다. 패킷은 기능 블록(61)에서 수신되며 IP 계층에서 처리된다. 결합된 TCP 상태 정보는 기능 블록(62)에 배치된다. 상기 OK 메시지가 전달되기 전에, 양 소켓 A 및 B는 제5도에 도시된 바와같이, PRE_GLUE 상태로 표시된다. 따라서, 판단 블록(63)에서, 상기 수신된 패킷이 결합된 접속에 속하는지에 대한 판단이 이루어진다. 매핑 포인트(제4도의 A6glue_iss) 전에 클라이언트가 순서 번호에 대해 수행하는 레퍼런스는 기능 블록(64)에서 프록시의 보통 TCP 상태 머시인에 의해서 처리되어야 한다. 왜냐하면 상기 클라이언트가 OK 메시지의 재전송 또는 다른 복잡한 기능성을 요구할 수 있기 때문이다.
상기 패킷이 결합된 접속에 속하도록 판단 블록(63)에서 판단되었으면, 판단 블록(65)에서 상기 소켓이 PRE_GLUE 상태에 있는지를 판단하기 위해 또 다른 검사가 수행된다. 그것이 간단한 TCP 글루에서는 결코 일어나지 않는다 할지라도, 상기 서버에 대해서 일반적인 경우에, 클라이언트-프록시 순서 공간으로 매핑될 때, OK 메시지에 의해서 소모된 순서 번호에 중첩하는 데이터를 재전송하는 것이 가능하다. 이것은 일어나지 않는다. 왜냐하면 그것이 OK 메시지를 잘못전달되게 할 수 있기 때문이다. 중첩을 방지하기 위해서, 상기 프록시는, 기능 블록(66)에 표시된 바와 같이, 상기 매핑 포인트의 매핑 포인트 A6glue_iss에 중첩하는 어떤 세그먼트의 개시를 쵸핑해야 한다. 세그먼트 #1은 기능 블록(67)으로 인가되는데 여기서 상기 표준 TCP 처리가 수행되며 상기 패킷은 상기 프록시의 소켓 계층으로 전달된다.
다음의 체크가 수행된다. 즉, 상기 OK 메시지에 대한 재전송 요구으로서 국부적으로 포인트를 매핑하기 전에 순서 번호의 클라이언트 ACKs를 번역함.
매핑 포인트에서 서버 세그먼트를 쵸핑하므로써 서버로부터의 의사 재전송으로부터 Ok 메시지를 보호함.
그러나, 이러한 체크는, 판단 블록(68)에서 판단되는 바와 같이, 프록시의 소켓 버퍼에 확인 응답되지 않은 데이터가 있는 동안은 계속 필요하다. A 및 B 소켓 버퍼의 데이터가 확인 응답된 후에, 상기 프록시는 이러한 체크를 안전하게 생략할 수 있다. 제6도는 소켓이 PRE_GLUE 상태에 있을 때 이러한 체크가 수행됨을 도시한다. 기능 블록(69)에서는, 상기 프록시가 세니티 체크가 더 이상 필요하지 않는 것으로 판단하면, 결합된 소켓의 상태를 PRE_GLUE로부터 GLUE로 변환시킨다. 이 포인트에서, 다음 패킷이 처리되도록 수신되는 기능 블록(61)으로 돌아간다.
판단 블록(63)에서 판단된 바와같이, 수신된 패킷이 결합된 접속에 속하고, 판단 블록(65)에서 판단된 바와같이, 소켓이 PRE_GLUE 상태에 놓이지 않게 되면 (즉, 소켓이 GLUE 상태에 있음), 프로세스는 기능 블록(70)으로 간다. 여기서, 소스 어드레스 및 소스 포트 번호는 변화되며,
데스티네이션 어드레스 및 데스티네이션 포트 번호가 변화되며,
순서 번호 필드가 수정되며,
확인 응답 번호 필드가 수정되며,
패킷 체크섬이 재연산된다.
TCP 선택 확인 응답 옵션을 제외하고는, 나머지 TCP 옵션이 제자리에 남아서, 엔드 시스템이 상기 TCP 전송 계층의 완전한 기능을 사용할 수 있다. 상기 TCP 선택 확인 승인 옵션이 순서 번호를 이용하므로, 인입 순서 공간으로부터 송출 순서 공간으로 순서 번호를 매핑하는 것이 필요하다. TCP 긴급 포인터는 상기 세그먼트의 순서 번호로부터 오프셋(offset)으로서 표시된다. 그것들은 상기 매핑 순서 동안에 변화되지 않는다.
본 실시예는 구현을 용이하게 하기 위해 두 TCP 및 IP 체크섬 모두를 스크래치로부터 재연산하지만, 일반적인 실시에서는의 기술은 체크섬이 고장에 안전한 방식(fail-safe manner)으로 갱신되도록 허용한다. 고장에 안전한 체크섬을 수행하므로써 프록시가 체크섬을 검증할 필요가 없게 되며 상기 패킷에 가해지는 변화를 반영하는 체크섬을 갱신하는 비용을 감소시켜서, 성능을 더욱 향상시킨다.
기능 블록(70)의 처리가 완료되면, 상기 수정된 패킷은 기능 블록(71)에서 새로운 데스티네이션으로 릴레이된다. 처리되어야 할 다음 패킷을 수신하기 위해 기능 블록(61)으로 복귀된다.
[접속 해제]
TCP 세그먼트가 글루를 통해서 통과할 때, 상기 세그먼트는 엔드 시스템이 그 접속을 폐쇄하고 이음을 표시하기 위해 검사된다. 상기 엔드 시스템이 그 접속을 종료할 때, 상기 TCp 글루 코드는 두 개의 소켓 사이의 글루를 해제하고 그것들을 자유롭게 한다.
상기 TCP 글루를 해제하기 위한 두가지 기본 법칙은,
보통 폐쇄: 각각의 사이드가 종료 메시지(FIN)를 전달하고 ACK 메시지를 다른 사이드의 FIN 메시지로 전달하면, 상기 글루를 해제한다. 왜냐하면 상기 엔드 시스템이 폐쇄되어 있기 때문이다.
중지 폐쇄(abortive close): did 사이드가 리셋 메시지(RST)를 전달하면, 상기 글루를 해제한다.
두 경우에, 상기 폐쇄 동작에 있어서, 상기 결합된 접속과 연관된 접속 상태 정보가 타임아웃 기간동안 지속된다. 이것은 상기 결합된 접속상에서 수신된 어떤 지연된 세그먼트가 정확히 다른 엔드로 릴레이되도록 한다. 상기 타임아웃 기간 후에, 더 이상 글루 상태를 유지할 필요가 없다. 왜냐하면 어떤 일정치 않은 세그먼트가 상기 타임아웃 기간의 끝에 의해서 네트워크로부터 소거될 수 있기 때문이다.
상기 TCP 글루 코드는, 사용자 공간에서 프록시 처리로부터의 명령으로 글루 접속을 해제하거나, 또는 상기 결합된 접속시 전달된 다수의 바이트와 같이 로깅을 목적으로 프록시 처리 통계로 다시 보고하기 위해 수정될 수도 있다.
보통 폐쇄를 위한 TCP 글루 해제 처리는 제7도의 상태도에 도시되어 있다. 제5도의 상태도에서 볼 때, 상기 프록시는 데이터 전달 상태(72)에 있는데, 말하자면, 상기 글루가 설정된다. 제1 접속(FIN 1)의 로컬 호스트로부터의 FIN 메시지가 프록시에 의해서 수신될 때, 그 메시지는 제2 접속의 원격 호스트에 연관되며, 상기 프록시는 대기 상태(FIN_WAIT_1)(73)로 들어간다. 확인응답 메시지(ACK 1)가 원격 호스트로부터 수신될 때, 상기 프록시는 이 메시지를 로컬 호스트로 릴레이하여 제2 대기 상태(FIN_WAIT_2)(74)로 들어간다. 상기 원격 호스트는 상기 프록시에 종료 메시지(FIN 2)를 전송하는데, 상기 프록시는 이를 로컬 호스트에 릴레이한다. 상기 프록시는 대기 상태(75)에서 연속된다. 상기 결합된 접속과 연관된 접속 상태 정보는, 무엇이 먼저 오든지간에, 상기 로컬 호스트가 확인 응답 메시지(ACK 2)를 전송할 때 까지 또는 타임아웃 기간(76) 동안 지속된다. 상기 ACK 2 메시지가 타임 아웃 기간 전에 수신되면, 상기 메시지는 프록시에 의해서 원격 호스트로 릴레이되며, 상기 접속이 해제된다. 타임아웃 기간은 상기 결합된 접속상에서 수신된 어떤 지연된 세그먼트가 다른 엔드로 정확히 릴레이됨을 보장한다. 상기 타임아웃 기간 후에, 상기 글루 상태를 유지하는 것이 더 이상 필요없다. 왜냐하면 어떤 일정치 않은 세그먼트가 상기 타임아웃 기간의 끝에 의해서 상기 네트워크로부터 소거될 것이기 때문이다.
동시 폐쇄도 가능하다. 이 경우에, 종료 메시지는 로컬 호스트 및 원격 호스트 모두에 의해서 전송된다. 상기 프록시는 종료 메시지(FIN 1 및 FIN 2)를 각각의 원격 및 로컬 호스트로 릴레이하며 대기 상태(77)로 들어간다. 그후 확인 응답(ACK1 또는 ACK 2)을 수신하여, 상기 프록시는 타임아웃 기간을 시작하기 위한 상태(75)로 들어간다.
본 발명에 따른 방법은 두 개의 TCP 접속을 결합하여, 어떤 전송 또는 애플리케이션 계층 처리 오버헤드를 초래하지 않고, 하나의 접속에서 수신된 세그먼트가 다른 접속으로 전달되게 하며, 그 역으로도 가능하게 한다. 이러한 기술은 SOCKSs 화이어월 게이트웨이 및 HTTP 캐싱 프록시와 같은 프록시 서버의 성능을 개선하도록 효율적으로 사용될 수 있다. 상기 글루잉 기술은 애플리케이션계층 게이트웨이의 방법보다, 더 효율적이며, 상태 유지가 수월하며, 더 양호한 엔드-투-엔드 의미론, 신뢰성 등을 제공하며, 더 양호한 대역외 데이터 전달 의미론을 제공하는 면에서 우수하다.
본 발명의 하나의 양호한 실시예에 의해서 기술되었지만, 본 기술 분야의 당업자라면 본 발명이 첨부된 청구범위의 사상 및 그 범위내에서 여러가지 변경이 가능함을 알수 있다.

Claims (38)

  1. 패킷 통신 네트워크에서 제1 및 제2 접속 - 상기 제1 및 제2 접속은 모두 공통 호스트에서 종단되고, 또한 상기 제1 및 제2 접속은 각각 제1 엔드 포인트 및 제2 앤드 포인트에서 종단됨 - 을 단일 엔드-투-엔드 접속으로 결합(gluing)시키는 방법에 있어서, 상기 공통 호스트에서, 상기 제2 접속의 패킷 헤더에 대응하도록 상기 제1 접속의 제1 엔드 포인트로부터 수신된 제1 패킷의 헤더를 수정하고, 제1 패킷을 상기 제2 접속의 제2 엔드 포인트로 전송하는 단계 ; 및 상기 공통 호스트에서, 상기 제1 접속의 패킷 헤더에 대응하도록 상기 제2 접속의 제2 엔드 포인트로부터 수신된 제2 패킷의 헤더 - 상기 헤더는 패킷이 공통 호스트에서 수신될 때 동작중(on-the-fly)에 수정됨 - 를 수정하고, 제2 패킷을 상기 제1 접속의 제1 엔드 포인트로 전송하는 단계를 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  2. 제1항에 있어서, 상기 제1 엔드 포인트는 화이어월에 의해서 보호되는 네트워크에 부착되는 로컬 호스트이고, 상기 제2 엔드 포인트는 상기 화이어월의 외부에 있지만 상기 화이어월에 의해서 접속이 가능한 네트워크에 접속된 원격 호스트이며, 상기 화이어월을 거쳐 데이터를 송신 및 수신 수신하기 위한 억세스 권리를 갖는 프록시가 상기 공통 호스트에서 실행되고 로컬 호스트 및 원격 호스트 사이의 중재자(mediator)로서 작용하며, 상기 접속은 전송제어 프로토콜(TCP) 접속이며 상기 패킷은 TCP/인터넷 프로토콜(IP) 헤더를 갖고 있는 패킷 통신 네트워크에서의 접속 결합 방법.
  3. 제2항에 있어서, 상기 제1 접속을 통해 프록시에서 수신된 패킷에 대한 헤더 수정 단계는, (a) 데스티네이션 IP 어드레스를 원격 호스트 IP 어드레스의 그 어드레스로 변경하는 단계 ; (b) 소스 IP 어드레스를, 패킷을 원격 호스트로 송신하는데 사용되는 프록시 인터페이스의 IP 어드레스의 그 어드레스로 변경하는 단계 ; (c) TCP 포트 번호를 변경하는 단계 ; (d) 송신 순서 번호 필드를 변경하는 단계 ; (e) 확인응답(ACK) 순서 번호 필드를 변경하는 단계 ; 및 (f) 체크섬을 재연산 및 갱신하는 단계를 포함하고, 상기 제2 접속을 통해 프록시에서 수신된 패킷에 대한 헤더 수정 단계는, (g) 데스티네이션 IP 어드레스를 로컬 호스트 IP 어드레스의 그 어드레스로 변경하는 단계 ; (h) 소스 IP 어드레스를, 패킷을 로컬 호스트로 송신하기 위해 사용되는 프록시 인터페이스의 IP 어드레스의 그 어드레스로 변경하는 단계 ; (i) TCP 포트 번호를 변경하는 단계 ; (j) 송신 순서 번호 필드를 변경하는 단계 ; (k) ACK 순서 필드를 변경하는 단계 ; 및 (l)체크섬을 재연산 또는 갱신하는 단계를 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  4. 제3항에 있어서, 두개의 독립적인 TCP 접속, 즉, 로컬 호스트와 프록시 사이의 제1 접속과, 프록시와 원격 호스트 사이의 제2 접속이 있으며, 상기 프록시는 상기 두 개의 TCP 접속사이에서 패킷을 릴레이 하며, (a) 수정 이후에, 패킷이 제2 접속에 속하게 되고, 헤더 정보는 패킷이 프록시에서 수신될 때 동작중에 수정되도록, 상기 제1 접속의 패킷의 TCP/IP 헤더를 수정하는 단계 ; (b) 상기 수정된 헤더정보를 갖는 패킷을 상기 원격 호스트로 전송하는 단계 ; 및 (c) 상기 원격 호스트로부터 수신되며 프록시에 의해 상기 로컬 호스트로 릴레이 되는 모든 패킷에 대해 상기 단계(a) 및 (b)를 반복하는 단계를 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  5. 제3항에 있어서, 제1 및 제2 접속이 함께 결합된 후, 상기 제2 접속을 통해 상기 공통 호스트로부터 전송된 차기 데이터 바이트에 로컬 호스트가 상기 제1 접속을 통해 수신할 것으로 예상하는 차기 순서 번호와 동일한 순서 번호가 할당되고, 상기 제1 접속을 통해 원격 호스트로 전송된 차기 데이터 바이트에 상기 원격 호스트가 상기 제2 접속을 통해 수신할 것으로 예상하는 차기 순서 번호와 동일한 순서 번호가 할당되도록, 상기 프록시에서 매핑하는 순서 번호를 선택하는 단계를 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  6. 제5항에 있어서, 소정의 포인트에서 프록시가 두 개의 TCP 접속을 함께 결합시킬 때 까지, 상기 프록시 및 원격 호스트는 각각 프록시 및 원격 호스트 TCP 접속을 통해 임의의 데이터를 교환하고, 상기 프록시 및 로컬 호스트는 각각 프록시 및 로컬 호스트 TCP 접속을 통해 임의의 데이터를 교환할 수 있으며, 그 후, 로컬 호스트에 의해 프록시로 전송된 패킷은 변경되어 원격 호스트로 전송되고, 원격 호스트에 의해 프록시로 전송된 패킷은 변경되어 로컬 호스트로 전송되도록 되어 있는 패킷 통신 네트워크에서의 접속 결합 방법.
  7. 제1항에 있어서, 상기 제1 엔드 포인트는, 화이어월에 의해서 보호되는 네트워크에 부착된 로컬 호스트이고, 상기 제2 엔드 포인트는 상기 화이어월 외부에서 상기 화이어월에 의해 접속가능한 네트워크에 접속된 원격 호스트임, 상기 화이어월을 통해 데이터를 송신 및 수신하는 억세스 권리를 가진 프록시가 공통 호스트 상에서 실행되고, 로컬 호스트 및 원격 호스트 사이에서 중재자로서 작용하며, 상기 방법은, (a) 승인된 로컬 호스트 이외의 호스트로부터의 모든 시도되는 접속을 상기 프록시에 의해 거부하고, 인증 및/또는 인증 체크에 장애를 가져오는 모든 접속을 상기 프록시에 의해 종료하는 단계; (b) 그 로컬 호스트가 통신하고자 하는 원격 호스트의 어드레스를 지정하는 로컬 호스트에 의한 데이터 접속을 상기 프록시에 설정하는 단계 ; (c) 패킷이 상기 프록시로붙 기원하는 것으로 나타나도록 상기 로컬 호스트로부터 수신되는 모든 패킷의 헤더를 상기 프록시에 의해 수정하고, 상기 프록시에 의해 상기 패킷을 상기 원격 호스트로 전송하는 단계 ; (d) 패킷이 상기 프록시로부터 기원하는 것으로 나타나도록 상기 로컬 호스트에 의해 개시된 접속의 일부로서 상기 원격 호스트에 의해 송신되는 모든 패킷의 헤더를 상기 프록시에 의해 수정하고, 상기 패킷을 상기 로컬 호스트로 전송하는 단계 ; (e) 상기 접속의 일부로서 상기 프록시에 의해 상기 로컬 및 원격 호스트로 부터 수신되는 패킷에 대해 상기 단계(c) 및 (d)를 반복하는 단계 ; 및 (f) 프록시에 의해, 인증 및/또는 인증 체크를 통과한 접속의 일부가 아닌 프록시에 도달하는 어떤 패킷을 시도된 보안 위반으로 취급하는 단계를 더 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  8. 제7항에 있어서, 공통 호스트 상에서 실행되는 프록시에 의해 결합 동작과 로컬 호스트 및 원격 호스트를 동기화하는 단계를 더 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  9. 제8항에 있어서, 상기 로컬 호스트, 상기 프록시 및 상기 원격 호스트를 동기화 시키는 단계는 어떤 수정이 이루어진 인증 및 권한부여 프로토콜의 기존의 메시지를 송신 및 수신함으로써 수행되는 패킷 통신 네트워크에서의 접속 결합 방법.
  10. 제7항에 있어서, 상기 프록시가 결합 동작을 수행할 때, 상기 프록시와 상기 원격 호스트 사이 또는 상기 로컬 호스트와 상기 프록시 사이의 네트워크를 통해 데이터가 전송중에 있는 경우에, 데이터가 그 데스티네이션으로 정확히 전달되고, 필요에 따라 재전송되도록 보장하는 단계를 더 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  11. 제7항에 있어서, 상기 프록시에 의해 릴레이되는 각 패킷으로부터 데이터 카피를 상기 프록시에서 선택적으로 저장하는 단계 ; 및 상기 저장된 데이터 카피를, 프록시가 실행되는 머신상의 다른 프로세스에 사용가능하게 만드는 단계를 더 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  12. 제11항에 있어서, 상기 저장된 데이터 카피는, 상기 데이터에 대한 다른 로컬 호스트로부터의 요구에 서비스하기 위해 사용되는 데이터 캐시에 저장되는 패킷 통신 네트워크에서의 접속 결합 방법.
  13. 제12항에 있어서, 상기 프록시는 하이퍼텍스트 전송 프로토콜(HTTP) 캐싱 프록신인 패킷 통신 네트워크에서의 접속 결합 방법.
  14. 제11항에 있어서, 상기 기억된 데이터는 다른 프로세스가 상기 저장된 데이터를 판독할수 있는 프록시의 버퍼로 카피되는 패킷 통신 네트워크에서의 접속 결합 방법.
  15. 제11항에 있어서, 패킷 인터어라이벌 타임, 그 정보에 대한 요구의 과거 이력, 상기 프록시상의 이용가능한 자원, 프록시 캐시의 현재 내용, 상기 프록시가 캐시 데이터를 저장 또는 검색할 수 있는 속도, 및 상기 데이터 내용의 특성중 어느 하나에 근거하여, 상기 데이터 카피를 저장하기 위한 판단을 하는 단계를 더 포함하는 패킷 통신 네트워크에서의 접속 결합 방법.
  16. 제7항에 있어서, 완료된 접속을 해제하는 단계를 더 포함하고, 여기서, 두 접속의 각 엔드 포인트가 종료(FIN) 메시지를 송신하고 다른 엔드 포인트가 상기 FIN 메시지에 대한 확인응답(ACK) 메시지를 송신할 때, 또는 상기 엔드 포인트에 의해 리셋(RST)이 전송될 때, 제3 접목된(spliced) 접속이 해제 되고, 상기 프록시에서 제3 접속에 의해 소모된 자원은 필리스되는 패킷 통신 네트워크에서의 접속 결합 방법.
  17. 전송 제어 프로토콜(TCP)을 사용하는 패킷 통신 네트워크에서, 제1 및 제2 엔드 시스템과 세션 계층 프록시 사이의 접속을 관리하기 위한 방법에 있어서, 상기 제1 및 제2 엔드 시스템과 상기 세션 계층 프록시 사이의 동기화를 부여하는 단계 ; 상기 세션 계층 프록시에서, 상기 제1 또는 제2 엔드 시스템의 TCP 순서 공간을 상기 제2 또는 제1 엔드 시스템으로 각각 매핑하는 단계 ; 각각의 TCP 세그먼트가 상기 제1 또는 제2 엔드 시스템으로부터 세션 계층 프록시에서 수신될 때, 상기 세그먼트를 상기 제2 또는 제1 엔드 시스템으로 각각 어드레스 하기 위해 상기 세그먼트의 헤더 정보를 수정하는 단계 ; 및 상기 제1 및 제2 엔드 시스템 사이의 접속이 폐쇄될 때, 상기 제1 및 제2 엔드 시스템 사이의 완료된 접속을 해제하는 단계를 포함하는 접속 관리 방법.
  18. 제17항에 있어서, 상기 해제 단계는, 상기 제1 또는 제2 엔드 시스템이 종료(FIN) 메시지를 전송하고, 상기 제2 또는 제1 엔드 시스템이 상기 FIN 메시지에 응답하여 확인응답(ACK) 메시지를 전송할 때 마다 수행되는 접속 관리 방법.
  19. 제18항에 있어서, 상기 해제 단계는, 상기 제1 또는 제2 엔드 시스템중 한 시스템이 리셋(RST) 메시지를 전송할 때 마다 부가적으로 수행되는 접속 관리 방법.
  20. 제17항에 있어서, 상기 제1 엔드 시스템은 로컬 네트워크에 접속된 로컬 호스트이고, 상기 제2 엔드 시스템은 원격 네트워크에 접속된 원격 호스트이며, 상기 세션 계층 프록시는 로컬 네트워크가 접속되는 네트워크 화이어월 상에서 실행되며, 상기 네트워크 화이어월은 단지, 한 세트의 인증된 호스트로부터 기원하고 그 호스트로 향하는 트래픽이, 상기 네트워크 화이어월 및 상기 네트워크 화이어월을 통해 데이터를 송신 및 수신하는 억세스 권리를 갖는 세션 계층 프록시를 통해 흐르도록 허용하는 접속 관리 방법.
  21. 제20항에 있어서, 상기 원격 네트워크는 인터넷이고, 상기 패킷은 TCP/IP(인터넷 프로토콜) 헤더를 가지며, 상기 방법은, 상기 로컬 호스트 및 원격 호스트의 TCP/IP 헤더에 각각 대응하도록 상기 원격 호스트 및 로컬 호스트로부터 수신된 패킷의 TCP/IP 헤더를 수정 - 여기서, 상기 헤더는 패킷이 세션 계층 프록시에 의해 수신될 때 동작중에 수정됨 - 하는 단계를 포함하는 접속 관리 방법.
  22. 제17항에 있어서, 상기 제1 엔드 시스템은 로컬 네트워크에 접속된 로컬 호스트이고, 상기 제2 엔드 시스템은 원격 네트워크에 접속된 원격 호스트이며, 상기 세션 계층 프록시는 상기 로컬 호스트 및 원격 호스트로부터의 데이터 스트림이 저장되는 데이터 캐시를 포함하는 캐싱 프록시인 접속 관리 방법.
  23. 제22항에 있어서, 상기 원격 네트워크는 인터넷이고, 상기 패킷은 TCP/IP(인터넷 프로토콜) 헤더를 가지며, 상기 방법은, 상기 로컬 호스트 및 원격 호스트의 TCP/IP 헤더에 각각 대응하도록 상기 원격 호스트 및 로컬 호스트로부터 수신된 패킷의 TCP/IP 헤더를 수정 - 여기서, 상기 헤더는 패킷이 세션 계층 프록시에 의해 수신될 때 동작중에 수정됨 - 하는 단계를 포함하는 접속 관리 방법.
  24. 패킷 통신 네트워크에서, 제1 및 제2 호스트에서 각각 종료되는 제1 및 제2 접속을 세션 계층 프록시의 단일 엔드-투-엔드 접속으로 접목시키는 방법에 있어서, 제1 및 제2 호스트와 세션 계층 프록시 사이의 동기화를 부여하는 단계 ; 및 상기 제1 접속 및 제2 접속의 패킷 헤더를 상기 제2 및 제1 접속의 패킷 헤더에 각각 대응하도록 수정 - 여기서, 상기 헤더 정보는 패킷이 상기 세션 계층 프록시에서 수신될 때 동작중에 수정됨 - 하는 단계를 포함하는 접속 접목 방법.
  25. 패킷 통신 네트워크에 있어서, 로컬 네트워크에 부착된 로컬 호스트; 상기 로컬 호스트에 접속되며 상기 로컬 네트워크를 보호하는 네트워크 화이어월 ; 상기 네트워크 화이어월 외부에 상기 네트워크 화이어월에 의해 접속 가능한 네트워크에 접속된 원격 호스트 ; 및 상기 네트워크 화이어월 상에서 실행되며 상기 네트워크 화이어월을 통해 데이터를 송신 및 수신하는 억세스 권리를 갖는 세션 계층 프록시를 포함하고, 상기 세션 계층 프록시는, 상기 로컬 호스트와 상기 원격 호스트 사이의 중제자로서 작용하며, 또한, 상기 세션계층 프록시는, 로컬 호스트 및 원격 호스트와 세션 계층 프록시 사이의 동기화를 부여하고, 상기 로컬 호스트와 네트워크 화이어월 사이의 제1 접속의 패킷 헤더를 상기 원격 호스트와 네트워크 화이어월 사이의 제2 접속의 패킷 헤더에 대응하도록 수정하기 위해 동작하며, 상기 헤더 정보는 상기 패킷이 상기 세션 계층 프록시에서 수신될 때 동작중에 수정되는 데이터 통신 네트워크.
  26. 패킷 통신 시스템내의 네트워크 화이어월 상에서 구현되며 로컬 호스트와 네트워크 화이어월 사이의 제1 접속과, 원격 호스트와 네트워크 화이어월 사이의 제2 접속 - 여기서, 프록시는 상기 네트워크 화이어월을 통해 데이터를 송신 및 수신하기 위한 억세스 권리를 가지며, 상기 로컬 호스트와 상기 원격 호스트 사이의 중재자로서 작용함 - 을 제공하는 방법에 있어서, (a) 상기 프록시는, 승인된 로컬 호스트 이외의 호스트로부터의 모든 시도되는 접속을 거부하고, 인증 및/또는 권한부여 체크에 실패한 모든 접속을 종료하는 단계 ; (b) 승인된 로컬 호스트는, 상기 프록시로 데이터 접속을 설정하고, 통신 하고자 하는 원격 호스트의 어드레스를 지정하는 단계 ; (c) 상기 프록시는, 상기 로컬 호스트로부터 수신된 모든 패킷의 헤더를 상기 패킷이 상기 프록시로부터 기원하는 것으로 나타나도록 수정하고, 그것을 원격 호스트로 전송하는 단계 ; (d) 상기 프록시는, 상기 로컬 호스트에 의해 개시된 데이터 접속의 일부로서 상기 원격 호스트로 전송된 모든 패킷의 헤더를 상기 패킷이 상기 프록시로부터 기원하는 것으로 나타나도록 수정하고, 그것을 상기 로컬 호스트로 전송하는 단계 ; (e) 상기 로컬 호스트로부터, 상기 로컬 호스트에 의해 개시된 데이터 접속의 일부인 원격 호스트로 전송되는 패킷에 대해 상기 단계(c) 및 (d)를 반복하는 단계 ; 및 (f) 인증 및/또는 권한부여 체크를 통과한 데이터 접속의 일부가 아닌 프록시에 도달하는 패킷을 시도된 보안 위반로 취급하는 단계를 포함하는 방법.
  27. 제26항에 있어서, 상기 제1 및 제2 접속은 전송 제어 프로토콜(TCP) 접속이며, 상기 패킷 헤더는 TCP/IP(인터넷 프로토콜) 패킷 헤더인 방법.
  28. 제27항에 있어서, 상기 프록시에 의해 헤더를 수정하는 단계는, 상기 제1 접속을 통해 상기 프록시에서 수신된 패킷에 대하여, (a) 데스티네이션 IP 어드레스를 원격 호스트 IP 어드레스의 그 어드레스로 변경하는 단계 ; (b) 소스 IP 어드레스를, 상기 원격 호스트로 패킷을 전송하기 위해 사용되는 프록시 인터페이스의 IP 어드레스의 그 어드레스로 변경하는 단계 ; (c) TCP 포트 번호를 변경하는 단계 ; (d) 송신 순서 번호 필드를 변경하는 단계 ; (e) 확인응답(ACK) 순서 번호 필드를 변경하는 단계 ; 및 (f) 체크섬을 재연산 또는 갱신하는 단계를 포함하고, 상기 제2 접속을 통해 상기 프록시에서 수신된 패킷에 대하여, (g) 데스티네이션 IP 어드레스를 로컬 호스트 IP 어드레스의 그 어드레스로 변경하는 단계 ; (h) 소스 IP 어드레스를, 로컬 호스트로 패킷을 전송하기 위해 사용되는 프록시 인터페이스의 IP 어드레스의 그 어드레스로 변경하는 단계 ; (i) TCP 포트 번호를 변경하는 단계 ; (j) 송신전달 순서 번호 필드를 변경하는 단계 ; (k) ACK 순서 필드를 변경하는 단계 ; 및 (l) 체크섬을 재연산 또는 갱신하는 단계를 포함하는 방법.
  29. 제28항에 있어서, 상기 세션 계층 프록시에서, 상기 제1 또는 제2 엔드 시스템의 TCP 순서 공간을 상기 제2 또는 제 1엔드 시스템으로 각각 매핑하는 단계를 더 포함하는 방법.
  30. 제27항에 있어서, 두 개의 독립적인 TCP 접속, 즉 상기 로컬 호스트와 상기 프록시 사이의 제1 접속과, 상기 프록시와 상기 원격 호스트 사이의 제2 접속이 있으며, 상기 프록시는 상기 두 개의 TCP 접속사이에서 패킷을 릴레이하며, 상기 방법은, (a) 수정 이후에, 상기 패킷이 상기 제2 접속에 속한 것으로 나타나게 되도록, 상기 제1 접속의 패킷의 TCP/IP 헤더를 수정 - 여기서, 헤더 정보는 상기 패킷이 상기 프록시에서 수신될 때 동작중에 수정됨 - 하는 단계 ; (b) 상기 수정된 헤더 정보를 갖는 상기 패킷을 상기 원격 호스트로 전송하는 단계 ; (c) 상기 원격 호스트로부터 수신되어 상기 로컬 호스트로 릴레이 되는 모든 패킷에 대해 상기 단계(a) 및 (b)를 반복하는 단계를 포함하는 방법.
  31. 전송 제어 프로토콜(TCP)를 이용하는 패킷 통신 네트워크에서, 원격 호스트롸 프록시 사이의 TCp 접속과 로컬 호스트와 프록시 사이의 TCP 접속을 함께 결합하는 방법에 있어서, 프록시/원격 호스트 TCP 접속을 통해 상기 프록시와 상기 원격 호스트 사이에서 임의의 데이터를 교환하는 단계 ; 프록시/로컬 호스트 TCP 접속을 통해 상기 프록시와 상기 로컬 호스트 사이에서 임의의 데이터를 교환하는 단계 ; 및 상기 로컬 호스트에 의해 상기 프록시로 전송된 패킷은 상기 프록시에 의해 변경되어 패킷은 상기 프록시에 의해 변경되어 상기 로컬 호스트로 전송되도록, 상기 프록시에 의해 두 개의 TCP 접속을 함께 결합하는 단계를 포함하는 TCP 접속 결합 방법.
  32. 제31항에 있어서, 상기 결합 단계는 상기 프록시에 의해 상기 로컬 호스트 및 상기 원격 호스트를 동기화하는 단계를 포함하고, 프록시에 수신된 패킷의 변경은 프록시/원격 호스트 TCP 접속의 패킷 TCP 헤더를, 동작중에 프록시/로컬 호스트 TCP 접속의 패킷 헤더에 대응하도록 수정하는 단계를 포함하는 TCP 접속 결합 방법.
  33. 제32항에 있어서, 상기 프록시가 상기 결합 단계를 수행할 때, 상기 로컬 호스트와 상기 프록시 사이 또는 상기 프록시와 상기 원격 호스트 사이의 네트워크를 통해 데이터가 전송중에 있는 경우에, 데이터가 그 데스티네이션으로 정확히 전달되고, 필요에 따라 재전송되도록 보장하는 단계를 더 포함하는 TCP 접속 결합 방법.
  34. 제32항에 있어서, 상기 동기화 단계는 인증 및 권한부여 프로토콜의 기존의 메시지를 송신 및 수신함으로 수행되는 TCP 접속 결합 방법.
  35. 제32항에 있어서, 상기 프록시가 각각의 패킷으로부터의 데이터 스트림의 카피를 보유하거나, 상기 프록시가 상기 데이터 스트림의 카피를 릴레이하여 다른 프로세스에 이용가능하게 만드는 선택적 단계를 더 포함하는 TCP 접속 결합 방법.
  36. 제35항에 있어서, 카피된 데이터 스트림은, 동일 정보에 대한 다른 로컬 호스트로부터의 미래의 요구에 서비스하기 위해 사용되는 데이터 캐시를 채우기 위해 상기 프록시에 의해 사용될수 있는 TCP 접속 결합 방법.
  37. 제35항에 있어서, 카피된 데이터 스트림은 프록시의 버퍼로 카피되며, 상기 버퍼로부터 다른 호스트가 상기 카피된 데이터 스트림을 판독할 수 있는 TCP 접속 결합 방법.
  38. 제35항에 있어서, 데이터 스트림 카피를 보유하는 선택적 단계는, 패킷 인터어라이벌 타임, 그 정보에 대한 요구의 과거 이력, 상기 프록시상의 이용가능한 자원, 프록시 캐시의 현재 내용, 상기 프록시가 캐시 데이터를 저장 또는 검색할수 있는 속도, 및 데이터 내용의 특성중 어느 것에 의존하는 TCP 접속 결합 방법.
KR1019970061123A 1997-01-27 1997-11-19 전송 제어 프로토콜 글루를 통한 세션 및 전송 계층 프록시 개선 방법 KR100255501B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/789,447 US5941988A (en) 1997-01-27 1997-01-27 Session and transport layer proxies via TCP glue
US8/789,447 1997-01-27

Publications (2)

Publication Number Publication Date
KR19980070104A KR19980070104A (ko) 1998-10-26
KR100255501B1 true KR100255501B1 (ko) 2000-05-01

Family

ID=25147669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970061123A KR100255501B1 (ko) 1997-01-27 1997-11-19 전송 제어 프로토콜 글루를 통한 세션 및 전송 계층 프록시 개선 방법

Country Status (2)

Country Link
US (1) US5941988A (ko)
KR (1) KR100255501B1 (ko)

Families Citing this family (279)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370552B1 (en) 1997-05-14 2002-04-09 Citrix Systems, Inc. Apparatus and method for displaying application output in an HTML document
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US6950991B2 (en) * 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
USRE39501E1 (en) 1996-10-31 2007-03-06 Nvidia Corporation Multiple network protocol encoder/decoder and data processor
US7020700B1 (en) * 1997-02-28 2006-03-28 International Business Machines Corporation Client side socks server for an internet client
US6370571B1 (en) * 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US7529856B2 (en) 1997-03-05 2009-05-05 At Home Corporation Delivering multimedia services
DE69838095T2 (de) 1997-03-12 2008-04-03 Nomadix, Inc., Westlake Village Nomadic Translator
US6587877B1 (en) * 1997-03-25 2003-07-01 Lucent Technologies Inc. Management of time and expense when communicating between a host and a communication network
US6157944A (en) * 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
US5941949A (en) 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
WO1999001819A1 (en) * 1997-07-01 1999-01-14 Progress Software Corporation Testing and debugging tool for network applications
US6006268A (en) * 1997-07-31 1999-12-21 Cisco Technology, Inc. Method and apparatus for reducing overhead on a proxied connection
US6775692B1 (en) * 1997-07-31 2004-08-10 Cisco Technology, Inc. Proxying and unproxying a connection using a forwarding agent
US6401171B1 (en) 1998-02-27 2002-06-04 Cisco Technology, Inc. Method and device for storing an IP header in a cache memory of a network node
US6636485B1 (en) 1998-05-14 2003-10-21 3Com Corporation Method and system for providing quality-of-service in a data-over-cable system
US6775276B1 (en) * 1998-05-27 2004-08-10 3Com Corporation Method and system for seamless address allocation in a data-over-cable system
US6412015B1 (en) 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
US6892229B1 (en) 1998-09-30 2005-05-10 3Com Corporation System and method for assigning dynamic host configuration protocol parameters in devices using resident network interfaces
CA2281431A1 (en) * 1998-10-28 2000-04-28 Lucent Technologies Inc. Mobile-tcp and method of establishing and maintaining a mobile-tcp connection
US6411986B1 (en) * 1998-11-10 2002-06-25 Netscaler, Inc. Internet client-server multiplexer
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US6292839B1 (en) * 1998-12-09 2001-09-18 3Com Corporation Method and system for reflexive tunneling
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US7139268B1 (en) * 1999-01-29 2006-11-21 Pravin Bhagwat Performance of intermediate nodes with flow splicing
US7099338B1 (en) 1999-02-27 2006-08-29 3Com Corporation System and method for insuring dynamic host configuration protocol operation by a host connected to a data network
US6412009B1 (en) 1999-03-15 2002-06-25 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US6349336B1 (en) * 1999-04-26 2002-02-19 Hewlett-Packard Company Agent/proxy connection control across a firewall
US6611868B1 (en) 1999-05-21 2003-08-26 3Com Corporation Method and system for automatic link hang up
US6654387B1 (en) 1999-05-21 2003-11-25 3Com Corporation Method for network address table maintenance in a data-over-cable system using a network device registration procedure
US6754622B1 (en) 1999-05-24 2004-06-22 3Com Corporation Method for network address table maintenance in a data-over-cable system using destination reachibility
US6985437B1 (en) 1999-05-25 2006-01-10 3Com Corporation Method for dynamic performance optimization in a data-over-cable system
US6785292B1 (en) 1999-05-28 2004-08-31 3Com Corporation Method for detecting radio frequency impairments in a data-over-cable system
US7305473B2 (en) * 1999-05-28 2007-12-04 The Coca-Cola Company Provision of transparent proxy services to a user of a client device
US6263371B1 (en) * 1999-06-10 2001-07-17 Cacheflow, Inc. Method and apparatus for seaming of streaming content
AU7060300A (en) 1999-08-16 2001-03-13 Iready Corporation Internet jack
US6594260B1 (en) * 1999-09-03 2003-07-15 Cisco Technology, Inc. Content routing
US6308238B1 (en) 1999-09-24 2001-10-23 Akamba Corporation System and method for managing connections between clients and a server with independent connection and data buffers
US6877036B1 (en) * 1999-09-24 2005-04-05 Akamba Corporation System and method for managing connections between a client and a server
US6801927B1 (en) 1999-09-24 2004-10-05 Akamba Corporation Network adaptor card with reverse proxy and cache and method implemented therewith
FR2800224B1 (fr) * 1999-10-21 2002-12-27 Ibm Procede et systeme de mise en antememoire de donnees http transportees avec des donnees de socks dans des datagrammes ip
WO2001031885A2 (en) 1999-10-22 2001-05-03 Nomadix, Inc. Gateway device having an xml interface and associated method
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US7506358B1 (en) * 1999-12-09 2009-03-17 Cisco Technology, Inc. Method and apparatus supporting network communications through a firewall
US7013251B1 (en) * 1999-12-15 2006-03-14 Microsoft Corporation Server recording and client playback of computer network characteristics
US6493341B1 (en) 1999-12-31 2002-12-10 Ragula Systems Combining routers to increase concurrency and redundancy in external network access
US6510448B1 (en) * 2000-01-31 2003-01-21 Networks Associates Technology, Inc. System, method and computer program product for increasing the performance of a proxy server
US6725272B1 (en) * 2000-02-18 2004-04-20 Netscaler, Inc. Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time
JP3494610B2 (ja) * 2000-02-28 2004-02-09 富士通株式会社 Tcp終端機能付きipルータ装置および媒体
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US7089580B1 (en) 2000-03-29 2006-08-08 3Com Corporation Method for improved cable modem ranging in a data-over-cable system
US6804262B1 (en) 2000-04-28 2004-10-12 3Com Corporation Method and apparatus for channel determination through power measurements
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6944881B1 (en) 2000-06-19 2005-09-13 3Com Corporation Method for using an initial maintenance opportunity for non-contention ranging
US6950947B1 (en) 2000-06-20 2005-09-27 Networks Associates Technology, Inc. System for sharing network state to enhance network throughput
US6816500B1 (en) 2000-07-10 2004-11-09 3Com Corporation Apparatus, method and system for multimedia access network channel management
US7461150B1 (en) * 2000-07-19 2008-12-02 International Business Machines Corporation Technique for sending TCP messages through HTTP systems
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US6941384B1 (en) 2000-08-17 2005-09-06 International Business Machines Corporation Methods, systems and computer program products for failure recovery for routed virtual internet protocol addresses
US6996631B1 (en) * 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US6954784B2 (en) * 2000-08-17 2005-10-11 International Business Machines Corporation Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address
US7562147B1 (en) * 2000-10-02 2009-07-14 Microsoft Corporation Bi-directional HTTP-based reliable messaging protocol and system utilizing same
US20020042839A1 (en) * 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US7055028B2 (en) * 2000-10-10 2006-05-30 Juniper Networks, Inc. HTTP multiplexor/demultiplexor system for use in secure transactions
US7107326B1 (en) 2000-10-13 2006-09-12 3Com Corporation Method and system for integrating IP address reservations with policy provisioning
US7801978B1 (en) 2000-10-18 2010-09-21 Citrix Systems, Inc. Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US6963917B1 (en) 2000-10-20 2005-11-08 International Business Machines Corporation Methods, systems and computer program products for policy based distribution of workload to subsets of potential servers
US6965930B1 (en) 2000-10-20 2005-11-15 International Business Machines Corporation Methods, systems and computer program products for workload distribution based on end-to-end quality of service
US7039717B2 (en) 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US7068597B1 (en) 2000-11-27 2006-06-27 3Com Corporation System and method for automatic load balancing in a data-over-cable network
US6948184B1 (en) 2000-11-30 2005-09-20 3Com Corporation System and method for calibrating power level during initial ranging of a network client device
US6940874B2 (en) * 2000-11-30 2005-09-06 3Com Corporation Method for reducing interference from initializing network devices in a data-over-cable system
US20020078164A1 (en) * 2000-12-13 2002-06-20 Marnetics Ltd. System and method for data transfer acceleration in a TCP network environment
US6697206B2 (en) * 2000-12-19 2004-02-24 Imation Corp. Tape edge monitoring
US6850982B1 (en) * 2000-12-19 2005-02-01 Cisco Technology, Inc. Methods and apparatus for directing a flow of data between a client and multiple servers
US7519048B2 (en) * 2000-12-28 2009-04-14 Nec Corporation Communication system and packet switching method thereof
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7165107B2 (en) * 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
US20020099851A1 (en) * 2001-01-22 2002-07-25 Shah Hemal V. Decoupling TCP/IP processing in system area networks
US7024479B2 (en) * 2001-01-22 2006-04-04 Intel Corporation Filtering calls in system area networks
US6952428B1 (en) 2001-01-26 2005-10-04 3Com Corporation System and method for a specialized dynamic host configuration protocol proxy in a data-over-cable network
US7379475B2 (en) 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US7068598B1 (en) * 2001-02-15 2006-06-27 Lucent Technologies Inc. IP packet access gateway
US7073055B1 (en) 2001-02-22 2006-07-04 3Com Corporation System and method for providing distributed and dynamic network services for remote access server users
US20020120743A1 (en) * 2001-02-26 2002-08-29 Lior Shabtay Splicing persistent connections
US7222255B1 (en) 2001-02-28 2007-05-22 3Com Corporation System and method for network performance testing
US20020143954A1 (en) * 2001-04-03 2002-10-03 Aiken John Andrew Methods, systems and computer program products for content-based routing via active TCP connection transfer
US7272636B2 (en) * 2001-04-24 2007-09-18 Sun Microsystems, Inc. Peer group name server
US8218555B2 (en) 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US7711831B2 (en) * 2001-05-22 2010-05-04 International Business Machines Corporation Methods, systems and computer program products for source address selection
US7089320B1 (en) 2001-06-01 2006-08-08 Cisco Technology, Inc. Apparatus and methods for combining data
US6987765B2 (en) * 2001-06-14 2006-01-17 Nortel Networks Limited Changing media sessions
US7774492B2 (en) * 2001-07-26 2010-08-10 Citrix Systems, Inc. System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections
US7088678B1 (en) 2001-08-27 2006-08-08 3Com Corporation System and method for traffic shaping based on generalized congestion and flow control
US7207061B2 (en) * 2001-08-31 2007-04-17 International Business Machines Corporation State machine for accessing a stealth firewall
KR100416230B1 (ko) 2001-10-24 2004-01-31 한국전자통신연구원 유무선 복합 네트워크 환경에서 무선 tcp프록시의 동적위치 선정 방법
US7085306B1 (en) 2001-10-30 2006-08-01 3Com Corporation System and method for a multi-frequency upstream channel in a computer network
US7000027B2 (en) * 2001-11-29 2006-02-14 International Business Machines Corporation System and method for knowledgeable node initiated TCP splicing
KR20030047471A (ko) * 2001-12-10 2003-06-18 (주)애니 유저넷 인터넷 전화의 방화벽 통과방법 및 터널링 게이트웨이
US7072337B1 (en) 2002-01-25 2006-07-04 3Com Corporation System and method for resolving network addresses for network devices on distributed network subnets
US20030163536A1 (en) * 2002-02-27 2003-08-28 Siemens Medical Solutions Health Services Corporation Message communications addressing system
US6973496B2 (en) * 2002-03-05 2005-12-06 Archduke Holdings, Inc. Concealing a network connected device
US7535913B2 (en) 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US7299264B2 (en) * 2002-05-07 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for monitoring a connection between a server and a passive client device
US7490162B1 (en) * 2002-05-15 2009-02-10 F5 Networks, Inc. Method and system for forwarding messages received at a traffic manager
FI20021300A (fi) * 2002-07-01 2004-01-02 Sonera Oyj Pakettikytketyn yhteyden ohjaus
AU2003247700A1 (en) * 2002-07-02 2004-01-23 Netscaler, Inc System, method and computer program product to avoid server overload by controlling http denial of service (dos) attacks
US20040015591A1 (en) * 2002-07-18 2004-01-22 Wang Frank Xiao-Dong Collective TCP control for improved wireless network performance
US7325070B1 (en) * 2002-08-26 2008-01-29 Network Appliance, Inc. Sub-application layer data transfer in a network comprising a layered architecture
US7849140B2 (en) * 2002-08-29 2010-12-07 Oracle America, Inc. Peer-to-peer email messaging
US7263560B2 (en) * 2002-08-30 2007-08-28 Sun Microsystems, Inc. Decentralized peer-to-peer advertisement
WO2004028089A1 (ja) * 2002-09-20 2004-04-01 Matsushita Electric Industrial Co., Ltd. 複数のデータ通信ネットワークを接続する 中間ネットワーク要素におけるアクセス制御
JP3445986B1 (ja) * 2002-09-27 2003-09-16 松下電器産業株式会社 インターネットに接続するサーバ、機器および通信システム
CA2406565A1 (en) * 2002-10-04 2004-04-04 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for using business rules or user roles for selecting portlets in a web portal
CA2406713C (en) * 2002-10-04 2009-06-30 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for relaying session information from a portal server
CA2406569C (en) * 2002-10-04 2011-03-22 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for enabling associated portlets of a web portal to collaborate for synchronized content display
US7650416B2 (en) 2003-08-12 2010-01-19 Riverbed Technology Content delivery for client-server protocols with user affinities using connection end-point proxies
US7774484B1 (en) 2002-12-19 2010-08-10 F5 Networks, Inc. Method and system for managing network traffic
US7454785B2 (en) * 2002-12-19 2008-11-18 Avocent Huntsville Corporation Proxy method and system for secure wireless administration of managed entities
US7394761B2 (en) * 2003-04-29 2008-07-01 Avocent Huntsville Corporation System and method for delivering messages using alternate modes of communication
US7400622B2 (en) * 2003-07-29 2008-07-15 Hewlett-Packard Development Company, L.P. Method and apparatus for allocating a transport identifier for a network data connection
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US7467219B2 (en) * 2003-11-24 2008-12-16 At&T Intellectual Property I, L.P. Methods for providing communications services
US20050114224A1 (en) * 2003-11-24 2005-05-26 Hodges Donna K. Methods for providing communications services
US7509373B2 (en) 2003-11-24 2009-03-24 At&T Intellectual Property I, L.P. Methods for providing communications services
US7788715B2 (en) * 2003-12-10 2010-08-31 Cisco Technology, Inc. Authentication for transmission control protocol
US7797752B1 (en) * 2003-12-17 2010-09-14 Vimal Vaidya Method and apparatus to secure a computing environment
US8549170B2 (en) 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
AU2004308121B2 (en) * 2003-12-19 2009-09-17 The Regents Of The University Of California Resource sharing broadband access system, methods, and devices
US7260631B1 (en) 2003-12-19 2007-08-21 Nvidia Corporation System and method for receiving iSCSI protocol data units
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US7624198B1 (en) 2003-12-19 2009-11-24 Nvidia Corporation Sequence tagging system and method for transport offload engine data lists
US7899913B2 (en) 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US20100211626A1 (en) * 2004-01-12 2010-08-19 Foundry Networks, Inc. Method and apparatus for maintaining longer persistent connections
US7249306B2 (en) 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7206872B2 (en) 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7616644B2 (en) * 2004-02-25 2009-11-10 Nokia Corporation Method and apparatus providing a protocol to enable a wireless TCP session using a split TCP connection
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US20060031571A1 (en) * 2004-04-29 2006-02-09 International Business Machines Corporation Data communications through a split connection proxy
US7444454B2 (en) * 2004-05-11 2008-10-28 L-3 Communications Integrated Systems L.P. Systems and methods for interconnection of multiple FPGA devices
US7921323B2 (en) * 2004-05-11 2011-04-05 L-3 Communications Integrated Systems, L.P. Reconfigurable communications infrastructure for ASIC networks
US8224966B2 (en) * 2004-08-24 2012-07-17 Cisco Technology, Inc. Reproxying an unproxied connection
KR100601124B1 (ko) 2004-08-26 2006-07-19 주식회사 나라비전 Sip 서비스 기반의 tcp채널 제공 방법
US7957379B2 (en) 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
JP4561980B2 (ja) * 2004-11-08 2010-10-13 日本電気株式会社 セッション中継装置およびセッション中継方法
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
US9118717B2 (en) * 2005-02-18 2015-08-25 Cisco Technology, Inc. Delayed network protocol proxy for packet inspection in a network
US7577759B2 (en) * 2005-03-01 2009-08-18 International Business Machines Corporation Method and apparatus for in-kernel application-specific processing of content streams
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
US8069250B2 (en) * 2005-04-28 2011-11-29 Vmware, Inc. One-way proxy system
US7826487B1 (en) 2005-05-09 2010-11-02 F5 Network, Inc Coalescing acknowledgement responses to improve network communications
US8418233B1 (en) 2005-07-29 2013-04-09 F5 Networks, Inc. Rule based extensible authentication
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
KR100661006B1 (ko) * 2005-12-28 2006-12-22 주식회사 케이티 홈네트워크 단말 관리 시스템 및 그 방법
US20070153807A1 (en) * 2005-12-29 2007-07-05 The Regents Of The University Of California Base-station aided resource sharing broadband access system, methods, and devices
US8565088B1 (en) 2006-02-01 2013-10-22 F5 Networks, Inc. Selectively enabling packet concatenation based on a transaction boundary
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US7769834B2 (en) 2006-05-30 2010-08-03 Riverbed Technology, Inc. System for selecting a proxy pair based on configurations of autodiscovered proxies on a network
US7953889B2 (en) * 2006-08-03 2011-05-31 Citrix Systems, Inc. Systems and methods for routing VPN traffic around network disruption
US8677007B2 (en) * 2006-08-03 2014-03-18 Citrix Systems, Inc. Systems and methods for bypassing an appliance
KR100871422B1 (ko) 2006-08-30 2008-12-03 엔에이치엔(주) 인터넷폰 서비스 제공 장치 및 그 방법
US8738703B2 (en) 2006-10-17 2014-05-27 Citrix Systems, Inc. Systems and methods for providing online collaborative support
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US7808995B2 (en) * 2006-11-16 2010-10-05 L-3 Communications Integrated Systems L.P. Methods and systems for relaying data packets
US9137212B2 (en) * 2006-12-04 2015-09-15 Oracle America, Inc. Communication method and apparatus using changing destination and return destination ID's
US20080235382A1 (en) * 2007-01-22 2008-09-25 The Regents Of The University Of Colorado Fault tolerant tcp splice systems and methods
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
US20080307109A1 (en) * 2007-06-08 2008-12-11 Galloway Curtis C File protocol for transaction based communication
US20080309665A1 (en) * 2007-06-13 2008-12-18 3D Systems, Inc., A California Corporation Distributed rapid prototyping
US8073046B2 (en) * 2007-06-14 2011-12-06 Zoran Corporation Fast training equalization of a signal by using adaptive-iterative algorithm with main path phase correction
EP2009867A1 (en) * 2007-06-28 2008-12-31 Alcatel Lucent Access node with TCP traffic termination
US7916728B1 (en) 2007-09-28 2011-03-29 F5 Networks, Inc. Lockless atomic table update
US7899031B2 (en) * 2007-11-20 2011-03-01 Microsoft Corporation Locally terminating an established connection
US8667175B2 (en) * 2008-03-13 2014-03-04 Cisco Technology, Inc. Server selection for routing content to a client using application layer redirection
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
US8051185B2 (en) * 2008-05-16 2011-11-01 Fastsoft, Inc. Network communication through a specified intermediate destination
US9832069B1 (en) 2008-05-30 2017-11-28 F5 Networks, Inc. Persistence based on server response in an IP multimedia subsystem (IMS)
US8306036B1 (en) 2008-06-20 2012-11-06 F5 Networks, Inc. Methods and systems for hierarchical resource allocation through bookmark allocation
US8069469B1 (en) * 2008-07-25 2011-11-29 Sprint Communications Company L.P. Addressing security in asymmetrical networks
US8769681B1 (en) 2008-08-11 2014-07-01 F5 Networks, Inc. Methods and system for DMA based distributed denial of service protection
US9130846B1 (en) 2008-08-27 2015-09-08 F5 Networks, Inc. Exposed control components for customizable load balancing and persistence
US8566444B1 (en) 2008-10-30 2013-10-22 F5 Networks, Inc. Methods and system for simultaneous multiple rules checking
US8447884B1 (en) 2008-12-01 2013-05-21 F5 Networks, Inc. Methods for mapping virtual addresses to physical addresses in a network device and systems thereof
US20100174817A1 (en) * 2009-01-06 2010-07-08 Chetuparambil Madhu K Splicing proxied web requests with callback for subsequent requests
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US9152483B2 (en) 2009-01-16 2015-10-06 F5 Networks, Inc. Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof
US8103809B1 (en) 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US8112491B1 (en) 2009-01-16 2012-02-07 F5 Networks, Inc. Methods and systems for providing direct DMA
US8880632B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Method and apparatus for performing multiple DMA channel based network quality of service
WO2010090182A1 (ja) 2009-02-03 2010-08-12 日本電気株式会社 アプリケーションスイッチシステム、及びアプリケーションスイッチ方法
CN101834833B (zh) * 2009-03-13 2014-12-24 瞻博网络公司 对分布式拒绝服务攻击的服务器防护
US10157280B2 (en) 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8397054B2 (en) * 2009-12-23 2013-03-12 L-3 Communications Integrated Systems L.P. Multi-phased computational reconfiguration
US8368423B2 (en) * 2009-12-23 2013-02-05 L-3 Communications Integrated Systems, L.P. Heterogeneous computer architecture based on partial reconfiguration
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
US8630174B1 (en) 2010-09-14 2014-01-14 F5 Networks, Inc. System and method for post shaping TCP packetization
US8463909B1 (en) 2010-09-15 2013-06-11 F5 Networks, Inc. Systems and methods for managing server resources
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US8959571B2 (en) 2010-10-29 2015-02-17 F5 Networks, Inc. Automated policy builder
US8627467B2 (en) 2011-01-14 2014-01-07 F5 Networks, Inc. System and method for selectively storing web objects in a cache memory based on policy decisions
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
CN102130910B (zh) * 2011-02-28 2015-04-29 华为技术有限公司 Tcp代理插入和卸载方法及业务网关设备
CN102215231A (zh) * 2011-06-03 2011-10-12 华为软件技术有限公司 一种转发数据的方法及网关
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US8788656B2 (en) * 2011-11-14 2014-07-22 Cisco Technology, Inc. System and method for video caching based on available resources
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US9036822B1 (en) 2012-02-15 2015-05-19 F5 Networks, Inc. Methods for managing user information and devices thereof
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
EP2853074B1 (en) 2012-04-27 2021-03-24 F5 Networks, Inc Methods for optimizing service of content requests and devices thereof
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9270602B1 (en) 2012-12-31 2016-02-23 F5 Networks, Inc. Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
WO2014144837A1 (en) 2013-03-15 2014-09-18 A10 Networks, Inc. Processing data packets using a policy based network path
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US9864606B2 (en) 2013-09-05 2018-01-09 F5 Networks, Inc. Methods for configurable hardware logic device reloading and devices thereof
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US10230770B2 (en) * 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
EP3085051A1 (en) 2013-12-16 2016-10-26 F5 Networks, Inc Methods for facilitating improved user authentication using persistent data and devices thereof
US8984635B1 (en) 2014-01-06 2015-03-17 Cloudflare, Inc. Authenticating the identity of initiators of TCP connections
US8806011B1 (en) 2014-01-06 2014-08-12 Cloudflare, Inc. Transparent bridging of transmission control protocol (TCP) connections
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9270605B2 (en) * 2014-05-28 2016-02-23 Robin Systems, Inc. Method and system of setting network traffic flow quality of service by modifying port numbers
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10268467B2 (en) 2014-11-11 2019-04-23 A10 Networks, Inc. Policy-driven management of application traffic for providing services to cloud-based applications
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10361997B2 (en) 2016-12-29 2019-07-23 Riverbed Technology, Inc. Auto discovery between proxies in an IPv6 network
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
CN109088892B (zh) 2018-10-19 2021-02-12 网宿科技股份有限公司 数据传输方法、系统以及代理服务器
US11537716B1 (en) 2018-11-13 2022-12-27 F5, Inc. Methods for detecting changes to a firmware and devices thereof

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021949A (en) * 1988-02-29 1991-06-04 International Business Machines Corporation Method and apparatus for linking an SNA host to a remote SNA host over a packet switched communications network
US5249292A (en) * 1989-03-31 1993-09-28 Chiappa J Noel Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream
US5781715A (en) * 1992-10-13 1998-07-14 International Business Machines Corporation Fault-tolerant bridge/router with a distributed switch-over mechanism
US5802287A (en) * 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5668809A (en) * 1993-10-20 1997-09-16 Lsi Logic Corporation Single chip network hub with dynamic window filter
JPH09510596A (ja) * 1994-06-08 1997-10-21 エイチイー・ホールディングス・インコーポレーテッド・ディー ビーエー・ヒューズ・エレクトロニクス ハイブリッドネットワークアクセスのための装置および方法
US5566170A (en) * 1994-12-29 1996-10-15 Storage Technology Corporation Method and apparatus for accelerated packet forwarding
US5550816A (en) * 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5692124A (en) * 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications

Also Published As

Publication number Publication date
KR19980070104A (ko) 1998-10-26
US5941988A (en) 1999-08-24

Similar Documents

Publication Publication Date Title
KR100255501B1 (ko) 전송 제어 프로토콜 글루를 통한 세션 및 전송 계층 프록시 개선 방법
Maltz et al. TCP Splice for application layer proxy performance
Ford et al. TCP extensions for multipath operation with multiple addresses
Spatscheck et al. Optimizing TCP forwarder performance
US7969876B2 (en) Method of determining path maximum transmission unit
Snoeren et al. An end-to-end approach to host mobility
Kohler et al. Datagram congestion control protocol (DCCP)
US6415329B1 (en) Method and apparatus for improving efficiency of TCP/IP protocol over high delay-bandwidth network
US7672223B2 (en) Method and apparatus for replicating a transport layer protocol stream
JP4164365B2 (ja) デュアル・プロキシ装置を設けることによる無線インタフェースを介するtcp性能の改良技術
US8090859B2 (en) Decoupling TCP/IP processing in system area networks with call filtering
US8724656B2 (en) Methods and devices for transmitting data between storage area networks
Knutsson et al. Transparent proxy signalling
US20030217149A1 (en) Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
US20060002301A1 (en) Transferring transmission control protocol packets
US20060235939A1 (en) Apparatus and methods for tunneling a media streaming application through a firewall
US10530644B2 (en) Techniques for establishing a communication connection between two network entities via different network flows
US20090254667A1 (en) Method for eliminating redundant connections
Ford et al. TCP Extensions for Multipath Operation with Multiple Addresses, draft-ietf-mptcp-multiaddressed-09
WO2002021772A2 (en) System and method for secure dual channel communication through a firewall
AU2001290633A1 (en) System and method for secure dual channel communication through a firewall
EP1393497B1 (en) Dual mode service platform within network communication system
US20050120140A1 (en) Method of and system for multi-patch communication
WO2004068811A2 (en) Methods and devices for transmitting data between storage area networks
Bhagwat et al. MSOCKS+: an architecture for transport layer mobility

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee