KR19980021577A - 수신 패킷의 파손 검출 및 복구 방법 - Google Patents

수신 패킷의 파손 검출 및 복구 방법 Download PDF

Info

Publication number
KR19980021577A
KR19980021577A KR1019960040479A KR19960040479A KR19980021577A KR 19980021577 A KR19980021577 A KR 19980021577A KR 1019960040479 A KR1019960040479 A KR 1019960040479A KR 19960040479 A KR19960040479 A KR 19960040479A KR 19980021577 A KR19980021577 A KR 19980021577A
Authority
KR
South Korea
Prior art keywords
packet
value
checksum
result
receiving
Prior art date
Application number
KR1019960040479A
Other languages
English (en)
Other versions
KR100204586B1 (ko
Inventor
임옥수
조무호
조철회
Original Assignee
양승택
한국전자통신연구원
손익수
주식회사 데이콤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 양승택, 한국전자통신연구원, 손익수, 주식회사 데이콤 filed Critical 양승택
Priority to KR1019960040479A priority Critical patent/KR100204586B1/ko
Publication of KR19980021577A publication Critical patent/KR19980021577A/ko
Application granted granted Critical
Publication of KR100204586B1 publication Critical patent/KR100204586B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/04Error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 수신 패킷의 파손 검출 및 복구 방법에 관한 것으로, 외부 선입선출 버퍼(FlFO)에서 발생하는 패킷 에러를 감치하기 위해 소프트웨이 첵섬(checksum)을 고안하고 첵섬으로 인한 통신 처리 속도상의 부하를 최소화하기 위해 데이터의 중요도에 따라 송신단에서 선택적으로 소프트웨어 첵섬을 운용한다. 수신단에서는 이에 대한 검증을 수행하여 첵섬 결과에 의해 패킷 파손이 탐지된 경우 파손된 패킷을 버리고 파손된 패킷에 대한 복구는 종단 시스템간에 적용되는 종래의 에러 제어기법을 적용함으로써 데이터의 신뢰성을 보장받을 수 있게 한다. 따라서 외부 선입선출 버퍼를 메모리 소자로 채택하는 임베디드(embedded) 통신 시스템이 실시간으로 통신을 원할 경우 속도상의 성능을 잃지 않으면서 완벽한 에러 제어 기능을 제공할 수 있는 수신 패킷의 파손 검출 및 복구 방법이 개시된다.

Description

수신 패킷의 파손 검출 및 복구 방법
본 발명은 외부 선입선출 버퍼를 내장하는 통신 보드의 수신부에서 수행되는 수신패킷의 파손 검출 및 복구 방법에 관한 것으로, 특히 종단간 프로토콜을 적용하는 고수준 데이터 연결 제어(High 1evel Data Link Contro1 : 이하 HDLC 라 함) 기반의 실시간 동기식 통신 방식에서 프로세서간 통신시 고 신뢰성을 보장할 수 있는 수신패킷의 파손 검출 및 복구 방법에 관한 것이다.
종래의 전형적인 X.25같은 패킷 통신의 에러 제어 기법은 계층 3인 네트워크 계층과 계층 2인 데이터 링크 계층의 수신단에서 직렬 입출력 제어기에서 검출하는 각종 에러들에 대한 상대화 일련의 패킷 및 프레임 순서 번호에 의해 손실된 패킷을 검출하고 송신단에 유실된 패킷들에 대해 재전송을 요구하는 방식을 택하고 있다. x.25같은 패킷 통신의 경우 직렬 입출력 제어기의 에러 탐치 기능에 의해 정상적인 프레임으로 간주되어 외부 선입선출 버퍼(First In First 0ut : 이하 FIFO 라 함)와 직접 메모리 접근 제어기를 통과한 수신 패킷들은 최종 수신단에서 프레임 헤더 및 패킷 헤더내의 손서 번호만 일치하면 패킷 데이터의 내용의 파손과 무관하게 정상으로 처리된다.
그러나 외부 FlF0를 장착한 보드상에서 FlF0에서 파손된 패킷을 단순히 순서 번호에만 의존하여 유실 유무를 판정하는 것은 완전하지 않다. 왜냐하면 직렬 입출력 제어기를 각종 에러없이 통과하였을 경우 적어도 송신단에서 망을 통해 수신단의 직렬 입출력 제어기까지 전송된 패킷은 이상이 없다는 사실이 보장된다. 그러나 직접 메모리 접근 제어기는 자제의 오동작 탐지 기능 이외에는 직렬 입출력 제어기같이 패킷 자체의 파손 유무를 알 수 있는 기능이 없다. 따라서 이들 사이에 존재하는 메모리 소자인 하드웨어 FIFO를 직접 메모리 접근 제어기가 읽어내는 과정에서 패킷이 깨질 경우 문제는 심각해진다. 파손의 가능성은 통신 보드의 다양한 인터럽트들에 의한 간섭 현상, 직렬 입출력 제어기와 직접 메모리 접근 장치간의 속도 차이, FIFO 자제의 읽기/쓰기 포인터 불일치 현상으로 인해 야기될 수 있다.
패킷 파손의 종류는 크게 두 가지로 분류되는데 첫째는 손서 번호를 포함하는 패킷헤더 부분의 파손과 둘째는 사용자 데이터 부분의 손상을 들 수 있다. 외부 FIFO에서 순서 번호를 포함하는 패킷 헤더 부분이 손상된다면 이로인해 잘못된 프로토콜처리 과정을 수행한다. 사용자 데이터의 손상은 데이터의 내용이 중요할수록 파급 효과는 커진다.
따라서 본 발명에서는 외부 수신 FIFO의 요인으로 인해 발성하는 문제를 해결하기 위한 수신 패킷의 파손 검출 빚 복구 방법을 제공하는데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 수신 패킷의 파손 검출 및 복구 방법은 송신 처리 구동기의 패킷 송신 요구 대기 상대에서 응용 프로그램의 패킷 전송요구 호출문을 수신하는 단계와, 상기 패킷 전송 요구 호출문을 수신한 송신 처리구동기에서 송신 윈도우의 송신 변수와 마지막 수신 변수의 차를 시스템 파라미터와 비교하는 단계와, 상기 비교 결과에 따라 송신 변수화 마지막 수신 변수의 차가 시스템 파라미터보다 작을 경우 패킷 헤더를 생성하고 송신 변수를 증가시키는 단계와, 상기 패킷 헤더 생성이 끝난 후 첵섬 생성 설차를 호출하는 단계와, 상기 첵섬 생성 절차에 의해 첵섬 생성이 끝난 패킷에서 송신 윈도우의 재전송 큐에 송신할 패킷을 저장하는 단계와, 상기 재전송 큐에 패킷을 저장한 후 해당 패킷을 직접메모리 접근 제어기와 직렬 입출력 제어기를 통해 송신하고 패킷 송신 대기 상대를 유치하는 단계와, 상기 비교 결과에 따라 송신 변수와 마지막 수신 변수의 차가 시스템 파라미터보다 크거나 같을 경우 송신 처리 구동기의 상대를 패킷 송신 대기상대로 천이하는 단계로 이루어전 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 수신 패킷의 파손 검출 및 복구 방법은 수신 처리 구동기의 수신 대기 상대에서 외부 망으로부터 패킷 수신에 대한 이벤트를 수신하여 수신부 버퍼의 처리 시작 포인터를 결정하는 단계와, 상기 수신부 버퍼의 처리 시작 포인터로부터 패킷의 수신 상대 플래그가 0인가를 검사하는 단계와, 상기 수신 상대 플래그의 검사 결파에 따라 수신 상대 플래그의 값이 0이 아닌 양수 값일 경우 직접 메모리 접근 제어기나 직렬 입출력 제어기의 에러 발생을 검사하는 단계와, 상기 에러 발생의 검사 결과에 따라 직렬 입출력 제어기의 상태 레지스터가 에러 값을 가지거나 직접 메모리 접근 제어기가 에러 값을 가질 경우 상기 수신된 패킷을 파기하는 단계와, 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 에러 발성의 검사 결과에 따라 에러가 없을 경우 첵섬 비교 절차를 호출하는 단계와, 상기 첵섬 비교 절차에 의해 생성된 복귀 값을 가지고 검증된 결과가 0인가를 검사하는 단계와, 상기 검증된 결과가 0이 아닐 경우 에러 카운터를 증가시킨 후 상기 수신된 패킷을 파기하는 단계와, 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와 상기 검증된 결과가 0일 경우 현재 패킷의 패킷 유행식별자를 검사하는 단계와, 상기 패킷 유행 식별자의 검사 결과에 따라 데이터 패킷일 경우 송신측 프로세서 제어 블럭의 수신 변수 값과 패킷 송신 번호가 동일한지를 검사하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결과에 따라 상기 수신 변수 값과 패킷 송신 번호가 동일할 경우 수신된 패킷을 접수한 후 수신버퍼 포인터를 증가시키는 단계와, 상기 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상대 플래그가 예가를 검사하는 단계로 전이하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결과에 따라 수신 변수 값과 패킷 송신 번호가 동일하지 않을 경우 수신측에서 프로세서 제어 블록으로 재전송을 요구하는 단계와, 상기 프로세서 제어 블록으로 재전송을 요구한 후 수신 버퍼 포인터를 증가시키는 단계와, 상기 수신 버머 포인터를 증가시킨 후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 재전송 패킷일 경우 재전송 패킷에 대한 수신측 프로세서의 수신 처리 구동기에서 마지막 수신 변수 값부터 (수신 변수 - 1)까지의 송신 윈도우상에 등록된 모든 패킷을 재전송하는 단계와, 상기 패킷을 재전송한 후 수신 버퍼 포인터를 증가시키는 단계와, 상기 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유행 식별자의 검사 결과에 따라 패킷 유행이 데이터나 재전송 패킷이 아닐 경우 패킷 유행에 해당하는 처리 절차를 수행하는 단계와, 상기 수신 상태 플래그의 검사 결과에 따라 수신 상태 플래그 값이 0일 경우 수신부 버퍼 포인터를 저장한 후 수신 대기 상대로 복귀하는 단계로 이루이진 것을 특징으로 한다.
도1은 본 발명이 적용되는 패킷 송수신 하드웨어의 구성도.
도2는 본 발명이 적용되는 패킷의 구성도.
도3은 본 발명에 따른 송신측 프로세서의 송신 처리 구동기에서 수신측 프로세서로 패킷을 송신하는 파정을 도시한 흐름도.
도4는 본 발명에 따른 송신 처리 구동기에서 소프트웨어 첵섬 생성 과정을 도시한 흐름도.
도5는 본 발명에 따른 수신측 프로세서의 수신 처리 구동기에서 패킷 수신 과정을
도시한 흐름도.
도6은 본 발명에 따른 수신 처리 구동기에서 삽입된 헤더 첵섬과 데이터 첵섬 검증 과정을 도시한 흐름도.
도면의 주요 부분에 대한 부호 설명
101 : 중앙 처리 장치 102 : 송신 처리 구동기
103 : 수신 처리 구동기 104,118 : 프로세서 제어 블럭
105 : 송신 변수 106 : 재전송 큐
107 : 마지막 수신 확인 변수 108 : 패킷
109 : 재전송 프레임 110 : 직접 메모리 접근 제어기
111,112 : 패킷 통신망의 노드 113 : 직렬 입출력 제어기
114 : 송신 FIFO 115 : 수신부 버퍼
116 : 상태 레지스터 117 : 수신 FIFO
119 : se1f-routing 망 120 : 순서 전달 보장 및 에러 제어를 위한 변수
이하, 첨부된 도면을 참조로 하여 본 발명을 상세히 설명하기로 한다.
도1은 본 발명이 적용되는 패킷 송수신 하드웨이어 구성도이다. 패킷 통신망(119)은 셀프 루팅(se1f-routing)의 원리에 따라 패킷의 주소 영역 값을 참조하여 목적지 프로세서로 패킷을 전송한다. 따라서 종단 프로세서에는 복잡한 루팅 절차가 필요 없으며 실시간 통신이 가능하다. 이기서 셀프 루팅 기능은 수신 프로세서의 루팅 주소에 따라 망이 루팅 기능을 수행하여 해당 목적지 프로세서로 메시지를 전달한다. 송신측 프로세서는 전형적인 통신 보드의 유형이며 수신측 프로세서는 본 발명이 해결하고자 하는 문제의 수신 FIFO(117)를 장착한 통신 보드이다. 프로세서는 고속 셀프 루팅 망의 노드(111)(112)와 정합하기 위해 직접 메모리 접근 제어기(110)와 직렬 입출력 제어기(113)를 장착하고 있으며 패킷 송수신은 이들과 중앙처리 장치(10l)와의 상호 작용에 의해 수행된다. 각 프로세서에는 흐름 제어, 순서전달, 에러 제어에 요구되는 프로토콜 제어 정보들을 저장하는 프로세서 제어 블럭(104)(118)이라는 자료 구조가 존재한다. 송신측 프로세서는 흐름 제어를 위해 목적지 프로세서에 대한 프로세서 제어 블럭(104)을 갖고 있으며 수신측 프로세서는 순서 전달 및 에러 제어를 위해 송신측 프로세서에 대한 프로세서 제어 블럭(118)을 갖고 있다. 송신측 프로세서의 수신측은 중앙 처리 장치(101)와 직접 접근 메모리 제어기(110)와의 완충 역할을 수행하는 순환 구조의 수신부 버퍼(115)가 존재한다. 통신 메시지인 패킷(108)은 송신인 경우 수신측에 의한 화인 패킷(패킷 유형식별자가 데이터, 수신 준비, 수신 미준비, 거부인 경우 P[R] 값)이 도달되기 전까지 재전송 큐(106)에 저장된다. 패킷의 순서 전달을 보장하기 위해 해당 송신 윈도우에는 송신 변수 V[S](105)와 마지막 수신 확인 변수 P[R](107)을 유지하고 있다. 송신 변수 V[S](105)는 패킷이 송신될 때마다 1씩 증가하며 마지막 수신 확인 변수P[R](107)은 송신된 패킷들에 대해 상대측 프로세서에 의해 수신 화인된 패킷의 최종 순서 번호이다. 수신측 프로세서에는 송신측 프로세서에서 전송한 패킷들의 순서 전달 보장 및 에러 제어를 위한 변수 V[S](120)을 갖고 있으며 그 값은 항상 다음에 수신할 패킷 순서 번호를 나타낸다. 수신측 프로세서에는 직접 메모리 접근제어기(110)와 직렬 입출력 제어기(113)간의 속도 조정 및 성능 향상을 위해 고안된 송신 FIFO(114) 및 수신 FIFO(117)가 존재하며, HDLC 프레임 에러들을 검출하였을 경우 에러 상태를 표시하는 상태 레지스터(116)가 존재한다. 직렬 입출력 제어기(113)에 의해 검출된 에러들의 상태값은 수신부 버퍼(115) 내의 DMA/SIOC 직접 메모리 접근 제어기/직렬 입출력 제어기) 영역에 저장하고 중앙 처리 장치(101)가 에러 유무를 판단한다.
도2는 본 발명이 적용되는 패킷의 구성도로서, 수신 프로세서 루팅 주소(201)와송신 프로세서 루팅 주소(202), 패킷 유형 식별자(203), 서비스 품질 영역(QoS : 0uality of Service)(204), 패킷 길이(205), 헤더 첵섬(checksum)(206), 패킷 데이터(207), DMA/SI0 에러(208) 및 수신 상태 플래그(209)로 구성되어 있다. 본 발명에서 헤더 첵섬(206)은 4 옥텟 단위로 구성하고 나머지 사용자 데이터 영역은 데이터 구성상 4의 배수로 정렬시키는 것이 어려우므로 2 옥텟 단위로 구성하며 패킷데이터는 256 옥텟 단위로 구성한다. 패킷 유형 식별자(203)와 서비스 품질 영역(204)은 각각 l 옥텟씩 하나의 영역에 구성된다. 패킷 유형 식별자(203)는 8 비트 2옥텟으로 구성되는데 상부의 l 옥텟은 처음 3 비트가 마지막 수신 확인 변수P[R], 다음 1 비트가 0, 그 다음 3 비트가 패킷의 송신 번호 P[S], 마지막 비트가 0일때 데이터를 나타내는 영역이다. 또한, 하부의 8 비트는 처음의 3 비트가 마지막 수신 확인 변수 P[R], 마지막 비트가 1, 그리고 나머지 비트가 0 일 때 수신 준비를 나타내며, 처음의 3 비트가 마지막 수신 확인 변수 P[R], 여섯 번째 비트와 마지막 비트가 1, 그리고 나머지 비트가 0 일 때 수신 미준비, 처음의 3 비트가 마지막 수신 확인 변수 P[R], 다섯 번째 비트와 마지막 비트가 1, 그리고 나머지 비트가 0 일 때 거부를 나타낸다. 서비스 품질 영역(203)은 외부 FIFO를 장착한 통신보드에서 발생할 수 있는 두가지 문제를 해결하기 위해 본 발명에 따라 지정한 것으로 사용자가 패킷을 송신할 때 시스템 호출문을 통해 서비스 품질 값을 정의하게 한다. 서비스 품질 영역(203)은 여러가지 목적을 위해 정의되는데 여기서는 소프트웨어 첵섬의 적용 범위만을 가지고 있다고 가정한다. 8 비트 2 옥텟으로 구성된 서비스 품질 영역(204)는 일곱 번째 비트와 여덟 번째 비트가 0일때 헤더 첵섬을 나타내고, 일곱 번째 비트가 0이고 여덞 번째 비트가 1 일 때 헤더/데이터 첵섬을 나타낸다. 사용자는 데이터의 중요도에 따라 첵섬 값을 패킷 헤더 부분만 적용하던지 아니면 헤더 부분과 사용자 데이터 영역 모두 적용할 수 있다. 따라서 기본 값은 패킷 헤더에 첵섬을 적용하는 경우가 되며 사용자가 전송하는 패킷들은 이들 두가지 형태가 통신 경로 상에서 혼재하는 형태가 된다. 그리고 서비스 품질 영역을 선택적으로 사용할 수 있게 함으로서 첵섬 값 계산으로 야기될 수 있는 중앙 처리 장치의 부하를 최소로 하면서 원하는 목적을 달성하게 한다. 소프트웨어 첵섬은 직접메모리 접근 제어기와 외부 수신 FIFO의 상호 작용에서 발생하는 오류들을 검출하기 위해 고안된 방법이므로 오류 검출 이후 오류 패킷을 복구할 수 있는 방법이 고안되이어 하는데 본 발명에서는 종래의 에러 제어 기법을 그대로 적용한다.
도3은 본 발명에 따른 송신측 프로세서의 송신 처리 구동기가 수신측 프로세서로 패킷을 송신하는 과정을 도시한 흐름도이다. 송신 처리 구동기는 항상 응용 프로그램으로부터의 패킷 송신 요구를 대기하는 상태(301)에 있다. 만약 응용 프로그램이 서비스 품질, 패킷 길이, 수신 프로세서 루팅 주소, 메시지 블럭 포인타 등을 매개 변수로 패킷 전송 요구 호출문을 수행할 경우(302) 송신 처리 구동기는 수신 프로세서에 대한 프로세서 제어 블럭을 검색한다. 먼저 송신 가능한지를 판단하기 위해 송신 윈도우의 두 변수인 V[S]와 마지막 수신 P[R] 변수를 이용한다. 이 두 변수의 차를 이전 패킷의 정상 수신 여부에 관계 없이 최대로 보낼 수 있는 패킷 수인 시스템 파라미터 k와 비교하여(303) k보다 작을 경우 상대측에 패킷을 전송할 수 있다. 송신 처리 구동기는 응용 프로그램에 의해 주어진 정보와 송신 윈도우의 정보를 이용하여 패킷 헤더를 성성하고 송신 변수 V[S]를 증가시킨다(304). 패킷 헤더 생성이 끝난 후 송신 처리 구동기는 첵섬 생성 설차를 호출한다(305). 첵섬 생성이 끝난패킷은 발생할 지도 모를 통신 경로 상의 에러로 인한 수신측의 재전송 요구에 대비하여 송신 윈도우의 재전송 큐에 현재 송신할 패킷을 저장한다(306). 재전송 큐에 등록하는 작업이 종료된 후 해당 패킷은 통신 소자들인 직접 메모리 접근 제어기와 직렬 입출력 제어기를 통해 전송된다(307). 만약 송신 윈도우의 두 변수의 차가 시스템 매개 변수 k보다 크거나 같을 경우 패킷 전송은 더 이상 진행될 수 없다. 이 경우 송신 처리 구동기의 상태는 다시 패킷 송신 대기 상대로 천이한다(301).
도4는 본 발명에 따른 송신 처리 구동기에서 소프트웨어 첵섬 성성 과정을 순서적으로 도시한 흐름도이다. 송신 처리 구동기는 먼저 계산될 첵섬 값을 초기화 시킨 후 패킷 헤더에 대한 첵섬을 구해서 그 값을 헤더 첵섬 영역에 저장한 후(401) 서비스 품질 영역의 값이 0인가를 검사한다(402). 만약 서비스 품질 영역의 값이 0일 경우 데이터 영역에 대한 첵섬은 구하지 않고 송신 처리 구동기로 복귀한다(408).
만약 서비스 품질 영역이 0이 아닐 경우 데이터 영역에 대한 첵섬 값을 구한다. 데이터 영역 첵섬은 2의 배수 단위로 계산되므로 패킷 길이를 2의 배수가 되게 조정한 후 첵섬 절차가 수행될 데이터 영역으로 포인터를 이동시킨다(403). 상기한 준비 단계 완료 후 패킷 길이가 0보다 큰가를 검사한다(404). 만약 패킷 길이가 0보다 크면 한재 첵섬 값에 현재 데이터 영역의 내용을 더한다(405). 그 후 패킷 길이를 감소시키고 데이터 영역 포인터를 증가시킨다(406). 상기 과정은 패킷 길이가 0보다 작거나 같을 때까지 반복된다. 패킷 길이가 0보다 작을 경우 현재 데이터 영역에 계산된 첵섬 값을 저장한다(407). 첵섬이 계산된 패킷 포인터는 송신 처리러 구동기로 복귀된다(408).
도5는 본 발명에 따른 수신측 프로세서에서 수신 처리 구동기의 처리 과정을 순서적으로 도시한 흐름도이다. 수신 처리 구동기는 항상 수신 대기 상태(501)에서 외부 망으로부터 패킷 수신에 대한 이벤트가 발생하기률 기다리고 있다. 만약 망의 노드로부터 직렬 입출력 제어기와 직접 메모리 접근 제어기를 통해 패킷이 수신부 버퍼로 들이오면 직접 메모리 접근 제어기로부터 수신 처리 구동기로 이벤트가 발생한다(502). 수신 처리 구동기는 수신부 버퍼로 수신된 패킷들을 처리하기 위해 수신부 버퍼의 처리 시작 포인터를 결정한다(503). 수신 처리 구동기는 이 포인터로부터 직접 메모리 제어기에 의해 수신된 N개의 패킷들을 모두 처리하기 위해 패킷의 수신 상태 플래그가 0인가를 조사하게 된다(504). 이 값이 0보다 큰 양수 값이면 이 패킷은 정상 혹은 에러 프레임 중 하나를 나타냄과 동시에 수신 처리 구동기에 의해 처리되어야 할 패킷임을 나타낸다. 이 값이 0이 아닌 양수 값이면 직접메모리 접근 제어기(DMA)나 직렬 입출력 제어기(SIO)의 에러를 검사하게 된다(505). 검사 결과 직렬 입출력 제어기의 상대 레지스터가 에러 값을 가지거나 직접 메모리 접근 제어기가 에러 값을 가지면 이 패킷을 파기(509)하고 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다· 검사 결과 에러가 없으면 수신 FIFO에서의 패킷 파손 여부를 조사하기 위해 각 송신부 구동기에서 패킷에 삽입시킨 첵섬 값을 검증하기 위해 첵섬 비교(compare checksum) 절차를 호출한다(506). 이 절차의 복귀 값을 가지고 검증된 결과가 0인가를 검사한다(507). 만약 검사 결과가 0이 아니면 이 패킷은 수신 FIFO에서 파손된 패킷이므로 에러 카운터를 증가(508)시킨 다음 패킷을 파기(509)하고 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다. 검사 결과 0이면 수신 FIFO에서의 패킷 파손은 없으므로 현재 패킷의 패킷 유형 식별자를 검사한다(510). 검사 결과 데이터 패킷이면 송신측 프로세서 제 어블럭의 V[R] 값과 패킷의 송신 번호 P[S]가 동일한지 검사한다(513). 이 검사 결과가 같으면 송신단에서 보낸 패킷이 수신단에 의해 정확히 수신되있으므로 이 패킷을 용용 프로그램이 처리할 수 있게 패킷을 접수(515)한 후 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다. 만약 비교 결과 같지 않으면 수신측은 프로세서 제어 블럭에 해당하는 프로세서로 재전송을 요구하고(514) 다음 패킷을 처리하기 위해 수신 버퍼 포인터를 증가(516)시킨 후 다시 패킷의 수신 상태 플래그가 0인가를 검사하는 단계(504)부터 반복한다. 한편 수신측 프로세서의 수신 처리 구동기에서 재전송 요구 패킷을 전송하였을 경우 재전송 패킷은 해당 망의 노드와 직렬 입출력 제어기 및 직접 메모리 접근 제어기를 통해 해당 송신측 프로세서의 수신부 버퍼로 수신된다. 수신측 프로세서의 수신 처리 구동기의 동작은 상기과정을 반복하며 현재 패킷 유형이 재전송 패킷임을 안다. 재전송 패킷에 대한 수신측 프로세서의 수신 처리 구동기는 P[R] 값부터 V[S] - 1까지의 송신 윈도우상에 등록된 모든 패킷을 재전송한다(512). 재전송 처리 절차 종료후에는 다음 패킷을 처리하기 위한 작업을 수행한다(516). 현재 패킷 유형이 데이터나 재전송 패킷이 아닌 경우 해당 처리 절차를 수행한다(511). 상기 과정은 수신부 버퍼의 수신 상태 플래그 값이 0이 아닐 경우 반복되며 그 값이 0이면 다음 수신 처리 이벤트 발생시 처리를 위해 그때의 수신부 버퍼 포인터를 저장한 후(517) 다시 수신 대기 상태로 복귀 한다(501 ).
도6은 본 발명에 따른 수신 처리 구동기에서 패킷에 삽입된 헤더 첵섬과 데이터 첵섬 검증 절차를 나타낸 흐름도로서, 수신 처리 구동기가 현재 패킷의 첵섬을 검증하기 위해 첵섬 비교 절차를 호출하여 수행된다. 먼저 첵섬 값을 초기화하고 현재 패킷의 헤더부에 대한 첵섬 값을 계산한다(601). 이 결과와 헤더부의 헤더 첵섬값과 비교한다(602). 헤더부에서 첵섬 에러가 발생하면 에러 값 1을 복귀한다(603). 헤더부에 첵섬 에러가 없으면 서비스 품질 영역 값이 0인가를 검사한다(604). 서비스 품질 영역 값이 0이면 패킷내에 데이터 첵섬 값이 없고 헤더부에 첵섬 에러가 없으므로 0 값을 복귀한다(605). 서비스 품질 영역이 0이 아니면 데이터 첵섬에 대한 검증을 수행한다. 먼저 이전에 헤더에 대해 계산된 첵섬 값을 초기화시킨 다음 패킷 길이를 2의 배수로 정렬시키고 데이터 첵섬을 계산하기 위해 포인터를 데이터 포인터로 이동시킨다(606). 상기한 패킷 길이가 0보다 큰가를 검사한다(607). 검사 결과 패킷 길이가 0보다 크면 패킷 길이만큼에 대해서 2의 배수 단위로 첵섬을 계산한 후 포인터를 증가시키고 패킷 길이를 1만큼 감소시킨다(611).
상기 과정을 패킷 길이가 0이 될때까지 반복한 후 0이면 계산된 첵섬 값파 패킷 길이 다음에 있는 삽입된 데이터 첵섬 값과 비교한다(608). 이 값이 같으면 패킷은 파손되지 않고 정확히 수신된 것이므로 0 값을 복귀하고(609), 같지 않을 경우 1 값을 복귀한다(610).
상술한 바와 같이 본 발명에 의하면 데이터의 신뢰성을 보장받을 수 있는 특징을 갖고 있으며, 외부 FlF0라는 메모리 소자를 채택하는 임베디드(embedded) 통신 시스템이 실시간으로 통신을 원할 경우 속도상의 성능을 잃지 않으면서 완벽한 에러 제어 기능을 제공할 수 있는 탁월한 효과가 있다.

Claims (4)

  1. 송신측 프로세서의 송신 처리 구동기에서 송신한 패킷을 고속 셀프-루팅망을 통해 외부 선입선출 버퍼가 내장된 수신측 프로세서의 수신 처리 구동기에서 수신하는 패킷 송수신 시스템에 있어서, 상기 송신 처리 구동기가 패킷 송신 요구 대기 상태에서 응용 프로그램의 패킷 전송 요구 호출문을 수신하는 단계와, 상기 패킷 전송 요구 호출문을 수신한 송신 처리 구동기에서 송신 윈도우의 송신변수와 마지막 수신 변수의 차를 시스템 파라미터와 비교하는 단계와, 상기 비교 결과에 따라 송신 변수화 마지막 수신 변수의 차가 시스템 파라미터보다 작을 경우 패킷 헤더를 생성하고 송신 변수를 증가시키는 단계와 상기 패킷 헤더 생성이 끝난 후 첵섬 생성 점차를 호출하는 단계와, 상기 첵섬 생성 설차에 의해 첵섬 생성이 끝난 패킷에서 송신 윈도우의 재전송 큐에 송신할 패킷을 저장하는 단계와, 상기 재전송 큐에 패킷을 저장한 후 해당 패킷을 직접 메모리 접근 제어기와 직렬 입출력 제어기를 통해 송신하고 패킷 송신 대기 상태를 유치하는 단계와, 상기 비교 결과에 따라 송신 변수와 마지막 수신 변수의 차가 시스템 파라미터보다 크거나 같을 경우 송신 처리 구동기의 상태를 패킷 송신 대기 상태로 천이하는 단계로 이루어진 것을 특징으로 하는 수신 패킷의 파손 검출 및 복구 방법.
  2. 제 1 항에 있어서, 상기 첵섬 생성을 호출하는 단계는 송신 처리 구동기에서 첵섬 값을 초기화시킨 후 패킷 헤더에 대한 첵섬을 헤더 첵섬 영역에 저장하는 단계와, 상기 패킷 헤더에 대한 첵섬을 헤더 첵섬 영역에 저장한 후 서비스 품질 영역의 값이 0인가를 검사하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역 값이 0일 경우 데이터 영역에 대한 첵섬은 구하지 않고 송신 처리 구동기로 복귀하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역의 값이 0이 아닐 경우 패킷 길이를 2의 배수로 조정하고 첵섬 절차가 수행될 데이터 영역으로 포인터를 이동시키는 단계와, 상기 데이터 영역으로 포인터를 이동시킨 후 패킷 길이가 0보다 큰가를 검사하는 단계와, 상기 패킷 길이의 검사 결과에 따라 패킷 길이가 0보다 클 경우 현재 첵섬 값에 현재 데이터 영역의 내용을 더하는 단계와, 상기 현재 첵섬 값에 한재 데이터 영역의 내용을 더한 후 패킷 길이를 감소시키고 데이터 영역 포인터를 증가시킨 후 패킷 길이가 0보다 큰가를 검사하는 단계로 천이하는 단계와, 상기 패킷 길이의 검사 결과에 따라 패킷 길이가 0보다 작을 경우 현재 데이터 영역에 계산된 첵섬 값을 저장한 후 첵섬이 계산된 패킷 포인터를 송신 처리 구동기로 복귀시키는 단계로 이루어진 것을 특징으로 하는 수신 패킷의 파손 검출 및 복구 방법.
  3. 송신측 프로세서의 송신 처리 구동기에서 송신한 패킷을 고속 셀프-루팅 망을 통해 외부 선입선출 버퍼가 내장된 수신측 프로세서의 수신 처리 구동기에서 수신하는 패킷 송수신 시스템에 있어서, 상기 수신 처리 구동기는 수신 대기 상대에서 외부 망으로부터 패킷 수신에 대한 이벤트를 수신하여 수신부 버퍼의 처리 시작 포인터를 결정하는 단계와, 상기 수신부 버퍼의 처리 시작 포인터로부터 패킷의 수신 상태 플래그가 0인가를 검사하는 단계와, 상기 수신 상태 플래그의 검사 결과에 따라 수신 상태 플래그의 값이 0이 아닌 양수 값일 경우 직접 메모리 접근 제어거나 직렬 입출력 제어기의 에러 발생을 검사하는 단계와, 상기 에러 발생의 검사 결과에 따라 직렬 입출력 제어기의 상태레지스터가 에러 값을 가지거나 직접 메모리 접근 제어기가 에러 값을 가질 경우 상기 수신된 패킷을 파기하는 단계와, 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시키고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 에러 발생의 검사 결과에 따라 에러가 없을 경우 첵섬 비교 절차를 호출하는 단계와, 상기 첵섬 비교 절차에 의해 생성된 복귀 값을 가지고 검증된 결과가 0인가를 검사하는 단계와, 상기 검증된 결과가 0이 아닐 경우 에러 카운터를 증가시킨 후 상기 수신된 패킷을 파기하는 단계와, 상기 수신된 패킷을 파기한 후 수신 버퍼 포인터를 증가시켜고 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 검종된 결과가 0일 경우 한재 패킷의 패킷 유행 식별자를 검사하는 단계와, 상기 패킷 유명 식별자의 검사 결과에 따라 데이터 패킷일 경우 송신측 프로세서 제어 블럭의 수신 변수 값과 패킷 송신 번호가 동일한지를 검사하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결파에 따라 상기 수신 변수 값과 패킷 송신 번호가 동일할 경우 수신된 패킷을 접수한 후 수신 버퍼 포인터를 증가시 키는 단계와, 상기 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 수신 변수 값과 패킷 송신 번호의 검사 결과에 따라 수신 변수 값과 패킷 송신 번호가 동일하지 않을 경우 수신측에서 프로세서 제어 블록으로 재전송을 요구하는 단계와, 상기 프로세서 제어 블록으로 재전송을 요구한 후 수신 버퍼 포인터를 증가시키는 단계와, 상기 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 재전송 패킷일 경우 재전송 패킷에 대한 수신측 프로세서의 수신 처리 구동기에서 마지막 수신 변수 값부터 (수신 변수 - 1)까지의 송신 윈도우상에 등록된 모든 패킷을 재전송하는 단계와, 상기 패킷을 재전송한 후 수신 버퍼 포인터를 증가시키는 단계와, 상기 수신 버퍼 포인터를 증가시킨 후 패킷의 수신 상태 플래그가 0인가를 검사하는 단계로 천이하는 단계와, 상기 패킷 유형 식별자의 검사 결과에 따라 패킷 유형이 데이터나 재전송 패킷이 아닐 경우 패킷 유형에 해당하는 처리 절차를 수행하는 단계와, 상기 수신 상태 플래그의 검사 결과에 따라 수신 상태 플래그 값이 0일 경우 수신부 버퍼 포인터를 저장한 후 수신 대기 상대태 복귀하는 단계로 이루어진 것을 특징으로 하는 수신 패킷의 파손 검출 및 복구 방법.
  4. 제 3 항에 있어서, 상기 첵섬 비교 절차를 수행하는 단계는 첵섬 값을 초기화하고 현재 패킷의 헤더부에 대한 첵섬 값을 계산하는 단계와, 상기 패킷의 헤더부에 대한 첵섬 값과 헤더부의 헤더 첵섬 값을 비교하여 에러가 발생했는지를 검사하는 단계와, 상기 비교 결과에 따라 헤더부에서 첵섬 에러가 발생할 경우 에러 값 1을 복귀하는 단계와, 상기 비교 결과에 따라 헤더부에 첵섬 에러가 발생하지 않을 경우 서비스 품질 영역 값이 0인가를 검사하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역 값이 0일 경우 0 값을 복귀하는 단계와, 상기 서비스 품질 영역 값의 검사 결과에 따라 서비스 품질 영역 값이 0이 아닐 경우 이전의 헤더에 대해 계산된 첵섬 값을 초기화시킨 후 패킷 길이를 2의 배수로 정렬시키고 포인터를 데이터 포인터로 이동시키는 단계와, 상기 2의 배수로 정렬시킨 패킷 길이가 0보다 큰가를 검사하는 단계와, 상기 패킷 길이의 검사 결과에 따라 패킷 길이가 0보다 클 경우 패킷 길이에 대해서 2의 배수 단위로 첵섬을 계산한 후 포인터를 증가시키는 단계와, 상기 포인터를 증가시킨 후 패킷 길이를 1만큼 감소시키는 단계와, 상기 패킷 길이를 1만큼 감소시킨 후 패킷 길이가 0보다 큰가를 검사하는 단계로 천이하는 단계와, 상기 패킷 길이의 검사 결과 패킷 길이가 0일 경우 계산된 첵섬 값과 삽입된 데이터 첵섬 값을 비교하는 단계와, 상기 비교 결과 첵섬 값과 삽입된 데이터 첵섬 값이 같을 경우 0 값을 복귀하는 단게와, 상기 비교 결과 첵섬 값과 삽입된 데이터 첵섬 값이 같지 않을 경우 1 값을 복귀하는 단계로 이루어진 것을 특징으로 하는 수신 패킷의 파손 검출 및 복구 방법.
KR1019960040479A 1996-09-18 1996-09-18 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법_ KR100204586B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960040479A KR100204586B1 (ko) 1996-09-18 1996-09-18 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법_

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960040479A KR100204586B1 (ko) 1996-09-18 1996-09-18 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법_

Publications (2)

Publication Number Publication Date
KR19980021577A true KR19980021577A (ko) 1998-06-25
KR100204586B1 KR100204586B1 (ko) 1999-06-15

Family

ID=19474131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960040479A KR100204586B1 (ko) 1996-09-18 1996-09-18 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법_

Country Status (1)

Country Link
KR (1) KR100204586B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100452640B1 (ko) * 2002-11-11 2004-10-14 한국전자통신연구원 데이터 패킷 수신 장치 및 방법
KR100679820B1 (ko) * 2005-09-06 2007-02-06 엘지전자 주식회사 무선 통신망에서 패킷 재전송 스케줄링 방법
KR100710081B1 (ko) * 2005-08-22 2007-04-23 삼성전자주식회사 디스플레이장치 및 그 제어방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100452640B1 (ko) * 2002-11-11 2004-10-14 한국전자통신연구원 데이터 패킷 수신 장치 및 방법
KR100710081B1 (ko) * 2005-08-22 2007-04-23 삼성전자주식회사 디스플레이장치 및 그 제어방법
KR100679820B1 (ko) * 2005-09-06 2007-02-06 엘지전자 주식회사 무선 통신망에서 패킷 재전송 스케줄링 방법

Also Published As

Publication number Publication date
KR100204586B1 (ko) 1999-06-15

Similar Documents

Publication Publication Date Title
US5519693A (en) High speed transmission line interface
US6421803B1 (en) System and method for implementing hybrid automatic repeat request using parity check combining
US6389016B1 (en) Data communication system and method for transporting data
JP2880290B2 (ja) ネットワークトラフィック管理
US5115432A (en) Communication architecture for high speed networking
US20080195912A1 (en) Method of communicatoin
JPH021665A (ja) 輻輳制御装置
US6401127B1 (en) Adaptive timer for LLC type 2 reliable transport in a computer network
US5864677A (en) System for preserving sequential ordering and supporting nonidempotent commands in a ring network with busy nodes
US7567570B2 (en) Reliable transport of TDM data streams over packet networks
US6597665B1 (en) System for dynamic ordering support in a ringlet serial interconnect
US5958080A (en) Method and apparatus for detecting and recovering from errors occurring in a transmission of digital information
KR100204586B1 (ko) 선입선출 버퍼를 가지는 내장형 통신 보드에서의 수신 패킷의 파손 검출 및 복구 방법_
EP1225741A1 (en) High speed interconnection for embedded systems within a computer network
KR20000040467A (ko) 네트워크의 데이터통신 제어방법
WO2010027064A1 (ja) データ伝送方法、データ伝送システム、データ送信装置、データ受信装置、及び制御プログラム
JP2002185550A (ja) 無線通信装置
JPS609240A (ja) 通信制御装置
EP0161825A2 (en) A control mechanism for a ring communication system
JP3239138B2 (ja) 通信網の転送データ誤り検出方法
JP2001333048A (ja) データ転送方式
CN117579226A (zh) 一种基于ib流控包的链路重传方法和装置
JP3427483B2 (ja) メッセージ復元装置
JPH09326782A (ja) シリアル通信方法
KR100186217B1 (ko) 고속데이타 링크제어 패킷 통신에 있어 데이타 전송오류감소를 위한 패킷 구성방법 및 그에 따른 수신측의 패킷 데이타 수신방법

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: 20080307

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee