KR100534618B1 - apparatus method of exchange packet in socket communication processor - Google Patents

apparatus method of exchange packet in socket communication processor Download PDF

Info

Publication number
KR100534618B1
KR100534618B1 KR10-2004-0007361A KR20040007361A KR100534618B1 KR 100534618 B1 KR100534618 B1 KR 100534618B1 KR 20040007361 A KR20040007361 A KR 20040007361A KR 100534618 B1 KR100534618 B1 KR 100534618B1
Authority
KR
South Korea
Prior art keywords
packet
read
information
socket
processor
Prior art date
Application number
KR10-2004-0007361A
Other languages
Korean (ko)
Other versions
KR20050079189A (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-2004-0007361A priority Critical patent/KR100534618B1/en
Publication of KR20050079189A publication Critical patent/KR20050079189A/en
Application granted granted Critical
Publication of KR100534618B1 publication Critical patent/KR100534618B1/en

Links

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/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • 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/22Parsing or analysis of headers

Abstract

본 발명은 소켓 통신을 하는 프로세서의 패킷 수신 방법 및 그 장치에 관한 것으로, 프로세서가 신뢰성을 확보하면서 패킷을 교환하는 소켓 통신을 수행하면서 통신 경로 또는 패킷 전송 속도 등의 문제로 인하여, 소켓에 전체 패킷이 라이트되지 못하거나, 공백 상태가 되면, 패킷을 수신하는 프로세서는 일부 패킷만을 리드하거나, 패킷을 리드하지 못하게 되어 발생하는 리드 블러킹 현상을 제거하여, 프로세서의 작업 처리 효율을 극대화할 수 있는 효과가 있다.The present invention relates to a packet receiving method and an apparatus of a processor for socket communication. The present invention relates to an entire packet in a socket due to problems such as a communication path or a packet transmission speed while performing a socket communication in which a processor exchanges packets while ensuring reliability. If this is not written or is left blank, the processor receiving the packet reads only some packets or removes the read blocking caused by the failure to read the packets, thereby maximizing the processing efficiency of the processor. have.

Description

소켓 통신을 하는 프로세서의 패킷 교환 방법 및 그 장치{apparatus method of exchange packet in socket communication processor} Packet exchange method of a processor for socket communication and apparatus therefor {apparatus method of exchange packet in socket communication processor}

본 발명은 소켓 통신을 하는 프로세서의 패킷 교환 방법 및 그 장치에 관한 것으로, 더욱 자세하게는, 소켓 통신을 수행하는 프로세서에서 통신 경로 또는 패킷 속도 등의 문제로 인하여, 전체 패킷이 리드되지 않는 경우에 발생하는 리드 블러킹 현상을 제거하는 소켓 통신을 하는 프로세서의 패킷 교환 방법 및 그 장치에 관한 것이다.The present invention relates to a packet exchange method and an apparatus of a processor for socket communication, and more particularly, to a case where a whole packet is not read due to a problem such as a communication path or a packet rate in a processor for socket communication. The present invention relates to a packet exchange method and apparatus for a processor performing socket communication to eliminate a read blocking phenomenon.

MNP(Microcom Networking Protocol) 시스템에서 동작하는 애플리케이션(application) 또는 프로세서(processor)는 외부 타 시스템의 애플리케이션과 신뢰성 있는 패킷 교환을 위하여 TCP(Transmission Control Protocol) 기반의 소켓 통신을 한다.An application or processor operating in a MNP (Microcom Networking Protocol) system performs TCP (Transmission Control Protocol) based socket communication for reliable packet exchange with applications of other external systems.

여기서, 신뢰성 있는 패킷 교환이란, 송신자가 전송한 패킷의 시퀸스(sequence)가 보장되면서 손실이 발생하지 않는 패킷 교환을 말한다.Here, the reliable packet exchange refers to a packet exchange in which no loss occurs while ensuring the sequence of the packet transmitted by the sender.

또한, 소켓 통신이란, 유닉스(UNIX)나 리눅스(LINUX) 파일 디스크립터(File Descriptor)를 이용하여 프로세서간 패킷을 교환하는 것이다.In addition, socket communication is the exchange of packets between processors using a UNIX or Linux file descriptor.

이러한 소켓 통신은, 소켓-스트림(sock-stream) 타입의 소켓을 사용하여, 교환되는 패킷의 시퀸스(sequence)를 유지하고, 패킷의 유실을 방지하여 신뢰성을 보장한다.This socket communication uses a socket-stream type of socket to maintain the sequence of packets exchanged and to prevent loss of packets to ensure reliability.

이때 소켓은, 두 개의 프로세서가 하위 네트워크에 관계없이 통신을 수행할 수 있도록 하는 것이다.In this case, the socket allows two processors to perform communication regardless of a lower network.

도 1은 일반적인 소켓 통신망의 구성을 설명하기 위한 전체 블록 도면이다.1 is a block diagram illustrating a general configuration of a socket communication network.

도 1에 도시된 바와 같이, 프로세서(1,3)와, 버퍼부(2)로 이루어져 있고, 프로세서(1,3)간의 소켓 통신을 위한 패킷 교환은 버퍼부(2)를 통해 이루어짐을 알 수 있다.As shown in FIG. 1, the processor 1 and 3 and the buffer unit 2 are configured, and the packet exchange for socket communication between the processors 1 and 3 is performed through the buffer unit 2. have.

또한, 이러한, 소켓 통신을 하기 위한 프로세서(1, 3)의 구조는 서버/클라이언트 구조를 가진다.In addition, the structure of the processors 1 and 3 for socket communication has a server / client structure.

도 2는 일반적인 프로세서간의 소켓 통신 방법의 흐름을 설명하는 흐름도이다.2 is a flowchart illustrating a flow of a socket communication method between a general processor.

도 2를 참조하면, 서버 프로세서인 프로세서 A(1)가 소켓 통신을 수행하기 위한 구조, 즉 소켓을 생성한다(S 1).Referring to FIG. 2, processor A 1, which is a server processor, generates a structure for performing socket communication, that is, a socket (S 1).

그리고, 생성된 소켓을 이용하여 프로세서 A(1)는 소켓 통신을 하기 위한 설정을 한다(S 2).Then, the processor A (1) is set for the socket communication using the generated socket (S 2).

이러한, 소켓 통신을 위한 사전 작업을 완료하고, 프로세서 B(3)로부터 소켓 통신 접속 요청이 수신될 때까지 대기한다(S 3).This completes the preliminary work for socket communication and waits until a socket communication connection request is received from processor B 3 (S 3).

프로세서 B(3)가 소켓 통신을 위한 소켓을 생성하여 설정하고,(S 4), 프로세서 A(1)와 패킷을 교환하기 위한 소켓 통신 접속 요청을 한다(S 5).Processor B (3) creates and sets a socket for socket communication (S 4), and makes a socket communication connection request for exchanging packets with processor A (S 5).

프로세서 A(1)는 프로세서 B(3)로부터 접속 요청이 수신되면, 이를 수락하고, 소켓 통신을 수행하기 위하여, 버퍼부(2)에 접속한다(S 6).When the processor A 1 receives a connection request from the processor B 3, the processor A 1 accepts the connection request and connects to the buffer unit 2 to perform socket communication (S 6).

클라이언트 프로세서인 프로세서 B(3)가 패킷을 전송하기 위하여 소켓인 버퍼부(2)에 패킷을 임시 저장한다(S 7).Processor B (3), which is a client processor, temporarily stores the packet in the buffer unit (2), which is a socket, in order to transmit the packet (S7).

서버 프로세서인 프로세서 A(1)는 버퍼부(2)에 저장되어 있는 패킷을 획득하고(S 8), 패킷을 획득했음을 버퍼부(2)에 저장한다(S 9).The processor A 1, which is a server processor, acquires a packet stored in the buffer unit 2 (S 8), and stores that the packet is obtained in the buffer unit 2 (S 9).

프로세서 B(3)는 버퍼부(2)에 저장되어 있는 프로세서 A(1)가 패킷을 획득했음을 인지하고, 다음 작업을 수행한다(S 10).Processor B (3) recognizes that the processor A (1) stored in the buffer unit 2 has obtained a packet, and performs the next operation (S 10).

이와 같은 일반적인 소켓 통신 방법에서 교환되는 패킷은 TLV(Type, Length, Value) 구조, 즉 헤더(header) 및 바디(body)를 가지는 구조이고, 패킷을 수신하는 프로세서는 버퍼부(2)에서 고정된 길이의 헤더에서 패킷의 길이 정보를 파악하고, 전체 패킷의 용량이 버퍼부(2)에 저장되어 있는지 여부를 확인하여, 저장되어 있으면, 버퍼부(2)에 임시 저장된 패킷을 읽어들인다.In such a general socket communication method, a packet exchanged is a TLV (Type, Length, Value) structure, that is, a structure having a header and a body, and a processor for receiving the packet is fixed in the buffer unit 2. The length information of the packet is grasped from the header of the length, and whether the capacity of the entire packet is stored in the buffer unit 2 is checked, and if it is stored, the packet temporarily stored in the buffer unit 2 is read.

그러나, 이러한, 일반적인 소켓 통신에서 프로세서(1, 3)가 패킷을 리드할 때, 패킷의 시퀸스가 바뀌는 것을 방지하기 위하여, 수신되는 패킷의 전체 길이 정보를 헤더에서 파악하여, 버퍼부(2)에 전체 패킷이 저장되는지 여부를 지속적으로 확인하고, 전체 패킷이 저장되어 있으면, 패킷을 버퍼부(2)에서 리드하게 된다.However, in the general socket communication, when the processor 1 or 3 reads a packet, in order to prevent the packet sequence from changing, the full length information of the received packet is checked in the header, and the buffer unit 2 is read. Whether the entire packet is stored is continuously checked, and if the entire packet is stored, the packet is read by the buffer unit 2. FIG.

따라서, 각 프로세서(1, 3)를 연결하는 물리적 경로에서 링크가 다운되거나, 기타 다른 문제로 인하여, 패킷의 일부분만 버퍼부(2)에 저장되거나, 패킷의 전송 속도가 저하되는 경우, 패킷을 읽어들이는 프로세서(1, 3)는 헤더에 포함되는 길이 정보에 따른 전체 패킷이 버퍼부(2)에 임시 저장되는지 여부를 지속적으로 확인하게 된다.Therefore, if a link is down in the physical path connecting each processor 1, 3, or other problems, only a part of the packet is stored in the buffer unit 2, or if the transmission speed of the packet decreases, The processor 1 and 3 to read continuously check whether the entire packet according to the length information included in the header is temporarily stored in the buffer unit 2.

그러므로, 버퍼(2)에서 패킷을 읽어들이는 버퍼(1, 3)는 리드 작업을 하기 위하여 버퍼부(2)에 저장되는 패킷의 용량을 지속적으로 확인함으로써, 다른 작업을 수행하지 못하는 리드 블러킹 현상이 발생한다.Therefore, the buffers 1 and 3 reading the packets from the buffer 2 continuously check the capacity of the packets stored in the buffer unit 2 for read operations, and thus lead blocking cannot be performed. This happens.

따라서, 본 발명은 상기와 같은 문제를 해결하기 위하여 고안된 것으로, 프로세서간 신뢰성 있는 패킷을 교환하기 위해 소켓 통신을 수행하면서, 프로세서가 통신 경로 또는 패킷 속도 등의 문제로 인하여, 일부 패킷만을 리드하거나, 패킷을 리드하지 못하는 경우, 리드 작업을 완료하기 위하여 프로세서에서 발생하는 리드 블러킹 현상을 제거하는 소켓 통신을 하는 프로세서의 패킷 교환 방법 및 그 장치를 제공하는 것에 그 목적이 있다. Therefore, the present invention is designed to solve the above problems, while performing socket communication to exchange reliable packets between processors, the processor reads only some packets due to problems such as communication paths or packet rates, An object of the present invention is to provide a packet exchange method and apparatus for a processor for socket communication that eliminates a read blocking phenomenon occurring in a processor in order to complete a read operation.

상기 목적을 달성하기 위하여 본 발명의 일 측면에 따른 소켓 통신을 하는 프로세서는, 타 프로세서로부터 소켓에 라이팅(writing)될 패킷의 전체 길이 정보인 기준 정보와, 라이팅된 패킷의 길이 정보인 비교 정보를 추출하는 정보 추출부와, 정보 추출부에서 추출된 기준 정보와, 비교 정보가 동일하지 않으면, 패킷 대기 신호를 제공하는 정보 비교부와, 정보 비교부로부터 패킷 대기 신호가 제공되면, 소켓에 라이팅된 패킷을 제 1 리드 작업을 통해 리드(read)하여, 임시 저장한 후, 라이팅되지 않은 패킷을 리드할 제 2 리드 작업을 타이머 작업에 등록하고, 다른 작업을 수행하면서 타이머 작업에 설정된 시간이 지나면, 다른 작업을 수행 완료하고, 제 2 리드 작업을 처리하는 패킷 처리부를 포함한다.In order to achieve the above object, a processor for socket communication according to an aspect of the present invention includes reference information, which is information on overall length of a packet to be written in another socket, and comparison information, which is length information of a written packet, from another processor. When the information extraction unit to be extracted, the reference information extracted by the information extraction unit, and the comparison information are not the same, an information comparison unit providing a packet waiting signal, and a packet waiting signal is provided from the information comparing unit, After reading the packet through the first read job, temporarily storing it, and registering the second read job to read the unwritten packet to the timer job and performing another job, when the time set for the timer job passes, And a packet processing unit that completes another task and processes the second read task.

본 발명에 따른 패킷 처리부는, 제 1 리드 작업을 통해 리드된 패킷을 제 1 큐에 임시 저장하고, 타 프로세서 또는 제 3 프로세서로부터 라이팅되는 패킷을 리드하는 제 3 리드 작업을 통해 패킷이 리드되는 경우, 패킷의 시퀸스를 보장하기 위하여, 제 3 리드 작업을 통해 리드된 패킷을 제 2 큐에 임시 저장하고, 타이머 작업에 등록된 제 2 리드 작업을 통해 리드되지 않은 패킷이 리드되면, 제 1 큐에 임시 저장하고, 제 1 큐에 임시 저장된 전체 패킷을 처리하고, 제 2 큐에 임시 저장된 패킷을 처리한다.The packet processing unit according to the present invention may temporarily store a packet read through a first read operation in a first queue and read the packet through a third read operation for reading a packet written from another processor or a third processor. In order to guarantee the sequence of the packet, the packet read through the third read operation is temporarily stored in the second queue, and if an unread packet is read through the second read operation registered in the timer job, the packet is read into the first queue. Temporarily store, process all packets temporarily stored in the first queue, and process the packets temporarily stored in the second queue.

한편, 본 발명의 다른 측면에 따른 소켓 통신을 하는 프로세서의 패킷 교환 방법은, 타 프로세서가 소켓에 라이팅할 패킷의 전체 길이 정보인 기준 정보 및 라이팅된 길이 정보인 비교 정보를 파악하는 단계와, 기준 정보와, 비교 정보에 따라 소켓에 라이팅되는 패킷이 전체 패킷인지 여부를 판단하는 단계와, 각 정보가 동일하지 않으면, 소켓에 라이팅된 패킷이 전체 패킷이 아니라고 판단하여, 제 1 리드 작업을 통해 리드되는 패킷을 큐에 임시 저장하고, 기준 정보와 비교 정보의 차이 값에 따른 미 완료 패킷의 길이 정보를 산출하는 단계와, 산출된 미 완료 패킷을 리드할 제 2 리드 작업을 타이머 작업에 등록하는 단계와, 다른 작업을 수행하면서 타이머 작업에 설정된 소정 시간이 지나면, 수행중인 다른 작업을 완료한 후, 제 2 리드 작업을 수행하는 단계를 포함한다.On the other hand, the packet exchange method of the processor for socket communication according to another aspect of the present invention, the step of the other processor to determine the reference information that is the total length information of the packet to be written to the socket and the comparison information is the written length information, and Determining whether the packet written to the socket is the entire packet according to the information and the comparison information; if each information is not the same, determining that the packet written to the socket is not the entire packet, and then reading it through the first read operation. Temporarily storing the packet to be queued, calculating length information of an incomplete packet according to a difference between reference information and comparison information, and registering a second read job to lead the calculated incomplete packet to a timer job. After the predetermined time set for the timer job while performing another job, the second read job is performed after completing another job being performed. And a step.

그리고, 본 발명에 따른 소켓 통신을 하는 프로세서의 패킷 교환 방법은, 소켓에서 제 1 리드 작업을 통해 리드한 패킷을 제 1 큐에 임시 저장하는 단계와, 타 프로세서 또는 제 3 프로세서로부터 라이팅되는 패킷을 리드하는 제 3 리드 작업을 통해 전체 패킷이 리드되면, 제 2 큐에 임시 저장하고, 제 2 리드 작업을 통해 미 완료 패킷이 리드되는지 여부를 판단하는 단계와, 판단 결과, 미 완료 패킷이 리드되면, 제 1 큐에 임시 저장하고, 제 1 큐에 임시 저장되는 패킷을 처리하는 단계와, 제 1 큐에 임시 저장된 패킷을 처리하고, 제 2 큐에 임시 저장된 패킷을 처리하는 단계를 더 포함한다.The packet exchange method of the processor for socket communication according to the present invention may include temporarily storing a packet read through a first read operation in a socket in a first queue, and writing a packet written from another processor or a third processor. When the entire packet is read through the third read operation to read, temporarily storing the entire packet in the second queue, and determining whether or not the incomplete packet is read through the second read operation; And temporarily storing the packet in the first queue, and processing the packet temporarily stored in the first queue, processing the packet temporarily stored in the first queue, and processing the packet temporarily stored in the second queue.

아울러, 본 발명에 따른 소켓 통신을 하는 프로세서의 패킷 교환 방법은, 제 2 리드 작업을 통해 리드되는 패킷과, 제 1 큐에 임시 저장된 패킷을 믹스한 패킷의 길이 정보와 기준 정보가 동일하지 않으면, 기준 정보에서 믹스한 패킷의 길이 정보를 제외한 패킷을 리드할 제 4 리드 작업을 타이머 작업에 등록하는 단계를 더 포함한다. In addition, in the packet exchange method of the processor for socket communication according to the present invention, if the length information and the reference information of the packet read through the second read operation and the packet temporarily stored in the first queue are not the same, And registering a fourth read job to read the packet except the length information of the mixed packet in the reference information in the timer job.

이하 본 발명에 따른 바람직한 실시예에 따른 소켓 통신을 하는 프로세서의 패킷 교환 방법 및 장치를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, a packet exchange method and apparatus of a processor for socket communication according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 바람직한 실시예에 따른 소켓 통신을 하는 프로세서의 구성을 설명하기 위한 내부 블록 도면이다.3 is an internal block diagram illustrating a configuration of a processor for socket communication according to an exemplary embodiment of the present invention.

도 3을 참조하면, 본 발명에 따른 프로세서(10)는, 다수개의 큐(12)와, 패킷 처리부(11)를 포함하고, 패킷 처리부(11)는 정보 추출부(11a), 정보 비교부(11b) 및 작업 처리부(11c)를 포함한다.Referring to FIG. 3, a processor 10 according to the present invention includes a plurality of queues 12 and a packet processing unit 11, and the packet processing unit 11 includes an information extracting unit 11a and an information comparing unit ( 11b) and job processing unit 11c.

다수개의 큐(12)는 프로세서(10)가 타 프로세서와 소켓 통신을 통해 교환하는 패킷을 임시 저장한다.The plurality of queues 12 temporarily store packets that the processor 10 exchanges with other processors through socket communication.

패킷 처리부(11)는 타 프로세서와 소켓 통신을 위한 TCP(Transmission Control Protocol) 기반의 통신 경로가 설정되면, 타 프로세서와 패킷을 교환한다.When the TCP (Transmission Control Protocol) based communication path for socket communication with another processor is established, the packet processor 11 exchanges a packet with another processor.

그리고, 정보 추출부(11a)는 소켓에 임시 저장되는 패킷의 헤더에서 패킷의 전체 길이(Length) 정보인 기준 정보를 추출하고, 타 프로세서로부터 라이팅된 패킷의 길이 정보인 비교 정보를 추출한다.The information extracting unit 11a extracts reference information which is overall length information of the packet from headers of packets temporarily stored in the socket, and extracts comparison information which is length information of packets written from other processors.

일례를 들어, 타 프로세서가 소켓에 라이팅할 전체 패킷의 길이 정보가 '1500' 바이트이고, 소켓에 라이팅된 패킷의 길이가 '1000' 바이트인 경우, 정보 추출부(11a)는 패킷의 헤더에서 추출한 전체 길이 정보인 '1500' 바이트와, 현태 라이팅된 패킷의 길이 정보인 '1000' 바이트를 추출한다.For example, when the length information of the entire packet to be written to the socket by another processor is '1500' bytes, and the length of the packet written to the socket is '1000' bytes, the information extracting unit 11a extracts the header of the packet. It extracts '1500' bytes of full length information and '1000' bytes of length information of the currently written packet.

그리고, 정보 비교부(11b)는 정보 추출부(11a)에서 추출된 길이 정보, 즉 전체 길이 정보인 기준 정보와, 현재 라이팅된 패킷의 길이 정보인 비교 정보를 비교하여, 동일하면, 패킷 처리 신호를 생성하고, 동일하지 않으면, 패킷 대기 신호를 생성한다.The information comparing unit 11b compares the length information extracted from the information extracting unit 11a, that is, the reference information which is the full length information, with the comparison information that is the length information of the currently written packet, and if it is the same, the packet processing signal. If not, generate a packet wait signal.

즉, 정보 비교부(11b)는 소켓에 라이팅된 패킷이 전체 패킷이면, 프로세서(10)가 소켓에서 패킷을 리드하여 처리하도록 패킷 처리 신호를 제공하고, 전체 패킷이 아니면, 소켓에서 패킷을 리드하여 처리하는 작업을 대기하여, 패킷의 시퀸스가 보장되도록 한다.That is, if the packet written to the socket is an entire packet, the information comparison unit 11b provides a packet processing signal for the processor 10 to read and process the packet from the socket. If not, the information comparison unit 11b reads the packet from the socket. Wait for processing to ensure that the sequence of packets is guaranteed.

그리고, 작업 처리부(11c)는 정보 비교부(11b)로부터 패킷 처리 신호가 제공되면, 소켓에서 패킷을 리드하여, 설정된 작업을 처리한다.When the packet processing signal is provided from the information comparing unit 11b, the job processing unit 11c reads the packet from the socket and processes the set job.

한편, 작업 처리부(11c)는 정보 비교부(11b)로부터 패킷 대기 신호가 제공되면, 소켓에 라이팅되어 있는 패킷이 전체 패킷이 아니므로, 소켓의 패킷을 우선 리드하고, 임의 큐(12)에 임시 저장한다.On the other hand, when the packet waiting signal is provided from the information comparing unit 11b, the job processing unit 11c reads the packet of the socket first, and temporarily sends the packet to the arbitrary queue 12, because the packet written to the socket is not the entire packet. Save it.

그리고, 작업 처리부(11c)는 해당 프로세서로부터 라이팅되는 나머지 패킷을 리드하는 리드 작업을 타이머 작업에 등록한다.Then, the job processing unit 11c registers a read job for reading the remaining packets written from the processor in the timer job.

또한, 작업 처리부(11c)는 리드 작업을 타이머 작업에 등록하고, 다음 작업을 처리하도록 한다.In addition, the job processing unit 11c registers the read job to the timer job and processes the next job.

이때, 작업 처리부(11c)는 통신 경로 또는 패킷 전송 속도 등의 문제로 인하여, 리드 작업을 통해 전체 패킷을 리드하지 못한 상태에서 타 프로세서 또는 다음 패킷을 리드하는 리드 작업이 완료되는 경우, 즉, 이전 리드 작업에서 전체 패킷을 리드하지 못한 상태에서 다음 패킷의 리드가 완료되는 경우, 이전 패킷을 제 1 큐(12)에 임시 저장하고, 다음 패킷을 제 2 큐(12)에 임시 저장한다.At this time, the job processing unit 11c, when a read operation for reading another processor or the next packet is completed in a state in which the entire packet cannot be read through the read operation due to a problem such as a communication path or a packet transmission speed, that is, the previous operation When the read of the next packet is completed while the entire packet is not read in the read operation, the previous packet is temporarily stored in the first queue 12 and the next packet is temporarily stored in the second queue 12.

그리고, 작업 처리부(11c)는 패킷의 시퀸스를 보장하기 위하여, 타이머 작업을 통해 리드되지 않은 패킷을 리드하여, 제 1 큐(12)에 임시 저장하고, 제 1 큐(12)에 임시 저장되는 패킷이 정보 추출부(11a)에서 주출한 전체 패킷의 길이 정보와 동일하면, 제 1 큐(12)에 임시 저장되는 패킷을 처리하고, 제 2 큐(12)에 임시 저장되는 다음 패킷을 처리한다.The job processor 11c reads a packet not read through a timer job, temporarily stores the packet in the first queue 12, and temporarily stores the packet in the first queue 12 to ensure the sequence of the packet. If the information is the same as the length information of all the packets extracted by the information extraction section 11a, the packet is temporarily stored in the first queue 12, and the next packet temporarily stored in the second queue 12 is processed.

일례로, 작업 처리부(11c)는 제 2 큐(12)가 대기 큐로 임의 지정되는 경우, 이전 리드 작업이 완료되지 않은 상태에서 다음 리드 작업에서 전체 패킷이 리드되는 경우, 다음 리드 작업에서 리드된 패킷을 대기 큐인 제 2 큐(12)에 임시 저장하고, 이전 리드 작업에서 리드하지 못한 패킷을 리드하여, 제 1 큐(12)에 전체 패킷이 임시 저장되면, 제 1 큐(12)에 임시 저장되는 패킷이 먼저 처리되고, 제 2 큐(12)에 임시 저장되는 패킷이 처리되도록 한다.For example, when the second queue 12 is arbitrarily designated as a waiting queue, the job processing unit 11c may read the packet that is read in the next read operation when the entire packet is read in the next read operation when the previous read operation is not completed. Is temporarily stored in the second queue 12, which is a waiting queue, and the packets not read by the previous read operation are temporarily stored in the first queue 12, when all packets are temporarily stored in the first queue 12. The packet is processed first, and the packet temporarily stored in the second queue 12 is processed.

도 4는 본 발명의 바람직한 일실시예에 따른 소켓 통신을 이용한 프로세서간 패킷 교환 방법의 흐름을 설명하는 플로우챠트 도면이다.4 is a flowchart illustrating a flow of a method for packet exchange between processors using socket communication according to an embodiment of the present invention.

도 4를 참조하면, 클라이언트 프로세서(10)는 소켓 통신을 위한 소켓을 생성하고, 그 생성된 소켓을 통해 패킷을 교환하기 위한 소켓 설정을 한다(S 20).Referring to FIG. 4, the client processor 10 generates a socket for socket communication, and sets a socket for exchanging packets through the generated socket (S 20).

그리고, 자신이 처리해야 하는 작업이 있는지 여부를 판단하고(S 21), 그 판단 결과, 처리해야 하는 작업이 있는 경우, 그 작업에 해당하는 함수(function)를 호출(callback)하여 처리한다.Then, it is determined whether there is a job to be processed (S 21), and if there is a job to be processed as a result of the determination, a function (call) corresponding to the job is called and processed.

즉, 처리해야 하는 작업이 패킷 전송을 위한 라이트(write) 작업인지 여부를 판단하여(S 22), 라이트 작업인 경우, 라이트용 함수를 호출하여 처리한다(S 23).That is, it is determined whether the job to be processed is a write job for packet transmission (S 22), and if the job is a write job, the write function is called and processed (S 23).

도 5는 본 발명의 바람직한 일실시예에 따른 라이트 작업을 수행하는 방법의 흐름을 설명하는 플로우챠트 도면이다.5 is a flowchart illustrating a flow of a method of performing a write operation according to an embodiment of the present invention.

도 5를 참조하면, 라이트 작업을 처리해야 하는 경우, 라이트 작업 리스트에서 우선 처리해야 하는 작업을 찾는다(S 23a).Referring to FIG. 5, when a write job needs to be processed, a job to be processed first is found in the write job list (S 23a).

그리고, 라이트 작업을 수행하여 전송해야 하는 패킷의 용량을 파악하고(S 23b), 그 파악된 용량이 '0' 보다 큰지 여부를 파악한다(S 23c).Then, the capacity of the packet to be transmitted is determined by performing the write operation (S 23b), and whether the determined capacity is greater than '0' (S 23c).

즉, 클라이언트 프로세서(10)에서 서버 프로세서(10)로 전송할 패킷이 있는지 여부를 판단한다.That is, it is determined whether there is a packet to be transmitted from the client processor 10 to the server processor 10.

판단 결과, 파악된 용량이 '0'보다 큰 경우, 즉 전송할 패킷이 있는 경우, 그 패킷을 소켓에 라이트하여, 서버 프로세서(10)가 패킷을 리드(read)할 수 있도록 한다(S 23d).As a result of the determination, when the determined capacity is larger than '0', that is, when there is a packet to be transmitted, the packet is written to the socket so that the server processor 10 can read the packet (S 23d).

즉, 클라이언트 프로세서(10)와 서버 프로세서(10)는 소켓인 소켓을 공유하고, 클라이언트 프로세서(10)가 소켓에 패킷을 라이트하여 저장하면, 서버 프로세서(10)가 소켓에 접근하여 패킷을 리드한다.That is, the client processor 10 and the server processor 10 share a socket that is a socket, and when the client processor 10 writes and stores a packet in the socket, the server processor 10 accesses the socket and reads the packet. .

그리고, 서버 프로세서(10)가 패킷을 리드하면, 클라이언트 프로세서(10)는 리드된 패킷을 소켓에서 삭제한다.When the server processor 10 reads the packet, the client processor 10 deletes the read packet from the socket.

이때, 라이트 작업의 구조문은 'write(fd, ptr, size)'와 같은 구조문 형식으로 표현될 수 있으며, 'fd'는 서버 프로세서와 연결된 세션(session) 등의 소켓 관련 패킷이 저장되어 있는 파일 디스크립터 값을 나타내는 것이고, 'ptr'은 읽어야 하는 패킷이 저장되어 있는 위치 값을 나타내는 것이고, 'size'는 'fd'와 'ptr'를 읽어서 라이트 작업을 수행해야 하는 패킷 크기 값을 나타내는 것이다.At this time, the structure of the write operation may be expressed in the form of a structure such as 'write (fd, ptr, size)', and 'fd' stores a socket related packet such as a session connected to a server processor. 'Ptr' indicates a location value where a packet to be read is stored, and 'size' indicates a packet size value that should be read by reading 'fd' and 'ptr'.

클라이언트 프로세서(10)는 라이트 작업을 수행하고, 패킷을 전송하기 위한 라이트 작업이 올바르게 수행되었는지 여부를 판단한다(S 23e).The client processor 10 performs a write operation and determines whether a write operation for transmitting a packet is correctly performed (S 23e).

판단 결과, 라이트 작업이 올바르게 수행되지 않은 경우, 즉 전송하고자 하는 패킷이 모두 전송되지 않으면, 전송되지 않은 패킷의 용량을 파악한다(S 23f).As a result of the determination, when the write operation is not correctly performed, that is, when all the packets to be transmitted are not transmitted, the capacity of the untransmitted packet is determined (S 23f).

이때, 전송되지 않은 라이트 작업의 용량은, 패킷을 소켓에 라이트하고 수신되는 리턴(return) 값을 통해 알 수 있다.At this time, the capacity of the unsent write operation may be known through a return value received after writing the packet to the socket.

그러한 리턴 값은, 'return value'로 표현될 수 있고, 이 값은 클라이언트 프로세서(10)가 소켓에 라이트 작업을 수행한 용량 값이므로, 리턴 값이 '0'보다 작은 경우, 패킷을 전송하기 위한 라이트 작업을 수행할 수 없는 소켓이 닫혀진 (close) 상태를 나타낸다.Such a return value may be expressed as a 'return value', which is a capacity value that the client processor 10 has written to the socket, so that if the return value is less than '0', A socket that cannot be written to is closed.

한편, 리턴 값이 '0'인 경우, 소켓이 블록킹(blocking)된 상태를 나타내고, 리턴 값이 'size' 값과 같은 경우, 전송하고자 하는 패킷에 대하여 정상적으로 라이트 작업이 수행된 것을 나타낸다.On the other hand, when the return value is '0', it indicates that the socket is blocked, and when the return value is equal to the 'size' value, it indicates that the write operation is normally performed on the packet to be transmitted.

또한, 리턴 값이 '0'과 'size' 값 사이인 경우, 전송하고 하는 패킷의 용량 값과 리턴 값의 차이 값이 잔류하는 라이트 작업의 용량을 나타내며, 이 값만큼 라이트 작업을 다시금 수행하여야 한다. In addition, when the return value is between '0' and 'size', the difference between the capacity value of the packet to be transmitted and the return value indicates the capacity of the remaining write operation, and the write operation must be performed again by this value. .

그리고, 클라이언트 프로세서(10)는 전송되지 않은 패킷의 용량을 파악하고, 그 파악된 패킷을 서버 프로세서(10)로 전송하기 위한 라이트 작업, 즉 미 완료 라이트 작업이 임의의 시간이 지나고 수행될 수 있도록 타이머 작업에 등록한다(S 23g).In addition, the client processor 10 may determine the capacity of the untransmitted packet and may perform a write operation for transmitting the identified packet to the server processor 10, that is, an uncompleted write operation after a certain time. Register to the timer job (S 23g).

미 완료 라이트 작업을 타이머 작업에 등록하고, 다음 작업을 수행한다(S 23h).The incomplete write job is registered in the timer job and the next job is performed (S 23h).

그리고, 프로세서(10)는 라이트 작업을 수행하고, 처리해야 하는 작업이 타이머(timer)작업인지 여부를 판단하여(S 24), 그 판단 결과, 타이머 작업인 경우, 타이머 작업에 등록된 작업이 있는지 여부를 판단한다(S 25).Then, the processor 10 performs a write job, and determines whether the job to be processed is a timer job (S 24), and as a result of the determination, in the case of the timer job, whether there is a job registered in the timer job. It is determined whether or not (S 25).

즉, 라이트 작업이 올바르게 완료되지 않아 일정 시간이 지나고 미 완료 라이트 작업이 수행될 수 있도록 등록된 작업이 있는지 여부를 판단한다.That is, it is determined whether there is a job registered so that the write job is not completed correctly and a predetermined time has elapsed and an incomplete write job is performed.

판단 결과, 미 완료 라이트 작업이 등록되어 있는 경우, 그 등록된 미 완료 라이트 작업을 수행한다(S 26).As a result of the determination, if an incomplete write job is registered, the registered incomplete write job is performed (S26).

이때, 미 완료 라이트 작업의 수행은, 임의의 관리자로부터 설정되는 횟수로 반복하여 수행하거나, 한 번 수행하여도 완료되지 않은 경우에는 재 등록하는 방법 등이 사용될 수 있다.In this case, the execution of the unfinished write job may be repeatedly performed a number of times set by an arbitrary administrator, or re-registered when it is not completed even once.

한편 판단 결과, 등록된 미 완료 라이트 작업이 없거나, 등록된 미 완료 라이트 작업이 있으면 그 작업을 수행하고, 타이머 작업을 처리하기 위하여 타이머용 함수를 호출하여 처리한다(S 27).On the other hand, if it is determined that there is no registered uncompleted write job or there is a registered uncompleted write job, the job is performed and a timer function is called to process the timer job (S 27).

그리고, 프로세서(10)는 처리해야 하는 다른 작업이 있는지 여부를 판단하여, 다른 작업이 있는 경우, 해당 작업을 처리하기 위한 함수를 호출하여 처리한다.The processor 10 determines whether there is another task to be processed, and if there is another task, calls and processes a function for processing the task.

즉, 처리해야 하는 작업이 리드(read) 작업인지 여부를 판단하여(S 28), 그 판단 결과, 처리해야 하는 리드 작업이 있는 경우, 리드용 함수를 호출하여 처리한다(S 29).That is, it is determined whether or not the job to be processed is a read job (S 28), and if there is a read job to be processed as a result of the determination, the read function is called and processed (S 29).

도 6은 본 발명의 바람직한 실시예에 따른 리드 작업을 수행하는 방법의 흐름을 설명하기 위한 플로우챠트 도면이다.6 is a flowchart illustrating a flow of a method of performing a read operation according to an exemplary embodiment of the present invention.

도 6을 참조하면, 리드 작업을 처리해야 하는 경우, 프로세서(10)의 패킷 처리부(11)는 소켓에 접근하여 리드할 패킷의 용량을 파악한다(S 29a).Referring to FIG. 6, when a read operation is to be processed, the packet processor 11 of the processor 10 determines the capacity of a packet to be read by accessing the socket (S 29a).

그리고, 패킷 처리부(11)는 리드 작업을 수행하여 전송해야 하는 패킷의 용량을 파악하고, 그 파악된 패킷의 용량이 '0' 보다 큰지 여부를 파악한다(S 29b).Then, the packet processing unit 11 determines the capacity of the packet to be transmitted by performing the read operation, and determines whether the capacity of the identified packet is larger than "0" (S 29b).

판단 결과, 패킷 처리부(11)는 파악된 용량이 '0'보다 큰 경우, 즉 리드할 패킷이 있는 경우, 소켓에 접근하여 임시 저장되어 있는 패킷을 리드한다(S 29c).As a result of the determination, the packet processing unit 11 approaches the socket and reads the temporarily stored packet when the determined capacity is larger than '0', that is, when there are packets to be read (S 29c).

즉, 클라이언트 프로세서(10)는 서버 프로세서(10)와 소켓인 소켓을 공유하고, 서버 프로세서(10)가 소켓에 패킷을 라이트하여 저장하면, 클라이언트 프로세서(10)가 소켓에 접근하여 패킷를 리드한다.That is, the client processor 10 shares a socket that is a socket with the server processor 10, and when the server processor 10 writes and stores the packet in the socket, the client processor 10 accesses the socket and reads the packet.

그리고, 클라이언트 프로세서(10)가 패킷을 리드하면, 서버 프로세서(10)는 리드된 패킷을 소켓에서 삭제한다.When the client processor 10 reads the packet, the server processor 10 deletes the read packet from the socket.

이때, 리드 작업의 구조문은 'read(fd, ptr, size)'와 같은 구조문 형식으로 표현될 수 있으며, 'fd'는 서버 프로세서와 연결된 세션(session) 등의 소켓 관련 패킷이 저장되어 있는 파일 디스크립터 값을 나타내는 것이고, 'ptr'은 리드해야 하는 패킷이 저장되어 있는 위치 값을 나타내는 것이고, 'size'는 'fd'와 'ptr'를 읽어서 리드 작업을 수행해야 하는 패킷 크기 값을 나타내는 것이다.At this time, the structure of the read operation may be expressed in the form of a structure such as 'read (fd, ptr, size)', and 'fd' is a socket-related packet such as a session connected to the server processor. Indicates the file descriptor value, 'ptr' indicates the position value where the packet to be read is stored, and 'size' indicates the packet size value to read by reading 'fd' and 'ptr' .

클라이언트 프로세서(10)의 패킷 판단부(11a)는 리드 작업을 수행하고, 패킷을 리드하기 위한 리드 작업이 올바르게 수행되었는지 여부를 판단한다(S 29d).The packet determiner 11a of the client processor 10 performs a read operation and determines whether a read operation for reading a packet is correctly performed (S 29d).

이때, 패킷 판단부(11a)는 'size' 값이 '0'보다 크면, 리드 작업이 올바르게 수행되지 않았다고 판단한다.At this time, if the 'size' value is greater than '0', the packet determination unit 11a determines that the read operation is not performed correctly.

그리고, 패킷 판단부(11a)는 리드 작업에서 읽어들인 패킷을 제 1 큐(12)에 임시 저장한다.The packet determining unit 11a temporarily stores the packet read in the read job in the first queue 12.

판단 결과, 리드 작업이 올바르게 수행되지 않은 경우, 즉 수신하고자 하는 패킷이 모두 수신되지 않으면, 패킷 판단부(11a)는 수신되지 않은 패킷의 용량을 파악한다(S 29e).As a result of the determination, when the read operation is not performed correctly, that is, when all the packets to be received are not received, the packet determination unit 11a determines the capacity of the unreceived packet (S 29e).

이때, 수신되지 않은 리드 작업의 용량은, 패킷을 소켓에서 리드하고, 리턴(return)되는 값을 통해 알 수 있다.In this case, the capacity of the read operation not received may be known through a value that is read from the socket and returned.

그러한 리턴 값은, 'return value'로 표현될 수 있고, 이 값은 클라이언트 프로세서(10)가 소켓에 리드 작업을 수행한 용량 값이므로, 리턴 값이 '0'보다 작은 경우, 소켓이 닫혀진 (close) 상태를 나타낸다.Such a return value may be expressed as a 'return value', which is the capacity value that the client processor 10 reads into the socket, so if the return value is less than '0', the socket is closed. ) Indicates the status.

한편, 리턴 값이 '0'인 경우, 소켓이 블록킹(blocking)된 상태를 나타내고, 리턴 값이 'size' 값과 같은 경우, 수신하고자 하는 패킷이 정상적으로 리드된 것을 나타낸다.On the other hand, when the return value is '0', it indicates that the socket is blocked, and when the return value is equal to the 'size' value, it indicates that the packet to be received is normally read.

또한, 리턴 값이 '0'과 'size' 값 사이인 경우, 수신하고자 하는 패킷의 용량 값과 리턴 값의 차이 값만큼이 잔류하는 패킷의 용량을 나타내며, 이 값만큼 리드 작업을 다시금 수행해야 한다. In addition, when the return value is between '0' and 'size' value, the difference between the capacity value of the packet to be received and the return value represents the capacity of the remaining packet, and the read operation must be performed again by this value. .

그리고, 클라이언트 프로세서(10)는 리드되지 않은 패킷의 용량을 파악하고, 그 파악된 패킷의 용량만큼을 다시금 리드하는 리드 작업, 즉 미 완료 리드 작업이 임의의 시간이 지나고 수행될 수 있도록 타이머 작업에 등록한다(S 23f).In addition, the client processor 10 may determine the capacity of the unread packet, and may perform a read operation for rereading the capacity of the identified packet, that is, an uncompleted read operation, to be performed after a predetermined time. It registers (S 23f).

이때, 패킷 판단부(11a)는 미 완료 리드 작업을 타이머 작업에 등록할 때, 전송되는 전체 패킷의 길이 정보와, 소켓에서 리드되는 패킷의 길이 정보를 파악하고, 전체 길이 정보에서 리드된 길이 정보를 제외한 나머지 패킷의 길이 정보를 이용하여, 미 완료 리드 작업을 타이머 작업에 등록한다.At this time, when the packet determination unit 11a registers the uncompleted read job in the timer job, the packet determination unit 11a grasps the length information of the entire packet transmitted and the length information of the packet read from the socket, and the length information read from the full length information. The uncompleted read job is registered in the timer job using the length information of the remaining packets except for.

일례를 들어, 임의의 시간이 지나고 미 완료 리드 작업이 수행될 수 있도록 타이머 작업에 미 완료 리드 작업을 등록한다. For example, an uncompleted read job is registered in a timer job so that any time has passed and an incomplete read job can be performed.

즉, 패킷 판단부(11a)는 소켓에 임시 저장되어 있는 패킷이 전체 패킷이 아니라고 판단되면, 일례를 들어 헤더의 길이 정보는 '1500' 바이트이고, 소켓에 임시 저장되어 있는 패킷의 길이가 '1000' 바이트인 경우, 소켓에 임시 저장되어 있는 패킷이 전체 패킷이 아니므로, 패킷 판단부(11a)는 소켓에 임시 저장되어 있는 패킷을 우선 읽어들이고, 제 1 큐(12)에 임시 저장한다.That is, if it is determined that the packet temporarily stored in the socket is not the entire packet, the packet determination unit 11a, for example, the header length information is '1500' bytes, and the packet length temporarily stored in the socket is '1000'. In the case of bytes, since the packets temporarily stored in the socket are not all packets, the packet determination unit 11a first reads the packets temporarily stored in the socket and temporarily stores them in the first queue 12.

또한, 프로세서(10)는 다음 작업을 하면서 다음 패킷의 리드 작업이 완료되는 경우, 제 1 큐(12)의 다음 큐(12)를 대기 큐(12)인 제 2 큐(12)로 지정하여, 다음 패킷을 제 2 큐(12)에 임시 저장한다.In addition, when the read operation of the next packet is completed while the next work is performed, the processor 10 designates the next queue 12 of the first queue 12 as the second queue 12 which is the waiting queue 12. The next packet is temporarily stored in the second queue 12.

그리고, 패킷 판단부(11a)는 패킷의 시퀸스를 보장하기 위하여, 제 1 큐(12)에 전체 패킷이 저장되면, 제 1 큐(12)에 임시 저장되는 패킷을 처리하고, 제 2 큐(12)에 임시 저장된 패킷을 처리한다.When the entire packet is stored in the first queue 12, the packet determination unit 11a processes the packet temporarily stored in the first queue 12, and the second queue 12 to ensure the packet sequence. Processes packets temporarily stored in).

미 완료 리드 작업을 타이머 작업에 등록하고, 다음 작업을 수행한다(S 29h).The incomplete lead job is registered in the timer job and the next job is performed (S 29h).

이때, 프로세서(10)는 미 완료 리드 작업을 등록하면, 잔류 패킷 용량을 리드해야 하는 패킷의 용량으로 등록하는 것이 바람직하다.At this time, when the processor 10 registers an uncompleted read operation, it is preferable to register the remaining packet capacity as the capacity of the packet to be read.

이하, 도 7을 참조하면, 본 발명에 따른 소켓 통신을 하는 프로세서의 패킷 리드 작업을 보다 상세히 설명한다.Hereinafter, referring to FIG. 7, a packet read operation of a processor for socket communication according to the present invention will be described in detail.

도 7은 본 발명의 바람직한 실시예에 따른 리드 작업의 흐름을 설명하하는 플로우챠트 도면이다.7 is a flowchart illustrating a flow of a read operation according to a preferred embodiment of the present invention.

도 7을 참조하면, 프로세서(10)의 정보 추출부(11a)는 소켓에 라이팅된 패킷을 리드할 작업이 있으면, 소켓에 접근하여 패킷의 헤더에서 전체 길이 정보인 기준 정보와, 라이팅된 패킷의 길이 정보인 비교 정보를 추출한다(S 290).Referring to FIG. 7, when there is a task of reading a packet written in a socket, the information extracting unit 11a of the processor 10 accesses the socket, and includes reference information which is full length information in the header of the packet, and The comparison information which is length information is extracted (S290).

그리고, 정보 비교부(11b)는 정보 추출부(11b)에서 추출된 기준 정보와, 비교 정보를 비교하여 소켓에 라이팅된 패킷이 전체 패킷인지 여부를 판단한다(S 291).The information comparison unit 11b compares the reference information extracted by the information extraction unit 11b with the comparison information to determine whether the packet written to the socket is the entire packet (S 291).

즉, 정보 비교부(11b)는 기준 정보와, 비교 정보가 동일하면, 전체 패킷이 라이팅되었다고 판단하여, 패킷 처리 신호를 생성하고, 동일하지 않으면, 일부 패킷만 라이팅되었다고 판단하여, 패킷 대기 신호를 생성한다.That is, if the reference information and the comparison information are the same, the information comparison unit 11b determines that all packets have been written, and generates a packet processing signal. Create

일례를 들어 설명하면, 타 프로세서로부터 라이팅될 패킷의 전체 길이가 '1500' 바이트이고, 통신 경로 또는 기타 문제고 인하여, '1000' 바이트가 라이팅되는 경우, 정보 추출부(11a)는 소켓에 접근하여, 타 프로세서로부터 라이팅되는 패킷의 헤더에서 전체 패킷 길이 정보인 기준 정보로 '1500' 바이트와, 소켓에 라이팅된 패킷의 길이 정보인 비교 정보로 '1000' 바이트를 추출한다.For example, when the total length of a packet to be written from another processor is '1500' bytes, and '1000' bytes are written due to a communication path or other problem, the information extracting unit 11a accesses the socket. In the header of a packet written from another processor, '1500' bytes are extracted as reference information, which is the total packet length information, and '1000' bytes, are compared as comparison information, which is length information of the packet written to the socket.

그리고, 정보 비교부(11b)는 정보 추출부(11a)에서 추출된 기준 정보인 '1500' 바이트와, 비교 정보인 '1000' 바이트를 비교하여, 동일하지 않음으로 패킷 대기 신호를 생성한다.The information comparison unit 11b compares the '1500' byte, which is the reference information extracted by the information extraction unit 11a, with the '1000' byte, which is the comparison information, and generates a packet wait signal because it is not the same.

그리고, 작업 처리부(11c)는 정보 비교부(11b)로부터 패킷 처리 신호가 제공되면, 소켓에서 패킷을 리드하여, 설정된 패킷 작업을 처리하고, 패킷을 출력한다(S 292).When the packet processing signal is provided from the information comparing unit 11b, the job processing unit 11c reads the packet from the socket, processes the set packet job, and outputs the packet (S 292).

한편, 작업 처리부(11c)는 정보 비교부(11b)로부터 패킷 대기 신호가 제공되면, 소켓에 라이팅되어 있는 패킷이 전체 패킷이 아니므로, 소켓의 패킷을 우선 리드하고, 임의 큐(12)에 임시 저장한다(S 293).On the other hand, when the packet waiting signal is provided from the information comparing unit 11b, the job processing unit 11c reads the packet of the socket first, and temporarily sends the packet to the arbitrary queue 12, because the packet written to the socket is not the entire packet. Save (S 293).

그리고, 작업 처리부(11c)는 해당 프로세서로부터 라이팅되는 나머지 패킷을 리드하는 리드 작업을 타이머 작업에 등록한다(S 294).Then, the job processing unit 11c registers a read job for reading the remaining packets written from the processor in the timer job (S 294).

또한, 작업 처리부(11c)는 리드 작업을 타이머 작업에 등록하고, 프로세서(10)가 다음 작업을 처리하도록 한다(S 295).In addition, the job processing unit 11c registers the read job to the timer job, and causes the processor 10 to process the next job (S 295).

한편, 작업 처리부(11c)는 타이머 작업에 설정된 소정 시간이 경과한 후, 타 프로세서로부터 라이팅되는 나머지 패킷을 리드하여, 임의 큐(12)에 저장한다(S 296) On the other hand, after the predetermined time set for the timer job has elapsed, the job processing unit 11c reads out the remaining packets written from other processors and stores them in the arbitrary queue 12 (S 296).

일례에 따라, 작업 처리부(11c)는 리드 작업을 통해 전체 패킷인 '1500' 바이트 중에서 '1000' 바이트가 라이팅된 상태인 경우, 먼저 소켓에 라이팅된 '1000' 바이트의 패킷을 리드하여, 제 1 큐(12)에 임시 저장한다.According to an example, when the '1000' byte is written among the '1500' bytes of the entire packet through the read operation, the job processor 11c first reads the packet of '1000' bytes written to the socket, and thus, the first packet may be read. Temporarily store in the queue 12.

그리고, 나머지 패킷인 '500' 바이트를 리드할 미 완료 리드 작업을 타이머 작업에 등록하고, 프로세서(10)가 다음 작업을 처리하도록 한다.In addition, an uncompleted read job to read the remaining packet of '500' bytes is registered in the timer job, and the processor 10 processes the next job.

이때, 작업 처리부(11c)는 미 완료 리드 작업을 타이머 작업에 등록하고, 다음 리드 작업을 통해 전체 패킷이 리드되는 경우, 즉, 미 완료 리드 작업을 등록하고, 다음 리드 작업에서 정보 추출부(11a)가 추출하는 라이팅되는 패킷의 전체 길이 정보와, 라이팅된 패킷의 길이 정보가 동일한 경우, 정보 비교부(11b)는 패킷 대기 신호를 제공한다.At this time, the job processing unit 11c registers the uncompleted read job to the timer job, and if the entire packet is read through the next read job, that is, registers the uncompleted read job, and extracts the information from the next read job 11a. If the total length information of the packet to be written and) is equal to the length information of the packet to be written, the information comparison unit 11b provides a packet waiting signal.

그리고, 작업 처리부(11c)는 정보 비교부(11b)로부터 패킷 대기 신호가 제공되면, 처리되는 패킷의 시퀸스를 보장하기 위하여, 다음 리드 작업을 통해 리드되는 전체 패킷을 제 2 큐(12)에 임시 저장한다,When the packet waiting signal is provided from the information comparing unit 11b, the job processor 11c temporarily stores the entire packet read through the next read job in the second queue 12 in order to ensure the sequence of the processed packet. Save it,

또한, 작업 처리부(11c)는 타이머 작업에 설정된 소정 시간이 경과한 후, 등록된 미 완료 리드 작업을 통해 전체 패킷에서 제 1 큐(12)에 저장된 패킷을 제외한 패킷을 리드하여, 제 1 큐(12)에 임시 저장한다.In addition, after a predetermined time set for the timer job has elapsed, the job processing unit 11c reads out the packets except for the packets stored in the first queue 12 from all packets through the registered uncompleted read jobs, Temporarily store in 12).

그리고, 작업 처리부(11c)는 제 1 큐(12)에 임시 저장되는 패킷이 정보 추출부(11a)에서 추출한 전체 길이 정보인 기준 정보와 비교하여(S 297), 동일하면, 패킷의 시퀸스에 따라 제 1 큐(12)에 임시 저장된 패킷을 처리하고, 제 2 큐(12)에 임시 저장되는 패킷을 처리한다(S 299).Then, the job processing unit 11c compares the packet temporarily stored in the first queue 12 with the reference information which is the full length information extracted by the information extraction unit 11a (S 297), and if it is the same, according to the sequence of the packet. The packet is temporarily stored in the first queue 12, and the packet is temporarily stored in the second queue 12 (S299).

반면, 작업 처리부(11c)는 제 1 큐(12)에 임시 저장된 패킷의 길이가 기준 정보와 동일하지 않으면, 제 1 큐(12)에 임시 저장된 패킷을 제외한 나머지 패킷을 리드할 리드 작업을 타이머 작업에 재 등록한다(S 298).On the other hand, if the length of the packet temporarily stored in the first queue 12 is not the same as the reference information, the job processing unit 11c is a timer job to lead the read operation to read the remaining packets except for the packets temporarily stored in the first queue 12. Re-register at (S 298).

반면, 프로세서(10)는 처리해야 하는 작업이 이벤트(event)작업인지 여부를 판단하여(S 30), 그 판단 결과, 처리해야 하는 이벤트 작업이 있는 경우, 이벤트용 함수를 호출하여 처리한다(S 31).On the other hand, the processor 10 determines whether the task to be processed is an event task (S30), and if there is an event task to be processed as a result of the determination, calls and processes an event function to process it (S30). 31).

그리고, 프로세서(10)는 다음 작업이 타이머 작업이면(S 24), 타이머 작업에 등록된 작업이 있는지 여부를 확인하여(S 25), 등록된 작업이 있으면, 해당 작업을 처리한다(S 26).If the next job is a timer job (S 24), the processor 10 checks whether there is a job registered in the timer job (S 25), and if there is a registered job, processes the corresponding job (S 26). .

즉, 프로세서(10)의 패킷 처리부(11)는 미 완료 리드 작업이 타이머 작업에 등록되어 있으면, 작업 처리부(11c)가 소켓에 접근하여 패킷을 리드할 시간이 되었음을 알린다.That is, the packet processing unit 11 of the processor 10 notifies that when the uncompleted read job is registered in the timer job, it is time for the job processing unit 11c to approach the socket and read the packet.

이때, 작업 처리부(11c)는 소켓에 접근하여, 임시 저장된 패킷을 리드하여, 제 1 큐(12)에 임시 저장한다.At this time, the job processor 11c accesses the socket, reads the temporarily stored packet, and temporarily stores the packet in the first queue 12.

그리고, 작업 처리부(11c)는 리드한 패킷의 용량이 등록된 패킷의 용량과 동일한지 여부를 확인하여, 즉 제 1 큐(12)에 전체 패킷이 임시 저장되는지 여부를 확인하여, 전체 패킷이 저장되면, 제 1 큐(12)에 임시 저장된 패킷을 처리하고, 다음 큐(2)인 제 2 큐(12)에 임시 저장되는 패킷을 처리한다.Then, the job processor 11c checks whether the capacity of the read packet is the same as the capacity of the registered packet, that is, confirms whether or not the entire packet is temporarily stored in the first queue 12, and stores the entire packet. When the packet is temporarily stored in the first queue 12, the packet is temporarily stored in the second queue 12, which is the next queue 2.

즉, 클라이언트 프로세서(10)가 통신 경로 또는 패킷 전송 속도 등의 이유로 인하여 소켓에 저장된 패킷을 리드하지 못하는 경우, 클라이언트 프로세서(10)는 패킷을 수신하기 위한 리드 작업을 우선적으로 완료하기 위하여 반복 수행을 하는 것이 아니라, 완료되지 않은 리드 작업을 하나의 프로세싱(processing)으로 분류하거나, 타 작업에 등록하고, 다른 작업을 수행하면서 임의의 시간이 지나고 다시금 수행되도록 하여, 클라이언트 프로세서(10)에서 처리되는 작업의 흐름이 원활하도록 하는 것이다.That is, when the client processor 10 fails to read a packet stored in the socket due to a communication path or a packet transmission speed, the client processor 10 performs the repetition to first complete the read operation for receiving the packet. Rather than classify an uncompleted lead task into one processing, register it with another task, and perform another task, the task is processed in the client processor 10 by allowing it to be executed again after a certain time. Is to make the flow smooth.

이상에서 본 발명은 기재된 구체 예에 대해서만 상세히 설명하였지만 본 발명의 기술 사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.Although the present invention has been described in detail only with respect to the described embodiments, it will be apparent to those skilled in the art that various modifications and changes are possible within the technical spirit of the present invention, and such modifications and modifications belong to the appended claims.

상기한 바와 같이, 본 발명에 따르면, 프로세서가 신뢰성을 확보하면서 패킷을 교환하는 소켓 통신을 수행하면서 프로세서가 통신 경로 또는 패킷 전송 속도 등의 문제로 인하여, 소켓에 전체 패킷이 라이트되지 못하거나, 공백 상태가 되면, 패킷을 수신하는 프로세서는 일부 패킷만을 리드하거나, 패킷을 리드하지 못하게 됨으로써 발생하는 리드 블러킹 현상을 제거하여, 프로세서의 작업 처리 효율을 극대화할 수 있는 효과가 있다. As described above, according to the present invention, while the processor performs socket communication for exchanging packets while ensuring reliability, the entire packet may not be written to the socket due to a problem such as a communication path or a packet transmission speed, or the packet may be blanked. In this state, the processor receiving the packet may read only some packets or may eliminate read blocking caused by the failure to read the packets, thereby maximizing the processing efficiency of the processor.

도 1은 일반적인 소켓 통신망의 구성을 설명하기 위한 전체 블록 도면.1 is a block diagram illustrating a general configuration of a socket communication network.

도 2는 일반적인 프로세서간의 소켓 통신 방법의 흐름을 설명하는 흐름도.2 is a flow chart illustrating the flow of a socket communication method between general processors.

도 3은 본 발명의 바람직한 실시예에 따른 소켓 통신을 하는 프로세서의 구성을 설명하기 위한 내부 블록 도면.3 is an internal block diagram illustrating a configuration of a processor for socket communication according to a preferred embodiment of the present invention.

도 4는 본 발명의 바람직한 일실시예에 따른 소켓 통신을 이용한 프로세서간 패킷 교환 방법의 흐름을 설명하는 플로우챠트 도면.4 is a flowchart illustrating a flow of an inter-processor packet exchange method using socket communication according to an embodiment of the present invention.

도 5는 본 발명의 바람직한 일실시예에 따른 라이트 작업을 수행하는 방법의 흐름을 설명하는 플로우챠트 도면.5 is a flowchart illustrating a flow of a method of performing a write operation according to an embodiment of the present invention.

도 6은 본 발명의 바람직한 실시예에 따른 리드 작업을 수행하는 방법의 흐름을 설명하기 위한 플로우챠트 도면.6 is a flowchart for explaining the flow of a method of performing a read operation according to a preferred embodiment of the present invention.

도 7은 본 발명의 바람직한 실시예에 따른 리드 작업의 흐름을 설명하하는 플로우챠트 도면.7 is a flowchart illustrating the flow of a read operation according to a preferred embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for main parts of the drawings>

10 : 프로세서 11 : 패킷 처리부10 processor 11: packet processing unit

11a : 정보 추출부 11b : 정보 비교부11a: information extraction section 11b: information comparison section

11c : 작업 처리부 12 : 큐11c: job processing unit 12: queue

Claims (12)

소켓을 통해 패킷을 교환하는 프로세서에 있어서,A processor for exchanging packets over a socket, 타 프로세서로부터 소켓에 라이팅(writing)될 패킷의 전체 길이 정보인 기준 정보와, 라이팅된 패킷의 길이 정보인 비교 정보를 추출하는 정보 추출부;An information extraction unit for extracting reference information which is overall length information of a packet to be written to a socket from another processor, and comparison information which is length information of a written packet; 상기 정보 추출부에서 추출된 기준 정보와, 비교 정보가 동일하지 않으면, 패킷 대기 신호를 제공하는 정보 비교부;An information comparison unit for providing a packet waiting signal if the reference information extracted by the information extraction unit and the comparison information are not the same; 상기 정보 비교부로부터 패킷 대기 신호가 제공되면, 상기 소켓에 라이팅된 패킷을 제 1 리드 작업을 통해 리드(read)하여, 임시 저장한 후, 라이팅되지 않은 패킷을 리드할 제 2 리드 작업을 타이머 작업에 등록하고, 다른 작업을 수행하면서 상기 타이머 작업에 설정된 시간이 지나면, 상기 다른 작업을 수행 완료하고, 상기 제 2 리드 작업을 처리하는 패킷 처리부를 포함하는 소켓 통신을 하는 프로세서.When the packet wait signal is provided from the information comparing unit, the packet read in the socket is read through a first read operation, and temporarily stored, and then a second read operation is performed to read an unwritten packet. And a packet processing unit configured to register with the terminal and to perform another task when the time set for the timer task passes, and to perform the other task, and to process the second read task. 제 1항에 있어서, 상기 정보 비교부는, The method of claim 1, wherein the information comparison unit, 상기 기준 정보와, 상기 비교 정보가 동일하면, 패킷 처리 신호를 제공하는 것을 특징으로 하는 소켓 통신을 하는 프로세서.And if the reference information and the comparison information are the same, provide a packet processing signal. 제 1항에 있어서, 상기 패킷 처리부는,The method of claim 1, wherein the packet processing unit, 상기 정보 비교부로부터 패킷 처리 신호가 제공되면, 상기 소켓에 라이팅된 패킷을 리드하고, 설정된 기능을 통해 패킷을 처리하여 출력하는 것을 특징으로 하는 소켓 통신을 하는 프로세서.And a packet processing signal provided from the information comparing unit, reads a packet written to the socket, and processes and outputs a packet through a set function. 제 1항에 있어서, 상기 패킷 처리부는, The method of claim 1, wherein the packet processing unit, 상기 정보 추출부에서 추출된 기준 정보에서 상기 비교 정보의 차이 값을 산출하여, 리드되지 않은 패킷의 길이 정보를 파악하고, 상기 파악된 패킷의 길이 정보에 따른 제 2 리드 작업을 설정하는 것을 특징으로 하는 소켓 통신을 하는 프로세서.Computing the difference value of the comparison information from the reference information extracted by the information extraction unit, to determine the length information of the unread packet, and to set the second read operation according to the determined length information of the packet Processor to communicate with the socket. 제 1 항에 있어서, The method of claim 1, 상기 소켓에서 리드하는 패킷을 임시 저장하는 다수개의 큐를 더 포함하는 것을 특징으로 하는 소켓 통신을 하는 프로세서.And a plurality of queues for temporarily storing a packet read from the socket. 제 1 항 또는 제 5 항에 있어서, 상기 패킷 처리부는,The method according to claim 1 or 5, wherein the packet processing unit, 상기 제 1 리드 작업을 통해 리드된 패킷을 제 1 큐에 임시 저장하고, 상기 타 프로세서 또는 제 3 프로세서로부터 라이팅되는 패킷을 리드하는 제 3 리드 작업을 통해 패킷이 리드되는 경우, 패킷의 시퀸스를 보장하기 위하여, 제 3 리드 작업을 통해 리드된 패킷을 제 2 큐에 임시 저장하고, 상기 타이머 작업에 등록된 상기 제 2 리드 작업을 통해 리드되지 않은 패킷이 리드되면, 상기 제 1 큐에 임시 저장하고, 상기 제 1 큐에 임시 저장된 전체 패킷을 처리하고, 상기 제 2 큐에 임시 저장된 패킷을 처리하는 것을 특징으로 하는 소켓 통신을 하는 프로세서.When a packet is read through a third read operation that temporarily stores a packet read through the first read operation in a first queue and reads a packet written from another processor or a third processor, guarantees a sequence of the packet. To temporarily store packets read through a third read job in a second queue, and if unread packets are read through the second read job registered in the timer job, the packets are temporarily stored in the first queue. And processing all packets temporarily stored in the first queue, and processing the packets temporarily stored in the second queue. 제 6항에 있어서, 상기 패킷 처리부는,The method of claim 6, wherein the packet processing unit, 상기 제 2 리드 작업을 통해 리드되는 패킷의 길이 정보와, 상기 제 1 리드 작업을 통해 리드된 패킷을 믹스(mix)한 패킷의 길이 정보가 상기 전체 길이 정보인 기준 정보와 동일하지 않은 경우, 상기 기준 정보에서 상기 믹스된 패킷의 길이 정보를 제외한 패킷을 리드하는 제 4 리드 작업을 타이머 작업에 등록하는 것을 특징으로 하는 소켓 통신을 하는 프로세서.If the length information of the packet read through the second read operation and the length information of the packet mixed with the packet read through the first read operation are not the same as the reference information that is the full length information, And a fourth read operation for reading a packet excluding the length information of the mixed packet in reference information, to a timer task. 제 1항에 있어서, 상기 타이머 작업은,The method of claim 1, wherein the timer job, 설정된 소정 시간이 지나면, 등록된 상기 리드 작업이 수행되도록 하는 것을 특징으로 하는 소켓 통신을 하는 프로세서.The processor for socket communication, characterized in that to perform the registered read operation after a predetermined time elapsed. 프로세서가 소켓을 통해 패킷을 교환하는 방법에 있어서, In a method in which a processor exchanges a packet through a socket, 타 프로세서가 상기 소켓에 라이팅할 패킷의 전체 길이 정보인 기준 정보 및 라이팅된 길이 정보인 비교 정보를 파악하는 단계;Identifying, by another processor, reference information which is overall length information of a packet to be written to the socket and comparison information which is written length information; 상기 기준 정보와, 상기 비교 정보에 따라 상기 소켓에 라이팅되는 패킷이 전체 패킷인지 여부를 판단하는 단계;Determining whether a packet written to the socket is an entire packet according to the reference information and the comparison information; 상기 각 정보가 동일하지 않으면, 상기 소켓에 라이팅된 패킷이 전체 패킷이 아니라고 판단하여, 제 1 리드 작업을 통해 리드되는 패킷을 큐에 임시 저장하고, 기준 정보와 비교 정보의 차이 값에 따른 미 완료 패킷의 길이 정보를 산출하는 단계;If the information is not the same, it is determined that the packet written to the socket is not the entire packet, and temporarily stores the packet read through the first read operation in the queue, and does not complete according to the difference between the reference information and the comparison information. Calculating length information of a packet; 상기 산출된 미 완료 패킷을 리드할 제 2 리드 작업을 타이머 작업에 등록하는 단계;Registering a second read job to read the calculated uncompleted packet with a timer job; 다른 작업을 수행하면서 타이머 작업에 설정된 소정 시간이 지나면, 상기 수행중인 다른 작업을 완료한 후, 제 2 리드 작업을 수행하는 단계를 포함하는 소켓 통신을 하는 프로세서의 패킷 교환 방법.And performing a second read operation after completing the other task being performed after a predetermined time set in the timer task while performing another task. 제 9항에 있어서, The method of claim 9, 상기 소켓에서 제 1 리드 작업을 통해 리드한 패킷을 제 1 큐에 임시 저장하는 단계;Temporarily storing a packet read through a first read operation in the socket in a first queue; 상기 타 프로세서 또는 제 3 프로세서로부터 라이팅되는 패킷을 리드하는 제 3 리드 작업을 통해 전체 패킷이 리드되면, 제 2 큐에 임시 저장하고, 상기 제 2 리드 작업을 통해 미 완료 패킷이 리드되는지 여부를 판단하는 단계;When the entire packet is read through a third read operation for reading a packet written from another processor or a third processor, the entire packet is temporarily stored in a second queue, and the second read operation determines whether an incomplete packet is read. Making; 상기 판단 결과, 상기 미 완료 패킷이 리드되면, 상기 제 1 큐에 임시 저장하고, 상기 제 1 큐에 임시 저장되는 패킷을 처리하는 단계;If the incomplete packet is read as a result of the determination, temporarily storing the packet in the first queue and processing the packet temporarily stored in the first queue; 상기 제 1 큐에 임시 저장된 패킷을 처리하고, 상기 제 2 큐에 임시 저장된 패킷을 처리하는 단계를 더 포함하는 소켓 통신을 하는 프로세서의 패킷 교환 방법.Processing a packet temporarily stored in the first queue, and processing the packet temporarily stored in the second queue. 제 10항에 있어서, The method of claim 10, 상기 제 2 리드 작업을 통해 리드되는 패킷과, 상기 제 1 큐에 임시 저장된 패킷을 믹스한 패킷의 길이 정보와 상기 기준 정보가 동일하지 않으면, 상기 기준 정보에서 상기 믹스한 패킷의 길이 정보를 제외한 패킷을 리드할 제 4 리드 작업을 타이머 작업에 등록하는 단계를 더 포함하는 것을 특징으로 하는 소켓 통신을 하는 프로세서의 패킷 교환 방법.If the length information of the packet mixed through the second read operation and the packet temporarily stored in the first queue and the reference information are not the same, the packet excluding the length information of the mixed packet from the reference information And registering a fourth read job to be read in the timer job. 제 10항에 있어서, 패킷의 전체 길이 정보의 파악은,The method of claim 10, wherein the grasp of the full length information of the packet, 상기 소켓에 라이팅되는 패킷의 헤더(header)를 분석하여, 전체 길이 정보인 기준 정보를 파악하는 것을 특징으로 하는 소켓 통신을 하는 프로세서의 패킷 교환 방법.And analyzing the header of the packet written to the socket to determine reference information which is full length information.
KR10-2004-0007361A 2004-02-04 2004-02-04 apparatus method of exchange packet in socket communication processor KR100534618B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2004-0007361A KR100534618B1 (en) 2004-02-04 2004-02-04 apparatus method of exchange packet in socket communication processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2004-0007361A KR100534618B1 (en) 2004-02-04 2004-02-04 apparatus method of exchange packet in socket communication processor

Publications (2)

Publication Number Publication Date
KR20050079189A KR20050079189A (en) 2005-08-09
KR100534618B1 true KR100534618B1 (en) 2005-12-07

Family

ID=37266182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-0007361A KR100534618B1 (en) 2004-02-04 2004-02-04 apparatus method of exchange packet in socket communication processor

Country Status (1)

Country Link
KR (1) KR100534618B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102371988B1 (en) * 2015-08-31 2022-03-11 현대오토에버 주식회사 Optimization of internal communication between applications in the Android Open Source Project based

Also Published As

Publication number Publication date
KR20050079189A (en) 2005-08-09

Similar Documents

Publication Publication Date Title
US11210148B2 (en) Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
US11855881B2 (en) System and method for facilitating efficient packet forwarding using a message state table in a network interface controller (NIC)
US6016513A (en) Method of preventing packet loss during transfers of data packets between a network interface card and an operating system of a computer
EP2406723B1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
JP4624110B2 (en) Usage of direct memory access to perform database operations between two or more machines
US6747949B1 (en) Register based remote data flow control
US6888792B2 (en) Technique to provide automatic failover for channel-based communications
EP2741456A1 (en) Method, device, system and storage medium for achieving message transmission of pcie switch network
GB2339517A (en) Message transmission between network nodes connected by parallel links
JP2002222110A (en) Storage system and virtual private volume controlling method
JPH0824320B2 (en) Method and device for buffer chaining in communication control device
JP3214454B2 (en) Packet processing device with built-in program
US6856619B1 (en) Computer network controller
KR100534618B1 (en) apparatus method of exchange packet in socket communication processor
US7636313B2 (en) Use of internal buffer to reduce acknowledgement related delays in acknowledgement-based reliable communication protocols
KR100489942B1 (en) method of data transmission between processor using socket communication
KR100311619B1 (en) How to send and receive messages between processors in a distributed processing system
US10528500B2 (en) Data packet processing method
CN114513381A (en) Real-time Ethernet field bus data packet processing method based on AF _ XDP
CN116303176A (en) Data transmission method, device, equipment and storage medium
CN117579570A (en) PCIe-based data transmission method, device and system
KR19980086586A (en) System Resource Reduction Tool Using TCP / IP Socket Application
KR19980086587A (en) System Resource Reduction Tool Using TCP / IP Socket Application

Legal Events

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

Payment date: 20081107

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee