2
제 1 항에 있어서, 상기 제1 단계는: 상기 데이터 패킷이 노드에 도착하면 처음 도착한 데이터 패킷인지를 검사하여 처음 도착한 패킷인 경우 멀티캐스트 흐름제어를 수행하기 위한 상태변수를 생성 및 초기화하고 버퍼를 할당하는 제3 단계; 상기 도착한 데이터 패킷을 일단 버퍼에 저장해 놓고 현재 노드가 최종 수신자인지를 검사하는 제4 단계; 상기 제4 단계의 검사 결과, 현재 노드가 최종 수신자가 아니면 비어있는 출력 포트를 찾아 이 데이터 패킷이 해당 출력 포트로 다음에 전송될 차례에 있는 패킷인지 검사하고, 해당 하단 노드(d)에 대한 허용 크레디트 개수(ACd)가 0보다 큰 지를 검사하는 제5 단계; 상기 제5 단계의 검사 결과, 하나의 조건이라도 만족하지 못하면 상기 제5 단계를 반복하는 제6 단계; 상기 제5 단계의 검사 결과, 조건을 모두 만족하면 데이터 패킷을 출력 포트로 복사하여 하단으로 전달하고, 해당 하단 노드(d)에 대한 카운터(FCd)를 1씩 증가시키는 제7 단계; 상기 카운터의 증가 결과, 하단 노드들에 대한 카운터들 중 이 카운터가 기준 카운터이면서 크레디트 갱신 단위 (CU)의 배수가 되는지를 검사하는 제8 단계; 상기 제4 단계의 검사 결과, 현재 노드가 최종 수신자이면 데이터 패킷을 어플리케이션 층으로 전달하고 카운터를 1씩 증가시킨 후 상기 제8 단계로 천이하는 제9 단계; 상기 제8 단계의 검사 결과, 조건이 만족되면 각 하단 노드들에 대한 가상 버퍼크기로부터 현재 노드에서 상단으로부터 수신해도 되는 패킷의 양을 결정하여 이 정보를 담은 크레디트 패킷을 생성하여 상단으로 전달하는 제10 단계; 상기 제7 단계 결과, 데이터 패킷이 모든 해당 출력 포트로 전달되었거나 또는 현재 노드가 최종 수신자인 경우, 제9 단계의 결과 어플리케이션 층으로 전달되었는가를 검사하여 모두 전달되지 않았으면 제 5단계로 천이하고, 모두 전달되었으면 종료하는 제 11단계를 포함하여 이루어진 것을 특징으로 하는 흐름제어 방법
|