KR20100089359A - Network apparatus and packet processing method - Google Patents

Network apparatus and packet processing method Download PDF

Info

Publication number
KR20100089359A
KR20100089359A KR1020090008570A KR20090008570A KR20100089359A KR 20100089359 A KR20100089359 A KR 20100089359A KR 1020090008570 A KR1020090008570 A KR 1020090008570A KR 20090008570 A KR20090008570 A KR 20090008570A KR 20100089359 A KR20100089359 A KR 20100089359A
Authority
KR
South Korea
Prior art keywords
packet
client
http
network device
service server
Prior art date
Application number
KR1020090008570A
Other languages
Korean (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 KR1020090008570A priority Critical patent/KR20100089359A/en
Priority to JP2009068681A priority patent/JP2010183553A/en
Publication of KR20100089359A publication Critical patent/KR20100089359A/en

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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Abstract

PURPOSE: A network device and a packet processing method are provided to prevent a situation in which a specific service about non-HTTP(Hypertext Transfer Protocol) traffic is not provided. CONSTITUTION: A network device(20) relays a response packet of a service server(30) about a TCP handshaking packet between the service server and a client(10). The network device receives a non-HTTP packet of port 80 only for an HTTP port. The network device forwards the received non-HTTP packet to a receiving destination. The network device simply and mutually relays packets inputted to port 80.

Description

네트워크 장치 및 패킷 처리 방법{Network apparatus and Packet processing Method}Network apparatus and packet processing method

본 발명은 네트워크 장치에 관한 것으로, 특히 클라이언트(client)와 웹서버(web server) 사이에서 개재되는 HTTP 프록시 역할을 하는 TCP 기반의 네트워크 장치에 관한 것이다.The present invention relates to a network device, and more particularly, to a TCP-based network device serving as an HTTP proxy interposed between a client and a web server.

네트워크 상에서 망의 통제 혹은 제어를 위한 장비들이 클라이언트와 서버간에 개재되는 경우가 있다. 그러나 이러한 방화벽 혹은 부하 분산 스위치와 같은 장치의 존재가 때로는 클라이언트와 서버 간의 통신에 장애를 초래하는 경우가 있다. Equipment for controlling or controlling a network in a network may be interposed between a client and a server. However, the presence of devices such as firewalls or load balancing switches sometimes interfere with the communication between the client and the server.

본 발명은 이 같은 배경에서 도출된 것으로, 네트워크 장치에 의해 non-HTTP 트래픽에 대한 특정 서비스가 제공되지 않는 경우가 발생하는 것을 막을 수 있는 네트워크 장치 및 패킷 처리 방법을 제공하는 것을 목적으로 한다. SUMMARY OF THE INVENTION The present invention is derived from this background, and an object of the present invention is to provide a network device and a packet processing method capable of preventing a case in which a specific service for non-HTTP traffic is not provided by a network device.

상기 기술적 과제는 HTTP 전용 포트인 80 포트로의 non-HTTP 패킷에 대해 목적지 서버로 포워딩하고, 이후 입력되는 패킷들을 단순히 상호 간에 중계하는 설정 옵션을 갖는 것을 특징으로 하는 네트워크 장치에 의해 달성된다. The technical problem is achieved by a network device, characterized in that it has a configuration option of forwarding non-HTTP packets to port 80, which is an HTTP-only port, to the destination server and then simply relaying incoming packets to each other.

이때, 상기 장치는 클라이언트로부터 TCP 접속을 생성하기 위해 전송되는 TCP 핸드셰이킹 (TCP 3-way handshaking) 패킷을 지연된 바인딩(Delayed Binding) 기능 처리 없이 단순히 중계하는 것을 특징으로 한다.In this case, the device may simply relay a TCP 3-way handshaking packet transmitted to create a TCP connection from a client without processing a delayed binding function.

한편, 상기 기술적 과제는 HTTP 전용 포트인 80 포트로의 non-HTTP 패킷을 수신하는 단계; 상기 수신된 non-HTTP 패킷을 목적지 상대방으로 포워딩하는 단계; 및 상기 포워딩한 이후에 상기 80 포트로 입력되는 패킷들을 단순히 상호 간에 중계하는 단계;를 포함하는 것을 특징으로 하는 네트워크 장비에서의 패킷 처리 방법에 의해서도 달성된다. On the other hand, the technical problem is a step of receiving a non-HTTP packet to port 80, which is an HTTP dedicated port; Forwarding the received non-HTTP packet to a destination counterpart; And simply relaying packets input to the 80 port after the forwarding with each other. The packet processing method of the network equipment is also achieved.

상기 방법은 상기 non-HTTP 패킷을 수신하는 단계 이전에, 클라이언트로부터 TCP 접속을 생성하기 위해 전송되는 TCP 핸드셰이킹 패킷이 수신되면, 지연된 바인딩(Delayed Binding) 기능 처리 없이 서비스 서버로 중계하는 단계; 및 상기 TCP 핸드셰이킹 패킷에 대한 상기 서비스 서버의 응답 패킷을 상기 서비스 서버와 상기 클라이언트 간에 중계하는 단계;를 더 포함한다.The method may comprise, prior to receiving the non-HTTP packet, relaying to a service server without delayed binding function processing if a TCP handshaking packet transmitted from the client is sent to create a TCP connection; And relaying a response packet of the service server to the TCP handshaking packet between the service server and the client.

본 발명에 따르면, 부하 분산을 목적으로 도입하는 네트워크 장치에 의해 특정 서비스가 제공되지 않는다는 문제점을 해결하여 서비스 품질을 보다 향상시킬 수 있는 효과가 있다. According to the present invention, it is possible to solve the problem that a particular service is not provided by a network device introduced for load balancing purposes, thereby improving the service quality.

전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면들을 참조하여 설명되는 바람직한 실시예들을 통해 더욱 명확해질 것이다. 이하에서는 본 발명을 이러한 실시예들을 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.The foregoing and further aspects of the present invention will become more apparent through the preferred embodiments described with reference to the accompanying drawings. Hereinafter, the present invention will be described in detail so that those skilled in the art can easily understand and reproduce the present invention through these embodiments.

도 1은 네트워크 장치가 포함된 네트워크 구성의 일 예를 개략적으로 도시한 예시도이다. 클라이언트(10)는 서비스 서버(30) 혹은 캐쉬(40)에서 처리될 데이터를 전송한다. 그러면 네트워크 장치(20)는 클라이언트(10)로부터 수신되는 트래픽의 내용을 기준으로 스위칭을 수행하여 서비스 서버(30)나 캐쉬(40)로 전달한다.1 is an exemplary diagram schematically showing an example of a network configuration including a network device. The client 10 transmits data to be processed in the service server 30 or the cache 40. Then, the network device 20 performs switching based on the content of the traffic received from the client 10 and transmits the same to the service server 30 or the cache 40.

클라이언트(10)와 서비스 서버(30) 간에 통신에는 클라이언트(10)가 먼저 데이터를 전송하는 경우 즉, 클라이언트-푸시(Client-push) 경우와 서비스 서버(30)가 먼저 데이터를 전송하는 서버-푸시(Server-push) 경우가 존재한다. 예를 들어 클라이언트-푸시의 경우 사용되는 프로토콜은 HTTP, SSL, Skype 등이 있고, 서버-푸시의 경우 사용되는 프로토콜은 FTP, SMTP, POP3, IMAP, Telnet 등이 있다. 일 반적으로 클라이언트 혹은 서비스 서버(30)가 먼저 데이터 전송을 요청하기 전에 상대방은 기대하는 데이터가 수신될 때까지 대기하게 된다. In the communication between the client 10 and the service server 30, the client 10 transmits data first, that is, the client-push case and the server-push in which the service server 30 first transmits data. (Server-push) There is a case. For example, protocols used for client-push include HTTP, SSL, and Skype, and protocols used for server-push include FTP, SMTP, POP3, IMAP, and Telnet. In general, before the client or the service server 30 first requests data transmission, the other party waits until the expected data is received.

이때, 네트워크 장치(20)는 클라이언트로부터 전송되는 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: 이하 HTTP라 함.) 요청을 지원하기 위해 HTTP 전용 포트(80포트)를 목적지로 하는 세션을 통해 트래픽들을 수신한다. In this case, the network device 20 receives traffic through a session destined for an HTTP-only port (port 80) to support a Hypertext Transfer Protocol (HTTP) request transmitted from a client. .

도 2는 네트워크 장치의 패킷 처리 과정을 설명하기 위한 데이터 흐름도이다. 2 is a data flowchart illustrating a packet processing process of a network device.

클라이언트(10)는 먼저 네트워크 장치(20)와 통신을 위한 준비를 수행하기 위해 TCP 핸드 셰이킹(TCP 3-way handshaking) 과정을 거친다. 이는 TCP 기반의 프로토콜로 통신을 수행하기 위해서, 통신이 가능한지를 확인하고, TCP 접속을 맺기 위한 과정이다. 구체적으로 클라이언트(10)가 네트워크 장치(20)로 접속을 맺을 준비가 되어 있는지 묻는 패킷, 즉 SYN 패킷을 전송하면(S200), 네트워크 장치(20)는 현재 접속 맺을 준비가 되어있고, 클라이언트(10)에게 보낼 준비가 되어있는지를 묻는 패킷 즉, SYN/ACK 패킷을 전송한다(S202). 그러면 클라이언트(10)는 메시지를 보낼 준비가 되었음을 알려주는 패킷, 즉 ACK 패킷을 네트워크 장치(20)로 전송한다(S204). The client 10 first undergoes a TCP 3-way handshaking process to prepare for communication with the network device 20. This is a process for checking whether communication is possible and establishing a TCP connection in order to perform communication using a TCP based protocol. Specifically, if the client 10 transmits a packet that asks whether it is ready to establish a connection to the network device 20, that is, a SYN packet (S200), the network device 20 is currently ready to establish a connection and the client 10. Transmits a packet inquiring whether it is ready to send, i.e., SYN / ACK packet (S202). Then, the client 10 transmits a packet indicating that it is ready to send a message, that is, an ACK packet, to the network device 20 (S204).

그리고 이후에 네트워크 장치(20)는 클라이언트(10)로부터 HTTP 패킷이 수신(S210)된 이후에 수신되는 HTTP 요청의 내용에 따라 실제 서비스를 제공할 서비스 서버(30)를 결정하고, 해당 웹 서버와 TCP 핸드셰이킹을 한다(S220, S222). 여기서 HTTP 패킷은 클라이언트(10)가 웹 서비스를 받기 원하는 실제 내용을 담은 질 의 메시지이다. Then, the network device 20 determines the service server 30 to provide the actual service according to the content of the HTTP request received after the HTTP packet is received from the client 10 (S210), and the web server and TCP handshaking is performed (S220, S222). Here, the HTTP packet is a query message containing the actual content that the client 10 wants to receive a web service.

네트워크 장치(20)에서 사용자가 원하는 웹 서비스 요구의 내용을 알아내기 위해서는 이 같은 TCP 핸드셰이킹을 거쳐야만 한다. 즉, SYN, SYN/ACK, ACK 패킷을 주고 받는 단계를 거치고 나서야 실제로 사용자가 원하는 웹 서비스 요청 내용을 알 수 있다. The network device 20 must go through such TCP handshaking to find out the content of the web service request desired by the user. That is, only after passing the steps of sending and receiving SYN, SYN / ACK, and ACK packets, the user can actually know the contents of the web service request.

그리고 서비스할 웹서버를 결정하기 위해 사용자의 서비스 요청 내용을 알아야 한다. 따라서 서비스 서버를 결정하기 전까지는 접속을 위해서 그 어떤 웹서버와도 TCP 핸드셰이킹을 진행하지 않는다. 이를 지연된 바인딩(delayed binding)이라 한다. 즉, 실제로 웹 서비스 요청 내용이 도착하면 그때 비로소 내용을 분석하여 실제로 서비스할 서비스 서버(30)를 결정하여 실제 접속하는 것이다. 선택되는 서비스 서버(30)로 HTTP 요청을 전달하고(S230), 서비스 서버(30)는 HTTP에 대한 응답을 클라이언트(10)로 전송한다(S235). And you need to know the contents of your service request to determine which web server to serve. Therefore, TCP handshaking is not performed with any web server for the connection until the service server is determined. This is called delayed binding. That is, when the contents of the web service request actually arrive, the contents are analyzed at that time to determine the service server 30 to actually serve, and then actually connect. The HTTP request is transmitted to the selected service server 30 (S230), and the service server 30 transmits a response to HTTP to the client 10 (S235).

네트워크 장치(20)는 클라이언트(10)로부터 수신되는 HTTP 요청의 내용에 따라(S240) 캐쉬(40)로의 전달이 필요한 경우에는 캐쉬(40)와 TCP 핸드셰이킹을 한다(S250, S255). 그리고 캐쉬(40)로 HTTP 요청을 전달하고(S260), 캐쉬(40)는 HTTP 요청에 대한 응답을 클라이언트(10)로 전송한다(S265).The network device 20 performs TCP handshaking with the cache 40 when the transfer to the cache 40 is required according to the contents of the HTTP request received from the client 10 (S240). Then, the HTTP request is transmitted to the cache 40 (S260), and the cache 40 transmits a response to the HTTP request to the client 10 (S265).

이 후에, 즉, 클라이언트(10)와 네트워크 장치(20) 간에 TCP 핸드셰이킹이 완료된 이후에, 네트워크 장치(20)는 클라이언트(10)로부터 HTTP 요청이 수신되면(S270), 서비스 서버(30)와 TCP 핸드셰이킹 없이 바로 HTTP 요청을 전달한다(S272). 그리고 서비스 서버(30)는 HTTP에 대한 응답을 클라이언트(10)로 전송 한다(S274). After that, that is, after TCP handshaking is completed between the client 10 and the network device 20, the network device 20 receives an HTTP request from the client 10 (S270), and the service server 30. The server directly forwards the HTTP request without TCP handshaking (S272). The service server 30 transmits a response to the HTTP to the client 10 (S274).

반면, 클라이언트(10)와 네트워크 장치(20)에 TCP 핸드셰이킹이 완료된 이후에, 80 포트로의 HTTP 이외의 프로토콜 데이터가 수신되면, 네트워크 장치(20)는 잘못된 HTTP 패킷이 수신되었다고 인식하여 중계 수행을 하지 않고, 클라이언트(10)로 400 Bad Requst를 전송한다. 그리고 서비스 서버(30)로는 전달하지 않는다. 즉, HTTP 전용 포트인 80 포트로의 non-HTTP 패킷이 수신되는 경우에 클라이언트-푸시(Client-push)는 불가능하다. On the other hand, after the TCP handshaking is completed by the client 10 and the network device 20, if protocol data other than HTTP to port 80 is received, the network device 20 recognizes that an invalid HTTP packet has been received and relays. Without performing, 400 Bad Requst is transmitted to the client 10. And it does not transfer to the service server 30. In other words, client-push is impossible when a non-HTTP packet is received to port 80, which is an HTTP-only port.

게다가 서비스 서버(30)가 존재하지 않거나, 서비스 서버(30)에 장애가 발생하여 통신을 할 수 없는 경우에 이러한 장애 상황을 클라이언트(10)가 바로 알 수 있는 방법이 없다. 클라이언트(10)와 네트워크 장치(20)에서 이미 TCP 핸드셰이킹이 정상적으로 이루어졌기 때문에, 네트워크 장치(20)와 서비스 서버(30) 사이에 TCP 핸드셰이킹이 정상적으로 이루어지지 못하더라도, 클라이언트(10)는 네트워크 장치(20)로 HTTP 요청을 보내고 그 응답을 기다린다. 이 경우에 네트워크 장치(20)가 클라이언트(10)로 503 Service Unavailable 응답을 보내서 장애가 발생하였음을 알려주는데, 이 과정에서 시간 및 네트워크 자원이 낭비된다. In addition, when the service server 30 does not exist or the service server 30 fails and cannot communicate, there is no way for the client 10 to immediately know the failure situation. Since TCP handshaking has already been normally performed at the client 10 and the network device 20, even if TCP handshaking is not normally performed between the network device 20 and the service server 30, the client 10 may not be able to perform normally. Sends an HTTP request to the network device 20 and waits for the response. In this case, the network device 20 sends a 503 Service Unavailable response to the client 10 to indicate that a failure has occurred, which wastes time and network resources.

또한, 네트워크 장치(20)는 실제 HTTP 패킷이 수신된 이후에 서비스 서버를 선택하여 TCP 핸드셰이킹을 하여 통신 준비가 되어 있는지를 확인할 수 있기 때문에, 클라이언트(10)로부터 HTTP 패킷을 수신한 이력이 없는 서비스 서버 측에서는 해당 클라이언트가 통신 준비가 되었는지 여부는 판단할 수 없다. 따라서, 이 경우에는 서버-푸시(Server-push)도 불가능하다. 결과적으로 non-HTTP 패킷이 입력 되는 경우에 해당되는 특정 서비스에 대해 정상적으로 수행되지 못한다는 문제가 있다. In addition, since the network device 20 can check whether the communication server is ready by selecting the service server and performing TCP handshaking after the actual HTTP packet is received, the history of receiving the HTTP packet from the client 10 On the non-service server side, it is not possible to determine whether the client is ready for communication. In this case, therefore, server-push is also impossible. As a result, there is a problem that it cannot be performed normally for a specific service when a non-HTTP packet is input.

본 출원인은 방화벽 혹은 부하 분산 스위치가 존재하는 네트워크에서 이유를 알 수 없는 통신 장애 특히, FTP, e-mail 서비스와 같은 non-http 통신에서의 장애 가 발생하는 원인을 오랜시간 분석 한 결과, 클라이언트들의 비정상적인 80 포트를 통한 non-http 프로토콜 처리 과정에서 L7 장비의 위와 같은 특징으로 인해 문제가 초래되는 것을 발견하였다. Applicants have analyzed for a long time the cause of an unknown communication failure in a network where a firewall or a load balancing switch exists, in particular, non-http communication such as FTP or e-mail service. In the process of processing non-http protocol through abnormal 80 port, it was found that the above problem of L7 equipment caused problems.

실제로 클라이언트(10)와 네트워크 장치(20) 사이에는 유해한 트래픽 전송을 방지하기 위해 방화벽을 설치하는 경우가 있는데, 이때 클라이언트 사용자가 방화벽 회피 등을 목적으로 HTTP 이외의 프로토콜 데이터를 HTTP 전용 포트인 80 포트로 목적지 포트를 설정하는 경우가 발생하고 있다는 점을 인식하게 되었다. In practice, a firewall may be installed between the client 10 and the network device 20 to prevent harmful traffic transmission. In this case, the client user may use protocol port 80, which is a HTTP-only port, for the purpose of evading the firewall. We noticed that setting the destination port has occurred.

본 발명은 이 같은 문제점 해결을 위한 것으로 이 같은 기술적 과제 해결을 위한 본 발명의 양상들을 이하에서 보다 상세히 설명한다. The present invention is to solve such a problem and the aspects of the present invention for solving the technical problem will be described in more detail below.

도 3은 본 발명의 일 실시예에 따른 네트워크 장치에서의 패킷 처리 방법의 데이터 흐름도이다. 3 is a data flowchart of a packet processing method in a network device according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 네트워크 장치(300)는 특정 프로토콜의 전용 포트로 입력되는 다른 프로토콜 요청에 대해 상대방으로 포워딩하고, 이후 입력되는 패킷들을 단순히 중계하는 설정 옵션을 갖는다. The network device 300 according to an embodiment of the present invention has a setting option of forwarding another protocol request inputted to a dedicated port of a specific protocol to the other party, and then simply relaying the inputted packets.

여기서 특정 프로토콜은 HTTP 일 수 있고, 특정 프로토콜의 전용 포트는 80 포트일 수 있다. 본 실시예에 따른 네트워크 장치(300)는 클라이언트(10)로부터 80 포트로 입력되는 SSL, Skype와 같은 non-HTTP 패킷을 서비스 서버(30)로 전달하도록 구현된다. In this case, the specific protocol may be HTTP, and the dedicated port of the specific protocol may be 80 port. The network device 300 according to the present embodiment is implemented to deliver non-HTTP packets such as SSL and Skype input from the client 10 to port 80 to the service server 30.

그리고 이 후에 입력되는 패킷들에 대해서도 역시 부하 분산, 보안과 같은 일 예로 L7 처리 없이 단순히 중계하도록 구현된다. In addition, the packets to be input later may be implemented to simply relay without L7 processing, such as load balancing and security.

또한, 추가적인 양상에 따라 일 실시예에 따른 네트워크 장치(300)는 클라이언트로부터 통신 전처리를 위해 특정 프로토콜의 전용 포트로 입력되는 TCP 핸드셰이킹의 패킷을 지연된 바인딩(Delayed Binding) 기능 처리 없이 단순히 중계하는 것을 특징으로 한다. Further, according to an additional aspect, the network device 300 according to an embodiment simply relays a packet of TCP handshaking input from a client to a dedicated port of a specific protocol for communication preprocessing without a delayed binding function processing. It is characterized by.

네트워크 장치(300)는 클라이언트(10)로부터 접속을 맺을 준비가 되어 있는지 묻는 패킷, 즉 SYN 패킷을 수신하면(S300), 클라이언트(10)로 현재 접속을 맺을 준비가 되어 있고, 클라이언트에게 보낼 준비가 되어 있는지 묻는 패킷, 즉 SYN/ACK 패킷을 전송하기 이전에, 접속을 맺을 준비가 되어 있는지 묻는 패킷, 즉 SYN 패킷을 서비스 서버(30)로 전달한다(S302).When the network device 300 receives a packet asking whether the client 10 is ready to establish a connection, that is, a SYN packet (S300), the network device 300 is ready to establish a current connection to the client 10 and is ready to send it to the client. Before transmitting the packet asking whether the packet is ready, that is, the SYN / ACK packet, the packet is sent to the service server 30 (S302).

그리고 이 후에 네트워크 장치(300)는 서비스 서버(30)로부터 접속을 맺을 준비가 되어있고, 보낼 메시지가 준비되어있는지를 묻는 패킷 즉, SYN/ACK 패킷을 수신하여(S304), 클라이언트(10)로 전달한다(S306). 또한, 클라이언트(10)로부터 메시지를 보낼 준비가 되었음을 알려주는 패킷, 즉 ACK 패킷을 수신하여(S308) 서비스 서버(30)로 전달한다(S309). 즉, 기존에 실제 HTTP 요청이 수신되기 이전까 지는 네트워크 장치와 서비스 서버 간에 TCP 핸드셰이킹이 이루어지지 않던 것과 상이하게, 본 발명의 일 실시예에 따르면 네트워크 장치(300)는 클라이언트(10)와 TCP 핸드셰이킹이 이루어짐과 동시에 서비스 서버(30)와도 TCP 핸드셰이킹이 이루어진다.After that, the network device 300 is ready to establish a connection from the service server 30, and receives a packet that asks whether a message to be sent is ready, that is, a SYN / ACK packet (S304), to the client 10. Transfer (S306). In addition, a packet indicating that the client 10 is ready to send a message, that is, an ACK packet is received (S308) and delivered to the service server 30 (S309). That is, unlike the TCP handshaking between the network device and the service server before the actual HTTP request is received, the network device 300 is connected to the client 10 according to an embodiment of the present invention. At the same time as TCP handshaking is performed, TCP handshaking is also performed with the service server 30.

이에 따라 클라이언트(10)로부터 HTTP 요청이 수신되면(S310), 이를 바로 서비스 서버(30)로 전달할 수 있다(S312). 서비스 서버(30)는 클라이언트(10)로 그 응답을 전송한다(S316). Accordingly, when an HTTP request is received from the client 10 (S310), it may be immediately transmitted to the service server 30 (S312). The service server 30 transmits the response to the client 10 (S316).

한편, 네트워크 장치(300)는 클라이언트(10)로부터 수신되는 HTTP 요청 내용에 따라(S320) 캐쉬(40)로의 전달이 필요한 경우에는 캐쉬(40)와 TCP 핸드셰이킹을 한다(S322, S324). 그리고 캐쉬(40)로 HTTP 요청을 전달하고(S326), 캐쉬(40)는 HTTP 요청에 대한 응답을 클라이언트(10)로 전송한다(S328).On the other hand, the network device 300 performs TCP handshaking with the cache 40 when the transfer to the cache 40 is required according to the content of the HTTP request received from the client 10 (S320) (S322, S324). Then, the HTTP request is transmitted to the cache 40 (S326), and the cache 40 transmits a response to the HTTP request to the client 10 (S328).

도 4는 본 발명의 일 실시예에 따른 네트워크 시스템에서 non-HTTP 패킷의 클라이언트-푸쉬 과정을 설명하기 위한 데이터 흐름도이다. 4 is a data flow diagram illustrating a client-push process of a non-HTTP packet in a network system according to an embodiment of the present invention.

먼저, 클라이언트(10)와 네트워크 장치(300), 서비스 서버(30)간에 통신 수행을 위한 TCP 핸드셰이킹이 이루어진다.First, TCP handshaking is performed for communication between the client 10, the network device 300, and the service server 30.

네트워크 장치(300)는 클라이언트(10)로부터 접속을 맺을 준비가 되어 있는지 묻는 패킷, 즉 SYN 패킷을 수신하면(S300), 클라이언트(10)로 현재 접속을 맺을 준비가 되어 있고, 클라이언트에게 보낼 준비가 되어 있는지 묻는 패킷, 즉 SYN/ACK 패킷을 전송하기 이전에, 접속을 맺을 준비가 되어 있는지 묻는 패킷, 즉 SYN 패킷을 서비스 서버(30)로 전달한다(S302).When the network device 300 receives a packet asking whether the client 10 is ready to establish a connection, that is, a SYN packet (S300), the network device 300 is ready to establish a current connection to the client 10 and is ready to send it to the client. Before transmitting the packet asking whether the packet is ready, that is, the SYN / ACK packet, the packet is sent to the service server 30 (S302).

그리고 이 후에 네트워크 장치(300)는 서비스 서버(30)로부터 접속을 맺을 준비가 되어있고, 보낼 메시지가 준비되어있는지를 묻는 패킷, 즉 SYN/ACK 패킷을 수신하여(S304), 클라이언트(10)로 전달한다(S306). 또한, 클라이언트(10)로부터 메시지를 보낼 준비가 되었음을 알려주는 패킷, 즉 ACK 패킷을 수신하여(S308) 서비스 서버(30)로 전달한다(S309). 즉, 기존에 실제 HTTP 요청이 수신되기 이전까지는 네트워크 장치와 서비스 서버 간에 TCP 핸드셰이킹이 이루어지지 않았던 것과 상이하게, 본 발명의 일 실시예에 따르면 네트워크 장치(300)는 클라이언트(10)와 TCP 핸드셰이킹이 이루어짐과 동시에 서비스 서버(30)와도 TCP 핸드핸드셰이킹을 수행한다. After that, the network device 300 is ready to establish a connection from the service server 30, and receives a packet that asks whether a message to be sent is ready, that is, a SYN / ACK packet (S304), to the client 10. Transfer (S306). In addition, a packet indicating that the client 10 is ready to send a message, that is, an ACK packet is received (S308) and delivered to the service server 30 (S309). That is, unlike the TCP handshaking between the network device and the service server before the actual HTTP request is received, according to an embodiment of the present invention, the network device 300 is connected to the client 10 and the TCP. At the same time handshaking is performed, TCP handshaking is performed with the service server 30 as well.

그리고 네트워크 장치(300)는 클라이언트(10)로부터 non-HTTP 패킷을 수신한다(S400). 이때 네트워크 장치(300)는 HTTP 전용 포트로 HTTP 패킷이 아닌 non-HTTP 패킷이 수신되면 부하분산이나, 보안 처리와 같은 별도의 처리 없이 서비스 서버(30)로 전달한다(S405). 이 후에 클라이언트(10)와 서비스 서버(30) 간에 전송되는 패킷 역시 별도 처리 없이 바로 포워딩한다(S410). The network device 300 receives a non-HTTP packet from the client 10 (S400). At this time, when the network device 300 receives a non-HTTP packet instead of an HTTP packet through an HTTP-only port, the network device 300 transmits the load to the service server 30 without additional processing such as load balancing or security processing (S405). After that, the packet transmitted between the client 10 and the service server 30 is also directly forwarded without additional processing (S410).

만약, 서비스 서버(30)가 존재하지 않거나, 장애가 발생하여 정상적으로 통신을 할 수 없는 경우, 서비스 서버(30)가 네트워크 장치(300)로 현재 접속을 맺을 준비가 되어 있다는 패킷, 즉 SYN/ACK 패킷(S304)을 전송하지 못하게 된다. 이 경우 클라이언트(10)과 네트워크 장치(300)간, 네트워크 장치(300)와 서비스 서버(30)간 모두 TCP 핸드셰이킹이 실패하게 된다. 그리고 클라이언트(10)가 HTTP 요청을 전송하기 전에 서비스 서버(30)에 장애가 발생했음을 알 수 있다. 따라서 클라이언트(10)가 서비스 서버(30)의 장애 발생을 모른 채 네트워크 장치(300)로 HTTP 요청을 전송함에 따라 발생될 수 있는 시간과 네트워크 자원의 낭비를 막을 수 있다.If the service server 30 does not exist or a failure occurs and communication cannot be performed normally, a packet indicating that the service server 30 is currently ready to establish a connection to the network device 300, that is, a SYN / ACK packet. S304 may not be transmitted. In this case, TCP handshaking fails between the client 10 and the network device 300, and between the network device 300 and the service server 30. And it can be seen that the failure of the service server 30 before the client 10 transmits the HTTP request. Therefore, it is possible to prevent waste of time and network resources that may occur as the client 10 transmits an HTTP request to the network device 300 without knowing the failure of the service server 30.

도 5는 본 발명의 일 실시예에 따른 네트워크 시스템에서 non-HTTP 패킷의 서버-푸쉬 과정을 설명하기 위한 데이터 흐름도이다. 5 is a data flow diagram illustrating a server-push process of a non-HTTP packet in a network system according to an embodiment of the present invention.

네트워크 장치(300)는 클라이언트(10)로부터 접속을 맺을 준비가 되어 있는지 묻는 패킷, 즉 SYN 패킷을 수신하면(S300), 클라이언트(10)로 현재 접속을 맺을 준비가 되어 있고, 클라이언트에게 보낼 준비가 되어 있는지 묻는 패킷, 즉 SYN/ACK 패킷을 전송하기 이전에, 접속을 맺을 준비가 되어 있는지 묻는 패킷, 즉 SYN 패킷을 서비스 서버(30)로 전달한다(S302).When the network device 300 receives a packet asking whether the client 10 is ready to establish a connection, that is, a SYN packet (S300), the network device 300 is ready to establish a current connection to the client 10 and is ready to send it to the client. Before transmitting the packet asking whether the packet is ready, that is, the SYN / ACK packet, the packet is sent to the service server 30 (S302).

그리고 이 후에 네트워크 장치(300)는 서비스 서버(30)로부터 접속을 맺을 준비가 되어있고, 보낼 메시지가 준비되어있는지를 묻는 패킷, 즉 SYN/ACK 패킷을 수신하여(S304), 클라이언트(10)로 전달한다(S306). 또한, 클라이언트(10)로부터 메시지를 보낼 준비가 되었음을 알려주는 패킷, 즉 ACK 패킷을 수신하여(S308) 서비스 서버(30)로 전달한다(S309). 본 발명의 일 실시예에 따르면 네트워크 장치(300)는 클라이언트(10)와 TCP 핸드셰이킹이 이루어짐과 동시에 서비스 서버(30)와도 TCP 핸드셰이킹이 이루어진다.After that, the network device 300 is ready to establish a connection from the service server 30, and receives a packet that asks whether a message to be sent is ready, that is, a SYN / ACK packet (S304), to the client 10. Transfer (S306). In addition, a packet indicating that the client 10 is ready to send a message, that is, an ACK packet is received (S308) and delivered to the service server 30 (S309). According to an embodiment of the present invention, the network device 300 performs TCP handshaking with the client 10 and at the same time the TCP handshaking is performed with the service server 30.

그리고 네트워크 장치(300)는 서비스 서버(30)로부터 non-HTTP 패킷을 수신 할 수 있다. 기존에는 네트워크 장치(300)가 클라이언트(10)로부터 HTTP 패킷을 수신하기 전에는 네트워크 장치(300)와 서비스 서버(30) 간에 TCP 핸드셰이킹이 이루어지지 않았기 때문에 서비스 서버(30)가 클라이언트(10)의 접속 상태를 인식하는 것이 불가능하였다. 그러나 본 발명의 일 실시예에 따라 네트워크 장치(300)가 지연된 바인딩(Delayed Binding) 기능 처리 없이 클라이언트(10)와 TCP 핸드셰이킹을 수행함과 동시에 서비스 서버(30)와도 TCP 핸드셰이킹을 수행하기 때문에 서버 푸시가 가능하다.The network device 300 may receive a non-HTTP packet from the service server 30. Conventionally, since TCP handshaking has not been performed between the network device 300 and the service server 30 before the network device 300 receives the HTTP packet from the client 10, the service server 30 is connected to the client 10. It was not possible to recognize the connection state of. However, in accordance with an embodiment of the present invention, the network device 300 performs TCP handshaking with the service server 30 while performing TCP handshaking with the client 10 without the delayed binding function processing. This allows for server push.

그리고 네트워크 장치(300)는 서비스 서버(30)로부터 non-HTTP 패킷을 수신한다(S500). 이때 네트워크 장치(300)는 HTTP 전용 포트로 HTTP 패킷이 아닌 non-HTTP 패킷이 수신되면 부하 분산이나, 보안 처리와 같은 별도의 처리 없이 서비스 서버(30)로 전달한다(S505). 이 후에 네트워크 장치(300)는 클라이언트(10)와 서비스 서버(30)간에 non-HTTP 패킷에 대해 부하 분산이나, 보안과 같은 처리를 일체 수행하지 않고 단순히 포워딩한다(S510). The network device 300 receives a non-HTTP packet from the service server 30 (S500). At this time, when the network device 300 receives a non-HTTP packet instead of an HTTP packet through an HTTP-only port, the network device 300 transmits the load to the service server 30 without additional processing such as load balancing or security processing (S505). Thereafter, the network device 300 simply forwards the non-HTTP packet between the client 10 and the service server 30 without performing any load balancing or security processing (S510).

한편, 전술한 패킷 처리 방법은 컴퓨터 프로그램으로 작성 가능하다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의해 읽혀지고 실행됨으로써 구현될 수 있다. 상기 저장매체는 자기 기록매체, 광 기록 매체등을 포함한다. On the other hand, the above-mentioned packet processing method can be created by a computer program. The program may also be embodied by being stored in a computer readable media and being read and executed by a computer. The storage medium includes a magnetic recording medium, an optical recording medium and the like.

이제까지 본 발명에 대해 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. So far I looked at the preferred embodiments of the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

도 1은 네트워크 장치가 포함된 네트워크 구성의 일 예를 개략적으로 도시한 예시도,1 is an exemplary diagram schematically showing an example of a network configuration including a network device;

도 2는 네트워크 장치의 패킷 처리 과정을 설명하기 위한 데이터 흐름도,2 is a data flowchart for explaining a packet processing procedure of a network device;

도 3은 본 발명의 일 실시예에 따른 네트워크 장치에서의 패킷 처리 방법의 데이터 흐름도,3 is a data flow diagram of a packet processing method in a network device according to an embodiment of the present invention;

도 4는 본 발명의 일 실시예에 따른 네트워크 시스템에서 non-HTTP 패킷의 클라이언트-푸쉬 과정을 설명하기 위한 데이터 흐름도,4 is a data flow diagram illustrating a client-push process of a non-HTTP packet in a network system according to an embodiment of the present invention;

도 5는 본 발명의 일 실시예에 따른 네트워크 시스템에서 non-HTTP 패킷의 서버-푸쉬 과정을 설명하기 위한 데이터 흐름도이다. 5 is a data flow diagram illustrating a server-push process of a non-HTTP packet in a network system according to an embodiment of the present invention.

Claims (4)

HTTP 전용 포트인 80 포트로의 non-HTTP 패킷에 대해 목적지 상대방으로 포워딩하고, 이후 입력되는 패킷들을 단순히 상호 간에 중계하는 설정 옵션을 갖는 것을 특징으로 하는 네트워크 장치.And a configuration option of forwarding a non-HTTP packet to port 80, which is an HTTP-only port, to a destination party, and then simply relaying incoming packets to each other. 제 1 항에 있어서, The method of claim 1, 클라이언트로부터 TCP 접속을 생성하기 위해 전송되는 TCP 핸드셰이킹 패킷을 지연된 바인딩(Delayed Binding) 기능 처리 없이 단순히 중계하는 것을 특징으로 하는 네트워크 장치. And simply relay a TCP handshaking packet transmitted to create a TCP connection from a client without processing the delayed binding function. HTTP 전용 포트인 80 포트로의 non-HTTP 패킷을 수신하는 단계; Receiving a non-HTTP packet to port 80, which is an HTTP dedicated port; 상기 수신된 non-HTTP 패킷을 목적지 상대방으로 포워딩하는 단계; 및Forwarding the received non-HTTP packet to a destination counterpart; And 상기 포워딩한 이후에 상기 80 포트로 입력되는 패킷들을 단순히 상호 간에 중계하는 단계;를 포함하는 것을 특징으로 하는 네트워크 장비에서의 패킷 처리 방법. And simply relaying packets input to the 80 port after the forwarding with each other. 제 3 항에 있어서, 상기 non-HTTP 패킷을 수신하는 단계 이전에, 4. The method of claim 3, prior to receiving the non-HTTP packet: 클라이언트로부터 TCP 접속을 생성하기 위해 전송되는 TCP 핸드셰이킹 패킷이 수신되면, 지연된 바인딩(Delayed Binding) 기능 처리 없이 서비스 서버로 중계 하는 단계; 및If a TCP handshaking packet is received that is sent from the client to create a TCP connection, relaying to the service server without delayed binding function processing; And 상기 TCP 핸드셰이킹 패킷에 대한 상기 서비스 서버의 응답 패킷을 상기 서비스 서버와 상기 클라이언트 간에 중계하는 단계;를 더 포함하는 것을 특징으로 하는 네트워크 장비에서의 패킷 처리 방법. Relaying a response packet of the service server to the TCP handshaking packet between the service server and the client.
KR1020090008570A 2009-02-03 2009-02-03 Network apparatus and packet processing method KR20100089359A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090008570A KR20100089359A (en) 2009-02-03 2009-02-03 Network apparatus and packet processing method
JP2009068681A JP2010183553A (en) 2009-02-03 2009-03-19 Network device and method for processing packet communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090008570A KR20100089359A (en) 2009-02-03 2009-02-03 Network apparatus and packet processing method

Publications (1)

Publication Number Publication Date
KR20100089359A true KR20100089359A (en) 2010-08-12

Family

ID=42755252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090008570A KR20100089359A (en) 2009-02-03 2009-02-03 Network apparatus and packet processing method

Country Status (2)

Country Link
JP (1) JP2010183553A (en)
KR (1) KR20100089359A (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719436B2 (en) * 2003-10-06 2014-05-06 International Business Machines Corporation Tunneling non-HTTP traffic through a reverse proxy
KR20100039825A (en) * 2006-12-22 2010-04-16 폼 유케이, 인코포레이티드 Systems and methods for channeling client network activity

Also Published As

Publication number Publication date
JP2010183553A (en) 2010-08-19

Similar Documents

Publication Publication Date Title
EP2485527B1 (en) Service splitting processing method, communication equipment and network system
US9124517B2 (en) Network system and network redundancy method
EP2461524B1 (en) Network proxy implementation method and apparatus
CA2792634C (en) System and method for providing a virtual peer-to-peer environment
EP1892887B1 (en) Communication method between communication devices and communication apparatus
CN107534605B (en) Method for selecting a network connection concentrator
CN112954001B (en) Method and device for HTTP-to-HTTPS bidirectional transparent proxy
EP2763362A1 (en) A method for connecting a multi-homed and MPTCP capable client with a regular TCP server
US8131288B2 (en) Seamless transitioning of air-to-ground traffic
CN112104744B (en) Traffic proxy method, server and storage medium
WO2013170177A1 (en) System and method for reducing a call establishment time
JPWO2007039942A1 (en) Terminal device, server device, and command device
KR100609738B1 (en) Peer-to-peer communication system
US7564848B2 (en) Method for the establishing of connections in a communication system
CN108092993B (en) Network data transmission control method and system
JP2023542398A (en) Data processing methods, devices, related equipment and storage media
CN107204923B (en) Protocol distribution method, system and router
KR20100089359A (en) Network apparatus and packet processing method
US10819755B1 (en) Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping
JP4677501B2 (en) Relay device and relay method
US11563816B2 (en) Methods for managing the traffic associated with a client domain and associated server, client node and computer program
CN113014855A (en) Video conference acceleration method and system and video conference acceleration platform
US11290462B2 (en) Communication device, communication method, and program
JP2005011267A (en) Real-time data communication system, real-time data communication device and method for real-time communication
US11799840B2 (en) Failure detection device, failure detection method, and failure detection program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application