KR101610715B1 - 단방향 데이터 송수신 시스템 및 방법 - Google Patents

단방향 데이터 송수신 시스템 및 방법 Download PDF

Info

Publication number
KR101610715B1
KR101610715B1 KR1020140070501A KR20140070501A KR101610715B1 KR 101610715 B1 KR101610715 B1 KR 101610715B1 KR 1020140070501 A KR1020140070501 A KR 1020140070501A KR 20140070501 A KR20140070501 A KR 20140070501A KR 101610715 B1 KR101610715 B1 KR 101610715B1
Authority
KR
South Korea
Prior art keywords
frame
tcp
network
address
unit
Prior art date
Application number
KR1020140070501A
Other languages
English (en)
Other versions
KR20150142719A (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 한국전자통신연구원
Priority to KR1020140070501A priority Critical patent/KR101610715B1/ko
Priority to US14/726,496 priority patent/US9565162B2/en
Publication of KR20150142719A publication Critical patent/KR20150142719A/ko
Application granted granted Critical
Publication of KR101610715B1 publication Critical patent/KR101610715B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security

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)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

물리적 단방향 데이터 전송 시스템의 단방향 회선에서 발생하는 링크 에러로 인한 데이터 손실 문제를 완화함과 더불어 수신 시스템에서 발생할 수 있는 버퍼 오버플로우 문제를 완화하기 위한 단방향 데이터 송수신 시스템 및 방법을 제공한다. 이를 위해, 송신 시스템은 수신 시스템과 연결된 단방향 회선상의 잔여 자원을 고려하여 동일한 프레임을 다수 번 전송하고, 수신 시스템에서는 동일한 프레임 중 하나의 프레임에 대해서만 상위 계층으로 전달함으로써 프레임 손실율을 줄인다. 또한, 수신 시스템에서의 버퍼 오버플로우에 의한 프레임 손실을 줄이기 위해, 수신 시스템에서 설립된 TCP 세션의 처리량을 고려하여, 송신 시스템과 연결되어 있는 TCP 송신기기의 송신 속도를 제어한다

Description

단방향 데이터 송수신 시스템 및 방법{One-way data transmission and reception system, and one-way data transmission and reception method}
본 발명은 단방향 데이터 송수신 시스템 및 방법에 관한 것으로, 보다 상세하게는 유무선 단방향 인터페이스를 사용하여 단일 홉으로 연결된 송신 시스템 및 수신 시스템에서 신뢰성있는 단방향 데이터 전송이 이루어지도록 하는 시스템 및 방법에 관한 것이다.
보안 등급이 낮은 네트워크에서 보안 등급이 높은 네트워크로의 침입을 원천차단하기 위해 보안 등급이 높은 네트워크 망과 보안 등급이 낮은 네트워크 망은 서로 물리적으로 분리하여 운영하는 것이 일반적이다.
그러나, 보안 등급이 서로 다른 네트워크들을 물리적으로 완전히 분리하는 것은 보안 등급이 높은 네트워크의 단말에서 보안 등급이 낮은 네트워크의 단말로의 데이터 전달 또는 보안 등급이 낮은 네트워크의 단말에서 보안 등급이 높은 네트워크의 단말로의 데이터 전달을 어렵게 만든다. 예를 들면 다음과 같다. 도 1은 물리적 망 분리가 적용되기 전의 네트워크 예시를 나타내고, 도 2는 물리적 망 분리 후의 네트워크 예시를 나타낸다. 도 1에서 단말(1, 2, 3)은 각각 단말(4, 5, 6)에게 데이터를 전송하기 위해 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 기반의 데이터 전송 프로그램을 사용할 수 있다. 하지만, 도 2와 같이 망 분리를 하면, 망 간 데이터 전송은 불가능하다.
물리적 단방향 데이터 전송 기술은 망 간 단방향 데이터 전송을 지원하는 기술이다. 이와 관련된 선행기술로는 미국 특허출원공개번호 2012-0151075 호가 있다. 물리적 단방향 데이터 전송 기술의 적용 예는 도 3과 같다. 도 3에서, 물리적 단방향 데이터 전송 시스템은 송신 시스템(9)과 수신 시스템(10)으로 구성되어 있다. 송신 시스템(9)은 제 1네트워크(7)에 연결되어 있으며, 수신 시스템(10)는 제 2네트워크(8)에 연결되어 있다. 그리고, 송신 시스템(9)과 수신 시스템(10)의 연결은 단방향 물리회선만 허용되며, 수신 시스템(10)에서 송신 시스템(9)으로의 물리회선은 끊어져 있다.
송신 시스템(9)은 제 1네트워크(7)의 단말(1, 2, 3)이 제 2네트워크(8)의 단말(4, 5, 6)로 송신하는 데이터를 중간에서 수신하여, 수신 시스템(10)으로 송신한다. 이때 단방향 물리 회선을 사용한다. 수신 시스템(10)은 수신한 데이터를 제 2네트워크(8)의 단말(4, 5, 6)에게로 송신한다.
이와 같이 물리적 단방향 데이터 전송 기술은 물리적 망 분리가 적용된 망들에서의 망간의 TCP 또는 UDP 기반의 데이터 전송을 지원할 수 있는 장점을 지닌다. 하지만, 현재의 물리적 단방향 데이터 전송 기술은 데이터 프레임 손실에 취약하다.
데이터 프레임 손실에 취약한 이유에 대해 종단간 데이터 전송을 예로 들어 본다. A-B-C-D-E-F의 6개의 장치가 물리 회선을 이용하여 단대단으로 연결되어 있는 환경에서 A가 F에게 데이터 전송을 시도하며, B, C, D, E는 라우터 역할의 중간 장치가 되어 데이터 전달에 참여한다. 데이터 전송 과정에서 데이터의 손실이 발생할 수 있는데 발생 이유는 크게 두 가지로 나뉜다.
첫째, 링크 에러에 의한 데이터 손실이 발생할 수 있다. 물리 회선 문제 또는 잡음 등에 의해 수신 신호에 에러가 발생할 수 있으며, 이는 곧 데이터의 비트 손실로 이어질 수 있다. 802.3 기반의 MAC 프로토콜을 사용하는 경우, C에서는 수신 데이터 프레임의 CRC(Cyclic Redundancy Check)를 계산하여 에러 여부를 확인하고, 비트 에러가 있는 데이터 프레임이 수신되면 해당 프레임을 삭제한다. 즉, A가 D로 데이터 전송을 진행하는 도중에 일정 부분의 데이터 손실이 물리 회선 A-B, B-C, C-D, D-E, 및 E-F 구간에서 발생할 수 있다.
둘째, 네트워크 혼잡에 의한 데이터 손실이 발생할 수 있다. A에서 D로의 데이터 전송 중에 네트워크가 혼잡해져서 B~F에 도달하는 데이터 양이 B~F에서 처리할 수 있는 데이터 양보다 많아지게 되면, B~F에서 버퍼 오버플로우 문제가 발생할 수 있다. 이로 이해 데이터 손실이 발생할 수 있다.
그에 따라, 종단간 신뢰성 있는 데이터 전송을 보장하기 위해 TCP(Transmission Control Protocol)를 사용할 수 있다. 이 경우, A가 TCP 데이터를 전송한 뒤, F로부터 해당 데이터에 대한 TCP ACK 프레임이 성공적으로 수신될 때까지 재전송을 수행함으로써 무손실 데이터 전송을 보장한다. 이제 물리적 단방향 데이터 전송 시스템이 적용된 경우를 살펴본다. 위의 예에서, C는 단방향 데이터 전달 시스템의 송신 시스템이 되고 D는 단방향 데이터 전달 시스템의 수신 시스템이 된다고 가정하자. 이 경우, D에서 C로는 물리 회선 연결이 없어 양방향 통신인 TCP 사용은 불가능하므로 A에서 F로의 무손실 데이터 전송을 제공할 수 없다. 즉, B~F간의 데이터 프레임 손실은 F의 응용계층에서의 데이터 손실로 직결된다. 이는 일정량의 데이터 손실을 감수하는 UDP(User Datagram Protocol) 프로토콜을 사용하는 응용 프로그램의 경우에는 별 문제가 없으나, 무손실 데이터 전송을 수행하는 TCP를 사용하는 프로그램의 경우 문제가 된다. 다시 말해서, 15Mbytes크기의 단일 데이터(예컨대, 압축 파일)를 TCP 기반의 전송 프로그램을 사용하여 도 3의 단말(1)에서 단말(4)에게로 전달하는 경우를 예로 들어보자. IEEE 802.3의 최대 데이터 프레임 크기는 약 1500bytes 정도이며, 15Mbytes 크기의 데이터 파일은 약 100개의 데이터 프레임으로 나누어져 TCP 프로토콜을 이용하여 전달된다고 가정한다. 이때, 물리적 단방향 데이터 전달 시스템의 송신 시스템(9)과 수신 시스템(10)간의 물리 회선상의 문제 또는 제 1네트워크(7) 또는 제 2네트워크(8)에서의 혼잡에 의해 발생한 데이터 손실로 인해 100개의 데이터 프레임 중 단 1개라도 받지 못하는 경우(즉, 단말(4)에서는 99개를 수신한 경우) 15Mbytes 크기의 원본 데이터로 복원할 수 없어 전체를 수신하지 못한 것과 동일한 문제가 발생한다.
통신 시스템에서의 데이터 손실 문제를 완화하기 위해 다음을 활용할 수 있다. 에러에 의한 데이터 손실 문제를 완화하기 위해, 송신 시스템(9)은 전송하는 데이터 프레임에 일정량의 중복(redundancy) 정보를 추가하여 에러를 수정하는 기법(Forward Error Correction, FEC)을 이용할 수 있다. 네트워크 혼잡에 의한 데이터 손실 문제를 해결하기 위해 네트워크 노드 또는 목적지 노드의 버퍼 사이즈를 증가시키거나 미국 특허출원공개번호 2012-0151075 호를 활용할 수도 있다. 하지만 상기 기술된 특허를 활용한다 하더라도, 여전히 송신 시스템(9)과 수신 시스템(10) 간의 링크 에러에 의한 데이터 손실 문제와, 수신 시스템(10)의 버퍼 오버플로우에 의한 데이터 손실 문제가 발생할 수 있다. 수신 시스템(10)의 버퍼 오버플로우는 제 1네트워크(7)의 단말(1, 2, 3)과 송신 시스템(9) 간의 데이터 전송 속도가 수신 시스템(10)과 제 2네트워크(8)의 단말(4, 5, 6)간의 데이터 전송 속도보다 큰 경우에 발생할 수 있다.
다른 관련 선행기술로는, 보안레벨이 높은 네트워크에서 보안레벨이 낮은 네트워크로 데이터를 일방향으로 전송하고 데이터 검증결과는 별도의 라인을 통해 수신하는 내용이, 대한민국등록특허 10-1334240 호에 기재되었다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 물리적 단방향 데이터 전송 시스템의 단방향 회선에서 발생하는 링크 에러로 인한 데이터 손실 문제를 완화함과 더불어 수신 시스템에서 발생할 수 있는 버퍼 오버플로우 문제를 완화하기 위한 단방향 데이터 송수신 시스템 및 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 단방향 데이터 송신 시스템은, 제 1네트워크와 연결된 제 1인터페이스부; 제 2네트워크와 연결된 수신 시스템과 단방향으로 연결된 제 2인터페이스부; 및 상기 제 1인터페이스부를 통해 상기 제 1네트워크의 기기와 맺어진 TCP 세션에게 지연된 TCP ACK 프레임을 전송하고, 상기 제 2인터페이스부를 통해 한 개 이상의 동일한 데이터 프레임을 상기 수신 시스템에게로 전송하는 인터페이스 통합 모듈부;를 포함한다.
이때, 상기 인터페이스 통합 모듈부는, 상기 제 1인터페이스부로부터 수신한 프레임이 허용된 프레임인지를 모니터링하고 상기 허용된 프레임이 UDP 프레임이면 이를 프레임 생성부에게 전달하고 상기 허용된 프레임이 TCP 프레임이면 이를 상기 프레임 생성부 및 관리부에게로 전달하는 프레임 모니터링부; 상기 프레임 모니터링부로부터의 프레임에 대하여 한 개 이상의 동일한 프레임을 생성하여 상기 제 2인터페이스부에게로 전달하는 프레임 생성부; 및 상기 프레임 모니터링부로부터 수신한 상기 TCP 프레임을 기반으로 상기 제 1네트워크의 기기와 상기 제 2네트워크의 기기 간에 설립될 TCP 세션을 관리하는 관리부;를 포함할 수 있다.
이때, 상기 프레임 모니터링부는 상기 수신한 프레임이 기설정된 화이트리스트에 포함된 세션에 해당하는 프레임이면 허용된 프레임으로 인정하고, 상기 허용된 프레임이 UDP 프레임인 경우 현재 UDP 세션에 대한 데이터 전송 속도를 재계산하여 해당 세션에 허용된 데이터 전송 속도보다 작은 값을 갖는다면 상기 UDP 프레임을 상기 프레임 생성부에게로 전달할 수 있다.
이때, 상기 프레임 생성부는 상기 프레임 모니터링부로부터의 프레임이 TCP 프레임이면 상기 제 2인터페이스부의 버퍼 상태를 기반으로 하나 이상의 동일한 TCP 프레임을 생성할 수 있다.
이때, 상기 프레임 생성부는 상기 프레임 모니터링부로부터의 프레임이 UDP 프레임이면 상기 제 2인터페이스부의 버퍼 상태 및 해당 UDP 프레임의 중요도를 기반으로 하나 이상의 동일한 UDP 프레임을 생성할 수 있다.
이때, 상기 프레임 생성부는 상기 제 2인터페이스부에게로 전송할 프레임의 목적지 MAC 주소를 상기 제 2인터페이스부와 단방향으로 연결된 상기 수신 시스템의 제 4인터페이스부의 MAC 주소로 설정하여 상기 제 2인터페이스부에게로 전달할 수 있다.
이때, 상기 제 2인터페이스부와 상기 제 4인터페이스부가 무선 링크를 사용하는 단방향 통신을 하는 경우, 상기 프레임 생성부는 상기 제 2인터페이스부에게로 전송할 프레임의 목적지 MAC 주소를 브로드캐스트 MAC주소로 설정하여 상기 제 2인터페이스부에게로 전달할 수 있다.
이때, 상기 인터페이스 통합 모듈부는 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기 IP 주소를 의미하는 소스 IP 주소, 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기의 포트를 의미하는 소스 포트, 실제 TCP 세션의 목적지 IP 주소인 상기 제 2네트워크의 기기 IP주소를 의미하는 목적지 IP 주소, 실제 TCP 세션의 목적지 포트인 상기 제 2네트워크의 기기의 포트를 의미하는 목적지 포트, 상기 제 1네트워크의 기기와 해당 송신 시스템 간의 RTT(round trip time)를 의미하는 RTT1, TCP 상태 전이를 추적하기 위해 사용되는 현재 상태, 및 상기 현재 상태를 유지하는 시간을 의미하는 만료시간을 포함하는 TCP 세션 관리테이블을 추가로 포함할 수 있다.
이때, 상기 관리부는 상위 계층으로부터 TCP ACK 프레임을 수신함에 따라 상기 TCP ACK 프레임의 IP헤더와 TCP헤더의 목적지 IP주소, 목적지 포트에 해당하는 엔트리를 상기 TCP 세션 관리테이블에서 찾아 상기 RTT1을 얻고, 상기 RTT1이 해당 송신 시스템과 상기 제 1네트워크의 TCP 송신 기기 간에 필요한 RTT를 의미하는 NRTT보다 크면 TCP ACK 프레임 지연시간을 "0(zero)"으로 하고, 상기 RTT1이 상기 NRTT보다 작으면 TCP ACK 프레임 지연시간을 "NRTT - RTT1"으로 할 수 있다.
이때, 단방향 데이터 송신 시스템은 상기 제 1네트워크의 기기와 TCP 세션 설립 및 삭제를 위한 응용 프로그램이 저장된 응용 프로그램부를 추가로 포함할 수 있다.
한편, 본 발명의 바람직한 실시양태에 따른 단방향 데이터 수신 시스템은, 제 2네트워크와 연결된 제 3인터페이스부; 제 1인터페이스부를 통해 제 1네트워크에 연결된 송신 시스템의 제 2인터페이스부와 단방향으로 연결된 제 4인터페이스부; 상기 제 4인터페이스부를 통해 수신되는 상기 송신 시스템의 제 2인터페이스부로부터의 데이터 프레임들 중에서 동일한 데이터 프레임에 대해 하나의 데이터 프레임을 선택하는 인터페이스 통합 모듈부; 및 상기 인터페이스 통합 모듈부로부터 TCP 프레임을 수신하고, 상기 제 2네트워크의 기기와의 TCP 세션을 맺는 응용 프로그램부;를 포함한다.
이때, 상기 인터페이스 통합 모듈부는, 상기 수신되는 데이터 프레임들 중에서 동일한 프레임에 대해 하나의 프레임을 식별하고, 상기 식별된 하나의 프레임이 UDP 프레임인 경우에는 주소 설정부에게로 전달하고, 상기 식별된 하나의 프레임이 TCP 프레임인 경우에는 상기 응용 프로그램부에게로 전달하는 프레임 모니터링부; 및 수신한 상기 UDP 프레임의 목적지 MAC주소를 후속 홉 IP 주소의 MAC 주소로 설정하여 상기 제 3인터페이스부로 전달하는 주소 설정부;를 포함할 수 있다.
이때, 상기 응용 프로그램부는 상기 수신한 TCP 프레임의 IP 헤더 및 TCP 헤더를 이용하여 상기 제 2네트워크의 기기와 TCP 세션을 설립하거나 삭제하고, 상기 수신한 TCP 프레임의 정보를 기반으로 상기 제 1네트워크의 기기와 상기 제 2네트워크의 기기 간에 설립될 TCP 세션을 관리할 수 있다.
이때, 상기 응용 프로그램부는 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기 IP 주소를 의미하는 소스 IP 주소, 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기의 포트를 의미하는 소스 포트, 실제 TCP 세션의 목적지 IP 주소인 상기 제 2네트워크의 기기 IP주소를 의미하는 목적지 IP 주소, 실제 TCP 세션의 목적지 포트인 상기 제 2네트워크의 기기의 포트를 의미하는 목적지 포트, 상기 송신 시스템과 상기 제 2네트워크의 기기 간의 RTT(round trip time)를 의미하는 RTT2, TCP 상태 전이를 추적하기 위해 사용되는 현재 상태, 및 상기 현재 상태를 유지하는 시간을 의미하는 만료시간을 포함하는 TCP 세션 관리테이블을 추가로 포함할 수 있다.
이때, 상기 응용 프로그램부는 새로운 TCP SYN 프레임을 수신한 경우, 상기 새로운 TCP SYN 프레임의 TCP 헤더 및 IP 헤더를 참조하여 상기 소스 IP 주소, 소스 포트, 목적지 IP 주소, 목적지 포트와 일치하는 엔트리가 상기 TCP 세션 관리테이블에 존재하는지를 체크하고, 존재하지 않으면 상기 소스 IP 주소, 소스 포트, 목적지 IP 주소, 목적지 포트로 구성되는 엔트리를 새롭게 생성하여 상기 TCP 세션 관리테이블에 삽입할 수 있다.
이때, 상기 새로운 엔트리가 생성되는 경우, 상기 응용 프로그램부는 해당 엔트리의 목적지 IP 주소, 목적지 포트 정보를 가진 상기 제 2네트워크의 기기와 TCP 세션을 설립하고, 설립될 TCP 세션에 대한 버퍼를 할당하고 초기화할 수 있다.
이때, 상기 응용 프로그램부는 상기 버퍼의 헤드에 데이터가 존재하면 상기 데이터를 추출하여 해당 데이터의 IP 헤더와 TCP 헤더를 제거한 다음에 설립된 TCP 세션을 이용하여 상기 제 3인터페이스부를 통해 상기 제 2네트워크의 기기로 전달할 수 있다.
이때, 상기 응용 프로그램부는 상기 TCP 세션 관리테이블의 정보를 로그로 남기거나 관리 툴로 알림 메시지를 전송할 수 있다.
이때, 상기 응용 프로그램부는 특정 TCP 세션에서 프레임 손실이 발생하였다고 판단되면 이를 로그로 남기거나 관리 툴로 경고 메시지를 전송할 수 있다.
한편, 본 발명의 바람직한 실시양태에 따른 단방향 데이터 송수신 방법은, 송신 시스템이, 제 1인터페이스부를 통해 제 1네트워크의 기기와 맺어진 TCP 세션에게 지연된 TCP ACK 프레임을 전송하고, 상기 제 1인터페이스부로부터 수신한 프레임 중에서 화이트리스트에 포함되는 프레임에 한해 제 2인터페이스부의 버퍼 상태 및 해당 프레임의 중요도 중에서 하나 이상을 근거로 한 개 이상의 동일한 데이터 프레임을 생성하여 상기 제 2인터페이스부를 통해 상기 수신 시스템에게로 전송하는 단계; 및 상기 수신 시스템이, 제 4인터페이스부를 통해 수신되는 상기 제 2인터페이스부로부터의 데이터 프레임들 중에서 동일한 데이터 프레임에 대해 하나의 데이터 프레임을 선택하는 단계;를 포함한다.
이러한 구성의 본 발명에 따르면, 송신 시스템은 수신 시스템과 연결된 단방향 회선상의 잔여 자원을 고려하여 동일한 프레임을 다수 번 전송하고, 수신 시스템에서는 동일한 프레임 중 하나의 프레임에 대해서만 상위 계층으로 전달함으로써 프레임 손실율을 줄인다.
또한, 수신 시스템에서의 버퍼 오버플로우에 의한 프레임 손실을 줄이기 위해, 수신 시스템에서 설립된 TCP 세션의 처리량을 고려하여, 송신 시스템과 연결되어 있는 TCP 송신기기의 송신 속도를 제어한다
다시 말해서, 단방향 회선의 송신 시스템에서 단방향 회선의 수신 시스템으로 데이터를 전송함에 있어, 동일한 데이터를 중요도에 따라 다수번 전송하여, 단방향 회선에서 발생하는 링크 에러로 인한 데이터 손실 문제를 완화할 수 있다.
또한, 단방향 회선의 송신 시스템에서 제 1네트워크의 기기로 지연된 TCP ACK 프레임을 전송함으로써 단방향 회선의 수신 시스템에서 발생할 수 있는 버퍼 오버플로우 문제를 완화할 수 있다.
도 1은 물리적 망 분리가 적용되기 전의 네트워크를 예시한 도면이다.
도 2는 물리적 망 분리가 적용된 후의 네트워크를 예시한 도면이다.
도 3은 종래의 물리적 단방향 데이터 전송 시스템을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 단방향 데이터 송신 시스템 및 단방향 데이터 수신 시스템의 구성 및 TCP 송신 및 수신 기기, UDP 송신 및 수신 기기를 포함하는 전체 도면이다.
도 5는 본 발명에 적용되는 동일 프레임 필터링 알고리즘의 예를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 단방향 데이터 송신 시스템 및 단방향 데이터 수신 시스템의 확장 예를 나타내는 도면이다.
도 7은 본 발명의 실시예에 따른 단방향 데이터 송신 시스템 및 단방향 데이터 수신 시스템의 또 다른 확장 예를 나타내는 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 4는 본 발명의 실시예에 따른 단방향 데이터 송신 시스템 및 단방향 데이터 수신 시스템의 구성 및 TCP 송신 및 수신 기기, UDP 송신 및 수신 기기를 포함하는 전체 도면이다.
본 발명의 실시예에 따른 단방향 데이터 송신 시스템(20)은, 인터페이스 통합 모듈부(30), 및 응용 프로그램(40)을 포함한다.
인터페이스 통합 모듈부(30)는 2 계층(예컨대, OSI 7 계층에서 MAC 계층)과 상위 계층(예컨대, TCP/IP 프로토콜 스택을 사용하는 경우, OSI 7계층에서 IP 계층) 사이에 위치한다.
송신 시스템(20)은 제 1네트워크(7)와 연결된 제 1인터페이스부(45) 및 수신 시스템(50)과 단방향으로 연결하는데 사용하는 제 2인터페이스부(46)를 가지고 있다. 인터페이스 통합 모듈부(30)는 제 1인터페이스부(45)와 제 2인터페이스부(46)를 통합 관리한다.
그리고, 송신 시스템(20)의 응용계층에는 제 1네트워크(7)상의 TCP 송신 기기(11, 12)와 TCP 세션을 설립하는 역할 및 환경설정을 포함하는 응용 프로그램(40)이 있다. 즉, 송신 시스템(20)은 제 2네트워크(8)의 기기를 대신하여 제 1네트워크(7)의 기기와 TCP 세션을 설립하거나 삭제한다. 이를 위해, 송신 시스템(20)은 TCP 세션 설립 및 삭제를 위한 응용 프로그램(40)을 포함한다. 또한, 송신 시스템(20)은 허용 가능한 UDP 세션 및 TCP 세션을 포함하는 화이트리스트(34)를 관리하고 있다. 여기서, 응용 프로그램(40)은 응용 프로그램이 저장된 응용 프로그램부라고 할 수 있다.
다시 말해서, 송신 시스템(20)에서 응용 프로그램(40)은 TCP 송신 기기(11, 12)가 TCP 수신 기기(81, 82)와 TCP 세션을 설립하는 것처럼 보이도록 하기 위해, TCP 수신 기기(81, 82)를 대신하여 TCP 송신 기기(11, 12)와 TCP 세션 설립을 수행한다. 응용 프로그램(40)에서는 TCP 세션 설립 후 TCP 송신 기기(11, 12)로부터 수신하는 모든 TCP 데이터 프레임을 삭제한다. 또한, 응용 프로그램(40)에서는 화이트리스트(34)를 설정할 수 있는 환경을 제공한다. 이때, 화이트리스트(34)는 관리자에 의해 설정된다. UDP 세션에 대한 화이트리스트의 경우, UDP 송신 기기(15, 16)의 IP 주소, UDP 송신 기기(15, 16)의 포트번호, UDP 수신 기기(85, 86)의 IP 주소, UDP 수신 기기(85, 86)의 포트번호, 허용 데이터 전송 속도 등을 포함한다. TCP 세션에 대한 화이트리스트의 경우, TCP 송신 기기(11, 12)의 IP 주소, TCP 송신 기기(11, 12)의 포트번호, TCP 수신 기기(81, 82)의 IP 주소, TCP 수신 기기(81, 82)의 포트번호, 수신 시스템(50)과 TCP 수신 기기(81, 82)간 RTT정보, TCP 수신 기기(81, 82)의 TCP 수신 버퍼 크기(TCP Receive Window size)를 포함한다. 여기서, RTT는 Round Trip Time의 약어로서, 통상적으로 데이터 프레임을 송신한 다음 이에 대한 확인 응답이 수신되기까지의 경과시간을 의미한다.
응용 프로그램(40)은 TCP 송신 기기(11, 12)와의 TCP 세션 설립을 위해, TCP 세션에 대한 화이트리스트(34)에 기술된 모든 TCP 수신 기기의 포트에 해당하는 포트들을 오픈하여 TCP 송신 기기(11, 12)로부터의 세션 요청을 기다린다.
한편, 인터페이스 통합 모듈부(30)는 프레임 모니터링부(컴포넌트1)(31), 프레임 생성부(컴포넌트2)(32), 및 관리부(컴포넌트3)(33)를 포함한다.
프레임 모니터링부(31)는 제 1인터페이스부(45)로부터 수신하는 데이터 프레임을 모니터링한다. 프레임 모니터링부(31)는 프레임을 수신하면 화이트리스트(34)에 포함된 세션인지를 분석한다. 화이트리스트(34)에 포함된 세션에 해당하는 프레임은 허용된 프레임이다.
프레임 모니터링부(31)는 허용된 UDP 프레임을 수신하면 현재 UDP 세션의 데이터 전송 속도를 재계산하고, 현재 UDP 세션에 허용된 데이터 전송 속도 보다 클 경우 수신한 UDP 프레임을 삭제할 수도 있다. 프레임 모니터링부(31)는 삭제되지 않은 UDP 프레임에 한해 이를 프레임 생성부(컴포넌트2)(32)로 전달한다.
프레임 모니터링부(31)는 허용된 TCP 프레임을 수신하면 이를 프레임 생성부(32) 및 관리부(33)에게로 각각 전달한다.
프레임 생성부(32)에서는 수신한 TCP 프레임에 대해, 제 2인터페이스부(46)의 버퍼 상태를 기반으로 동일한 프레임을 1개 이상 생성한다. 예를 들어 다음을 활용할 수 있다. 제 2인터페이스부(46)의 버퍼의 잔여 공간이 전체 공간의 90% 이상인 경우, 프레임 생성부(32)는 수신한 TCP 프레임을 포함하여 5개의 동일한 TCP 프레임을 생성한다. 또는, 제 2인터페이스부(46)의 버퍼의 잔여 공간이 전체 공간의 70% 이상이지만 90%이하인 경우, 프레임 생성부(32)는 수신한 TCP 프레임을 포함하여 4개의 동일한 TCP 프레임을 생성한다. 제 2인터페이스부(46)의 버퍼의 잔여 공간이 전체 공간의 50% 이상이지만 70%이하인 경우, 프레임 생성부(32)는 수신한 TCP 프레임을 포함하여 3개의 동일한 TCP 프레임을 생성한다. 제 2인터페이스부(46)의 버퍼의 잔여 공간이 전체 공간의 30% 이상이지만 50%이하인 경우, 프레임 생성부(32)는 수신한 TCP 프레임을 포함하여 2개의 동일한 TCP 프레임을 생성한다. 마지막으로, 제 2인터페이스부(46)의 버퍼의 잔여 공간이 전체 공간의 30% 미만인 경우, 프레임 생성부(32)는 원본 TCP 프레임 한 개만을 전송한다.
한편, 프레임 생성부(32)는 수신한 UDP 프레임에 대해, 제 2인터페이스부(46)의 현재 버퍼 상태 및 해당 UDP 프레임의 중요도(예컨대, 어떤 기기가 어떤 통신포트를 사용해서 어떤 경고 데이터를 보내는지 등을 검사할 수 있다)를 기반으로 동일한 UDP 데이터 프레임을 1개 이상 생성할 수 있다.
프레임 생성부(32)는 전송할 UDP 및 TCP 데이터 프레임의 목적지 MAC주소를 수신 시스템(50)의 제 4인터페이스부(76)의 MAC 주소로 설정하여 제 2인터페이스부(46)로 전달한다. 하지만, 제 2인터페이스부(46)와 제 4인터페이스부(76)가 무선 링크(예컨대, IEEE 802.11 등)를 사용하는 단방향 통신을 하는 경우, 제 4인터페이스부(76)의 MAC 계층에서의 ACK 송신을 방지하기 위해 목적지 MAC 주소는 제 4인터페이스부(76)의 MAC주소가 아닌 브로드캐스트 MAC주소(FF:FF:FF:FF:FF:FF)로 설정한다.
관리부(33)는 프레임 모니터링부(31) 및 상위 계층(예컨대, TCP)으로부터 수신한 TCP 프레임을 기반으로 제 1네트워크(7)의 TCP 송신 기기(11, 12)와 제 2네트워크(8)의 TCP 수신 기기(81, 82) 간에 설립될 TCP 세션 정보(예컨대, 소스 IP 주소, 목적지 IP주소, 소스 포트, 목적지 포트 등) 및 제 1네트워크(7)의 기기와 송신 시스템(20) 사이의 RTT 정보를 TCP 세션 관리테이블(35)에 관리할 수 있다. TCP 세션 관리테이블(35)의 현재 상태 항목은 프레임 모니터링부(31) 또는 TCP로부터 수신한 TCP 제어프레임을 기반으로 업데이트된다.
이번에는, 관리부(33)의 상위계층(예컨대, TCP)에서 수신한 TCP ACK 프레임을 지연 전송 처리하는 동작에 대해서 살펴본다. 일반적으로 하나의 TCP 세션에서 산출될 수 있는 최대 처리량(throughput)은 다음의 식으로 계산된다.
최대 TCP 처리량 = (TCP 수신버퍼 크기)*8/RTT
TCP 수신버퍼의 크기가 고정인 경우 최대 TCP 처리량은 RTT에 의해 결정됨을 알 수 있다. 그러므로, TCP 송신 기기(11, 12)와 송신 시스템(20) 간의 TCP 처리량을 낮추기 위해서는 의도적으로 RTT을 늘리는 방안을 사용할 수 있다. 이를 위해서, 관리부(33)에서는 상위계층(예컨대, TCP)으로부터 TCP ACK 프레임을 수신할 경우, 해당 TCP ACK 프레임을 보유하고 있다가 일정 지연시간(a) 후에 전송함으로써 TCP 송신 기기(11, 12)에서의 전송속도를 제어할 수 있다. 이때, 전송속도는 수신 시스템(50)에서 버퍼 오버플로우가 발생하지 않도록 낮춘다.
이를 위해, 관리부(33)는 TCP로부터 TCP ACK 프레임을 수신할 때 다음과 같이 동작한다. 먼저, 관리부(33)는 TCP ACK 프레임의 IP헤더와 TCP헤더의 목적지 IP주소(예컨대, TCP 송신 기기 IP주소), 목적지 포트(예컨대, TCP 송신 기기 포트)에 해당하는 엔트리를 TCP 세션 관리테이블(35)에서 찾고 RTT1값(즉, 제 1네트워크(7)의 기기와 송신 시스템(20) 간의 RTT(round trip time)값)을 얻는다. 또한, 관리부(33)는 송신 시스템(20)의 TCP 수신 버퍼 크기(TCP Receive Window size) 값(RCV_BF1)을 TCP에서 얻어올 수 있다. 그리고, 관리부(33)는 해당 엔트리의 TCP 수신기기 IP주소를 기반으로 화이트리스트(34)에서 찾을 수 있는 수신 시스템(50)과 TCP 수신 기기간 RTT정보(RTT2), TCP 수신 기기의 TCP 수신 버퍼 크기(TCP Receive Window size) 값(RCV_BF2)를 얻는다. 그리고, 관리부(33)는 현재 설립되어 있는 TCP 세션의 전체 수(총 수) n를 획득한다.
관리부(33)는 RTT1, RTT2, RCV_BF1, RCV_BF2, n를 이용하여 다음의 수학식 1을 이용하여 새로운 RTT(NRTT)값을 얻는다.
Figure 112014054357216-pat00001
NRTT는 수신 시스템(50)과 TCP 수신 기기(81, 82) 간의 TCP 처리량을 맞추기 위해서 현재 송신 시스템(20)과 TCP 송신 기기(11, 12) 간에 필요한 RTT값을 의미한다. 현재의 RTT1과 NRTT를 비교하여 최종 TCP ACK프레임 지연시간(a)을 다음과 같이 계산한다.
a = 0, if RTT1 > NRTT
a = (NRTT - RTT1) if RTT1 < NRTT
이와 같이 TCP ACK 프레임의 지연을 이용하여, TCP 송신 기기(11, 12)와 송신 시스템(20) 간의 처리량을 수신 시스템(50)과 TCP 수신 기기(81, 82) 간의 최대 처리량의 1/n로 줄일 수 있다.
수신 시스템(50)과 TCP 수신 기기(81, 82) 간의 RTT는 네트워크 혼잡 상태에 따라 변하는 수치이다. 그에 따라, 수신 시스템(50)에서 버퍼 오버플로우가 발생하지 않도록 하기 위해서는 관리자가 화이트리스트 설정 시 해당 RTT값을 가급적 보수적으로 설정하는 것이 필요하다. 여기서, 가급적 보수적으로 설정한다는 것은 예를 들어 기존 RTT 설정값에 비해 1.5 ~ 2배 정도로 큰 값으로 설정하는 것을 의미할 수 있다. 또한, RTT값을 계산시 현재 송신 시스템(20)에서 수신 시스템(50)으로 전송되는 UDP 프레임의 데이터 양(예컨대, 초당 0.1 Mbytes의 UDP 프레임이 송신 시스템(20)에서 수신 시스템(50)으로 전달)을 고려할 수도 있다.
상술한 바와 같이, 송신 시스템(20)은 제 2네트워크(8)의 기기를 대신하여 제 1네트워크(7)의 기기와 TCP 세션을 설립하거나 삭제한다. 이를 위해, 송신 시스템(20)은 TCP 세션 설립 및 삭제를 위한 응용 프로그램(40)을 포함한다.
이때, 송신 시스템(20)의 인터페이스 통합 모듈부(30)에서는 제 1인터페이스부(45) 및 상위 계층(예컨대, TCP)으로부터 수신되는 데이터 프레임에 대해 모니터링을 수행한다. 모니터링 결과 제 1인터페이스부(45)로부터 UDP 데이터 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)에서는 수신한 UDP 데이터 프레임을 IP 계층이 아닌 제 2인터페이스부(46)로 전달한다. 제 2인터페이스부(46)로 전달되는 UDP 데이터 프레임은 제 2인터페이스부(46)의 현재 버퍼 상태 및 해당 UDP 데이터 프레임의 중요도를 고려하여, 한 개 이상의 동일한 UDP 데이터 프레임으로 생성되어 전송될 수 있다. 한편, 모니터링 결과 제 1인터페이스부(45)로부터 TCP 데이터 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)에서는 수신한 TCP 데이터 프레임의 정보를 기반으로 제 1네트워크(7)의 기기와 제 2네트워크(8)의 기기 간에 설립될 TCP 세션을 관리한다.
상기의 TCP 세션 관리를 위해, 인터페이스 통합 모듈부(30)는 소스 IP 주소, 소스 포트, 목적지 IP 주소, 목적지 포트, RTT1, 현재 상태(state), 및 만료시간을 포함하는 TCP 세션 관리테이블(35)을 관리할 수 있다. 여기서, 소스 IP 주소, 소스 포트, 목적지 IP주소, 목적지 포트는 각각 실제 TCP 세션 설립 요청을 한 제 1네트워크(7)의 기기 IP 주소 및 포트와, 실제 TCP 세션의 목적지 IP 주소인 제 2네트워크(8)의 기기 IP주소 및 포트를 의미한다. 그리고, RTT1는 제 1네트워크(7)의 기기와 송신 시스템(20) 간의 RTT(round trip time)를 의미하며, RTT1은 주기적으로 업데이트 될 수 있다. 현재 상태는 TCP 상태 전이(state transition)을 추적하기 위해 사용되며, 만료시간은 현재 상태를 유지하는 시간을 의미한다. 만료 시간 후에는 해당 엔트리(entry)를 TCP 세션 관리테이블(35)에서 삭제한다.
그리고, 상기의 현재 상태는 SYN_RCVD, SYN_ACK_SENT, ESTABLISH, CLOSE_WAIT, 및 LAST_ACK을 포함한 5개의 상태로 구성될 수 있다.
모니터링 결과 제 1인터페이스부(45)로부터 새로운 TCP SYN 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)는 TCP 세션에 대한 관리를 시작한다. 즉, 인터페이스 통합 모듈부(30)는 해당 TCP SYN 프레임의 TCP 헤더 및 IP헤더를 참조하여 소스 IP 주소, 소스 포트, 목적지 IP주소, 목적지 포트와 일치하는 엔트리가 현재의 TCP 세션 관리 테이블(35)에 없을 경우, 소스 IP 주소, 소스 포트, 목적지 IP주소, 목적지 포트로 구성되는 엔트리를 새롭게 생성하여, TCP 세션 관리테이블(35)에 삽입한다. 그에 따라, 인터페이스 통합 모듈부(30)는 엔트리의 현재 상태를 SYN_RCVD로 설정하고, RTT1은 -1로 설정하며, 적절한 만료시간 값을 설정한다. 이때 사용될 수 있는 만료시간 값은 일반적인 TCP에서 TCP 세션 설립을 위해 TCP SYN 프레임을 전송하고 TCP SYN/ACK 프레임을 수신을 위해 기다리는 시간으로 설정할 수 있다.
한편, 모니터링 결과 IP 계층으로부터 TCP SYN/ACK 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)는 TCP 세션을 업데이트한다. 이 경우, 인터페이스 통합 모듈부(30)는 엔트리의 현재 상태를 SYN_ACK_SENT로 설정하고, RTT1은 -1로 설정하며, 마찬가지로 적절한 만료시간 값을 설정한다.
한편, 모니터링 결과 제 1인터페이스부(45)로부터 TCP ACK 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)는 TCP 세션을 업데이트 한다. 이 경우, 인터페이스 통합 모듈부(30)는 엔트리의 현재 상태를 ESTABLISH로 설정하고, 만료시간 값은 -1로 설정한다. 인터페이스 통합 모듈부(30)는 TCP SYN/ACK 프레임을 전송하고 이에 대한 응답인 TCP ACK 프레임을 수신하는 시간을 이용하여 RTT를 계산하고 이 값을 RTT1에 업데이트한다.
한편, 모니터링 결과 제 1인터페이스부(45)로부터 TCP FIN 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)는 TCP 세션을 업데이트한다. 이 경우, 인터페이스 통합 모듈부(30)는 엔트리의 현재 상태를 CLOSE_WAIT로 설정하고, 마찬가지로 적절한 만료시간 값을 설정한다.
한편, 모니터링 결과 IP 계층으로부터 TCP FIN/ACK 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)는 TCP 세션을 업데이트한다. 이 경우, 인터페이스 통합 모듈부(30)는 엔트리의 현재 상태를 LAST_ACK로 설정하고, 마찬가지로 적절한 만료시간 값을 설정한다.
그리고, 모니터링 결과 제 1인터페이스부(45)로부터 TCP ACK 프레임을 수신한 경우 인터페이스 통합 모듈부(30)는 TCP 세션을 업데이트하게 되는데, 이때 인터페이스 통합 모듈부(30)는 해당 엔트리를 TCP 세션 관리테이블(35)에서 삭제할 수 있다.
송신 시스템(20)에서 제 1네트워크(7)의 기기로 전송되는 TCP SYN/ACK, TCP ACK 프레임, 및 TCP FIN/ACK 프레임 등의 IP 헤더 내 소스 IP 주소는 송신 시스템(20)의 IP주소가 아닌, 해당 엔트리의 목적지 IP주소로 설정되는 것이 바람직하다.
한편, 모니터링 결과 제 1인터페이스부(45)로부터 TCP 데이터 프레임 또는 TCP 제어 프레임을 수신한 경우, 인터페이스 통합 모듈부(30)는 수신한 TCP 프레임을 IP계층 및 제 2인터페이스부(46)에게로 전달한다. 이때, 송신 시스템(20)의 응용 프로그램(40)은 수신한 TCP 데이터 프레임을 삭제한다. 한편, 인터페이스 통합 모듈부(30)는 제 2인터페이스부(46)의 현재 버퍼 상태를 고려하여, 제 2인터페이스부(46)로 전달되는 TCP 프레임을 수신 시스템(50)의 프레임 수신율 향상을 위해 한 개 이상의 동일한 TCP 데이터 프레임으로 생성(변환)하여 제 2인터페이스부(46)로 전송할 수 있다. 이때, 전달되는 TCP 프레임의 MAC (Medium Access Control) 헤더의 소스 MAC주소와 목적지 MAC 주소는 각각 송신 시스템(20)의 제 2인터페이스부(46)의 MAC주소 및 수신 시스템(50)의 제 4인터페이스부(76)의 MAC 주소로 설정한다. 하지만, 제 2인터페이스부(46)와 제 4인터페이스부(76)가 무선 링크(예컨대, IEEE 802.11 등)를 사용하여 단방향 통신을 하는 경우, 제 4인터페이스부(76)의 MAC 계층에서의 ACK 송신을 방지하기 위해 목적지 MAC 주소는 제 4인터페이스부(76)의 MAC주소가 아닌 브로드캐스트 MAC주소(FF:FF:FF:FF:FF:FF)로 설정한다.
이때, 모니터링 결과 필요하다고 판단하는 경우 인터페이스 통합 모듈부(30)는 상위 계층(예컨대, TCP)으로부터 수신한 TCP ACK 프레임에 대해, 제 1인터페이스부(45)를 통해 제 1네트워크(7)의 기기와 맺어진 TCP 세션으로 지연된 TCP ACK 프레임 전송을 수행할 수 있다. 이를 통해 제 1네트워크(7)의 TCP 송신 기기(11, 12)가 전송하는 TCP 데이터 프레임의 전송 속도를 낮춤으로써, 수신 시스템(50)에서 발생할 수 있는 버퍼 오버플로우 문제를 완화할 수 있다. 여기서, 지연된 TCP ACK 프레임을 전송함에 있어, 지연 시간은 수신 시스템(50)과 TCP 프레임의 목적지 단말 간의 RTT 및 목적지 단말의 수신 버퍼 크기를 고려하여 계산된다. 또한, 수신 시스템(50)과 TCP 프레임의 목적지 단말 간의 RTT 및 목적지 단말의 수신 버퍼 크기는 송신 시스템(20)에서 설정할 수 있다. 그리고, TCP ACK 프레임의 IP 헤더 내 소스 IP 주소 필드는 송신 시스템(20)의 IP주소가 아닌, 제 1네트워크 기기와 TCP 세션이 맺어지는 제 2네트워크 기기의 IP 주소로 설정된다.
한편, 도 4에서 수신 시스템(50)은 인터페이스 통합 모듈부(60), 및 응용 프로그램(70)을 포함한다. 인터페이스 통합 모듈부(60)는 2 계층(예컨대, OSI 7 계층에서 MAC 계층)과 상위 계층(예컨대, TCP/IP 프로토콜 스택을 사용하는 경우, OSI 7계층에서 IP 계층) 사이에 위치한다. 이러한 수신 시스템(50)은 제 2네트워크(8)와 연결된 제 3인터페이스부(75) 및 송신 시스템(20)의 제 2인터페이스부(46)와 단방향으로 연결하는데 사용하는 제 4인터페이스부(76)를 가지고 있다. 인터페이스 통합 모듈부(60)는 제 3인터페이스부(75)와 제 4인터페이스부(76)를 관리한다. 그리고, 수신 시스템(50)의 응용계층에는 송신 시스템(20)으로부터 TCP 프레임을 수신하고, 제 2네트워크(8)상의 TCP 수신 기기(81, 82)로 TCP 세션을 설립한 뒤, 수신한 TCP 데이터를 전송하는 역할을 포함하는 응용 프로그램(70)이 있다. 즉, 수신 시스템(50)의 응용 프로그램(70)은 인터페이스 통합 모듈부(60)의 프레임 모니터링부(컴포넌트1)(61)로부터 TCP 프레임을 수신하고, TCP 송신 기기(11, 12)를 대신하여 TCP 수신 기기(81, 82)와의 TCP 세션을 관리(예컨대, 설립하거나 종료)하기 위해 TCP 세션 관리테이블(71)을 관리한다. 여기서, 응용 프로그램(70)은 응용 프로그램이 저장된 응용 프로그램부라고 할 수 있다.
수신 시스템(50)의 인터페이스 통합 모듈부(60)는 프레임 모니터링부(컴포넌트1)(61), 및 주소 설정부(컴포넌트2)(62)를 포함한다.
프레임 모니터링부(61)는 수신 시스템(50)의 제 4인터페이스부(76)가 제 2인터페이스부(46)로부터 수신하는 데이터 프레임을 모니터링한다. 프레임 모니터링부(61)는 송신 시스템(20)으로부터의 데이터 프레임들 중 동일한 프레임에 대해 하나의 프레임을 선택한다. 이를 위해 프레임 모니터링부(61)는 도 5에 예시된 동일 프레임 필터링 알고리즘을 사용할 수 있다. 도 5에 예시된 동일 프레임 필터링 알고리즘은 기본적으로 제 2인터페이스부(46)가 동일한 데이터 프레임을 전송함에 있어 순차적으로 전송시킨다는 점에 착안하여 고안하였다. 따라서, 프레임 모니터링부(61)는 수신되는 프레임들 중에서 동일한 프레임에 대해 하나의 프레임을 식별하고, 식별된 프레임이 UDP 프레임인 경우에는 주소 설정부(62)에게로 전달하고, TCP 프레임인 경우에는 응용 프로그램(70)으로 전달한다.
주소 설정부(62)는 수신한 UDP 프레임의 목적지 MAC주소를 일반적인 라우팅 방식에 의해 결정된 다음 홉(next hop) IP 주소의 MAC 주소로 설정하여, 제 3인터페이스부(75)로 전달한다. 예를 들어, UDP 프레임의 목적지 IP 주소가 다른 서브넷에 있는 경우, 다음 홉 IP는 제 3인터페이스부(75)가 붙어 있는 라우터의 IP 주소가 되므로, UDP 프레임의 목적지 MAC주소는 제 3인터페이스부(75)가 붙어 있는 라우터의 MAC주소로 설정할 수 있다.
본 발명의 실시예에서, 송신 시스템(20)의 인터페이스 통합 모듈부(30)가 하나의 데이터 프레임을 수신 시스템(50)으로 전송함에 있어서, 송신 시스템(20)의 제 2인터페이스부(46)와 수신 시스템(50)의 제 4인터페이스부(76)간의 잔여 자원을 활용하여 다수의 동일한 프레임으로 전송할 수 있다. 수신 시스템(50)의 인터페이스 통합 모듈부(60)에서는 다수의 동일한 프레임을 수신하여 단일 프레임만으로 재구성함으로써, 프레임 손실율을 줄일 수 있다. 즉, 송신 시스템(20)의 제 2인터페이스부(46)와 수신 시스템(50)의 제 4인터페이스부(76)간의 링크 에러에 의한 비트 손실율이 p인경우, n 비트의 프레임을 전송함에 있어 예상되는 프레임 손실율은 (1-(1-p)n)이지만, 동일 프레임을 k번을 전송하면 (1-(1-p)n)k로 줄일수 있다.
상술한 바와 같이, 수신 시스템(50)은 제 1네트워크(7)의 기기를 대신하여 제 2네트워크(8)의 기기와 TCP 세션을 설립하거나 삭제한다. 이를 위해, 수신 시스템(50)은 TCP 세션 설립 및 삭제를 위한 응용 프로그램(70)을 포함한다.
수신 시스템(50)의 인터페이스 통합 모듈부(60)은 제 4인터페이스부(76)로부터 하나 이상의 동일한 UDP 프레임 또는 TCP 프레임을 수신받는다. 이때, 수신 시스템(50)의 인터페이스 통합 모듈부(60)는 동일한 프레임들 중 단 한 개의 프레임만을 선택하고 나머지는 모두 삭제한다. 인터페이스 통합 모듈부(60)는 수신한 TCP 프레임을 상위 계층으로 전달하고, UDP 프레임의 경우 제 2네트워크(8)의 기기로 전달될 수 있도록 제 3인터페이스부(75)로 포워딩한다. 이때, TCP 프레임의 경우에는 응용 프로그램(70)으로 전달되도록 한다. 한편, TCP 프레임이 전달되는 상위 계층은 IP계층 또는 응용계층이 될 수 있다.
제 3인터페이스부(75)로 전달되는 UDP 프레임의 목적지 MAC 주소는 일반적인 라우팅 방식에 의해 결정된 다음 홉(next hop) IP 주소의 MAC 주소가 될 수 있다. 예를 들어, UDP 프레임의 목적지 IP 주소가 다른 서브넷에 있는 경우, 다음 홉 IP는 제 3인터페이스부(75)가 붙어 있는 라우터의 IP 주소가 되므로, UDP 프레임의 목적지 MAC주소는 제 3인터페이스부(75)가 붙어 있는 라우터의 MAC주소로 설정된다.
한편, 수신 시스템(60)의 응용 프로그램(70)은 TCP 프레임의 IP 헤더 및 TCP 헤더를 이용하여 제 1네트워크(7)의 기기를 대신하여 제 2네트워크(8)의 기기와 TCP세션을 설립하거나 삭제할 수 있다. 이때, 응용 프로그램(70)은 수신한 TCP 프레임의 정보를 기반으로 제 1네트워크(7)의 기기와 제 2네트워크(8)의 기기 간에 설립될 TCP 세션을 관리한다. 특히, 응용 프로그램(70)은 송신 시스템(20)의 인터페이스 통합 모듈부(30)와 마찬가지로 TCP 세션 관리를 위해, 소스 IP 주소, 소스 포트, 목적지 IP 주소, 목적지 포트, RTT2, 현재 상태(state), 및 만료시간을 포함하는 TCP 세션 관리테이블(71)을 관리할 수 있다.
여기서, 소스 IP 주소, 소스 포트, 목적지 IP주소, 목적지 포트는 각각 실제 TCP 세션 설립 요청을 한 제 1네트워크(7)의 기기 IP 주소 및 포트와, 실제 TCP 세션의 목적지 IP 주소인 제 2네트워크(8)의 기기 IP주소 및 포트를 의미한다. 그리고, RTT2(round trip time)는 송신 시스템(20)과 제 2네트워크(8)의 기기와의 RTT(round trip time)를 의미하며, RTT2는 주기적으로 업데이트 될 수 있다. 현재 상태는 TCP 상태 전이(state transition)을 추적하기 위해 사용되며, 만료시간은 현재 상태를 유지하는 시간을 의미한다. 만료 시간 후에는 해당 엔트리(entry)를 TCP 세션 관리테이블(71)에서 삭제한다.
그리고, 상기의 현재 상태는 SYN_RCVD, SYN_ACK_RCVD, ESTABLISH, CLOSE_WAIT, 및 LAST_ACK을 포함한 5개의 상태로 구성될 수 있다.
응용 프로그램(70)이 새로운 TCP SYN 프레임을 수신한 경우 TCP 세션에 대한 관리가 시작된다. 즉, 응용 프로그램(70)은 해당 TCP SYN 프레임의 TCP 헤더 및 IP헤더를 참조하여 소스 IP 주소, 소스 포트, 목적지 IP주소, 목적지 포트와 일치하는 엔트리가 현재의 TCP 세션 관리 테이블(71)에 없을 경우, 소스 IP 주소, 소스 포트, 목적지 IP주소, 목적지 포트로 구성되는 엔트리를 생성하여, TCP 세션 관리테이블(71)에 삽입한다. 이 경우, 응용 프로그램(70)은 엔트리의 현재 상태를 SYN_RCVD로 설정하고, RTT2은 -1로 설정하며, 적절한 만료시간 값을 설정한다. 이 때 사용될 수 있는 만료시간 값은 일반적인 TCP에서 TCP 세션 설립을 위해 TCP SYN 프레임을 전송하고 TCP SYN/ACK 프레임을 수신을 위해 기다리는 시간으로 설정할 수 있다.
이와 같이, 새로운 엔트리가 생성되는 경우(예컨대, 송신 시스템(20)으로부터 새로운 TCP SYN 프레임을 수신하는 경우), 응용 프로그램(70)은 해당 엔트리의 목적지 IP주소, 목적지 포트정보를 가진 제 2네트워크의 기기와 TCP 세션을 설립한다. 이 때, TCP 세션의 소스 IP주소 및 소스 포트는 해당 엔트리의 소스 IP주소, 소스 포트로 설정되거나 수신 시스템(50)의 IP주소 및 특정 포트로 설정될 수 있다. 이와 같이 새로운 엔트리가 생성되는 경우, 응용 프로그램(70)은 설립될 TCP 세션에 대해 버퍼(TCP 세션 버퍼)를 할당하고 초기화한다.
한편, 응용 프로그램(70)이 TCP SYN/ACK 프레임을 수신한 경우, 응용 프로그램(70)은 TCP 세션을 업데이트한다. 이 경우, 응용 프로그램(70)은 엔트리의 현재 상태를 SYN_ACK_RCVD로 설정하고, RTT1은 -1로 설정하며, 마찬가지로 적절한 만료시간 값을 설정한다.
한편, 응용 프로그램(70)이 TCP ACK 프레임을 수신한 경우, 응용 프로그램(70)은 TCP 세션을 업데이트한다. 이 경우, 응용 프로그램(70)은 엔트리의 현재 상태를 ESTABLISH로 설정하고, 만료시간 값은 -1로 설정한다.
한편, 응용 프로그램(70)이 TCP FIN 프레임을 수신한 경우, 응용 프로그램(70)은 TCP 세션을 업데이트한다. 이 경우, 응용 프로그램(70)은 엔트리의 현재 상태를 CLOSE_WAIT로 설정하고, 마찬가지로 적절한 만료시간 값을 설정한다.
한편, 응용 프로그램(70)이 TCP FIN/ACK 프레임을 수신한 경우, 응용 프로그램(7))은 TCP 세션을 업데이트한다. 이 경우, 응용 프로그램(70)은 엔트리의 현재 상태를 LAST_ACK로 설정하고, 마찬가지로 적절한 만료시간 값을 설정한다.
그리고, 응용 프로그램(70)이 TCP ACK 프레임을 수신한 경우 TCP 세션을 업데이트하게 되는데, 이때 응용 프로그램(70)은 해당 엔트리를 TCP 세션 관리테이블(71)에서 삭제할 수 있다. 그리고, 응용 프로그램(70)은 제 2네트워크(8)의 기기와 설립되어 있는 TCP 세션을 종료한다.
엔트리의 각 상태에서 만료시간까지 기대하는 TCP 제어 프레임을 수신하지 못할 경우, 응용 프로그램(70)은 해당 엔트리의 TCP 세션 버퍼의 데이터가 존재하는 경우 해당 데이터들을 완전히 전달한 후, 해당 엔트리를 TCP 세션 관리테이블(71)에서 삭제한다. 그리고, 응용 프로그램(70)은 제 2네트워크(8)의 기기와 설립되어 있는 TCP 세션을 종료한다. 이때, 버퍼는 수신 측 TCP의 수신 버퍼와 유사한 역할을 한다. 즉, 해당 엔트리의 TCP 세션 버퍼는 송신 시스템(20)으로부터 수신한 TCP 데이터 프레임을 TCP 헤더의 순서 번호(sequence number)를 고려하여 순서대로 저장한다.
그리고, 응용 프로그램(70)은 각 TCP 세션 버퍼의 헤드(head)에 데이터가 존재하는 경우 이를 추출하여 해당 데이터의 IP 헤더와 TCP 헤더를 제거한 다음 설립된 TCP 세션을 이용하여, 제 3인터페이스부(75)를 통해 제 2네트워크(8)의 기기로 전달한다. 그리고 나서, 응용 프로그램(70)은 헤드(head)의 데이터를 삭제하고 헤드를 다음 위치로 이동하고, 상술한 동작과정을 반복한다. 만약, 헤드에 데이터가 없는 경우 송신 시스템(20)으로부터 데이터를 수신할 때까지 기다린다. 이때, TCP 세션을 통해 전송되는 프레임의 소스 IP주소는 수신 시스템(50)의 IP 주소로 설정된다. 즉, TCP 프레임은 일반적인 라우팅 방식으로 제 3인터페이스부(75)를 통해 TCP 수신 기기(81, 82)로 전달될 수 있다.
한편, 수신 시스템(50)의 응용 프로그램(70)은 TCP 세션 관리테이블(71)의 각 버퍼(TCP 세션 버퍼)를 확인하여 특정 순서에 해당하는 TCP 데이터 프레임을 충분한 시간 동안 수신하지 못하는 경우(즉, 특정 TCP 세션에서 프레임 손실이 발생하였다고 판단한 경우)에, 이를 로그(log)로 남기거나 관리 툴로 경고 메시지(warning message)를 전송할 수 있다. 이때, 로그 및 알림 신호는 TCP 송신 기기 IP 주소, TCP 송신 기기포트, TCP 수신 기기 IP 주소, TCP 수신 기기 포트, 현재까지 수신한 데이터 양, 손실이 발생한 순서 번호 등의 정보를 포함할 수 있다. 관리 툴은 제 2네트워크(8) 상의 기기에 존재할 수 있다.
또한, 수신 시스템(50)의 응용 프로그램(70)은 TCP 세션 관리테이블(71)의 정보를 로그로 남기거나 관리 툴로 알림 메시지(notification message)를 전송할 수도 있다. 이때, 로그 및 알림 신호는 TCP 송신 기기 IP 주소, TCP 송신 기기포트, TCP 수신 기기 IP 주소, TCP 수신 기기 포트, RTT2, 전송한 데이터의 양 등의 정보를 포함할 수 있다.
상술한 도 4에서는 1개의 송신 시스템(20)과 1개의 수신 시스템(50)의 경우에 대한 구조 및 동작 과정에 대해서 기술하였으나, 이를 확장하여 1개의 송신 시스템과 다수개의 수신 시스템에 대한 구조 및 다수개의 송신 시스템과 다수개의 수신 시스템에 대한 구조로 확장할 수 있다.
도 6은 본 발명의 실시예에 따른 단방향 데이터 송신 시스템 및 단방향 데이터 수신 시스템의 확장 예를 나타내는 도면으로서, 1개의 송신 시스템(100)과 3개의 수신 시스템(110, 120, 130)으로 구성된 시스템에 대한 전체 구조를 나타낸다.
송신 시스템(100)의 제 1인터페이스부(즉, 제 1인터페이스부(45)에 해당됨)(도시 생략)는 2개의 인터페이스로 구성되어 있다. 그 2개의 인터페이스는 각각 제 1네트워크(161)와 제 2네트워크(162)와 연결되어 있다.
송신 시스템(100)의 제 2인터페이스부(즉, 제 2인터페이스부(46)에 해당됨)(도시 생략)는 3개의 인터페이스로 구성되어 있다. 그 3개의 인터페이스는 각각 수신 시스템(110, 120, 130)의 제 4인터페이스부(제 4인터페이스부(76)에 해당됨)(도시 생략)와 물리적 단방향 회선으로 연결되어 있다.
한편, 3개의 수신 시스템(110, 120, 130)은 제 3인터페이스부(즉, 제 3인터페이스부(75)에 해당됨)(도시 생략)를 통해 제 3네트워크(171), 제 4네트워크(172), 및 제 5네트워크(173)와 각각 연결되어 있다.
그리고, 제 1네트워크(161)와 제 2네트워크(162)에 위치한 기기들(141 ~ 146)은 제 3네트워크(171), 제 4네트워크(172), 및 제 5네트워크(173)의 기기들(151 ~ 156)과 TCP 또는 UDP를 이용하여 데이터 프레임을 전달한다. 예컨대, 기기(141)는 기기(51)에게로 TCP를 이용하여 데이터 프레임을 전송한다.
이와 같이 다수개의 수신 시스템(110, 120, 130)이 존재하는 환경에서 데이터 전송의 수신율을 향상시키기 위해서는, 기존의 송신 시스템의 인터페이스 통합 모듈부에 대해 확장이 필요하다.
첫째, 송신 시스템의 인터페이스 통합 모듈부에서는 전송할 데이터 프레임에 대해, 해당 프레임이 전송될 제 2인터페이스부의 인터페이스의 버퍼의 잔여량을 고려하여, 수신율 향상을 위해 전송할 동일한 데이터 프레임의 수를 결정한다.
둘째, 송신 시스템의 인터페이스 통합 모듈부에서 TCP 송신 기기로 TCP ACK 프레임의 지연 전송을 위한 지연시간을 계산함에 있어, 다음과 같이 계산한다. 수학식 1에서 n은 현재 설립되어 있는 TCP 세션의 전체 수를 의미하였으나, 다수개의 수신 시스템(110, 120, 130)이 존재하는 환경에서는 해당 수신 시스템에서 설립되어 있는 TCP 세션 수를 의미한다. 예를 들어, 특정 TCP 세션의 TCP 수신 기기가 제 3네트워크(171)에 속하는 기기(151)인 경우, 수신 시스템(110)을 사용하여 TCP 프레임이 전달된다. 이 경우, 수학식 1에서의 n은 2가 된다. 이를 위해서, 기존 송신 시스템의 인터페이스 통합 모듈부의 TCP 세션 관리테이블에 각 수신 시스템(110, 120, 130)의 제 4인터페이스부를 식별할 수 있는 식별자를 넣는다. 예컨대, 그 식별자는 각 수신 시스템(110, 120, 130)의 제 4인터페이스부의 특정 인터페이스 MAC 주소가 될 수 있다.
도 7은 본 발명의 실시예에 따른 단방향 데이터 송신 시스템 및 단방향 데이터 수신 시스템의 또 다른 확장 예를 나타내는 도면으로서, 다수개의 송신 시스템(200, 201)과 다수개의 수신 시스템(210, 211, 212)을 사용하는 구조를 나타낸다.
송신 시스템(200, 201)과 수신 시스템(210, 211, 212) 간에는 허브 또는 스위치(205)가 위치해 있다.
허브 또는 스위치(205)는 송신 시스템(200, 201)으로부터 물리적 단방향 회선을 통해 데이터를 수신하고, 물리적 단방향 회선을 통해 해당하는 수신 시스템(210, 211, 212중의 어느 하나)으로 데이터를 송신한다. 이때, 송신 시스템(200)의 인터페이스 통합 모듈부(도시 생략)에서 제 1인터페이스부(도시 생략)를 통해 TCP ACK 프레임의 지연 전송을 위한 지연시간을 계산함에 있어, n을 얻기 위해 다른 송신 시스템(201)의 TCP 세션 관리테이블 정보를 얻어야 한다. 이를 위해, 송신 시스템(200, 201)의 인터페이스 통합 모듈부 간의 정보교환을 위한 인터페이스(220)가 필요하다. 송신 시스템(200, 201)의 인터페이스 통합 모듈부 간의 정보교환은 새로운 TCP 세션이 설립되거나 현재 TCP 세션이 삭제될 때마다 수행될 수 있다. 여기서, 인터페이스(220)는 인터페이스 통합 모듈부에 의해 관리된다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
11, 12 : TCP 송신 기기 15, 16 : UDP 송신 기기
20, 100, 200, 201 : 송신 시스템
30, 60 : 인터페이스 통합 모듈부
31, 61 : 프레임 모니터링부 32 : 프레임 생성부
33 : 관리부 34 : 화이트리스트
35, 71 : TCP 세션 관리테이블 40, 70 : 응용 프로그램
45 : 제 1인터페이스부 46 : 제 2인터페이스부
50, 110, 120, 130, 210, 211, 212 : 수신 시스템
61 : 프레임 모니터링부
62 : 주소 설정부 81, 82 : TCP 수신 기기
85, 86 : UDP 수신 기기 205 : 허브 또는 스위치

Claims (20)

  1. 제 1네트워크와 연결된 제 1인터페이스부;
    제 2네트워크와 연결된 수신 시스템과 단방향으로 연결된 제 2인터페이스부; 및
    상기 제 1인터페이스부를 통해 상기 제 1네트워크의 기기와 맺어진 TCP 세션에게 지연된 TCP ACK 프레임을 전송하고, 상기 제 2인터페이스부를 통해 한 개 이상의 동일한 데이터 프레임을 상기 수신 시스템에게로 전송하는 인터페이스 통합 모듈부;를 포함하며,
    상기 인터페이스 통합 모듈부는,
    상기 제 1인터페이스부로부터 수신한 프레임이 허용된 프레임인지를 모니터링하고 상기 허용된 프레임이 UDP 프레임이면 이를 프레임 생성부에게 전달하고 상기 허용된 프레임이 TCP 프레임이면 이를 상기 프레임 생성부 및 관리부에게로 전달하는 프레임 모니터링부;
    상기 프레임 모니터링부로부터의 프레임에 대하여 한 개 이상의 동일한 프레임을 생성하여 상기 제 2인터페이스부에게로 전달하는 프레임 생성부; 및
    상기 프레임 모니터링부로부터 수신한 상기 TCP 프레임을 기반으로 상기 제 1네트워크의 기기와 상기 제 2네트워크의 기기 간에 설립될 TCP 세션을 관리하는 관리부;를 포함하고,
    상기 프레임 모니터링부는 상기 수신한 프레임이 기설정된 화이트리스트에 포함된 세션에 해당하는 프레임이면 허용된 프레임으로 인정하고, 상기 허용된 프레임이 UDP 프레임인 경우 현재 UDP 세션에 대한 데이터 전송 속도를 재계산하여 해당 세션에 허용된 데이터 전송 속도보다 작은 값을 갖는다면 상기 UDP 프레임을 상기 프레임 생성부에게로 전달하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 프레임 생성부는 상기 프레임 모니터링부로부터의 프레임이 TCP 프레임이면 상기 제 2인터페이스부의 버퍼 상태를 기반으로 하나 이상의 동일한 TCP 프레임을 생성하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  5. 청구항 1에 있어서,
    상기 프레임 생성부는 상기 프레임 모니터링부로부터의 프레임이 UDP 프레임이면 상기 제 2인터페이스부의 버퍼 상태 및 해당 UDP 프레임의 중요도를 기반으로 하나 이상의 동일한 UDP 프레임을 생성하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  6. 청구항 1에 있어서,
    상기 프레임 생성부는 상기 제 2인터페이스부에게로 전송할 프레임의 목적지 MAC 주소를 상기 제 2인터페이스부와 단방향으로 연결된 상기 수신 시스템의 제 4인터페이스부의 MAC 주소로 설정하여 상기 제 2인터페이스부에게로 전달하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  7. 청구항 6에 있어서,
    상기 제 2인터페이스부와 상기 제 4인터페이스부가 무선 링크를 사용하는 단방향 통신을 하는 경우, 상기 프레임 생성부는 상기 제 2인터페이스부에게로 전송할 프레임의 목적지 MAC 주소를 브로드캐스트 MAC주소로 설정하여 상기 제 2인터페이스부에게로 전달하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  8. 청구항 1에 있어서,
    상기 인터페이스 통합 모듈부는 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기 IP 주소를 의미하는 소스 IP 주소, 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기의 포트를 의미하는 소스 포트, 실제 TCP 세션의 목적지 IP 주소인 상기 제 2네트워크의 기기 IP주소를 의미하는 목적지 IP 주소, 실제 TCP 세션의 목적지 포트인 상기 제 2네트워크의 기기의 포트를 의미하는 목적지 포트, 상기 제 1네트워크의 기기와 해당 송신 시스템 간의 RTT(round trip time)를 의미하는 RTT1, TCP 상태 전이를 추적하기 위해 사용되는 현재 상태, 및 상기 현재 상태를 유지하는 시간을 의미하는 만료시간을 포함하는 TCP 세션 관리테이블을 추가로 포함하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  9. 청구항 8에 있어서,
    상기 관리부는 상위 계층으로부터 TCP ACK 프레임을 수신함에 따라 상기 TCP ACK 프레임의 IP헤더와 TCP헤더의 목적지 IP주소, 목적지 포트에 해당하는 엔트리를 상기 TCP 세션 관리테이블에서 찾아 상기 RTT1을 얻고, 상기 RTT1이 해당 송신 시스템과 상기 제 1네트워크의 TCP 송신 기기 간에 필요한 RTT를 의미하는 NRTT보다 크면 TCP ACK 프레임 지연시간을 "0(zero)"으로 하고, 상기 RTT1이 상기 NRTT보다 작으면 TCP ACK 프레임 지연시간을 "NRTT - RTT1"으로 하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  10. 청구항 1에 있어서,
    상기 제 1네트워크의 기기와 TCP 세션 설립 및 삭제를 위한 응용 프로그램이 저장된 응용 프로그램부를 추가로 포함하는 것을 특징으로 하는 단방향 데이터 송신 시스템.
  11. 제 2네트워크와 연결된 제 3인터페이스부;
    제 1인터페이스부를 통해 제 1네트워크에 연결된 송신 시스템의 제 2인터페이스부와 단방향으로 연결된 제 4인터페이스부;
    상기 제 4인터페이스부를 통해 수신되는 상기 송신 시스템의 제 2인터페이스부로부터의 데이터 프레임들 중에서 동일한 데이터 프레임에 대해 하나의 데이터 프레임을 선택하는 인터페이스 통합 모듈부; 및
    상기 인터페이스 통합 모듈부로부터 TCP 프레임을 수신하고, 상기 제 2네트워크의 기기와의 TCP 세션을 맺는 응용 프로그램부;를 포함하며,
    상기 응용 프로그램부는 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기 IP 주소를 의미하는 소스 IP 주소, 실제 TCP 세션 설립 요청을 한 상기 제 1네트워크의 기기의 포트를 의미하는 소스 포트, 실제 TCP 세션의 목적지 IP 주소인 상기 제 2네트워크의 기기 IP주소를 의미하는 목적지 IP 주소, 실제 TCP 세션의 목적지 포트인 상기 제 2네트워크의 기기의 포트를 의미하는 목적지 포트, 상기 송신 시스템과 상기 제 2네트워크의 기기 간의 RTT(round trip time)를 의미하는 RTT2, TCP 상태 전이를 추적하기 위해 사용되는 현재 상태, 및 상기 현재 상태를 유지하는 시간을 의미하는 만료시간을 포함하는 TCP 세션 관리테이블을 추가로 포함하고,
    상기 응용 프로그램부는 새로운 TCP SYN 프레임을 수신한 경우, 상기 새로운 TCP SYN 프레임의 TCP 헤더 및 IP 헤더를 참조하여 상기 소스 IP 주소, 소스 포트, 목적지 IP 주소, 목적지 포트와 일치하는 엔트리가 상기 TCP 세션 관리테이블에 존재하는지를 체크하고, 존재하지 않으면 상기 소스 IP 주소, 소스 포트, 목적지 IP 주소, 목적지 포트로 구성되는 엔트리를 새롭게 생성하여 상기 TCP 세션 관리테이블에 삽입하는 것을 특징으로 하는 단방향 데이터 수신 시스템.
  12. 청구항 11에 있어서,
    상기 인터페이스 통합 모듈부는,
    상기 수신되는 데이터 프레임들 중에서 동일한 프레임에 대해 하나의 프레임을 식별하고, 상기 식별된 하나의 프레임이 UDP 프레임인 경우에는 주소 설정부에게로 전달하고, 상기 식별된 하나의 프레임이 TCP 프레임인 경우에는 상기 응용 프로그램부에게로 전달하는 프레임 모니터링부; 및
    수신한 상기 UDP 프레임의 목적지 MAC주소를 후속 홉 IP 주소의 MAC 주소로 설정하여 상기 제 3인터페이스부로 전달하는 주소 설정부;를 포함하는 것을 특징으로 하는 단방향 데이터 수신 시스템.
  13. 청구항 11에 있어서,
    상기 응용 프로그램부는 상기 수신한 TCP 프레임의 IP 헤더 및 TCP 헤더를 이용하여 상기 제 2네트워크의 기기와 TCP 세션을 설립하거나 삭제하고, 상기 수신한 TCP 프레임의 정보를 기반으로 상기 제 1네트워크의 기기와 상기 제 2네트워크의 기기 간에 설립될 TCP 세션을 관리하는 것을 특징으로 하는 단방향 데이터 수신 시스템.
  14. 삭제
  15. 삭제
  16. 청구항 11에 있어서,
    상기 새로운 엔트리가 생성되는 경우, 상기 응용 프로그램부는 해당 엔트리의 목적지 IP 주소, 목적지 포트 정보를 가진 상기 제 2네트워크의 기기와 TCP 세션을 설립하고, 설립될 TCP 세션에 대한 버퍼를 할당하고 초기화하는 것을 특징으로 하는 단방향 데이터 수신 시스템.
  17. 청구항 16에 있어서,
    상기 응용 프로그램부는 상기 버퍼의 헤드에 데이터가 존재하면 상기 데이터를 추출하여 해당 데이터의 IP 헤더와 TCP 헤더를 제거한 다음에 설립된 TCP 세션을 이용하여 상기 제 3인터페이스부를 통해 상기 제 2네트워크의 기기로 전달하는 것을 특징으로 하는 단방향 데이터 수신 시스템.
  18. 청구항 11에 있어서,
    상기 응용 프로그램부는 상기 TCP 세션 관리테이블의 정보를 로그로 남기거나 관리 툴로 알림 메시지를 전송하는 것을 특징으로 하는 단방향 데이터 수신 시스템.
  19. 청구항 11에 있어서,
    상기 응용 프로그램부는 특정 TCP 세션에서 프레임 손실이 발생하였다고 판단되면 이를 로그로 남기거나 관리 툴로 경고 메시지를 전송하는 것을 특징으로 하는 단방향 데이터 수신 시스템.
  20. 송신 시스템이, 제 1인터페이스부를 통해 제 1네트워크의 기기와 맺어진 TCP 세션에게 지연된 TCP ACK 프레임을 전송하고, 상기 제 1인터페이스부로부터 수신한 프레임 중에서 화이트리스트에 포함되는 프레임에 한해 제 2인터페이스부의 버퍼 상태 및 해당 프레임의 중요도 중에서 하나 이상을 근거로 한 개 이상의 동일한 데이터 프레임을 생성하여 상기 제 2인터페이스부를 통해 상기 수신 시스템에게로 전송하는 단계; 및
    상기 수신 시스템이, 제 4인터페이스부를 통해 수신되는 상기 제 2인터페이스부로부터의 데이터 프레임들 중에서 동일한 데이터 프레임에 대해 하나의 데이터 프레임을 선택하는 단계;를 포함하는 것을 특징으로 하는 단방향 데이터 송수신 방법.
KR1020140070501A 2014-06-11 2014-06-11 단방향 데이터 송수신 시스템 및 방법 KR101610715B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140070501A KR101610715B1 (ko) 2014-06-11 2014-06-11 단방향 데이터 송수신 시스템 및 방법
US14/726,496 US9565162B2 (en) 2014-06-11 2015-05-30 One-way transmission and reception with delayed TCP ACK message and monitoring for UDP and TCP frames

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140070501A KR101610715B1 (ko) 2014-06-11 2014-06-11 단방향 데이터 송수신 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20150142719A KR20150142719A (ko) 2015-12-23
KR101610715B1 true KR101610715B1 (ko) 2016-04-08

Family

ID=54837151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140070501A KR101610715B1 (ko) 2014-06-11 2014-06-11 단방향 데이터 송수신 시스템 및 방법

Country Status (2)

Country Link
US (1) US9565162B2 (ko)
KR (1) KR101610715B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11368437B2 (en) 2017-07-05 2022-06-21 Siemens Mobility GmbH Method and apparatus for repercussion-free unidirectional transfer of data to a remote application server

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160198021A1 (en) * 2015-01-02 2016-07-07 Citrix Systems, Inc. Dynamic protocol switching
US10178205B2 (en) * 2016-05-31 2019-01-08 Gainspan Corporation Wireless device of a wireless local area network communicating with a device of an external network on a TCP session before and after disassociation from the wireless local area network
US10158666B2 (en) * 2016-07-26 2018-12-18 A10 Networks, Inc. Mitigating TCP SYN DDoS attacks using TCP reset
KR102539421B1 (ko) * 2016-10-18 2023-06-05 한국전자통신연구원 단방향 데이터 송신 장치, 단방향 데이터 수신 장치 및 단방향 데이터 전송 방법
CN106911707B (zh) * 2017-03-15 2020-01-03 中国科学技术大学 一种双向解耦的传输控制方法和系统
US10536382B2 (en) * 2017-05-04 2020-01-14 Global Eagle Entertainment Inc. Data flow control for dual ended transmission control protocol performance enhancement proxies
KR101897123B1 (ko) * 2017-07-28 2018-09-11 (주)앤앤에스피 듀얼 단방향 데이터 및 관리 정보 전송 시스템
CN111740808B (zh) * 2019-03-25 2022-07-22 华为技术有限公司 一种数据传输方法及装置
GB2583114B (en) * 2019-04-17 2022-09-21 F Secure Corp Preventing UDP hole punching abuse
GB2583736B (en) * 2019-05-07 2021-12-22 F Secure Corp Method for inspection and filtering of TCP streams in gateway router
CN110768958B (zh) * 2019-09-20 2022-08-05 西安瑞思凯微电子科技有限公司 一种IPv4数据加密方法、IPv4数据解密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004201032A (ja) * 2002-12-18 2004-07-15 Central Res Inst Of Electric Power Ind 複数ルートを用いた高信頼化伝送方法およびシステムおよび高信頼化伝送用ルータ
US20080022000A1 (en) * 2004-11-11 2008-01-24 Shinji Furuya Ip-Packet Relay Method and Gateway in Communication Network

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4484190B2 (ja) * 2001-04-19 2010-06-16 インターナショナル・ビジネス・マシーンズ・コーポレーション ルーター探索システム、ルーター探索方法、及びルーター探索プログラム
US7065482B2 (en) * 2001-05-17 2006-06-20 International Business Machines Corporation Internet traffic analysis tool
JP3931595B2 (ja) * 2001-07-10 2007-06-20 株式会社日立製作所 データ修正装置及びデータ修正方法
WO2003083692A1 (en) * 2002-03-27 2003-10-09 First Virtual Communications System and method for traversing firewalls with protocol communications
US7843968B2 (en) * 2002-09-30 2010-11-30 Sanyo Electric Co., Ltd. Communication apparatus and applications thereof
EP1871038B1 (en) * 2006-06-23 2010-06-02 Nippon Office Automation Co., Ltd. Network protocol and session analyser
US8139581B1 (en) 2007-04-19 2012-03-20 Owl Computing Technologies, Inc. Concurrent data transfer involving two or more transport layer protocols over a single one-way data link
US20110116483A1 (en) * 2009-11-13 2011-05-19 Yong Sang Lee Tcp data throughout enhancement for wlan clients on a wireless lan router
KR101063152B1 (ko) 2009-10-13 2011-09-08 한국전자통신연구원 일방향 데이터 전송 시스템 및 방법
JP2011124770A (ja) * 2009-12-10 2011-06-23 Panasonic Corp Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
US9292248B2 (en) * 2011-06-22 2016-03-22 Microsoft Technology Licensing, Llc Span out load balancing model
US10547674B2 (en) * 2012-08-27 2020-01-28 Help/Systems, Llc Methods and systems for network flow analysis
KR101334240B1 (ko) 2012-09-20 2013-11-28 한국전력공사 일방향 데이터 전송 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004201032A (ja) * 2002-12-18 2004-07-15 Central Res Inst Of Electric Power Ind 複数ルートを用いた高信頼化伝送方法およびシステムおよび高信頼化伝送用ルータ
US20080022000A1 (en) * 2004-11-11 2008-01-24 Shinji Furuya Ip-Packet Relay Method and Gateway in Communication Network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11368437B2 (en) 2017-07-05 2022-06-21 Siemens Mobility GmbH Method and apparatus for repercussion-free unidirectional transfer of data to a remote application server

Also Published As

Publication number Publication date
KR20150142719A (ko) 2015-12-23
US9565162B2 (en) 2017-02-07
US20150365378A1 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
KR101610715B1 (ko) 단방향 데이터 송수신 시스템 및 방법
US10237153B2 (en) Packet retransmission method and apparatus
KR100785293B1 (ko) 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법
EP1747644B1 (en) Method and apparatus for group communication with end-to-end reliability
US9577791B2 (en) Notification by network element of packet drops
WO2014092779A1 (en) Notification by network element of packet drops
US7965625B2 (en) Communication device and logical link abnormality detection method
JP2013526098A (ja) スループットの高速化を達成するためのシステム及び方法
US8761605B2 (en) Communication data transmission equipment, a communication data transmission system, a communication data transmission method and a communication data transmission program
EP1295428A2 (en) Performance enhancement of transmission control protocol (tcp) for wireless network applications
JP2001308947A (ja) 通信装置、中継装置および通信制御方法
US20090268742A1 (en) Session relay device and session relay method
WO2020180529A1 (en) Systems, methods, and apparatuses for heterogeneous network data communication and synchronization
US9876727B2 (en) Physical-layer signaling of flow control updates
CN111082898B (zh) 一种报文处理方法和装置
CN103959722A (zh) 改进以太网网络的系统
CN104683259A (zh) Tcp拥塞控制方法及装置
CN109041156A (zh) 具有逐跳确认机制的无线路由方法
AU2014413360A1 (en) Communication device, communication device system, and communication method
CN111131179B (zh) 业务处理方法、装置、网络设备及存储介质
JP2001308900A (ja) グループマルチキャスティングのためのネットワークおよびプロトコル
JP2008118281A (ja) 通信装置
JP2001156795A (ja) パケットのフロー制御装置および方法
US11502986B2 (en) Reducing transmission delay of transmitting data in Wi-Fi
CN115580379A (zh) 一种多链路网络传输方法及系统

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