KR19980075622A - Atm 망접속기에서 수신 셀 폐기방법 - Google Patents
Atm 망접속기에서 수신 셀 폐기방법 Download PDFInfo
- Publication number
- KR19980075622A KR19980075622A KR1019970011864A KR19970011864A KR19980075622A KR 19980075622 A KR19980075622 A KR 19980075622A KR 1019970011864 A KR1019970011864 A KR 1019970011864A KR 19970011864 A KR19970011864 A KR 19970011864A KR 19980075622 A KR19980075622 A KR 19980075622A
- Authority
- KR
- South Korea
- Prior art keywords
- cell
- packet
- buffer
- discarded
- atm
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/427—Loop networks with decentralised control
- H04L12/433—Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 ATM 망접속기(NIC:Network Interface Card)에서 셀손실율에 민감한 연결시 재조립 버퍼에 오버플로우가 발생될 경우에 이후에 수신되는 ATM 셀들을 폐기하는 방법에 관한 것이다.
이러한 본 발명은 셀손실율에 민감한 연결의 셀을 입력하는 단계(100); 재조립 버퍼에서 오버플로우가 발생되는지를 검사하는 단계(101); 재조립 버퍼에서 오버플로우가 발생되면 수신된 셀을 버리고, 버려지는 셀이 엔드오브패킷(EOP)인지를 판단하여 엔드오브패킷(EOP)이 아니면 연결i의 디스카드 플래그(D)를 폐기(DISCARD)로 설정하는 단계(101,105,106,107); 버려지는 셀이 엔드오브패킷(EOP)이면 연결i의 디스카드 플래그(D)를 수신(RECEIVE)으로 변경하는 단계(108); 재조립 버퍼가 오퍼플로우가 아니면 연결의 디스카드 플래그(D)를 검색하여 폐기(DISCARD)인지 판단하는 단계(103); 폐기가 아니면 셀을 저장하는 단계(104); 및폐기이면 셀을 폐기하고 엔드오브패킷(EOP)인지를 판단하여 연결의 디스카드 플래그(D)를 폐기 혹은 수신으로 변경하는 단계로 구성되어 재조립 버퍼를 효율적으로 사용할 수 있다.
Description
본 발명은 ATM 망접속기(NIC:Network Interface Card)에서 셀손실율에 민감한 연결시 재조립 버퍼에 오버플로우가 발생될 경우에 이후에 수신되는 ATM 셀들을 폐기하는 방법에 관한 것이다.
널리 알려진 바와 같이, ATM통신방식은 다양한 트래픽 특성을 갖는 서비스를 제공하기 위하여 전송할 메시지(혹은 패킷)을 53바이트 크기의 ATM 셀로 분할하여 전송한 후 수신측에서 수신된 셀을 재조립하여 메시지(혹은 패킷)를 복원하는 전달방식이다.
이러한 ATM통신방식은 도 1에 도시된 바와 같이, 계층적인 구조를 이루고 있다.즉, 도 1은 ATM 프로토콜 참조모델을 도시한 개념도이다. 상기 개념도에서 프로토콜 참조 모델은 관리 평면(management plane)과, 제어 평면(control plane) 및, 사용자 평면(user plane)으로 구성되고, 상기 관리 평면은 다시 계층 관리와 평면 관리로 구성되게 된다. 그리고, 평면 관리는 시스템의 전반적인 관리를 의미하고, 계층관리는 자원 및 사용 변수의 관리와 OAM 정보관리를 수행하게 된다.
또한, 제어 평면에서는 호 제어 및 접속 제어 정보를 관장하고, 사용자 평면에서는 사용자 정보의 전달을 수행하게 된다. 그리고, 제어 평면과 사용자 평면의 프로토콜은 상위 계층과, ATM 적응 계층, ATM 계층 및, 물리 계층으로 구성되게 된다.
도 1에서 물리계층은 다음 표 1에서와 같이 계층적인 구조를 이루고, 각각의 계층별로 표준화된 기준을 가지고 있다.
[표 1]
계 층 | 부 계 층 | 기 능 |
상위계층 | 상위계층기능 | |
ATM 적응계층 | 수렴(CS) 부계층 | 수렴기능 |
절단및 재결합(SAR) | 절단기능 및 재결합기능 | |
ATM 계층 | 일반흐름제어 및 셀헤더 처 리기능 | |
물리 계층 | 전송수렴(TC) | HEC 신호발생 및 추출기능 |
물리매체 | 비트시간 정보기능 |
상기 표 1에서와 같이 비동기 전송모드 통신방식은 물리계층, ATM 계층, ATM 적응계층(AAL: ATM adaptation layer), 상위 프로토콜 계층과 같이 수직적인 구조로 구분되고, AAL 계층은 절단 및 재결합 부계층(SAR: segmentation and reassembly sublayer)과 수렴(CS: convergence sublayer) 부계층으로 구분되며, 물리계층은 물리매체(PM)와 전송수렴(TC: transmission convergence) 부계층으로 다시 구분되게 된다.
또한, 비동기 전송모드 통신방식에서 사용자가 요구하는 서비스는 그 특성에 따라 다음 표 2와 같이 분류될 수 있다.
[표 2]
서비스의 종류 | 종단간의시간관계 | 비트율 | 연결모드 | 서비스의 예 |
A종 | 실시간성 | 항등 | 연결성 | 항등율 영상신호 |
B종 | 실시간성 | 가변 | 연결성 | 가변율 영상신호 |
C종 | 비실시간성 | 가변 | 연결성 | 연결성 데이터 |
D종 | 비실시간성 | 가변 | 비연결성 | 비연결성 데이터 |
상기 서비스에 대응하는 AAL 프로토콜은 다음 표 3과 같이 AAL 1 에서부터 AAL 5까지로 구분되게 된다.
[표 3]
AAL 형태 | 대표적인 기능 |
AAL 1 | 항등비트율의 A종 서비스를 지원 |
AAL 2 | 실시간성, 가변비트율의 B종 서비스를 지원 |
AAL 3/4 | 가변비트율의 C종 및 D종 서비스를 지원 |
AAL 5 | AAL 3/4 기능을 간소화하여 고속서비스 지원 |
상기 표 3에 있어서 AAL 계층은 서비스의 종류에 따라 해당 서비스를 효율적으로 처리해 주기 위해 AAL 1, AAL 2, AAL 3/4, AAL 5와 같이 수평적으로 구분되게 된다.
한편, ATM 망에 접속되는 단말기는 보통 AAL계층, ATM계층 그리고 물리계층의 기능을 담당하는 ATM 망접속기(NIC)와, 이 ATM 망접속기를 제어하며 상위계층의 기능을 수행하는 NIC드라이버로 구성된다. NIC 드라이버는 패킷을 송수신하기 위해서 메모리를 할당/해제하고, 제어변수들의 값을 갱신하거나 여러 원인으로 발생되는 인터럽트를 처리하는 기능을 수행한다.
다른 한편, ATM 셀을 수신하여 패킷을 재조립하는 ATM 망접속기의 수신단에서 재조립을 위해 사용되는 버퍼에 오버플로우가 발생되면 이때 수신된 ATM 셀이 손실되게 된다. 즉, 통상적으로 재조립 버퍼에는 수신된 순서대로 셀이 저장되기 때문에 재조립 버퍼에서 오버플로우가 발생되면 나중에 수신된 셀들이 버려지게 된다.
그런데 임의의 연결에 속하는 패킷이 수신되는 중에 재조립 버퍼에서 오버플로우가 발생된 후 재조립 버퍼가 정상으로 회복되면 해당 패킷의 후속 셀들이 재조립버퍼에 계속 저장되게 된다. 이때 셀손실율에 민감한 연결에 속하는 임의의 패킷에서는 오버플로우에 의한 셀손실이 일단 발생되면 그 패킷은 필요없는 패킷이 되고만다.
그러나 종래의 방법에서는, 재조립 버퍼에서 오버플로우가 발생된 후 다시 버퍼가 정상으로 회복되면 재조립 버퍼에 손실이 발생된 패킷의 셀들이 계속 저장되므로 해서 재조립 버퍼가 낭비되는 문제점이 있다. 즉, 일반적인 버퍼관리기법에서 트래픽의 특성과 품질요구사항(QoS)에 의해 임의의 연결은 시간지연에 민감한 것과 셀손실율에 민감한 것이 있는데 셀손실에 민감한 연결의 경우 일단 일정치 이상의 셀손실이 발생되면 폐기하는 것이 바람직하다.
이에 본 발명은 ATM 망접속기(NIC)의 수신단에서 셀손실율에 민감한 연결이 설정된 후에 재조립 버퍼에 오버플로우가 발생될 경우에 나중에 수신되는 셀들은 재조립 버퍼에 저장하지 않고 모두 버리므로써 재조립 버퍼를 효율적으로 사용할 수 있게 하는 셀 폐기 방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은
도 1은 일반적인 ATM 프로토콜 참조모델을 도시한 개념도,
도 2는 일반적인 ATM 망접속기를 도시한 구성도,
도 3은 도 2에서 처리되는 데이터 포맷의 예를 도시한 개략도,
도 4는 본 발명에 따라 셀을 폐기하는 개념을 설명하기 위하여 도시한 도면,
도 5는 본 발명에 따라 수신 셀을 폐기하는 방법을 도시한 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명
10: 호스트시스템11: 호스트 메모리
12: 프로세서13: 버스제어기
20: ATM 망접속기21: AAL처리부
22: SONET/ATM 라인정합부23: 송수신기
30: 입출력버스41: 레지스터
42: 수신 룩업테이블43: 재조립 버퍼
이하, 본 발명의 바람직한 실시예를 첨부한 예시도면을 참조하여 상세히 설명한다.
먼저, 본 발명이 적용되기에 적합한 전형적인 ATM 망접속기의 구성 및 동작 예를 설명한 후 본 발명에 따른 수신 패킷 처리방법의 실시예를 설명하기로 한다.
도 2는 본 발명이 적용되기에 적합한 ATM 망접속기(NIC)의 예를 도시한 블록도이다. 도 2를 참조하면, 호스트시스템(10)은 ATM 망접속기(20)를 통해 도시되지 않은 ATM 망에 접속되어 상대측 호스트시스템과 ATM방식으로 데이터를 교환하도록 되어 있다.
본 발명의 실시예에서 호스트시스템(10)은 워크스테이션(Workstation)과 같은 컴퓨터로서, 적어도 호스트 메모리(11)와 프로세서(12), 및 버스제어기(13)를 구비하고 있으며 입출력버스(본 발명의 실시예에서는 S버스:30)를 통해 ATM 망접속기(20)와 연결되어 있다. 그리고 호스트시스템(10)에서는 사용자에게 서비스를 제공해주기 위한 응용프로그램(application program)이 최상위에서 수행되고 있고, 응용프로그램의 요구에 따라 ATM 통신기능을 제공해줄 수 있는 ATM 망접속기 드라이버가 설치되어 있다. 따라서 초기화과정에서 ATM 망접속기 드라이버가 ATM통신과 관련된 각종 테이블 및 링(RING)들을 셋업 해주고, 응용 프로그램의 요구에 따라 각종 테이블들의 데이터를 업데이트(update)시켜준다.
ATM 망접속기(NIC:20)는 NIC 드라이버의 직접적인 제어를 받으면서 응용프로그램의 요구에 따라 송신할 패킷을 ATM 셀로 분할하여 ATM망측으로 송신하고, 수신된 ATM 셀들을 재조립하여 패킷을 형성한 후 응용프로그램측에 전달한다. 이러한 ATM 망접속기(20)는 통상 호스트시스템의 확장슬롯에 실장되도록 되어 있고, 호스트시스템(10)과 입출력버스(30)를 통해 접속되도록 되어 있다.
이와 같은 ATM 망접속기(20)는 도 2에 도시된 바와 같이, AAL처리부(21), SONET/ATM 라인 정합부(22), 송수신기(23), 제어램(25), 이피롬(26) 등으로 구성되어 ATM통신방식의 물리계층, ATM 계층, AAL계층의 기능등을 처리한다. 특히, 본 발명의 실시예에서 ATM 망접속기(NIC:20)는 ATM 셀들을 동기식광네트웍(SONET: Synchronous Optical NETwork) STS-3c 프레임 포맷(155.52M bps)으로 매핑한 후 광동기식 전송망을 통해 ATM망에 연결되도록 되어 있다.
도 2를 참조하면, AAL처리부(21)는 로칼 메모리 버스(Local memory bus)를 통해 제어램(25)과 연결되며, 로칼 슬레이브 버스(Local slave bus)를 통해 이피롬(26)과 연결된다. 이때 이피롬(26)은 라인 정합부(22)와도 로칼 버스를 통해 연결된다.
그리고 AAL처리부(21)는 입출력버스(30)와 접속되어 호스트시스템의 메모리(11)를 직접 억세스할 수 있음과 아울러 제어 메모리(25)을 리드/라이트할 수 있고, 호스트시스템의 프로세서(12)도 입출력버스를 통해 제어 메모리(25)를 직접 억세스하여 리드/라이트할 수 있도록 되어 있다.
호스트시스템(10)에서 운용되는 응용 프로그램이 ATM관련 서비스를 요청하면, 호스트시스템에서 운용되는 NIC드라이버가 그 요청에 따라 ATM 망접속기(20)를 제어하여 ATM관련 서비스를 응용프로그램에 제공하게 한다. 예컨대, 응용프로그램이 소정의 메시지 데이터를 호스트 메모리(11)에 저장해 놓고 데이터를 전송해주길 요구하면, NIC 드라이버가 입출력버스(30)를 통해 AAL처리부(21)에 데이터 전송을 요구한다.
AAL처리부(21)는 호스트 메모리(11)에 저장된 메시지를 소정 길이(48바이트) 단위로 읽어와 AAL 프로토콜 포맷에 맞춰 ATM 셀을 형성한 후, 물리계층(24)의 라인 정합부(22)로 내려 보낸다. SONET/ATM 라인 정합부(22)는 ATM 셀들을 SONET STS-3c 포맷으로 매핑하고, 송수신기(23)는 STS-3c 포맷의 직렬 데이터를 광신호로 변환하여 광케이블을 통해 ATM망측으로 출력한다.
한편, 송수신기(23)를 통해 수신된 데이터는 라인정합부(22)에서 ATM 셀로 분리 추출된 후 AAL처리부(21)로 입력된다. AAL 처리부(21)는 수신된 ATM셀들에서 헤더와 유료부하(payload)를 분리한 후 유료부하를 다시 재결합하여 메시지(패킷)를 복원하고, 매세지의 재조립이 완료되면 호스트시스템(10)에 인터럽트로 이를 알린다. 그리고 AAL처리부(21)로부터 재조립완료를 나타내는 인터럽트가 수신되면, 호스트시스템의 NIC드라이버가 소정의 처리절차에 따라 수신된 메시지를 응용 프로그램측에 전달한다.
이와 같이 AAL 처리부(21)에서는 상위계층으로부터 전달된 메시지를 ATM셀들로 분할하여 상대측으로 전송함과 아울러 수신된 ATM셀들을 재조립하여 메시지를 복원하고, 재조립이 완료되면 인터럽트를 통해 호스트시스템의 NIC 드라이버에 이를 알려준다.
이러한 ATM 망접속기에서 상위계층과 AAL처리부 사이에 데이터들이 전달되는 구조를 좀더 자세히 살펴보면 다음과 같다.
호스트시스템(10)과 AAL처리부(20) 사이에 전달되는 데이터 포맷은 도 3에 도시된 바와 같이, 송신과 수신으로 구분되어 호스트 메모리(11)와 제어 메모리(25)에 각각 위치한다. 즉, 호스트 메모리(11)에는 송신시에 사용되는 송신 디스크립터 링(TX discripter ring)과, 송신 완료 링(TX completion ing), 및 데이터 버퍼들이 위치함과 아울러, 수신시에 사용되는 데이터 버퍼, 수신 완료 링(RX completion ring), 2개의 프리 버퍼 링(free buffer ring)이 위치한다. NIC의 제어 램(25)에는 송신시에 이용되는 대역 할당 테이블과 송신 DMA 상태 테이블이 위치하고, 수신시 사용되는 수신 DMA 상태 테이블이 위치한다.
호스트 메모리(11)에 구현되는 송신 디스크립터 링은 255개로 이루어져 255개의 가상채널(Virtual Channel:VC)을 가질 수 있으며, 각 링은 256개의 엔트리를 가지고 있다. 그리고 각 엔트리는 4워드(1워드는 32비트)로 구현되어 송신을 위해 큐잉된 하나의 송신 데이터 버퍼를 가리킨다. 통상적으로, 255개의 모든 송신 디스크립터 링이 사용되지는 않고, 각 링은 필요한 가상채널 수만큼만 사용된다. 예컨대, 제1 송신 디스크립터 링은 음성채널로 사용되고, 제2 송신 디스크립터 링은 비디오 채널로 사용되며, 제3 디스크립터 링은 TCP/IP를 위해 사용될 수 있다.
이때 송신 디스크립터 링의 각 엔트리는 4 워드로 구성되는데, 워드 3은 AAL5의 테일(tail)을 나타내고, 워드 2는 4 바이트의 ATM 헤더를 나타내며, 워드 1은 송신 데이터 버퍼의 시작 위치를 가리키는 버퍼 포인터이고, 워드 0은 제어필드, 패킷 길이, 및 버퍼길이 등을 나타낸다. 워드 0을 좀더 살펴보면, 워드 0의 비트 31은 오운(OWN)비트로서 송신을 위한 패킷이 큐잉되면 호스트에 의해 셋되어 AAL 처리부가 억세스하도록 하고, 패킷의 송신이 완료되면 리셋되어 호스트가 억세스할 수 있게 한다. 워드 0의 비트 30은 하나의 패킷을 전송하는데 다수개의 버퍼가 사용될 경우에 시작 버퍼를 나타내고, 비트 29는 마지막 버퍼를 나타낸다. 비트 27은 AAL 타입을 나타내고, 비트 26 내지 비트 16은 패킷의 길이를 나타내고, 비트 15 내지 비트 0은 버퍼의 길이를 나타낸다. 이때 버퍼의 최대 크기는 64K 바이트이다. 이와 같이 송신 디스크립터는 전송할 패킷이 있는 호스트 메모리 상의 버퍼들을 나타낸다.
송신 데이터 버퍼들은 송신할 데이터들을 저장하고 있으며, 송신준비가 완료된 후 AAL처리부(21)에 의해 송신 버퍼에 저장된 데이터들이 읽혀져 전송된다.
도 3 을 참조하면, 송신 완료 링은 256개의 엔트리를 가지고 있으며, 하나의 엔트리는 하나의 패킷이 송신 완료된 것을 나타내는데, 각 엔트리는 4워드로 구성된다. 그리고 4워드중 워드 0의 비트 31은 오운(OWN)비트로서 1로 셋되어 있으면 AAL처리부(21)에서 사용권이 있고, 0으로 리셋되면 호스트(10)가 사용권이 있는 것을 나타낸다. 워드 0의 비트 30 내지 비트 8은 사용되지 않고, 비트7 내지 비트0은 대역할당 테이블의 인덱스를 나타낸다.
수신 프리 버퍼링은 서로 다른 크기의 프리 버퍼들을 가리키기 위한 2개의 링으로 이루어져 있고, 각 링은 256개의 엔트리로 구성되어 있다. 그리고 호스트시5스템(10)은 비어 있는 버퍼의 포인터를 각 링에 써놓으며, 초기화 과정에서 버퍼의 크기를 결정한다. 예컨대, 2개의 프리 버퍼 링은 제1 프리 버퍼 링과 제2 프리 버퍼 링으로 구분되어 제1 프리 버퍼 링은 TCP/IP에 기초한 응용을 위한 8K 바이트 크기의 버퍼들을 가리키는데 이용되고, 제2 프리 버퍼 링은 CBR 서비스를 위한 48바이트의 버퍼들을 가리키는데 이용될 수 있다. 따라서 CBR응용을 위해 설정된 가상채널은 제2 프리 버퍼 링에 의해 지시되는 버퍼들을 사용하고, TCP/IP 응용을 위해 설정된 가상채널은 제1 프리 버퍼 링에 의해 지시되는 버퍼들을 사용한다.
이때 각 프리 버퍼 링의 엔트리는 4워드로 이루어지는데, 워드 0의 비트31은 오운(OWN)비트로서 각 프리 버퍼 링의 엔트리가 AAL처리부(21)에 의해 소유될 때는 셋되고, 호스트(10)에 의해 소유될 때는 리셋된다. 그리고 비트 30 내지 비트 28은 사용되지 않고, 비트 27 내지 비트 0은 버퍼의 시작 포인터를 나타낸다. 초기화과정에서 2개의 프리 버퍼 링에 의해 수신 버퍼들은 최소 48바이트의 크기에서 최대 64K 바이트의 길이까지 16바이트 바운더리로 형성되는데, 하나의 프리 버퍼 링에 의해 지시되는 버퍼들의 크기는 동일하다.
수신 완료 링은 256개의 엔트리로 구성되고, 각 엔트리는 4워드로 이루어지는데, 워드 0은 제어필드, 패킷 길이 등을 나타내기 위해 사용되고, 워드 1은 28비트의 시작 버퍼의 포인터를 나타내고, 워드 2는 4바이트의 ATM헤더를 나타낸다. 워드0의 비트 31은 오운(OWN)비트로서 셋일 경우에는 AAL처리부(21)에 의해 처리되는 것을 나타내고, 리셋일 경우에는 호스트시스템(10)에 의해 처리되는 것을 나타낸다. 비트 30은 패킷 오버 플로워 비트로서 현재 패킷을 처리하는 중에 수신버퍼에 오버 플로워가 발생되는 것을 나타내고, 비트 29는 CRC 조건 비트로서 AAL5 패킷에서 CRC에러가 발생된 것을 호스트에 알린다. 비트 21 내지 비트 11은 혼잡 셀의 수신을 나타내고, 비트10 내지 비트0은 패킷의 길이를 나타낸다.
또한 수신 완료 링은 처리되어야 할 호스트 메모리에 있는 수신된 패킷의 포인터를 포함하고 있고, 호스트시스템(10)은 인터럽트를 수신하면 수신 완료 링을 조사한 후 오운(OWN)비트가 리셋된 엔트리들을 처리한다.
한편, 제어 메모리에는 도 3에 도시된 바와 같이, 대역 할당 테이블, 송신 DMA 상태 테이블, 수신 DMA 상태 테이블이 있다. 이러한 테이블은 AAL 처리부 및 호스트에 의해 억세스될 수 있다.
대역 할당 테이블은 4800개의 엔트리를 가지고 있는데, 각 엔트리는 1바이트로 이루어진다. 송신 DMA 상태 테이블은 255개의 DMA 엔트리로 구성되고, 각 DMA 엔트리는 8워드로 이루어지며, 수신 DMA 상태 테이블은 수신에 이용되며 1024개의 DMA 엔트리(각 엔트리는 8워드)로 구성된다.
대역 할당 테이블은 각 8비트 엔트리에 0부터 255까지의 인덱스를 각각 할당하므로써 255개의 송신 디스크립터 링에 대해 대역을 할당한다. 이때 0은 무효 셀이 전송되는 것을 나타낸다. 이러한 대역 할당 테이블은 초기화 과정에서 설정된다. 그리고 대역 할당 테이블은 송신 DMA 상태 테이블을 가리키는 포인터가 포함되어 있으며, AAL처리부(21)는 초기화 과정에서 정해진 크기의 테이블을 순차적으로 억세스하여 테이블의 인덱스가 가리키는 송신 디스크립터 링의 데이터를 전송한다.
송신 DMA 상태 테이블은 255 개의 대역할당 DMA 엔트리로 이루어지고, 각 DMA 엔트리는 8워드로 구성되어 분할될 송신 버퍼를 나타낸다. DMA 엔트리를 구성하는 8 워드중에서 워드 0, 워드 1, 워드 2, 및 워드 7은 송신 디스크립터 링으로부터 그대로 복사(copy)된 것으로, 워드 0은 제어필드, 패킷길이, 버퍼길이를 나타내고, 워드 1은 현재 버퍼의 포인터를 나타내며, 워드 2는 4바이트 ATM헤더를 나타내고, 워드 7은 AAL5의 테일(tail)을 나타낸다. 워드 3은 호스트에 의해서만 프로그램되는 영역으로서 워드 3의 비트 31은 BWG_ON 비트로서 1이면 대역 할당 테이블에 기초하여 데이터를 전송하고, 0이면 송신 데이터가 전송되지 않고 널(NULL) 셀이 전송된다. 워드 4에서 비트 31 내지 비트 12는 송신 디스크립터 링 포인터로서 해당 송신 디스크립터 링의 현재 엔트리의 위치를 가리키는 DVMA 어드레스이다. 워드 6은 AAL5 패킷의 CRC 계산을 위해 사용되는 부분이다.
수신 DMA 상태 테이블은 수신을 위해 사용되는 테이블로서 1024개의 수신 DMA 엔트리로 이루어지고, 각 DMA 엔트리는 8워드로 구성된다. 워드0의 비트31은 DMA채널이 활성화될 경우에 셋되고, 비트21 내지 비트11은 Explicit Forward Congestion Notification(EFCN) 셀 카운터로 사용되고, 비트10 내지 비트0은 패킷의 길이를 나타낸다. 워드 1은 현재 버퍼 포인터를 나타내고, 워드 2는 시작 버퍼 포인터를 나타내며, 워드 3은 AAL 패킷 길이를 나타낸다. 워드 4의 VC_ON 비트는 패킷 재조립중에 온되는데, 리셋되어 있으면 AAL처리부(21)는 해당 VC의 수신 셀을 버린다. 버퍼 타입 비트는 해당 버퍼가 제1 프리버퍼 링 혹은 제2 프리버퍼 링에 속하는지를 나타낸다.
이와 같은 데이터 포맷을 통해 패킷이 송수신되는 것을 구체적으로 설명하면 다음과 같다.
송신 버퍼는 호스트 메모리상의 임의의 위치에 형성될 수 있는데, 그 크기는 최대 64K 바이트이다. 호스트로부터 전송될 패킷이 준비되면 ATM망접속기(20)는 순서대로 각 패킷에 포함된 데이터들을 송신한다. 수신된 패킷은 호스트 메모리(11)에 있는 하나의 수신 버퍼에 저장된다. 이때 버퍼의 크기는 두 종류가 있으며 제1 프리버퍼 링 혹은 제2 프리버퍼 링에 의해 지시된다.
먼저, 호스트의 응용 프로그램이 송신할 데이터를 송신 데이터 버퍼에 저장하고, 송신 디스크립터 링에 이 버퍼들의 포인터를 기록하여 송신 디스크립터 링을 설정한다. 패킷에 대한 호스트의 처리가 완료되면 송신 디스크립터 링의 해당 엔트리의 오운(OWN)비트를 셋하여 호스트(10)에서 AAL처리부(21)로 해당 패킷의 처리를 넘긴다.
AAL처리부(21)는 대역 할당 테이블을 순차적으로 순환하면서 대역 할당 테이블 엔트리의 인덱스가 가리키는 송신 DMA 상태 테이블에 따라 송신 데이터 버퍼에 저장된 데이터를 처리한다. 이때 송신 DMA 상태 테이블에는 송신 디스크립터 링의 해당 엔트리 데이터가 카피(COPY)되어 있다. 따라서 AAL처리부(21)는 송신 DMA 상태 테이블의 포인터가 지시하는 송신 데이터 버퍼로부터 48바이트씩의 데이터를 읽어와 송신한다.
이어 48바이트의 유료부하가 송신되면 AAL 처리부(21)는 내부 레지스터를 업데이트(update)한 후 대역 할당 테이블의 다음 엔트리가 지시하는 송신 DMA 상태 테이블의 엔트리를 처리한다. 이와 같이 AAL 처리부(21)는 대역 할당 테이블을 순환하면서 테이블 엔트리의 인덱스에 따라 계속 데이터를 송신하다가 다시 처리중인 송신 DMA 상태 테이블로 돌아오면 이번에는 송신 디스크립터 링을 억세스하지 않고, 송신 DMA 상태 테이블만 억세스하여 처리한다. 이때 송신 DMA 상태 테이블은 다음에 전송할 셀을 가리키는 송신 데이터 버퍼의 포인터로 업데이트되어 있다.
이와 같이 데이터를 전송하여 하나의 송신 데이터 버퍼에 대한 전송이 완료되면 AAL처리부(21)는 송신 디스크립터 링의 다음 엔트리의 데이터를 송신 DMA 상태 테이블의 엔트리에 복사하여 제2 버퍼에 대해 처리를 계속하게 된다. 즉, 송신 디스크립터 링의 하나의 엔트리는 하나의 송신 데이터 버퍼를 가리키고 있는데, 만일 송신할 패킷이 5개의 버퍼를 요구한다면 해당 패킷을 처리하기 위해서 5개의 송신 디스크립터 링 엔트리가 필요하게 된다. 이때 제1 버퍼가 48바이트 단위로 끝나지 않고 16바이트의 데이터가 남아 있을 경우에는 AAL처리부(21)가 제1 버퍼의 16바이트를 처리한 후 DMA 상태 테이블을 업데이트하여 제2 버퍼로부터 나머지 32바이트의 데이터를 읽어 48바이트단위로 처리한다.
이와 같이 하여 하나의 패킷을 형성하는 마지막 버퍼에 대한 처리가 완료되어 패킷의 전송이 종료되면 엔드오브패킷(EOP) 처리절차를 수행한다. 예컨대, AAL5 타입에 따른 전송일 경우에 EOP 처리절차는 패드를 채우고, AAL5 테일을 형성하는 것이다.
이와 같이 하나의 패킷에 대한 전송이 완료되면 AAL 처리부(21)는 해당 패킷에 할당된 송신 디스크립터 링 엔트리의 오운(OWN)비트를 클리어시키고, 송신 완료 링 엔트리를 형성한 후 호스트(10)에 인터럽트를 발생한다. 이때 송신 완료 링 엔트리에는 오운(OWN)비트와 대역할당 인덱스가 기록되어 있는데, 이 대역할당 인덱스는 호스트가 처리된 패킷의 메모리를 다시 이용할 수 있도록 하는데 사용된다.
한편, 수신과정을 살펴보면, 수신된 ATM 셀의 10비트 VCI에 따라 수신 DMA 테이블의 하나의 DMA 엔트리가 할당된다. 그리고 수신 DMA 테이블의 하나의 DMA 엔트리는 2개의 수신 프리 버퍼 링 중의 하나의 엔트리와 각각 일대일로 대응된다.
만일, 수신된 ATM 셀이 해당 VCI의 첫 번째 셀일 경우 DMA 엔트리는 수신된 셀을 저장하기 위하여 어떤 프리 버퍼가 사용될 것인지를 가리킨다. 예컨대, VCI에 의해 지시된 DMA 엔트리에 할당될 버퍼가 제1 프리버퍼 링 혹은 제2 프리 버퍼링에 속하는지를 판단한 후, 해당 프리버퍼 링의 첫 번째 디스크립터를 억세스하여 프리버퍼의 어드레스를 DMA 엔트리에 복사한다. 이어서 첫 번째 수신된 셀을 해당 DMA 엔트리가 지시하는 버퍼에 저장한다.
이어 VCI가 동일한 다음 셀이 수신될 경우에는 수신 프리버퍼 링을 억세스하지 않고 DMA 엔트리가 지시하는 버퍼에 48바이트를 저장한다. 이때 DMA 엔트리는 업데이트되어 다음에 저장할 어드레스를 가리키고 있다.
만일 수신된 ATM셀의 VCI가 이전 셀의 VCI와 다를 경우에는 해당 DMA 엔트리를 억세스한 다음 수신 프리버퍼 링으로부터 프리버퍼의 시작 어드레스를 구한 후 해당 버퍼에 ATM 셀을 저장한다.
이와 같은 동작이 반복되어 어느 한 패킷에 대한 수신이 종료되면, AAL 처리부(21)는 수신 완료 링에 이를 기록한 후 인터럽트를 발생하여 호스트(10)에 알린다. 이때 수신 디스크립터의 오운(OWN)비트와 수신 완료 링 엔트리의 오운(OWN)비트를 리셋하여 호스트(10)에 권한을 넘긴다.
이상에서 설명한 ATM 망접속기는 호스트 메모리에 송신 및 수신버퍼를 구현하였으나 이러한 송수신 버퍼는 망접속기 내부의 메모리에 구현될 수도 있고, 송수신 제어를 위한 제어 데이터 포맷도 매우 다양한 형태가 사용될 수 있다.
이어서 이상의 설명에 의해 ATM 망접속기의 동작을 이해한 후, 본 발명에 따른 실시예를 상세히 설명한다.
도 4는 본 발명에 따라 수신된 ATM 셀을 재조립 버퍼에 저장하는 개념을 도시한 도면이다.
도 4를 참조하면, 수신된 ATM 셀은 레지스터(41)에 일단 저장되어 ATM 헤더의 VPI/VCI에 따라 수신 룩업테이블(42)의 특정 엔트리를 억세스하게 된다. 이때 수신 룩업테이블(42)에는 해당 VPI/VCI에 대한 정보와 함께 재조립 버퍼(43)에서 오버플로우가 발생되었는지를 나타내는 디스카드 플래그(D)가 있다. 디스카드 플래그(D)가 수신(RECEIVE: 예컨대, 0) 이면 해당 VPI/VCI의 셀들은 제조립 버퍼(43)에 저장되고, 폐기(DISCARD: 예컨대, 1)이면 해당 VPI/VCI의 이후에 수신된 셀들은 재조립 버퍼에 저장하되지 않고 모두 버린다.
따라서 재조립 버퍼(43)에는 유효한 패킷들의 데이터만이 저장되므로 재조립 버퍼의 사용 효율을 높이고, 오버플로우가 발생되는 것을 어느 정도 방지할 수 있다.
도 5는 본 발명에 따른 동작 흐름을 도시한 순서도로서, 셀손실율에 민감한 연결i의 셀k를 입력하는 단계(100); 재조립 버퍼에서 오버플로우가 발생되는지를 검사하는 단계(101); 재조립 버퍼에서 오버플로우가 발생되면 수신된 셀을 버리고, 버려지는 셀이 엔드오브패킷(EOP)인지를 판단하여 엔드오브패킷(EOP)이 아니면 연결i의 디스카드 플래그(D)를 폐기(DISCARD)로 설정하는 단계(101,105,106,107); 버려지는 셀이 엔드오브패킷(EOP)이면 연결i의 디스카드 플래그(D)를 수신(RECEIVE)으로 변경하는 단계(108); 재조립 버퍼가 오퍼플로우가 아니면 연결i의 디스카드 플래그(D)를 검색하여 폐기(DISCARD)인지 판단하는 단계(103); 폐기가 아니면 셀k를 저장하는 단계(104); 폐기이면 셀을 폐기하고 엔드오브패킷(EOP)인지를 판단하여 연결i의 디스카드 플래그를 폐기 혹은 수신으로 변경하는 단계로 구성된다.
도 5에 있어서, 호 설정 단계에서 셀손실율에 민감한 연결i가 설정된 경우에 이 연결i에 해당하는 셀들이 수신되는 중에 재조립 버퍼에 오버플로우가 발생되면 그 연결i의 데이터들은 모두 버려지게 된다.
이를 위하여 연결i의 셀들이 입력되면 먼저 재조립 버퍼에서 오버플로우가 발생되었는지를 판단한다. 재조립 버퍼에서 오버플로우가 발생된다는 것은 수신될 셀을 저장할 더 이상의 프리버퍼가 없다는 것이다. 이때 사용되는 버퍼관리기법에 따라 버퍼에 저장된 셀들의 우선순위를 검토하여 우선순위가 낮은 셀을 버리기도 하고, 지연에 민감한 연결일 경우에 지연시간이 큰 셀을 버리기도 한다. 그런데 본 발명에서와 같이 셀손실율에 민감한 연결의 경우에 오버플로우 등에 의해 일정 이상의 셀이 손실되게 되면 그 연결에 해당하는 이후 셀들을 모두 버린다.
상기 판단결과 오버플로우가 발생되면 수신된 셀을 폐기함과 아울러 수신된 셀이 패킷의 마지막(EOP)인지를 판단하여 마지막(EOP)이면 다음 패킷을 수신할 수 있도록 수신 룩업테이블의 디스카드 플래그(D)를 수신(RECEIVE)으로 리셋한다. 즉, 연결이 설정될 경우에 해당 연결의 수신 룩업테이블에 있는 디스카드 플래그(D)는 항시 수신으로 설정되어 있다. 만일, 수신된 셀이 패킷의 마지막(EOP)이 아니면 해당 연결i의 디스카드 플래그(D)를 폐기(DISCARD)로 변경하여 이후에 수신되는 셀들을 버리게 한다.
재조립 버퍼가 오버플로우가 아니면 수신 룩업테이블상에서 연결i의 디스카드 플래그(D)를 검색하여 디스카드 플래그(D)가 폐기이면, 이후 수신된 셀들을 버리고, 폐기0가 아니면 수신된 셀을 재조립 버퍼에 저장한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 셀손실율에 민감한 연결이 설정된 후 재조립 버퍼에 오버플로우가 발생되면 이후에 재조립 버퍼가 정상으로 회복되도 오버플로우 발생 후 수신되는 셀들은 재조립 버퍼에 저장하지 않고 모두 버리므로써 재조립 버퍼를 효율적으로 사용할 수 있다.
Claims (1)
- 호스트시스템에서 운용되는 응용프로그램의 요구에 따라 ATM 망접속기 드라이버가 ATM 망접속기를 제어하여 데이터를 ATM 통신방식으로 전송하고, ATM 망접속기가 수신된 ATM 셀들을 프리버퍼 링의 엔트리가 가리키는 재조립 버퍼에 저장하여 패킷을 재조립하는 ATM 망접속기에 있어서,셀손실율에 민감한 연결의 셀을 입력하는 단계(100);재조립 버퍼에서 오버플로우가 발생되는지를 검사하는 단계(101);재조립 버퍼에서 오버플로우가 발생되면 수신된 셀을 버리고, 버려지는 셀이 엔드오브패킷(EOP)인지를 판단하여 엔드오브패킷(EOP)이 아니면 연결i의 디스카드 플래그(D)를 폐기(DISCARD)로 설정하는 단계(101,105,106,107);버려지는 셀이 엔드오브패킷(EOP)이면 연결i의 디스카드 플래그(D)를 수신(RECEIVE)으로 변경하는 단계(108);재조립 버퍼가 오퍼플로우가 아니면 연결의 디스카드 플래그(D)를 검색하여 폐기(DISCARD)인지 판단하는 단계(103);폐기가 아니면 셀을 저장하는 단계(104); 및폐기이면 셀을 폐기하고 엔드오브패킷(EOP)인지를 판단하여 연결의 디스카드 플래그(D)를 폐기 혹은 수신으로 변경하는 단계로 구성된 ATM 망접속기에서 수신 셀 폐기방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970011864A KR100236037B1 (ko) | 1997-03-31 | 1997-03-31 | Atm 망접속기에서 수신 셀 폐기방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970011864A KR100236037B1 (ko) | 1997-03-31 | 1997-03-31 | Atm 망접속기에서 수신 셀 폐기방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980075622A true KR19980075622A (ko) | 1998-11-16 |
KR100236037B1 KR100236037B1 (ko) | 1999-12-15 |
Family
ID=19501603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970011864A KR100236037B1 (ko) | 1997-03-31 | 1997-03-31 | Atm 망접속기에서 수신 셀 폐기방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100236037B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100624480B1 (ko) * | 2004-11-11 | 2006-09-18 | 삼성전자주식회사 | 프레임 전송 제어 장치 및 방법 |
-
1997
- 1997-03-31 KR KR1019970011864A patent/KR100236037B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100624480B1 (ko) * | 2004-11-11 | 2006-09-18 | 삼성전자주식회사 | 프레임 전송 제어 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR100236037B1 (ko) | 1999-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5796735A (en) | System and method for transmission rate control in a segmentation and reassembly (SAR) circuit under ATM protocol | |
US6724767B1 (en) | Two-dimensional queuing/de-queuing methods and systems for implementing the same | |
US5917828A (en) | ATM reassembly controller and method | |
US6466997B1 (en) | Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node | |
US6084880A (en) | Asynchronous transfer mode adapter for desktop applications | |
JP3682082B2 (ja) | パケットスイッチングネットワークにおけるパケット処理のための装置および方法ならびにフレームリレーネットワークのためのフレーム処理システム | |
US5867480A (en) | Method and apparatus for controlling congestion in a network node | |
EP1095325B1 (en) | Systems and methods for on-chip storage of virtual connection descriptors | |
US5922046A (en) | Method and apparatus for avoiding control reads in a network node | |
US5999980A (en) | Apparatus and method for setting a congestion indicate bit in an backwards RM cell on an ATM network | |
KR100236035B1 (ko) | Atm 망접속기에서 서브 테이블을 이용하여 가상채널의 대역을 할당하는 방법 | |
US5960215A (en) | Transmit data FIFO for flow controlled data | |
US5862206A (en) | Method and apparatus for performing raw cell status report frequency mitigation on transmit in a network node | |
KR100236036B1 (ko) | Atm 망접속기에서 수신 셀 폐기방법 | |
KR100236037B1 (ko) | Atm 망접속기에서 수신 셀 폐기방법 | |
US6212567B1 (en) | Method and apparatus for performing raw cell status report frequency mitigation on receive in a network node | |
US6603768B1 (en) | Multi-protocol conversion assistance method and system for a network accelerator | |
KR19980075620A (ko) | Atm 망접속기에서 재조립된 패킷들을 처리하는 방법 | |
KR100275769B1 (ko) | 비동기 전송 모드 셀 처리 시스템의 메모리 운영방법 | |
KR100248575B1 (ko) | 에이티엠 호스트 어댑터 분해 및 재조립장치 | |
KR19980040452A (ko) | 비동기전송모드 통신방식에서 데이터 전송플로우 제어방법 | |
KR19980019792A (ko) | 비동기전송모드 통신방식에서 브릿지 포맷 데이터 전송방법 | |
KR19980040451A (ko) | 비동기전송모드 통신방식에서 주가상채널을 이용한 고속데이터 수신방법 |
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: 20090901 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |