KR19990043486A - 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법 - Google Patents
다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법 Download PDFInfo
- Publication number
- KR19990043486A KR19990043486A KR1019970064493A KR19970064493A KR19990043486A KR 19990043486 A KR19990043486 A KR 19990043486A KR 1019970064493 A KR1019970064493 A KR 1019970064493A KR 19970064493 A KR19970064493 A KR 19970064493A KR 19990043486 A KR19990043486 A KR 19990043486A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- packet
- receiving
- variable length
- packets
- Prior art date
Links
- 239000000872 buffer Substances 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000006854 communication Effects 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000003672 processing method Methods 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
- H04L47/365—Dynamic adaptation of the packet size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법에 관한 것으로, 통상 다중 타스크 환경에서 한 개의 통신 경로를 여러 개의 타스크가 공유하며 가변길이의 패킷 세그멘트를 송신할 때에는 수신측 프로세스에서 가변 길이 패킷 세그멘트에 대한 처리를 해 주어야 한다. 이에 본 발명은 송신측 컴퓨터 시스템에서 가변길이의 이더넷 세그멘트를 임의로 송신할 때, 수신측 컴퓨터 시스템에서 수신된 패킷을 처리하기 위하여 소켓 수신 버퍼에 도착한 가변길이 패킷을 처리하므로써 이더넷을 통신 매체로 이용하는 서로 다른 컴퓨터 시스템에서 프로세스간 통신을 할때 독자적으로 정의한 데이터 구조를 가지고 상호 통신을 하며, 가변 길이의 연속 패킷을 전송하여 처리하므로써 다중 타스크 방식을 이용하는 내장형 시스템과 유닉스기반의 컴퓨터 시스템간에 이더넷을 물리매체로하며 소켓을 이용한 프로세스간 통신시 수신 프로세스 처리방법으로 사용될 수 있게 한다.
Description
본 발명은 이기종 컴퓨터 시스템간에 이더넷을 이용한 소켓 통신분야의 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리방법에 관한 것으로, 상세하게는 이기종 시스템간에 타스크간 통신을 하기위하여 이더넷을 이용한 소켓 통신을 할 때, 여러 개의 타스크에서 송신된 가변길이의 패킷을 수신측의 타스크에서 분리하여 수신하는 방법에 관한 것이다.
유닉스(UNIX) 운영체제를 기반으로 하는 시스템들은 시스템간의 통신을 위한 물리매체로서 이더넷을 사용하고 있다. 이더넷에서 데이터링크 계층 프로토콜로서 IP(Internet Protocol)을 사용하며 패킷의 전송오류에 대한 보장을 위하여 TCP(Transmission Control Protocol)를 사용한다. 또한 응용 레벨에서는 소켓(Socket)을 이용하여 통신을 하도록 되어있다. 일반적인 이더넷의 응용프로그램으로는 Telnet, FTP(File Transfer Protocol), HTTP(Hyper-Text Transport Protocol)등이 있으며 이런 프로토콜은 클라이언트 서버간 1대1 통신을 기본으로 한다. 이때 클라이언트 서버간의 통신연결은 매번 연결시마다 다른 소켓 포트를 이용하게 되며 서버 시스템에서는 포트 번호를 논리적 연결식별자로 사용한다.
본 발명이 적용되는 분야는 클라이언트와 서버간에 소켓을 이용하여 통신을 하는 경우에 한 개의 포트 번호를 이용하여 한 개의 논리적 연결을 설정하되 송신측에 다수의 타스크(또는 프로세스)가 같은 통신포트를 공유하여 송신하게 될 때 수신측에서 처리하는 방법에 관한 것이다. 수신측에서는 임의의 순서로 가변길이의 패킷이 소켓 버퍼로 수신됨에 따라 수신측에서 적절한 패킷 식별 알고리즘이 필요하므로 본 발명을 적용하여 해결하려는 것이다.
종래의 방법을 설명하면 다음과 같다. 이 방법들은 다수의 송신 타스크가 같은 통신 포트를 공유하여 패킷을 송신할 때 수신측에서 처리하는 방법을 설명한다.
첫째, 송신측에서 각각의 송신 타스크들은 미리 약정된 고정 패킷 크기로 송신하고 수신측 타스크에서는 미리 약정된 크기로 수신 버퍼에서 읽어내어 처리하여 연속된 패킷을 분리하여 처리할 수 있다. 이 방법은 가장 간단한 방법으로 구현하기 용이한 반면 가변길이의 패킷을 사용할 수 없다는 단점이 있다.
둘째, 송신측에서는 패킷을 송신할 때 일정한 시간간격을 두고 패킷을 송신하게 하며 수신측에서는 패킷이 도착하는 즉시 읽어내어 연속된 패킷을 분리하여 처리할 수 있다. 이 방법은 송신측에서 일정한 시간 간격을 두고 송신하기 때문에 수신측에서는 송신측에서 보낸 패킷 단위로 읽어낼 수 있지만 이더넷이 폭주시에는 패킷을 보낼 수 없으므로 송신측 버퍼에 오버플로우(Overflow)가 발생할 수 있으며 고속 송신에도 불리하다.
셋째, 미리 약정된 고정 패킷 크기로 송신하되 패킷의 길이가 가변적일 경우에 유효한 패킷의 나머지 부분에 대해서 모두 NULL 문자로 채워서 보낸다. 이방법은 가변길이의 패킷을 송신할 수 있다는 장점을 가지고 있으나 패킷의 나머지 부분은 NULL로 채워짐에 따라서 패킷의 오버헤드가 증가하여 망 사용 효율이 저하되는 단점이 있다.
본 발명이 구체적으로 적용되는 분야는 클라이언트와 서버간의 통신 환경으로,
1) 서버는 워크스테이션급 컴퓨터 시스템이며,
2) 클라이언트는 동급이하의 워크스테이션 또는 내장형 시스템(Embeded System)으로,
3) 이더넷을 이용하여 통신하며,
4) TCP/IP 또는 UDP/IP 프로토콜을 사용하고,
5) 응용레벨 통신을 위한 API(Application Program Interface)로서 소켓(Socket)을 이용하며,
6) 송신 측 시스템에서는 여러 개의 타스크가 동일한 소켓 포트를 공유하여 통신하며,
7) 수신측 시스템에서는 한 개의 수신 타스크가 수신버퍼에 도착한 패킷을 읽어내어 패킷단위의 처리를하는 구조로 되어있는 통신 수단이 필요하다.
상기의 종래 기술에서 살펴본 바와 같이 서로 다른 시스템간에 소켓을 이용하여 통신을 할 때 송신측에서 여러 개의 타스크들이 한 개의 소켓 포트를 공유하여 가변길이의 패킷 세그멘트를 송신할 때에 수신측에서 수신타스크가 수신버퍼에 도착된 패킷을 구분하여 처리하기 위해서는 가변 길이 이더넷 세그멘트 처리 방법이 필요하다. 이에 본 발명은 상기 종래의 문제점을 해결하는 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법를 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는 시스템 구성도.
도 2 는 본 발명에 의한 응용레벨 패킷 구조도.
도 3 은 본 발명에 의한 수신큐에 가변길이 패킷이 수신된 예
도 4 는 본 발명에 의한 전체 처리 흐름도
도 5 는 본 발명에 의한 잔류 데이터 처리 흐름도
도 6 은 본 발명에 의한 복수 패킷 처리 흐름도
* 도면의 주요부분에 대한 부호의 설명
101 : 시스템 1 102,103,110,111 : 송신 타스크
104,109 : 수신 타스크 105,113 : 송신 큐
106,112 : 수신 큐 107 : 소켓
108 : 시스템 2
상기 목적을 달성하기 위한 본 발명에 의한 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법은 다중 타스크 방식을 이용하는 내장형 시스템과 유닉스기반의 컴퓨터 시스템간에 통신을 할 경우 응용레벨에서 이더넷 소켓을 이용하여 타스크간 통신을 하며 송신측 컴퓨터 시스템 내에서 운용되는 여러개의 타스크에서 임의로 가변길이의 패킷을 송신할 때에, 수신측 컴퓨터 시스템에서 한 개의 수신처리 타스크가 패킷 수신을 하도록, 응용레벨에서 사용하는 복수의 패킷이 수신될 때 소켓 수신버퍼에 저장하여 수신버퍼의 주소와 데이터 패킷 구조를 매핑하여 헤더로부터 패킷길이를 구하고 정상적인 패킷을 식별하여 처리하는 제 1 단계를 수행하고, 상기 제 1 단계 처리후 수신버퍼에서 처리한 데이터 크기를 감(減)한 후에도 데이터가 있을 경우에 반복적으로 남을 데이터 패킷을 처리하여 복수개의 정상적인 패킷을 처리하여 이더넷 소켓을 이용한 응용레벨 데이터를 수신하는 제 2 단계를 수행하는 것을 특징으로 한다.
또 다른 바람직한 실시예는 상기 제 2 단계를 수행하여 복수의 정상적인 패킷을 처리한 후 남은 데이터의 헤더를 분석할 때 헤더의 데이터필드 값보다 남아있는 실제의 데이터가 작거나, 정상적인 패킷을 처리한 후 남은 데이터크기가 데이터 구조의 헤더 크기보다 작아서 헤더를 분석할 수 없을 경우에, 남은 데이터를 잔류버퍼에 저장하여 다음 패킷을 수신한 후 정상적인 패킷으로 만든 후 처리하여 이더넷 소켓을 이용한 응용레벨 데이터 수신하는 제 3 단계를 더 포함하여 수행하는 것을 특징으로 한다.
상기한 내용에서 설명한 기술적인 요구사항을 해결하기 위하여 강구된 기술적 수단 및 작용을 설명하면 다음과 같다.
도 1은 본 발명이 적용되는 시스템 구성도이다. 도시된 바와 같이 서로 다른 컴퓨터 시스템으로 클라이언트로 운용되는 시스템1(101)과 서버로 동작하는 시스템2(108)이 구비되고, 각 시스템(101,108)에는 다수개의 송신타스크(102,103,110)들과 그 송신타스크(102,103,110)에 연결되는 송신큐(105,113)와 수신타스크(104,109)와 그 수신 타스크(104,109)들이 연결되는 수신큐(106,112)를 구비하고 있으며 각각의 송수신 큐(105,106,113,112)를 연결하기 위한 소켓(107)이 구비된다.
시스템1(101)과 시스템 2(108)는 서로 다른 컴퓨터 시스템이며 시스템 1(101)은 클라이언트로 운용되고 시스템 2(108)은 서버로 동작한다. 시스템 1(101)에는 응용프로그램 간 통신을 위하여 물리매체로 이더넷을 사용하고 전달 프로토콜로 TCP/IP또는 UDP/IP를 통신프로토콜로 사용하는 소켓 인터페이스(107)가 존재한다. 소켓은 양방향 통신 기능을 가지며 데이터 전송을 위하여 송신큐(105)와 수신큐(106)를 가지고 있다. 응용프로그램은 타스크 레벨로 수행되며 타스크간 통신은 같은 시스템 내에서는 메시지 큐를 이용하며 다른 시스템과 통신하기 위하여 송신큐(105), 수신큐(106)을 사용한다. 타스크는 사용자의 입장에서보면 일정한 일을 반복적으로 수행하는 독립된 프로그램 모듈로서 여러 개의 타스크들이 모여 하나의 완성된 응용프로그램을 기능을 수행한다.
시스템 2(108)는 시스템 1(101)과 마찬가지로 응용프로그램 간 통신을 위하여 물리매체로 이더넷을 사용하고 전달 프로토콜로 TCP/IP또는 UDP/IP를 통신프로토콜로 사용하는 소켓 인터페이스(107)가 존재한다. 소켓은 양방향 통신 기능을 가지며 데이터 전송을 위하여 송신큐(113)와 수신큐(112)를 가지고 있다.
시스템 1(101)과 시스템 2(108)간의 소켓 연결은 두 시스템에서 각각 소켓 식별자를 할당받은 후에 3 방향 핸드쉐이킹(3 way hand-shaking)에 의한 연결 설정 과정을 거친 후에 연결이 설정된다. 시스템 1(101)에서는 송신타스크1(102)와 송신타스크 N(103)등 여러 개의 타스크에서 송신큐(105)를 공유하여 시스템 2(108)의 수신큐(112)로 패킷을 송신하며 시스템 2(108)에서도 마찬가지 방법으로 수신큐(113)를 공유하여 시스템1(101)의 수신큐(106)로 패킷을 송신한다.
각 시스템의 수신 큐(106, 112)에는 송신타스크에서 보낸 패킷이 버퍼에 쌓이게 되며 수신타스크(109, 104)에서 주기적으로 큐를 체크하여 메시지가 도착했는지 여부를 확인한다. 수신 큐에는 여러 개의 가변길이 패킷이 순서대로 쌓이게 되며 수신 타스크(109, 104)에서는 수신큐로부터 일정한 크기만큼의 데이터를 읽어내어 처리하게 된다. 그런데 송신 타스크에서 가변길이 패킷을 송신하였으므로 수신타스크에서 읽어내는 버퍼의 내용에는 응용레벨에서 사용하는 데이터 구조의 크기에 정확히 일치하지 않는 패킷이 읽혀지며, 여러 개의 패킷을 식별하여 처리하기 위해서는 가변 길이 이더넷 세그멘트 처리 방법이 수행 되어야 한다.
도 2는 응용레벨 패킷 구조도로서 서로 다른 시스템상에서 타스크간에 주고받는 데이터 형식의 예이다. 패킷 구조는 헤더 필드와 데이터 필드로 구성되어 있다. 헤더필드는 프로토콜 식별자(201), 메시지 타입(202), 사용자 정의필드(203) 및 데이터의 길이필드(204)로 구성되어 있다. 여기에서 데이터 길이 필드(204)는 데이터 필드의 옥텟 수를 나타낸다.
도 3은 수신큐에 가변길이 패킷이 수신된 예를 나타낸다. 수신 큐(112, 106)에 도착한 패킷열은 응용레벨 패킷 구조(도 2)로 구성되어 있고 각각의 패킷은 가변 길이이므로 헤더의 길이는 모두 같고 데이터의 길이는 헤더의 데이터 길이 필드(204)만큼의 길이를 가진다.
도 4는 수신측 컴퓨터 시스템에서 수신 소켓 버퍼로부터 가변길이 데이터 패킷을 읽어내어 처리하는 전체 처리 흐름도이다. 시작(401), 버퍼 초기화(402), 플래그 세팅(403) 부분은 수신처리를 수행하기 위한 초기화 부분이다. 수신처리를 위한 버퍼로는 데이터수신버퍼, 잔류데이터버퍼, 임시버퍼가 있고 모두 문자형 데이터 구조를 가지며 데이터패킷구조(도 2)의 2배 크기의 배열(Array)로 구성된다. 플레그세팅은 잔류데이터가 있는지 여부를 최초로 설정하는 부분으로 플래그를 OFF시켜 놓으며, 수신데이터크기(CC, NEW_CC)와 잔류데이터크기, 미수신데이터크기 변수를 0으로 초기화 시킨다.
상기의 초기화 부분 이하는 가변길이의 패킷을 수신하여 처리하는 무한루프로서 주기적인 폴링으로 소켓수신 버퍼상태를 확인하여 수신버퍼에 데이터가 있을 때 수신처리 기능을 수행한다. 가변 패킷이 도착할 경우는 크게 3가지로 분류할 수 있다.
첫째, 소켓 수신버퍼에 한 개의 완전한 패킷이 수신될 경우를 설명하면 다음과 같다. 수신 루틴에서는 우선 잔류데이터가 있는지 확인한다(404). 잔류데이터 플래그는 수신 데이터 크기가 패킷크기보다 작은 불완전한 패킷이 도착할 때 세팅된다. 잔류데이터가 없으면 소켓 수신버퍼로부터 도착한 패킷을 읽어낸다(406). 읽혀진 데이터는 데이터수신버퍼에 저장되며, 읽은 데이터의 크기는 CC 변수에 저장된다. CC 변수는 다음처리를 위하여 새로운 변수 NEW_CC에 저장되고(407), 잔류데이터가 없으므로(408), 수신버퍼의 주소와 데이터 패킷 구조가 매핑된다(410). 데이터 패킷 구조로 매핑된 패킷에서 패킷의 길이를 구하여(411) 패킷의 길이와 읽은 데이터의 크기(NEW_CC)를 비교한다. 위에서 한 개의 완전한 패킷이 수신된 것으로 가정하였으므로 NEW_CC와 패킷 길이는 같은 결과가 나오며 정상 패킷이 수신된 것으로 판단하고 패킷을 처리한다(414).
둘째, 소켓 수신버퍼에 도 3과 같이 여러 개의 패킷이 수신된 경우이다. 이더넷은 최대 세그멘트 크기(MTU : Maximum Transmission Unit)로 1500 바이트를 사용하며 TCP/IP헤더를 제외한 데이터 패킷의 최대 크기는 1460 바이트이다. 따라서 다중타스크 환경에서 사용자가 정의한 가변패킷은 수십에서 수백바이트 크기이므로 여러 개의 패킷이 연속으로 도착할 경우가 많이 발생한다. 소켓 수신버퍼에 여러 개의 완전한 패킷이 수신될 경우를 설명하면 다음과 같다.
수신 루틴에서는 우선 잔류데이터가 있는지 확인한다(404). 잔류데이터가 없으면 소켓 수신버퍼로부터 도착한 패킷을 읽어낸다(406). 읽혀진 데이터는 데이터수신버퍼에 저장되며, 읽은 데이터의 크기는 CC 변수에 저장된다. CC 변수는 다음처리를 위하여 새로운 변수 NEW_CC에 저장되고(407), 잔류데이터가 없으므로(408), 수신버퍼의 주소와 데이터 패킷 구조가 매핑된다(410). 데이터 패킷 구조로 매핑된 패킷에서 패킷의 길이를 구하여(411) 패킷의 길이와 읽은 데이터의 크기(NEW_CC)를 비교한다. 위에서 여러 개의 완전한 패킷이 수신된 것으로 가정하였으므로 NEW_CC는 패킷 길이보다 큰 결과가 나오며 정상 패킷이 수신된 것으로 판단하고 도 5와 같은 복수 패킷 처리 방식으로 처리한다(413). 여기서는 가장 먼저 도착한 1개의 정상패킷을 처리한다(501). 다음에 NEW_CC에서 정상으로 처리한 패킷의 길이를 뺀후(502), 수신 버퍼에서 NEW_CC 만큼의 데이터를 임시버퍼에 복사한다(503). 정상적인 패킷 처리를 위하여 다시 수신버퍼를 모두 클리어 시킨후에 임시 버퍼에서 NEW_CC 만큼의 데이터를 수신 버퍼에 복사한다(504). 이 과정이 완료되면 다시 수신버퍼의 주소와 데이터 패킷 구조를 매핑하여(410), 패킷 길이를 구하고(411), 다음 패킷을 처리하는 방법으로 나머지 복수 패킷을 모두 처리한다.
셋째, 복수개의 패킷이 수신되었을 때 이더넷의 최대패킷크기(MTU)의 제한 때문에 패킷의 중간까지만 수신될 경우에 처리하는 방법이다. 이것은 통상 송신 버퍼의 크기가 이더넷 최대패킷크기인 1500 바이트보다 크기 때문에 송신 버퍼에 많은 패킷이 있을 때 TCP/IP 프로토콜에서 송신버퍼의 데이터를 세그멘트(Segment)시켜서 전송하기 때문에 발생하는 현상이다. 이 경우에는 복수개의 패킷처리루틴을 수행하다가 패킷길이비교단계(412)에서 수신된 패킷길이(NEW_CC) 가 원래 패킷 길이(헤더+데이터)보다 작은 경우가 발생한다. 이경우는 패킷 길이 구하기(411)에서 패킷의 헤더크기보다 작은 패킷을 수신하였을 경우를 포함한다. 이경우는 모두 패킷 길이오류로 간주하고 수신버퍼에서 NEW_CC 바이트를 잔류버퍼에 복사하고(415), 잔류버퍼플래그를 ON한 후 잔류데이터 크기와 미수신한 데이터 크기를 계산한 후(416) 소켓수신 버퍼로부터 미수신된 데이터를 읽는 루틴을 수행한다.
미수신 데이터가 있을 때는 잔류데이터플래그가 ON(404)이므로 소켓 수신버퍼에서 데이터 수신버퍼로 미수신된 데이터 크기만큼의 데이터만 읽어들인다(405). 읽어들인 데이터의 크기는 다음 처리를 위하여 NEW_CC에 저장되고 잔류데이터플래그가 ON이므로(408) 도 6과 같은 처리과정을 거친다.
먼저 잔류 버퍼에서 잔류데이터 크기만큼 임시버퍼에 저장한다(601). 여기에서 임시버퍼에 저장된 데이터는 불완전한 패킷이므로 수신버퍼에 있는 데이터를 NEW_CC만큼 임시버퍼의 마지막 데이터 위치 뒤에 붙여 넣는다(602). NEW_CC 에 잔류데이터 크기를 더한 후(603), 임시버퍼에서 NEW_CC만큼을 수신버퍼에 복사한다. 이상의 과정을 통하여 중간이 분리된 패킷은 정상적인 1개의 패킷으로 수신되게 된다. 잔류데이터 처리를 마친후에는 잔류데이터크기, 잔류데이터플래그, 미수신데이터 크기를 모두 리셋시킨다.
본 발명에서 제시한 구성에 따라 다중 타스크 방식을 이용하는 내장형 시스템과 유닉스기반의 컴퓨터 시스템간에 통신시 수신 프로세스 처리방법에 적용했을 때 나타나는 효과는 다음과 같다.
첫째, 이기종 컴퓨터 시스템간에 이더넷 소켓을 공유 매체로 여러 개의 타스크에서 가변길이의 패킷을 송신시 한 개의 수신 처리 타스크가 패킷을 분리하여 처리할 수 있다.
둘째, 이기종 컴퓨터 시스템간에 이더넷 소켓을 공유 매체로 여러 개의 타스크에서 가변길이의 패킷을 송신시 각각의 타스크마다 일대일 소켓연결설정을 하지 않으므로 소켓 통신관리가 용이하다.
셋째, 소켓을 이용한 응용레벨 프로세스간 통신시 사용자가 정의한 데이터 구조로 통신할 때 패킷의 유실을 방지하여 통신의 신뢰성을 보장할 수 있다.
Claims (2)
- 다중 타스크 방식을 이용하는 내장형 시스템과 유닉스기반의 컴퓨터 시스템간에 통신을 할 경우 응용레벨에서 이더넷 소켓을 이용하여 타스크간 통신을 하며 송신측 컴퓨터 시스템 내에서 운용되는 여러개의 타스크에서 임의로 가변길이의 패킷을 송신할 때에,수신측 컴퓨터 시스템에서 한 개의 수신처리 타스크가 패킷 수신을 하도록, 응용레벨에서 사용하는 복수의 패킷이 수신될 때 소켓 수신버퍼에 저장하여 수신버퍼의 주소와 데이터 패킷 구조를 매핑하여 헤더로부터 패킷길이를 구하고 정상적인 패킷을 식별하여 처리하는 제 1 단계와;상기 제 1 단계 처리후 수신버퍼에서 처리한 데이터 크기를 감(減)한 후에도 데이터가 있을 경우에 반복적으로 남을 데이터 패킷을 처리하여 복수개의 정상적인 패킷을 처리하여 이더넷 소켓을 이용한 응용레벨 데이터를 수신하는 제 2 단계를 수행하는 것을 특징으로 하는 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법.
- 제 1 항에 있어서,상기 제 2 단계를 수행하여 복수의 정상적인 패킷을 처리한 후 남은 데이터의 헤더를 분석할 때 헤더의 데이터필드 값보다 남아있는 실제의 데이터가 작거나, 정상적인 패킷을 처리한 후 남은 데이터크기가 데이터 구조의 헤더 크기보다 작아서 헤더를 분석할 수 없을 경우에,남은 데이터를 잔류버퍼에 저장하여 다음 패킷을 수신한 후 정상적인 패킷으로 만든 후 처리하여 이더넷 소켓을 이용한 응용레벨 데이터 수신하는 제 3 단계를 더 포함하여 수행하는 것을 특징으로 하는 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970064493A KR19990043486A (ko) | 1997-11-29 | 1997-11-29 | 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970064493A KR19990043486A (ko) | 1997-11-29 | 1997-11-29 | 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990043486A true KR19990043486A (ko) | 1999-06-15 |
Family
ID=66094508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970064493A KR19990043486A (ko) | 1997-11-29 | 1997-11-29 | 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR19990043486A (ko) |
-
1997
- 1997-11-29 KR KR1019970064493A patent/KR19990043486A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2004272192C1 (en) | Internet protocol optimizer | |
US6091710A (en) | System and method for preventing data slow down over asymmetric data transmission links | |
US7742454B2 (en) | Network performance by dynamically setting a reassembly timer based on network interface | |
Postel | Rfc0793: Transmission control protocol | |
US6594701B1 (en) | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data | |
US6587431B1 (en) | Supertrunking for packet switching | |
EP1771742B1 (en) | High performance tcp for systems with infrequent ack | |
KR101365838B1 (ko) | 개선된 분산형 커널 운영 시스템 | |
US7308001B2 (en) | Fibre channel frame batching for IP transmission | |
US7953093B2 (en) | TCP/IP reordering | |
US20030145101A1 (en) | Reduction of resource usage in TCP/IP implementation | |
KR100542368B1 (ko) | 브로드캐스팅 기능이 구비된 간단한 파일전송시스템 및 그방법 | |
US20070291782A1 (en) | Acknowledgement filtering | |
US7286483B2 (en) | Electronic data transfer based on selective storage of incoming packets | |
US8578040B2 (en) | Method, system and article for client application control of network transmission loss tolerance | |
US20040267960A1 (en) | Force master capability during multicast transfers | |
Maccabe et al. | Experience in offloading protocol processing to a programmable NIC | |
US20050180387A1 (en) | Method for organising communication between manager objects and managed objects in a communication network, architecture and software thereof | |
KR19990043486A (ko) | 다중 타스크 환경에서 가변 길이 이더넷 세그멘트 처리 방법 | |
EP3955115B1 (en) | Flexible link level retry for shared memory switches | |
Shihab | The Mechanism of Congestion between the Server and Clients in a Local Area Network Solutions | |
Presotto et al. | The IL protocol | |
CA2246134C (en) | Enhanced network protocol | |
KR100590886B1 (ko) | 파일 전송 시스템의 파일 전송 방법 및 그 장치 | |
Libes et al. | Packet-Oriented Communication using a Stream Protocol or Making TCP/IP on Berkley Unix a Little More Pleasant to Use |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |