KR100477672B1 - Network interface card for supporting a part of network layer - Google Patents

Network interface card for supporting a part of network layer Download PDF

Info

Publication number
KR100477672B1
KR100477672B1 KR10-2002-0061220A KR20020061220A KR100477672B1 KR 100477672 B1 KR100477672 B1 KR 100477672B1 KR 20020061220 A KR20020061220 A KR 20020061220A KR 100477672 B1 KR100477672 B1 KR 100477672B1
Authority
KR
South Korea
Prior art keywords
network
interface card
layer
network layer
network interface
Prior art date
Application number
KR10-2002-0061220A
Other languages
Korean (ko)
Other versions
KR20040032270A (en
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 KR10-2002-0061220A priority Critical patent/KR100477672B1/en
Publication of KR20040032270A publication Critical patent/KR20040032270A/en
Application granted granted Critical
Publication of KR100477672B1 publication Critical patent/KR100477672B1/en

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • 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/33Flow control; Congestion control using forward notification

Abstract

본 발명은 네트워크 계층의 일부인 네트워크 인터페이스 카드 네트워크 계층을 지원하는 장치 및 방법과 네트워크 계층의 다른 일부인 커널 네트워크 계층을 지원하는 장치 및 방법에 관한 것으로, 네트워크 계층의 일부인 네트워크 인터페이스 카드 네트워크 계층을 지원하는 네트워크 인터페이스 카드는 데이터 패킷 수신부, 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하는 네트워크 레벨 패킷 라우팅부, 및 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 네트워크 계층의 다른 일부인 소정의 커널 네트워크 계층에 속한, 유저 호스트의 커널로 송신하는 유저 레벨 패킷 송신부로 구성된다. The present invention relates to an apparatus and method for supporting a network interface card network layer that is part of a network layer, and to an apparatus and method for supporting a kernel network layer that is another part of a network layer. The interface card is configured to set a routing path in the network interface card network layer area according to the information contained in the data packet receiver and the network level packet when the received data packet is a network level packet. A network level packet routing unit for forwarding a level packet, and if the received data packet is a user level packet, the user level packet is a predetermined kernel network layer that is another part of the network layer. Belongs, is composed of user-level packet transmitter configured to transmit the user to the kernel of the host.

본 발명에 따르면, 네트워크 인터페이스 카드 내부에서 네트워크 계층의 일부를 구현함으로서 패킷의 레이턴시를 줄여 본질적으로 데이터 전송의 신뢰성을 높일 수 있는 효과가 있다. 또한, 커널의 네트워크 계층을 분리하여, 그 일부를 네트워크 인터페이스 카드로 내림으로서 운영체제의 부담을 줄일 수 있는 효과도 있다. According to the present invention, by implementing a part of the network layer inside the network interface card, it is possible to reduce the latency of the packet, thereby increasing the reliability of the data transmission. In addition, it is possible to reduce the burden on the operating system by separating the network layer of the kernel and lowering a part of it to the network interface card.

Description

네트워크 계층 일부를 지원하는 네트워크 인터페이스 카드 {Network interface card for supporting a part of network layer}Network interface card for supporting a part of network layer}

본 발명은 네트워크 계층의 일부인 네트워크 인터페이스 카드(NIC, Network Interface Card) 네트워크 계층을 지원하는 장치 및 방법과 네트워크 계층의 다른 일부인 커널 네트워크 계층을 지원하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for supporting a network interface card (NIC) network layer that is part of a network layer, and an apparatus and method for supporting a kernel network layer that is another part of the network layer.

도 1은 종래의 프로토콜 스택이 적용되는 네트워크 시스템을 나타내는 도면이다.1 is a diagram illustrating a network system to which a conventional protocol stack is applied.

OSI(Open Systems Interconnection) 참조 모델에 의하면, 프로토콜 스택은 물리 계층(physical layer), 데이터 링크 계층(data link layer), 네트워크 계층(network layer), 전송 계층(transport layer), 세션 계층(session layer), 표현 계층(presentation layer), 및 응용 계층(application layer)의 7 계층으로 이루어져 있다. According to the Open Systems Interconnection (OSI) reference model, the protocol stack includes a physical layer, a data link layer, a network layer, a transport layer, and a session layer. , A presentation layer, and an application layer of seven layers.

종래의 프로토콜 스택이 적용되는 네트워크 시스템은 여러 개의 호스트 H1(111), H2(131)과 여러 개의 라우터 R1(121), R2(122), R3(123), R4(124), R5(125), R6(126)로 구성될 수 있다. H1(112)의 사용자가 H2(132)의 사용자에게 데이터를 전송하기 위해서는 최상위 계층인 응용 계층에서 H1(112)의 사용자가 전송 데이터와 목적지를 정하는 작업(예를 이메일 작성과 수신자 이메일 주소 입력)을 한다. 사용자가 전송하고자 하는 데이터는 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 및 물리 계층을 경유하여, 다음 단(R1)으로 보내지게 된다. 네트워크 계층에서는 데이터 패킷을 목적지 H2(131)까지 전달하기 위한 최상의 경로를 선택하여, 그 경로와 관계된 물리적인 인터페이스, 또는 포트로 전달한다. The network system to which the conventional protocol stack is applied includes a plurality of hosts H1 (111), H2 (131), and several routers (R1 121), R2 (122), R3 (123), R4 (124), and R5 (125). And R6 126. In order for the user of H1 112 to send data to the user of H2 132, the user of H1 112 determines the transmission data and the destination in the application layer, which is the highest layer (for example, to create an email and input a recipient email address). Do it. Data to be transmitted by the user is sent to the next stage R1 via the presentation layer, session layer, transport layer, network layer, data link layer, and physical layer. The network layer selects the best path for delivering the data packet to the destination H2 131 and forwards it to the physical interface or port associated with that path.

도 1에 도시된 바와 같이, 원천지가 H1(112)이고, 목적지가 H2(132)인 경우, 데이터 패킷은 H1(112)의 응용 계층에서 출발한다. 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 및 물리 계층을 차례로 통과한 후, 다음 단(R1)으로 보내지게 된다. 이어서, 네트워크 계층에서 최상의 경로를 선택하고, 그 결과 데이터 패킷은 R1(1210)의 물리 계층, 데이터 링크 계층, 네트워크 계층, R3(1230)의 물리 계층, 데이터 링크 계층, 네트워크 계층, R4(1240)의 물리 계층, 데이터 링크 계층, 네트워크 계층, R6(1260)의 물리 계층, 데이터 링크 계층, 네트워크 계층을 경유하여 H2(232)의 물리 계층에 도달하게 된다. 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 및 응용 계층을 차례로 통과하여 사용자에게 출력되게 된다. As shown in FIG. 1, when the source is H1 112 and the destination is H2 132, the data packet starts at the application layer of H1 112. After passing through the presentation layer, session layer, transport layer, network layer, data link layer, and physical layer, it is sent to the next stage R1. Subsequently, the best path is selected at the network layer, so that the data packet is R1 1210 physical layer, data link layer, network layer, R3 1230 physical layer, data link layer, network layer, R4 1240. The physical layer of the H2 232 is reached via the physical layer, the data link layer, the network layer, the physical layer of the R6 1260, the data link layer, and the network layer. The data link layer, the network layer, the transport layer, the session layer, the presentation layer, and the application layer are sequentially outputted to the user.

호스트가 라우팅 역할만을 담당하는 R1(121), R2(122), R3(123), R4(124), R5(125), R6(226)에 위치해 있는 경우, 데이터 패킷이 네트워크 계층까지만 전달된다. 호스트(네트워크 컴퓨터)의 일은 호스트 자신의 일과 네트워크를 위한 일로 나눌 수 있고, 네트워크 프로세싱을 위한 일로 인해 자신의 일에 영향을 준다. 종래에는 네트워크 인터페이스 카드를 통해서 새로운 패킷이 들어 왔을 때, 호스트 커널 내부에 네트워크 프로세싱을 위한 프로토콜 스택을 포함하고 있었다. 데이터 패킷이 들어올 때마다 커널에서는 운영 체계 오버헤드의 큰 요인이 되는 컨텍스트 스위칭(context switching, 다중 프로그램 작성의 환경에서 어떤 프로그램의 실현을 중단하고 다른 프로그램의 실행을 재개할 때, 그 프로그램의 재개에 필요한 환경을 다시 설정하는 것)이 일어난다. 심지어, 컨텍스트 스위칭은 네트워크 레벨 패킷(호스트가 직접 데이터를 수신하지 않고, 다른 단으로 전달만 해주는 데이터 패킷)들에 관해서도 발생한다. 실질적으로 호스트와 관계없는 컨텍스트 스위칭으로 인하여 시스템 리소스가 낭비된다는 문제가 있었다. 또한, 이것으로 인하여 패킷 레이턴시(latency, 하나의 데이터 패킷을 한 지점에서 다른 지점으로 보내는데 소요되는 시간)가 커진다는 문제가 있었다. 패킷 레이턴시는 네트워크를 통해 네트워크 인터페이스 카드를 경유하여 커널까지 올라가는 시간과 컨텍스트 스위칭 시간에 크게 의존하기 때문에, 불필요한 컨텍스트 스위칭으로 인하여 호스트와 직접적 관계가 있는 유저 레벨 데이터 패킷(예를 들면 비디오, 또는 오디오 데이터 패킷)의 데드라인(deadline, 멀티미디어 데이터가 가지고 있는 타임 바운드)을 보장할 수 가 없는 경우가 발생한다는 문제가 있었다. When the host is located in R1 121, R2 122, R3 123, R4 124, R5 125, and R6 226, which only plays a routing role, the data packet is delivered only to the network layer. The work of the host (network computer) can be divided into the work of the host itself and the work for the network, and the work for the network processing affects his work. In the past, when a new packet came through a network interface card, the host kernel included a protocol stack for network processing. Whenever a packet of data comes in, the kernel stops realization of a program and resumes execution of another program in context of multiple switching, which is a major factor in operating system overhead. Resetting required environments). Even context switching occurs with respect to network level packets (data packets that the host does not receive data directly, but only forwards to another end). There is a problem that system resources are wasted due to the context switching that is virtually independent of the host. In addition, this has a problem that the packet latency (time required to send one data packet from one point to another) increases. Since packet latency is highly dependent on the time taken up to the kernel via the network interface card through the network and the context switching time, user level data packets (e.g. video or audio data) directly related to the host due to unnecessary context switching. There was a problem in that a deadline of a packet) could not be guaranteed.

현재, 사용자가 요구하는 네트워크 시스템의 성능이 증가함에 따라, 보다 좋은 네트워킹 기술이 요구된다. 이러한 네트워킹 기술들은 낮은 레이턴시와 높은 대역폭을 목표로 발전해가고 있다. 랜에서 노드들이 많아짐에 따라, 패킷의 레이턴시가 길어지고 있다. Currently, as the performance of the network system required by the user increases, better networking technology is required. These networking technologies are evolving for low latency and high bandwidth. As the number of nodes in a LAN increases, the latency of packets increases.

본 발명이 이루고자 하는 기술적 과제는 네트워크 인터페이스 카드에서 낮은 레이턴시를 보장하기 위한 새로운 프로토콜 스택을 제공하고, 나아가 새로운 프로토콜 스택을 지원하는 장치 및 방법을 제공하는데 있다. An object of the present invention is to provide a new protocol stack for guaranteeing low latency in a network interface card, and further to provide an apparatus and method for supporting the new protocol stack.

상기 문제점을 해결하기 위한 본 발명에 따른 네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 지원하는 네트워크 인터페이스 카드는 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하는 데이터 패킷 수신부, 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하는 네트워크 레벨 패킷 라우팅부, 및 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 네트워크 계층의 다른 일부인 소정의 커널 네트워크 계층에 속한, 유저 호스트의 커널로 송신하는 유저 레벨 패킷 송신부로 구성된다. A network interface card supporting a network layer that is part of the network layer according to the present invention for solving the above problem is a data packet that receives a data packet in a data link layer region via a physical layer from a predetermined network. The receiver, when the received data packet is a network level packet, sets a routing path in the network interface card network layer region according to the information contained in the network level packet, and forwards the network level packet to the set routing path. A network level packet routing unit, and when the received data packet is a user level packet, transmitting the user level packet to a kernel of a user host belonging to a predetermined kernel network layer that is another part of the network layer. It consists of a level packet transmitter.

상기 또 다른 문제점을 해결하기 위한 본 발명에 따른 네트워크 계층의 일부인 소정의 커널 네트워크 계층을 지원하는 유저 호스트는 소정의 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하는 유저 레벨 패킷 수신부, 및 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 네트워크 인터페이스 카드 네트워크 계층 관리부로 구성된다. A user host supporting a predetermined kernel network layer which is a part of a network layer according to the present invention for solving the another problem includes a user level packet receiving unit for receiving a user level packet in the kernel network layer area from a predetermined network interface card; And a network interface card network layer manager that manages a predetermined network interface card network layer that is another part of the network layer supported by the network interface card.

상기 또 다른 문제점을 해결하기 위한 본 발명에 따른 네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층과 다른 일부인 소정의 커널 네트워크 계층을 지원하는 호스트는 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하고, 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하고, 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 커널 네트워크 계층에 속한 유저 호스트의 커널로 송신하는 네트워크 인터페이스 카드, 및 상기 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하고, 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 유저 호스트로 구성된다. A host supporting a predetermined kernel interface layer which is different from a predetermined network interface card network layer which is a part of the network layer according to the present invention for solving the above-mentioned another problem is a data link layer region from a predetermined network via a physical layer. Receives a data packet, and if the received data packet is a network level packet, in accordance with the information contained in the network level packet, establish a routing path in the network interface card network layer area, and the network with the set routing path A network interface card that forwards a level packet and transmits the user level packet to a kernel of a user host belonging to the kernel network layer when the received data packet is a user level packet; and the network interface card. From the user it consists of a host receiving a packet from the user-level kernel network layer region and another part to manage the predetermined network interface card, a network layer of the network layer, in which the network interface card supports.

상기 또 다른 문제점을 해결하기 위한 본 발명에 따른 네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 지원하는 방법은 (a) 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하는 단계, (b) 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하는 단계, 및 (c) 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 네트워크 계층의 다른 일부인 소정의 커널 네트워크 계층에 속한, 유저 호스트의 커널로 송신하는 단계로 구성된다. A method of supporting a predetermined network interface card network layer, which is part of the network layer according to the present invention for solving the above another problem, includes: (a) receiving a data packet in a data link layer region from a predetermined network via a physical layer; And (b) if the received data packet is a network level packet, establishing a routing path in the network interface card network layer region according to the information contained in the network level packet, and setting the network level as the set routing path. Forwarding the packet; and (c) if the received data packet is a user level packet, transmitting the user level packet to a kernel of a user host, belonging to a predetermined kernel network layer that is another part of the network layer. It is composed.

상기 또 다른 문제점을 해결하기 위한 본 발명에 따른 네트워크 계층의 일부인 소정의 커널 네트워크 계층을 지원하는 방법은 (a) 소정의 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하는 단계, 및 (b) 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 단계로 구성된다. A method for supporting a predetermined kernel network layer which is part of a network layer according to the present invention for solving the another problem comprises the steps of: (a) receiving a user level packet in the kernel network layer area from a predetermined network interface card; (b) managing a predetermined network interface card network layer that is another part of the network layer supported by the network interface card.

상기 또 다른 문제점을 해결하기 위한 본 발명에 따른 네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층과 다른 일부인 소정의 커널 네트워크 계층을 지원하는 방법은 (a) 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하고, 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하고, 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 커널 네트워크 계층에 속한 유저 호스트의 커널로 송신하는 단계, 및 (b) 상기 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하고, 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 단계로 구성된다. A method for supporting a predetermined network interface card network layer which is part of a network layer according to the present invention for solving the another problem and a predetermined kernel network layer which is another part of the network layer includes: (a) data from a predetermined network via a physical layer; Receiving a data packet in the link layer area, and if the received data packet is a network level packet, in accordance with the information contained in the network level packet, establish a routing path in the network interface card network layer area, and the set routing path Forwarding the network level packet to the network, and if the received data packet is a user level packet, transmitting the user level packet to a kernel of a user host belonging to the kernel network layer, and (b) from the network interface card. The kernel Receiving a user-level packet in the network layer region, and consists of steps for managing the other part of the predetermined network interface card, a network layer of the network layer, in which the network interface card supports.

상기 또 다른 문제점을 해결하기 위한 본 발명에 따른 네트워크 인터페이스 카드 프로토콜 스택은 물리 계층, 데이터 링크 계층, 및 라우팅 테이블을 룩업하고, 상기 룩업 결과에 따라, 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로, 네트워크 계층에 속하는 호스트의 커널로부터 수신한 데이터 패킷을 포워딩하는 네트워크 인터페이스 카드 네트워크 계층으로 구성된다. The network interface card protocol stack according to the present invention for solving the above another problem looks up the physical layer, the data link layer, and the routing table, sets a routing path according to the lookup result, and sets the routing path as: It consists of a network interface card network layer that forwards data packets received from the kernel of the host belonging to the network layer.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 프로토콜 스택이 적용되는 네트워크 시스템을 나타내는 도면이다.2 is a diagram illustrating a network system to which a protocol stack according to the present invention is applied.

본 발명에 따른 프로토콜 스택에 의하면, 네트워크 계층이 네트워크 인터페이스 카드 네트워크 계층과 커널 네트워크 계층으로 나뉜다. 네트워크 인터페이스 카드에서 지원하는 네트워크 인터페이스 카드 프로토콜 스택은 물리 계층, 데이터 링크 계층, 및 라우팅 테이블을 룩업하고, 상기 룩업 결과에 따라, 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로, 네트워크 계층에 속하는 호스트의 커널로부터 수신한 데이터 패킷을 포워딩하는 네트워크 인터페이스 카드 네트워크 계층으로 구성된다. 여기에서, 물리 계층과 데이터 링크 계층은 종래와 변함이 없다. 네트워크 계층의 나머지 부분인 커널 네트워크 계층은 호스트의 유저 영역(유저 호스트)에서 지원하게 된다. According to the protocol stack according to the present invention, the network layer is divided into a network interface card network layer and a kernel network layer. The network interface card protocol stack supported by the network interface card looks up a physical layer, a data link layer, and a routing table, sets up a routing path according to the lookup result, and sets a routing path of the host belonging to the network layer. It consists of a network interface card network layer that forwards data packets received from the kernel. Here, the physical layer and the data link layer are the same as before. The rest of the network layer, the kernel network layer, is supported by the host's user domain (user host).

본 발명에 따른 프로토콜 스택이 적용되는 네트워크 시스템은 여러 개의 호스 H1(211), H2(231)과 여러 개의 라우터 R1(221), R2(222), R3(223), R4(224), R5(225), R6(226)로 구성될 수 있다. H1(212)의 사용자가 H2(232)의 사용자에게 데이터를 전송하기 위해서는 최상위 계층인 응용 계층에서 H1(212)의 사용자가 전송 데이터와 목적지를 정하는 작업(예를 이메일 작성과 수신자 이메일 주소 입력)을 한다. 사용자가 전송하고자 하는 데이터는 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 및 물리 계층을 경유하여, 다음 단(R1)으로 보내지게 된다. The network system to which the protocol stack according to the present invention is applied includes several hoses H1 211, H2 231 and several routers R1 221, R2 222, R3 223, R4 224, and R5 ( 225, R6 226. In order for the user of H1 212 to transmit data to the user of H2 232, the user of H1 212 determines the transmission data and the destination in the application layer, which is the highest layer (for example, to create an email and input a recipient email address). Do it. Data to be transmitted by the user is sent to the next stage R1 via the presentation layer, session layer, transport layer, network layer, data link layer, and physical layer.

네트워크 계층의 역할은 데이터 패킷을 목적지로 전송하는 역할과 최상의 전송 경로를 선택하여 라우팅하는 역할로 세분될 수 있다. 호스트가 라우팅 역할만을 담당하는 R1(221), R2(222), R3(223), R4(224), R5(225), R6(226)에 위치해 있는 경우, 종래에는 데이터 패킷이 네트워크 계층까지 전달됨에 따라 커널이 관여하게 되어 컨텍스트 스위칭이 일어났으나, 본 발명에 따르는 경우에는 데이터 패킷이 네트워크 인터페이스 카드 네트워크 계층까지만 전달되어 커널이 관여하지 않아도 된다. 즉, 본 발명에서는 네트워크 계층을 네트워크 인터페이스 카드 네트워크 계층과 커널 네트워크 계층으로 나누고, 이들 중 라우팅 경로를 설정하는 영역인 네트워크 인터페이스 카드 네트워크 계층은 네트워크 인터페이스 카드 부분에서 구현하였고, 원천지 IP 주소로부터 목적지 IP 주소로 데이터 패킷을 전송하는 영역인 커널 네트워크 계층은 유저 호스트 부분에서 구현하였다. The role of the network layer can be subdivided into the role of sending data packet to the destination and the route of selecting and routing the best transmission path. When a host is located at R1 221, R2 222, R3 223, R4 224, R5 225, and R6 226, which only plays a routing role, the data packet is conventionally delivered to the network layer. According to the present invention, the data packet is transmitted only to the network interface card network layer so that the kernel does not need to be involved. That is, in the present invention, the network layer is divided into a network interface card network layer and a kernel network layer, and the network interface card network layer, which is an area for setting a routing path among them, is implemented in the network interface card part, and the destination IP address from the source IP address. The kernel network layer, an area for sending data packets to addresses, is implemented in the user host part.

도 2에 도시된 바와 같이, 원천지가 H1(212)이고, 목적지가 H2(232)인 경우, 데이터 패킷은 H1(212)의 응용 계층에서 출발한다. 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 및 물리 계층을 차례로 통과한 후, 다음 단(R1)으로 보내지게 된다. 이어서, 네트워크 인터페이스 카드 네트워크 계층에서 최상의 경로를 선택하고, 그 결과 데이터 패킷은 R1(2210)의 물리 계층, 데이터 링크 계층, 네트워크 인터페이스 카드 네트워크 계층, R3(2230)의 물리 계층, 데이터 링크 계층, 네트워크 인터페이스 카드 네트워크 계층, R4(2240)의 물리 계층, 데이터 링크 계층, 네트워크 인터페이스 카드 네트워크 계층, R6(2260)의 물리 계층, 데이터 링크 계층, 네트워크 인터페이스 카드 네트워크 계층을 경유하여 H2(232)의 물리 계층에 도달하게 된다. 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 및 응용 계층을 차례로 통과하여 사용자에게 출력되게 된다. As shown in FIG. 2, when the source is H1 212 and the destination is H2 232, the data packet starts at the application layer of H1 212. After passing through the presentation layer, session layer, transport layer, network layer, data link layer, and physical layer, it is sent to the next stage R1. Subsequently, the best path is selected at the network interface card network layer, and the resulting data packets are physical layer of R1 2210, data link layer, network interface card network layer, physical layer of R3 2230, data link layer, network The physical layer of the H2 232 via the interface card network layer, the physical layer of the R4 2240, the data link layer, the network interface card network layer, the physical layer of the R6 2260, the data link layer, and the network interface card network layer. Will be reached. The data link layer, the network layer, the transport layer, the session layer, the presentation layer, and the application layer are sequentially outputted to the user.

도 3은 본 발명에 따른 네트워크 계층 일부를 지원하는 네트워크 인터페이스 카드와 유저 호스트의 구성도이다.3 is a configuration diagram of a network interface card and a user host supporting a part of a network layer according to the present invention.

본 발명이 적용되는 호스트(31, 32, 33)는 네트워크 인터페이스 카드와 유저 호스트로 구성된다. 종래에는 프로토콜 스택 중 물리 계층과 데이터 링크 계층은 네트워크 인터페이스 카드 부분에서 지원하고, 네트워크 계층 이상의 상위 계층은 유저 호스트 부분에서 지원하였다. 그런데, 네트워크 계층의 역할은 데이터 패킷을 전송하는 역할과 라우팅하는 역할로 세분될 수 있다. 데이터 패킷 전송은 사용자가 설정한 원천지 IP 주소와 목적지 IP 주소 사이에서 이루어지고, 상기 IP 주소들은 수시로 변경되기 때문에 하드웨어적 성격이 강한 네트워크 인터페이스 카드로 내릴 수 없다. 다만, 라우팅은 루틴한 작업으로서 하드웨어적으로 처리할 수 있기 때문에 네트워크 인터페이스 카드로 내리는 것이 가능하다. 즉, 본 발명에서는 네트워크 계층을 네트워크 인터페이스 카드 네트워크 계층과 커널 네트워크 계층으로 나누고, 이들 중 라우팅 경로를 설정하는 영역인 네트워크 인터페이스 카드 네트워크 계층은 네트워크 인터페이스 카드 부분에서 구현하였고, 원천지 IP 주소로부터 목적지 IP 주소로 데이터 패킷을 전송하는 영역인 커널 네트워크 계층은 유저 호스트 부분에서 구현하였다. 여기에서, 네트워크 인터페이스 카드 네트워크 계층은 가상 머신(virtual machine)으로 구현한 펌웨어(firmware)이다. 가상 머신은 바이너리 코드(binary code)와 하드웨어(플랫폼) 사이의 인터페이스 역할을 하는 소프트웨어이다. 커널 네트워크 계층은 커널 내부에 위치해 있기 때문에, 일반적인 소프트웨어로 구현되는 반면에, 네트워크 인터페이스 카드 네트워크 계층은 펌웨어 내부에 위치해 있기 때문에, 가상 머신으로 구현된다. 펌웨어는 사용자 입장에서 변경할 수 없는 프로그램과 자료가 들어 있는 하드웨어이기 때문에 하드웨어와의 인터페이스 역할을 하는 가상 머신으로 구현하였다. The hosts 31, 32, and 33 to which the present invention is applied are composed of a network interface card and a user host. In the past, the physical layer and the data link layer of the protocol stack were supported by the network interface card part, and the upper layer above the network layer was supported by the user host part. However, the role of the network layer may be divided into the role of transmitting data packets and the role of routing. The data packet transmission is made between the source IP address and the destination IP address set by the user, and the IP addresses are changed from time to time, and thus cannot be lowered to the network interface card having strong hardware characteristics. However, because routing is a routine operation and can be handled in hardware, it is possible to get down to a network interface card. That is, in the present invention, the network layer is divided into a network interface card network layer and a kernel network layer, and the network interface card network layer, which is an area for setting a routing path among them, is implemented in the network interface card part, and the destination IP address from the source IP address. The kernel network layer, an area for sending data packets to addresses, is implemented in the user host part. Here, the network interface card network layer is firmware implemented as a virtual machine. A virtual machine is software that acts as an interface between binary code and hardware (platform). Since the kernel network layer is located inside the kernel, it is implemented in general software, while the network interface card network layer is located inside the firmware, so it is implemented as a virtual machine. Since firmware is hardware that contains programs and data that cannot be changed by the user, it is implemented as a virtual machine that serves as an interface with hardware.

네트워크 계층의 일부인 네트워크 인터페이스 카드 네트워크 계층을 지원하는 네트워크 인터페이스 카드는 데이터 패킷 수신부(32111), 네트워크 레벨 패킷 라우팅부(32121), 및 유저 레벨 패킷 송신부(32122)로 구성된다. Network interface card that is part of the network layer The network interface card that supports the network layer is composed of a data packet receiver 32111, a network level packet routing unit 32121, and a user level packet transmitter 32122.

데이터 패킷 수신부(32111)는 호스트(32) 외부에 위치한 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신한다. 종래의 네트워크 인터페이스 카드에서 담당하던 역할과 동일하다. 일반적으로 데이터 패킷은 헤더와 데이터로 구성되고, 다시 헤더는 버전, 타입, 원천지 주소와 목적지 주소 등으로 구성된다. 데이터 패킷 헤더의 목적지 주소가 본 호스트(32)의 주소인 경우, 데이터 패킷은 유저 영역인 커널로 올라가야 한다. 반면에, 데이터 패킷 헤더의 목적지 주소가 다른 호스트(33)의 주소인 경우, 본 호스트(32)는 단지 다른 호스트(33)로 가는 경로만 설정해주는 라우팅의 역할만 하면 된다. 여기에서, 데이터 패킷 헤더의 목적지 주소가 본 호스트(32)의 주소인 경우의 데이터 패킷은 유저 레벨 데이터 패킷이라 하고, 데이터 패킷 헤더의 목적지 주소가 다른 호스트(33)의 주소인 경우의 데이터 패킷을 네트워크 레벨 데이터 패킷이라 한다. The data packet receiver 32111 receives a data packet in a data link layer region via a physical layer from a network located outside the host 32. It is the same role that the conventional network interface card played. In general, a data packet consists of a header and data, and again a header consists of a version, a type, a source address and a destination address. If the destination address of the data packet header is the address of the host 32, the data packet must go up to the kernel, which is the user area. On the other hand, when the destination address of the data packet header is the address of another host 33, the host 32 only needs to serve as a routing for establishing a path to the other host 33. Here, the data packet when the destination address of the data packet header is the address of the host 32 is called a user level data packet, and the data packet when the destination address of the data packet header is the address of another host 33 is used. It is called a network level data packet.

네트워크 레벨 패킷 라우팅부(32121)는 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 네트워크 레벨 패킷에 실린 정보에 따라, 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 설정된 라우팅 경로로 네트워크 레벨 패킷을 포워딩한다. 즉, 네트워크 레벨 패킷인 경우는 데이터 패킷의 목적지가 다른 호스트(33)인 경우이므로, 네트워크 인터페이스 카드 네트워크 계층 영역에서 다른 호스트(33)로 가는 라우팅 경로를 설정하고, 설정된 라우팅 경로로 네트워크 레벨 패킷을 포워딩한다.If the received data packet is a network level packet, the network level packet routing unit 32121 sets a routing path in the network interface card network layer area according to the information contained in the network level packet, and sets the network level packet with the set routing path. Forward it. That is, in case of the network level packet, since the destination of the data packet is another host 33, a routing path from the network interface card network layer area to the other host 33 is set, and the network level packet is set using the set routing path. Forward it.

유저 레벨 패킷 송신부(32122)는 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 유저 레벨 패킷을 네트워크 계층의 다른 일부인 커널 네트워크 계층에 속한, 유저 호스트의 커널로 송신한다. 즉, 유저 레벨 패킷인 경우는 데이터 패킷의 목적지가 본 호스트(32)인 경우이므로, 데이터 패킷에 실린 데이터를 상위 계층(3222)에 전달하기 위하여 유저 호스트의 커널로 송신한다. If the received data packet is a user level packet, the user level packet transmitter 32122 transmits the user level packet to the kernel of the user host belonging to the kernel network layer which is another part of the network layer. That is, in the case of the user level packet, since the destination of the data packet is the present host 32, the data carried in the data packet is transmitted to the kernel of the user host to transfer the data contained in the data packet to the upper layer 3322.

네트워크 계층의 일부인 커널 네트워크 계층을 지원하는 유저 호스트는 유저 레벨 패킷 수신부(32211), 및 네트워크 인터페이스 카드 네트워크 계층 관리부(32212)로 구성된다. The user host supporting the kernel network layer, which is part of the network layer, is composed of a user level packet receiving unit 32211 and a network interface card network layer managing unit 32212.

유저 레벨 패킷 수신부(32211)는 네트워크 인터페이스 카드로부터 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신한다. The user level packet receiving unit 32211 receives a user level packet in the kernel network layer area from the network interface card.

네트워크 인터페이스 카드 네트워크 계층 관리부(32212)는 네트워크 인터페이스 카드가 지원하는, 네트워크 계층의 다른 일부인 네트워크 인터페이스 카드 네트워크 계층을 관리한다. 즉, 네트워크 인터페이스 카드 네트워크 계층 관리부(32212)는 데몬(daemon)으로서 실행되어 네트워크 인터페이스 카드의 펌웨어를 구동시킴으로서 상기 네트워크 인터페이스 카드 네트워크 계층을 지원하고, 상기 네트워크 인터페이스 카드와 유저 호스트를 서로 동기화 시킴으로서, 네트워크 인터페이스 카드 네트워크 계층 자원과 커널 네트워크 계층 자원이 공유되도록 한다. 데몬은 주기적인 서비스 요청을 처리하기 위해, 계속 실행되는 프로그램을 말한다. 네트워크 인터페이스 카드 네트워크 계층 관리부(32212)가 데몬으로서 실행되는 이유는 커널 부분에서 항상 네트워크 인터페이스 카드와의 동기화를 이루어야하기 때문이다. 커널이 초기화될 때에 네트워크 인터페이스 카드 네트워크 계층 관리부(32212)에 의해서 네트워크 인터페이스 카드의 펌웨어가 로드되고, 네트워크 인터페이스 카드가 동작한다. 호스트는 전체 네트워크의 동기화에 참여해야 하며, 네트워크 인터페이스 카드 내부에 있는 프로토콜 스택이 실행될 때, 호스트는 네트워크 인터페이스 카드 내부에서 어떤 일이 발생하는지 알아야 하기 때문에, 네트워크 인터페이스 카드 네트워크 계층 관리부(32212)는 이런 일들을 네트워크 인터페이스 카드와 직접적으로 연결되어서 호스트에게 알린다. 따라서, 네트워크 인터페이스 카드 네트워크 계층 관리부(32212)는 데몬으로서 네트워크가 동작하는 한, 네트워크 인터페이스 카드를 계속 관리해야 한다.The network interface card network layer manager 32322 manages the network interface card network layer, which is another part of the network layer supported by the network interface card. That is, the network interface card network layer manager 32322 is executed as a daemon to drive the firmware of the network interface card to support the network interface card network layer and synchronize the network interface card and the user host with each other. Allow interface card network layer resources and kernel network layer resources to be shared. A daemon is a program that runs continuously to handle periodic service requests. The reason why the network interface card network layer manager 32212 is executed as a daemon is that the kernel portion always synchronizes with the network interface card. When the kernel is initialized, the firmware of the network interface card is loaded by the network interface card network layer management unit 32212, and the network interface card operates. The host must participate in the synchronization of the entire network, and when the protocol stack inside the network interface card is executed, the host must know what is happening inside the network interface card, so the network interface card network layer management unit 32212 can do so. Notifies the host that things are connected directly to the network interface card. Accordingly, the network interface card network layer manager 32322 should continue to manage the network interface card as long as the network operates as a daemon.

네트워크 인터페이스 카드와 유저 호스트가 서로 동기화 되어야 하는 이유는 다음과 같다. 상기한 바와 같이, 네트워크 인터페이스 카드 네트워크 계층 관리부(32212)는 데몬으로서 작동하고 있다. 호스트가 네트워크에 참여한다는 의미는 호스트에 접속되어있는 네트워크를 이용할 수 있다는 것이고, 네트워크 역시 호스트의 리소스를 이용할 수 있다는 의미이다. 이것을 위해서 서로 동기화가 필요하며, 이런 동기화는 호스트가 인지해야 한다. 기존의 네트워크 인터페이스 카드는 네트워크 계층에 관한 모든 것을 호스트에서 처리했기 때문에 커널 내부에서 동기화가 이루어졌지만, 본 발명은 네트워크 계층의 일부가 네트워크 인터페이스 카드 내부에서 이루어지는 것이기 때문에, 반드시 호스트와의 동기화를 맞추는 기능이 데몬으로서 구현되어야 한다. The reason why the network interface card and the user host should be synchronized with each other is as follows. As described above, the network interface card network layer management unit 32212 is operating as a daemon. When a host joins a network, it means that the network connected to the host can be used, and the network can also use the host's resources. This requires synchronization with each other, which must be recognized by the host. In the existing network interface card, since the host handled everything about the network layer, synchronization was performed in the kernel. However, since the present invention is part of the network layer, the network interface card must be synchronized with the host. Should be implemented as this daemon.

도 4는 본 발명에 따른 네트워크 인터페이스 카드 네트워크 계층을 지원하는 방법의 흐름도이다. 4 is a flowchart of a method for supporting a network interface card network layer according to the present invention.

먼저, 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신한다(41). 이어서, 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우(42), 네트워크 레벨 패킷에 실린 정보에 따라, 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 설정된 라우팅 경로로 네트워크 레벨 패킷을 포워딩한다(43). 이어서, 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 유저 레벨 패킷을 네트워크 계층의 다른 일부인 커널 네트워크 계층에 속한, 유저 호스트의 커널로 송신한다(44). First, a data packet is received 41 from the network in the data link layer region via the physical layer. Subsequently, if the received data packet is a network level packet (42), in accordance with the information contained in the network level packet, a routing path is set in the network interface card network layer area, and the network level packet is forwarded to the set routing path (43). ). Then, if the received data packet is a user level packet, the user level packet is transmitted to the kernel of the user host belonging to the kernel network layer which is another part of the network layer (44).

도 5는 본 발명에 따른 커널 네트워크 계층을 지원하는 방법의 흐름도이다.5 is a flowchart of a method for supporting a kernel network layer according to the present invention.

먼저, 네트워크 인터페이스 카드로부터 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신한다(51). 이어서, 네트워크 인터페이스 카드가 지원하는, 네트워크 계층의 다른 일부인 네트워크 인터페이스 카드 네트워크 계층을 관리한다(52). 즉, 데몬으로 실행되어 네트워크 인터페이스 카드의 펌웨어를 구동시킴으로서 네트워크 인터페이스 카드 네트워크 계층을 지원하고, 네트워크 인터페이스 카드와 유저 호스트를 서로 동기화 시킴으로서, 네트워크 인터페이스 카드 네트워크 계층 자원과 커널 네트워크 계층 자원이 공유되도록 한다. First, a user level packet is received from the network interface card in the kernel network layer area (51). The network interface card network layer, which is another part of the network layer supported by the network interface card, is then managed (52). That is, it runs as a daemon to drive the firmware of the network interface card to support the network interface card network layer, and to synchronize the network interface card and the user host to each other, so that the network interface card network layer resource and the kernel network layer resource are shared.

한편, 상술한 본 발명의 실시 예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

또한 상술한 본 발명의 실시 예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.In addition, the structure of the data used in the above-described embodiment of the present invention may be recorded on the computer-readable recording medium through various means.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for 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 rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

네트워크상에서 데이터 전송의 신뢰성을 높이기 위하여, 많은 연구가 진행되고 있다. 인터넷에서의 트래픽 분석과 QOS(Quality Of Service) 보장을 위한 연구가 대부분이고, 이것들은 단지 이론으로만 남아있다. 본 발명에 따르면, 네트워크 인터페이스 카드 내부에서 네트워크 계층의 일부를 구현함으로서 패킷의 레이턴시를 줄여 본질적으로 데이터 전송의 신뢰성을 높일 수 있는 효과가 있다. 또한, 커널의 네트워크 계층을 분리하여, 그 일부를 네트워크 인터페이스 카드로 내림으로서 운영체제의 부담을 줄일 수 있는 효과도 있다. In order to increase the reliability of data transmission on a network, a lot of research is being conducted. Much of the research on traffic analysis and quality of service (QOS) on the Internet has been done and these remain only theories. According to the present invention, by implementing a part of the network layer inside the network interface card, it is possible to reduce the latency of the packet, thereby increasing the reliability of the data transmission. In addition, it is possible to reduce the burden on the operating system by separating the network layer of the kernel and lowering a part of it to the network interface card.

즉, 네트워크 인터페이스 카드를 거처서 Protocol Stack까지 올라가는 시간을 T1, 이때 자신의 컨텍스트 스위칭 시간을 T2라고 하면, 최악의 경우 패킷 레이턴시는 (N-1)*(T1+T2)의 시간이 소요된다(N은 노드 의 수). 단, 라인 딜레이(line delay, constant delay) 는 여기에 포함되지 않았다. 패킷 레이턴시는 N, T1, T2에 비례하며, N은 해당 네트워크 상에서 고정 값이기 때문에 무시한다. 본 발명에 따르면, 네트워크 계층의 일부가 네트워크 인터페이스 카드 내부에 위치해 있기 때문에 T1이 기존보다 작아지는 효과가 있다. T2는 해당 스테이션의 CPU 성능에 달려 있다. 그러나, 컨텍스트 스위칭의 횟수가 작아지기 때문에 T2의 값 역시 작아지는 효과가 있다. 따라서, 전체 레이턴시가 최소화되는 효과가 있다. 나아가, 데이터 패킷의 레이턴시를 작게 함으로서 멀티미디어 데이터의 신뢰성을 높이고, 궁극적으로 사용자들에게 보장된 서비스를 제공할 수 있다는 효과가 있다. 또한, 컨텍스트 스위칭이 감소함에 따라 CPU의 인터럽트 횟수를 줄일 수 있어서, CPU의 부담을 줄일 수 있는 효과가 있다. That is, if the time to go up to the protocol stack via the network interface card is T1, and the context switching time of the user is T2, the worst case packet latency takes (N-1) * (T1 + T2) (N Is the number of nodes). However, the line delay (line delay, constant delay) is not included here. Packet latency is proportional to N, T1, and T2, and N is ignored because it is a fixed value on the network. According to the present invention, since part of the network layer is located inside the network interface card, the T1 becomes smaller than before. T2 depends on the CPU performance of the station. However, since the number of context switching is small, the value of T2 is also small. Therefore, there is an effect that the overall latency is minimized. In addition, by reducing the latency of the data packet, the reliability of the multimedia data can be improved, and ultimately, a guaranteed service can be provided to users. In addition, as the context switching is reduced, the number of interrupts of the CPU can be reduced, thereby reducing the burden on the CPU.

도 1은 종래의 프로토콜 스택이 적용되는 네트워크 시스템을 나타내는 도면이다.1 is a diagram illustrating a network system to which a conventional protocol stack is applied.

도 2는 본 발명에 따른 프로토콜 스택이 적용되는 네트워크 시스템을 나타내는 도면이다. 2 is a diagram illustrating a network system to which a protocol stack according to the present invention is applied.

도 3은 본 발명에 따른 네트워크 계층 일부를 지원하는 네트워크 인터페이스 카드와 유저 호스트의 구성도이다.3 is a configuration diagram of a network interface card and a user host supporting a part of a network layer according to the present invention.

도 4는 본 발명에 따른 네트워크 인터페이스 카드 네트워크 계층을 지원하는 방법의 흐름도이다. 4 is a flowchart of a method for supporting a network interface card network layer according to the present invention.

도 5는 본 발명에 따른 커널 네트워크 계층을 지원하는 방법의 흐름도이다.5 is a flowchart of a method for supporting a kernel network layer according to the present invention.

Claims (23)

네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 지원하는 네트워크 인터페이스 카드에 있어서, A network interface card that supports a predetermined network interface card network layer that is part of a network layer, 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하는 데이터 패킷 수신부;A data packet receiving unit for receiving a data packet in a data link layer region via a physical layer from a predetermined network; 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하는 네트워크 레벨 패킷 라우팅부; 및If the received data packet is a network level packet, a network level for setting a routing path in the network interface card network layer region according to the information contained in the network level packet and forwarding the network level packet to the set routing path. A packet routing unit; And 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 네트워크 계층의 다른 일부인 소정의 커널 네트워크 계층에 속한, 유저 호스트의 커널로 송신하는 유저 레벨 패킷 송신부를 포함하는 것을 특징으로 하는 네트워크 인터페이스 카드. And a user level packet transmitter for transmitting the user level packet to a kernel of a user host belonging to a predetermined kernel network layer which is another part of the network layer when the received data packet is a user level packet. Interface card. 제 1 항에 있어서, 상기 네트워크 계층은 라우팅 경로를 설정하는 영역인 상기 네트워크 인터페이스 카드 네트워크 계층과 소정의 원천지 IP 주소로부터 소정의 목적지 IP 주소로 상기 데이터 패킷을 전송하는 영역인 상기 커널 네트워크 계층을 포함하는 것을 특징으로 하는 네트워크 인터페이스 카드. The kernel network layer of claim 1, wherein the network layer is an area for transmitting the data packet from a predetermined source IP address to a network interface card network layer and an area for establishing a routing path. Network interface card comprising a. 제 1 항에 있어서, 상기 네트워크 인터페이스 카드와 상기 유저 호스트는 서로 동기화 되어있음을 특징으로 하는 네트워크 인터페이스 카드. The network interface card of claim 1, wherein the network interface card and the user host are synchronized with each other. 제 1 항에 있어서, 상기 네트워크 인터페이스 카드 네트워크 계층은 가상 머신으로 구현한 펌웨어인 것을 특징으로 하는 네트워크 인터페이스 카드. The network interface card of claim 1, wherein the network interface card network layer is firmware implemented as a virtual machine. 네트워크 계층의 일부인 소정의 커널 네트워크 계층을 지원하는 유저 호스트에 있어서, For a user host that supports a given kernel network layer that is part of a network layer, 소정의 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하는 유저 레벨 패킷 수신부; 및A user level packet receiving unit which receives a user level packet in the kernel network layer area from a predetermined network interface card; And 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 네트워크 인터페이스 카드 네트워크 계층 관리부를 포함하는 것을 특징으로 하는 유저 호스트. And a network interface card network layer management unit for managing a predetermined network interface card network layer which is another part of the network layer supported by the network interface card. 제 5 항에 있어서, 상기 네트워크 계층은 라우팅 경로를 설정하는 영역인 상기 네트워크 인터페이스 카드 네트워크 계층과 소정의 원천지 IP 주소로부터 소정의 목적지 IP 주소로 상기 데이터 패킷을 전송하는 영역인 상기 커널 네트워크 계층을 포함하는 것을 특징으로 하는 유저 호스트. 6. The kernel network layer of claim 5, wherein the network layer is an area for transmitting the data packet from a predetermined source IP address to the network interface card network layer and an area for establishing a routing path. And a user host. 제 5 항에 있어서, 상기 네트워크 인터페이스 카드와 상기 유저 호스트는 서로 동기화 되어있음을 특징으로 하는 유저 호스트. 6. The user host of claim 5, wherein the network interface card and the user host are synchronized with each other. 제 7 항에 있어서, 상기 네트워크 인터페이스 카드 네트워크 계층은 가상 머신의 방식으로 상기 네트워크 인터페이스 카드의 펌웨어 내부에 구현된 것을 특징으로 하는 유저 호스트. 8. The user host of claim 7, wherein said network interface card network layer is implemented within the firmware of said network interface card in the manner of a virtual machine. 제 8 항에 있어서, 상기 네트워크 인터페이스 카드 네트워크 계층 관리부는 데몬으로서 실행되어 상기 네트워크 인터페이스 카드의 펌웨어를 구동시킴으로서 상기 네트워크 인터페이스 카드 네트워크 계층을 지원하고, 상기 네트워크 인터페이스 카드와 유저 호스트를 서로 동기화 시킴으로서, 네트워크 인터페이스 카드 네트워크 계층 자원과 커널 네트워크 계층 자원이 공유되도록 하는 것을 특징으로 하는 유저 호스트. The network interface card of claim 8, wherein the network interface card network layer manager is executed as a daemon to drive the firmware of the network interface card to support the network interface card network layer, and synchronize the network interface card and the user host to each other. User interface characterized in that the interface card network layer resources and kernel network layer resources are shared. 네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층과 다른 일부인 소정의 커널 네트워크 계층을 지원하는 호스트에 있어서, A host that supports a predetermined network interface card that is part of the network layer and a predetermined kernel network layer that is different from the network layer, 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하고, 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하고, 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 커널 네트워크 계층에 속한 유저 호스트의 커널로 송신하는 네트워크 인터페이스 카드; 및Receiving a data packet in a data link layer region via a physical layer from a predetermined network, and if the received data packet is a network level packet, according to the information contained in the network level packet, the network interface card network layer region Configures a routing path, forwards the network level packet to the set routing path, and if the received data packet is a user level packet, transmits the user level packet to a kernel of a user host belonging to the kernel network layer. Network interface card; And 상기 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하고, 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 유저 호스트를 포함하는 것을 특징으로 하는 호스트. A user host for receiving a user level packet from the network interface card in the kernel network layer area and managing a predetermined network interface card network layer that is another part of the network layer supported by the network interface card. Host. 네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 지원하는 방법에 있어서, A method of supporting a predetermined network interface card network layer that is part of a network layer, (a) 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하는 단계;(a) receiving a data packet in a data link layer region via a physical layer from a predetermined network; (b) 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하는 단계; 및(b) if the received data packet is a network level packet, establish a routing path in the network interface card network layer region according to the information contained in the network level packet, and forward the network level packet to the set routing path Making; And (c) 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 네트워크 계층의 다른 일부인 소정의 커널 네트워크 계층에 속한, 유저 호스트의 커널로 송신하는 단계를 포함하는 것을 특징으로 하는 방법. (c) if the received data packet is a user level packet, transmitting the user level packet to a kernel of a user host belonging to a predetermined kernel network layer that is another part of the network layer. . 제 11 항에 있어서, 상기 네트워크 계층은 라우팅 경로를 설정하는 영역인 상기 네트워크 인터페이스 카드 네트워크 계층과 소정의 원천지 IP 주소로부터 소정의 목적지 IP 주소로 상기 데이터 패킷을 전송하는 영역인 상기 커널 네트워크 계층을 포함하는 것을 특징으로 하는 방법. 12. The kernel network layer of claim 11, wherein the network layer is an area for transmitting the data packet from a predetermined source IP address to the network interface card network layer and an area for establishing a routing path. Method comprising a. 제 11 항에 있어서, 상기 네트워크 인터페이스 카드와 상기 유저 호스트 는 서로 동기화 되어있음을 특징으로 하는 방법. 12. The method of claim 11, wherein the network interface card and the user host are synchronized with each other. 제 11 항에 있어서, 상기 네트워크 인터페이스 카드 네트워크 계층은 가상 머신으로 구현한 펌웨어인 것을 특징으로 하는 방법. 12. The method of claim 11, wherein the network interface card network layer is firmware implemented as a virtual machine. 네트워크 계층의 일부인 소정의 커널 네트워크 계층을 지원하는 방법에 있어서, A method of supporting a predetermined kernel network layer that is part of a network layer, (a) 소정의 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하는 단계; 및(a) receiving a user level packet in the kernel network layer area from a predetermined network interface card; And (b) 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 단계를 포함하는 것을 특징으로 하는 방법. (b) managing a predetermined network interface card network layer that is another part of the network layer supported by the network interface card. 제 15 항에 있어서, 상기 네트워크 계층은 라우팅 경로를 설정하는 영역인 상기 네트워크 인터페이스 카드 네트워크 계층과 소정의 원천지 IP 주소로부터 소정의 목적지 IP 주소로 상기 데이터 패킷을 전송하는 영역인 상기 커널 네트워크 계층을 포함하는 것을 특징으로 하는 방법. 16. The kernel network layer of claim 15, wherein the network layer is an area for transmitting the data packet from a network source card network layer and a predetermined source IP address to a predetermined destination IP address. Method comprising a. 제 15 항에 있어서, 상기 네트워크 인터페이스 카드와 상기 유저 호스트는 서로 동기화 되어있음을 특징으로 하는 방법. 16. The method of claim 15, wherein the network interface card and the user host are synchronized with each other. 제 17 항에 있어서, 상기 네트워크 인터페이스 카드 네트워크 계층은 가상 머신의 방식으로 상기 네트워크 인터페이스 카드의 펌웨어 내부에 구현된 것을 특징으로 하는 방법. 18. The method of claim 17, wherein the network interface card network layer is implemented within the firmware of the network interface card in the manner of a virtual machine. 제 18 항에 있어서, 상기 (b) 단계는 데몬으로서 실행되어 상기 네트워크 인터페이스 카드의 펌웨어를 구동시킴으로서 상기 네트워크 인터페이스 카드 네트워크 계층을 지원하고, 상기 네트워크 인터페이스 카드와 유저 호스트를 서로 동기화 시킴으로서, 네트워크 인터페이스 카드 네트워크 계층 자원과 커널 네트워크 계층 자원이 공유되도록 하는 것을 특징으로 하는 방법. 19. The network interface card of claim 18, wherein step (b) is executed as a daemon to drive the firmware of the network interface card to support the network interface card network layer and to synchronize the network interface card and the user host to each other. Wherein the network layer resource and the kernel network layer resource are shared. 네트워크 계층의 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층과 다른 일부인 소정의 커널 네트워크 계층을 지원하는 방법에 있어서, A method for supporting a predetermined kernel network layer that is different from a predetermined network interface card network layer that is part of a network layer, (a) 소정의 네트워크로부터 물리 계층을 경유하여, 데이터 링크 계층 영역에서 데이터 패킷을 수신하고, 상기 수신된 데이터 패킷이 네트워크 레벨 패킷인 경우, 상기 네트워크 레벨 패킷에 실린 정보에 따라, 상기 네트워크 인터페이스 카드 네트워크 계층 영역에서 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로 상기 네트워크 레벨 패킷을 포워딩하고, 상기 수신된 데이터 패킷이 유저 레벨 패킷인 경우, 상기 유저 레벨 패킷을 상기 커널 네트워크 계층에 속한 유저 호스트의 커널로 송신하는 단계; 및(a) receiving a data packet in a data link layer region from a predetermined network via a physical layer, and if the received data packet is a network level packet, according to the information carried in the network level packet, the network interface card In the network layer region, a routing path is established, the network level packet is forwarded to the set routing path, and when the received data packet is a user level packet, the user level packet is a kernel of a user host belonging to the kernel network layer. Transmitting to; And (b) 상기 네트워크 인터페이스 카드로부터 상기 커널 네트워크 계층 영역에서 유저 레벨 패킷을 수신하고, 상기 네트워크 인터페이스 카드가 지원하는, 상기 네트워크 계층의 다른 일부인 소정의 네트워크 인터페이스 카드 네트워크 계층을 관리하는 단계를 포함하는 것을 특징으로 하는 방법. (b) receiving a user level packet in the kernel network layer area from the network interface card, and managing a predetermined network interface card network layer that is another part of the network layer supported by the network interface card. How to feature. 물리 계층;Physical layer; 데이터 링크 계층; 및 Data link layer; And 라우팅 테이블을 룩업하고, 상기 룩업 결과에 따라, 라우팅 경로를 설정하고, 상기 설정된 라우팅 경로로, 네트워크 계층에 속하는 호스트의 커널로부터 수신한 데이터 패킷을 포워딩하는 네트워크 인터페이스 카드 네트워크 계층을 포함하는 것을 특징으로 하는 네트워크 인터페이스 카드 프로토콜 스택. And a network interface card network layer that looks up a routing table, sets a routing path according to the lookup result, and forwards data packets received from a kernel of a host belonging to a network layer to the set routing path. Network interface card protocol stack. 제 11 항 내지 제 20 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 11 to 20 on a computer. 제 21 항의 프로토콜 스택을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium recording the protocol stack of claim 21.
KR10-2002-0061220A 2002-10-08 2002-10-08 Network interface card for supporting a part of network layer KR100477672B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0061220A KR100477672B1 (en) 2002-10-08 2002-10-08 Network interface card for supporting a part of network layer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0061220A KR100477672B1 (en) 2002-10-08 2002-10-08 Network interface card for supporting a part of network layer

Publications (2)

Publication Number Publication Date
KR20040032270A KR20040032270A (en) 2004-04-17
KR100477672B1 true KR100477672B1 (en) 2005-03-18

Family

ID=37332187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0061220A KR100477672B1 (en) 2002-10-08 2002-10-08 Network interface card for supporting a part of network layer

Country Status (1)

Country Link
KR (1) KR100477672B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850629B1 (en) 2007-02-01 2008-08-05 에스케이 텔레콤주식회사 A network interface card for filtering transmitted data packet in a network and a method for filtering

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020055287A (en) * 2000-12-28 2002-07-08 구자홍 Method for routing a packet of a router device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020055287A (en) * 2000-12-28 2002-07-08 구자홍 Method for routing a packet of a router device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850629B1 (en) 2007-02-01 2008-08-05 에스케이 텔레콤주식회사 A network interface card for filtering transmitted data packet in a network and a method for filtering

Also Published As

Publication number Publication date
KR20040032270A (en) 2004-04-17

Similar Documents

Publication Publication Date Title
US5918021A (en) System and method for dynamic distribution of data packets through multiple channels
US7818449B2 (en) Mechanism for providing quality of service in a network utilizing priority and reserved bandwidth protocols
US8599830B2 (en) Method and system for network aware virtual machines
KR100754293B1 (en) Digital content delivery system, digital content delivery method, program for executing the method, computer-readable recording medium storing thereon the program, and server and client for it
JP4065411B2 (en) Managing access to streams handled on the replication switch
JP2002281564A (en) Method for establishing route with fixed service quality mobile network
JPH11163854A (en) Data communication method
JP2001045066A (en) IP COMMUNICATION NETWORK SYSTEM AND QoS WARRANT SYSTEM
JP5164953B2 (en) Internetwork equipment
WO2018036173A1 (en) Network load balancing method, device and system
WO2008128449A1 (en) Method, system and access device for implementing two-layer intercommunication of special service
WO2021166250A1 (en) Gateway device, method, and program
KR100477672B1 (en) Network interface card for supporting a part of network layer
EP4325800A1 (en) Packet forwarding method and apparatus
US20020176415A1 (en) Channeling protocol data units
CN111988221B (en) Data transmission method, data transmission device, storage medium and electronic equipment
JP2002077257A (en) Stream distribution network service method and its system
US20230412522A1 (en) Control apparatus, resource allocation method and program
KR100384887B1 (en) Method for accepting mobile IP in MPLS domain network
JP4365798B2 (en) Data frame transfer apparatus and data frame transfer method
WO2020108020A1 (en) Congestion control processing method, message forwarding apparatus, and message receiving apparatus
JP2003348148A (en) Ip multicast control method and ip multicast control system employing the same
EP2458786A1 (en) Voice loopback method, gateway and loopback node in voip network
JP2005244929A (en) Transmission apparatus and method, reception apparatus and method, communication system, recording medium, and program
JP2003152785A (en) Contents distribution network, address notification terminal and communication controller

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080228

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee