KR20020067179A - 토큰을 이용한 데이터 전송방법 - Google Patents

토큰을 이용한 데이터 전송방법 Download PDF

Info

Publication number
KR20020067179A
KR20020067179A KR1020010007594A KR20010007594A KR20020067179A KR 20020067179 A KR20020067179 A KR 20020067179A KR 1020010007594 A KR1020010007594 A KR 1020010007594A KR 20010007594 A KR20010007594 A KR 20010007594A KR 20020067179 A KR20020067179 A KR 20020067179A
Authority
KR
South Korea
Prior art keywords
node
token
nodes
data
address
Prior art date
Application number
KR1020010007594A
Other languages
English (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 KR1020010007594A priority Critical patent/KR20020067179A/ko
Publication of KR20020067179A publication Critical patent/KR20020067179A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/417Bus networks with decentralised control with deterministic access, e.g. token passing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 네트워크상에서 토큰을 이용한 데이터전송방법에 관한 것으로, 먼저 네트워크에 접속한 노드 중 하나의 노드만이 토큰을 분배할 수 있는 마스트노드 역할을 할 수 있도록 하는 마스터노드 결정방법을 제공하여 마스터권한 때문에 발생하던 각 노드들간의 충돌로 인한 오류발생을 줄임과 동시에 각 프로세서의 부담을 경감시킬 수 있게 되었다.
또한 본 발명의 마스터노드는 초기에 일정시간(T3)동안 모든 노드들에게 토큰을 분배하여 특정 메시지응답이 있는 노드에게만 토큰을 분배한다. 또한 연속적인 응답이 있는 노드에게는 다음 토큰 턴 어라운드에 토큰개수를 증가시켜 주며, 또한 토큰에 따른 응답이 없는 노드에게는 다음 토큰 턴 어라운드에서 토큰을 분배하지 않는다. 한편으로는 토큰을 분배하지 않은 노드 즉 접속되지 않은 노드에게 일정시간간격으로 토큰을 분배하여 접속여부를 판단하고 접속이 판단된 노드들에게는 위에서 설명한 바대로 토큰을 분배한다. 따라서 본 발명에 따라 토큰분배에 따른 데이터전송시간의 낭비를 줄일 수 있게 됨과 동시에 효율적인 데이터의 전송을 가능하게 하고 있다.

Description

토큰을 이용한 데이터 전송방법{Method of Data transmission using Token}
본 발명은 네트워크상의 데이터 전송 방법에 관한 것으로서, 보다 상세하게는 근거리 통신망 데이터전송방법의 하나인 토큰프로토콜을 이용하여 네트워크상의 데이터 전송방법에 관한 것이다.
근거리 네트워크상에서의 데이터 전송 규약인 프로토콜은 국제 표준화 기구의 하나인 IEEE 802 위원회에서 제정한 프로토콜을 주로 사용하고 있다.
이러한 프로토콜은 데이터의 신뢰성 있는 전달 기능을 담당하는 LLC(Logical Link Control)계층과, 하나의 전송 매체를 다수의 호스트가 공유하는 LAN의 특징적 상황에서 호스트간에 전송 기회를 공평히 부여하고, 하나 이상의 호스트가 동시에 데이터를 전송함으로서 발생되는 충돌현상을 제어하는 기능을 수행하는 MAC(Medium Access Control)계층, 다양한 전송 매체를 통한 비트 열의 전송 기능을 담당하고 있는 물리(Physical)계층으로 구성되어 있다.
현재 이러한 프로토콜 중, 하나의 전송 매체를 다수의 호스트가 공유하여 통신하는 경우 전송 매체가 다수의 호스트간에 적절히 접근되고 공평하게 사용되게하는 기능을 가진 매체접근제어(MAC)방식이 가장 많이 사용되고 있으며, LAN의 연결형상에 따라 버스(Bus)형상에는 CSMA/CD(Carrier sense multiple access/ Collision detection)접근방식이 사용되고, 링(Ring) 혹은 버스 형상에는 제어 토큰(control token)접근방식이 사용되고 있다.
여기서 CSMA/CD접근방식은 버스타입의 네트워크에서 많이 사용되며, 이러한 CSMA/CD방식은 IEEE 802.3으로 표준화되어 있다.
CSMA/CD접근방식의 동작을 좀 더 자세히 살펴보면, 도 1과 같이, 먼저 송신을 원하는 호스트는 송신하기 전에 다른 호스트가 데이터 통신에서 신호를 보낼 수 있는 통신 회선, 즉 채널을 사용하고 있는 지를 조사하게 되고(S1)(S2), 만일 채널이 빈 상태이면 전송을 시작하고(S3) 채널이 사용중이면 계속적으로 감시하고 있다가 빈 상태가 감지되는 즉시 전송한다. 그리고 전송하는 동안 계속적으로 채널을 감시하여 전송 중인 데이터에 충돌이 발생되는지를 조사하게 되는데(S4), 충돌 발생은 정상적인 데이터 송수신 시 적용되는 전압 레벨보다 훨씬 높은 레벨의 전압검출로 인지할 수 있다. 만일 각 호스트들의 데이터 동시 전송으로 인해 충돌이 감지되면 전송은 즉각 중지되고, 충돌을 알리는 32 비트에서 48비트의 길이를 갖는 특수한 프레임신호를 전송하게 되며(S5), 상기 충돌을 알리는 프레임신호 송신 후 임의의 시간 후에 재전송을 시도하는데(S6) 이 시간은 충돌이 재발되는 것을 방지하도록 설계된 대기프로토콜에 의해 결정된다.
상기 CSMA/CD접근방식에서의 대기프로토콜(Truncated binary exponential backoff)의 구체적인 동작을 살펴보면, 상기 데이터 충돌의 발생으로 인한 대기프로토콜의 n번째 데이터 전송 시도에 대한 대기 시간은 64 바이트를 송신하는데 소요되는 슬롯(slot)시간의 I배로 주어지며, I는 집합 {0, 1, 2, ... ,2k-1}, k = min(n,10)중 임의로 선택되는 하나의 숫자이다. 예컨대 3번째(n=3인 경우) 데이터전송시도에 대한 대기 시간은 I={0, 1, 2, 3, 4, 5} 중 하나가 임의로 선택된다.
상기 슬롯시간은 전송하는 패킷의 최소 대기 시간을 말한다. 상기 대기프로토콜에 의한 10번의 데이터 전송시도가 모두 실패한 경우에는, 더 이상 기다리는 시간을 증가시키지 않으며 16번까지 실패한 경우는 오류 상황으로 판단하여 이를 장치의 관리부에 알린 후, 종료하게 된다.
이상과 같은 CSMA/CD접근방식은 적은 부하, 적은 노드(node)의 네트워크에서 최적의 성능을 발휘하여 소,중규모의 네트워크에서 많이 사용되고 있으나, 부하가 일정 수준 이상으로 증가되면 급격히 성능이 떨어지는 단점과 정확한 메시지 응답시간을 알 수 없는 단점이 있다.
또 다른 접근방식인 제어 토큰(control token)접근방식은 링(Ring) 혹은 버스(Bus) 형상의 네트워크에 사용되고 있으며, IEEE 802.4는 토큰버스를, IEEE 802.5는 토큰링을 규정하고 있다.
토큰이란, 네트워크를 따라 돌아다니는 일련의 특별한 비트열로서, 컴퓨터들은 네트워크를 따라 순환하는 토큰을 자신이 잡았을 때만 네트워크에 메시지를 보낼 수 있다. 또한, 각 네트워크에는 오직 한 개의 토큰만이 존재함으로써, 두 개 이상의 컴퓨터가 동시에 메시지를 전송할 가능성을 사전에 차단하고 있다.
또한 상기 토큰 버스는 LAN 에서 데이터의 원활한 전송을 위한 수단으로 토큰을 사용하는 형식을 말하고, 상기 토큰링은 폐쇄 루프구조의 근거리 통신망에서 데이터의 원활한 전송을 위해 토큰을 이용하는 방식을 말한다.
도 2는 종래의 토큰 접근방식의 설명을 위한 도면으로서, 토큰접근방식은 LAN 형상에 따라 링 형식과 버스형식의 두 가지로 나누어지는데, 먼저 토큰링 방식의 동작 원리를 설명하면 다음과 같다.
먼저 A 노드가 C 노드에게 데이터를 전송할 경우, A 노드는 모든 호스트가 어떠한 프레임도 송신하고 있지 않는 프리토큰(Free Token)을 받은 후에 이를 비지토큰(Busy Token)상태로 바꾼다. 다음 C 노드의 주소와 데이터, 데이터 확인 체크섬(Check Sum)을 부착한 데이터프레임을 만든 후에 링으로 내보낸다. 링을 따라 순회하는 상기 데이터프레임은 목적지가 아닌 B 노드에 도착할 경우에는, 상기 B노드는 상기 데이터프레임의 목적지 주소를 검색하여 자신의 데이터가 아님을 확인한 후에, 상기 데이터프레임을 증폭하여 링을 통해 다음 C 노드로 보낸다. 상기 데이터프레임을 받은 C 노드는 데이터프레임의 목적지 주소를 확인하여 자신의 주소와 일치하면 데이터를 복사하고 수신확인여부 신호를 추가, 증폭하여 다음 노드인 D 노드에게 보낸다. 이와 같은 방법으로 계속 링을 따라 순회하여 상기 데이터프레임은 최초에 송신한 호스트 A 노드에 도달하게 되고, 최종적으로 토큰을 수신한 A 노드는 데이터를 소멸시키면서 다시 토큰을 비지(Busy)상태에서 프리(Free)상태로 바꾼다.
그런데, 전술한 바와 같이, 토큰링 전송방식은 프리토큰을 받은 호스트가 비지토큰으로 전환하여 송신한 후, 그 비지토큰(Busy token)이 전송한 호스트로 되돌아 와야만 링에 새로운 프리토큰(free token)을 삽입하여 인접 호스트로 전송하게 된다. 따라서, 만일 한 노드가 고장이 발생하여 데이터를 흡수한 뒤 재송신할 수 없다면 전체 네트워크는 사용할 수 없게 되는 단점이 있다.
한편, 토큰버스방식은 각 노드들의 연결형태가 물리적으로는 버스(Bus) 구조이나, 논리적으로는 토큰링 형태의 특성을 가진다. 따라서 데이터 전송을 위해 망을 초기화할 때에 각 노드들은 적절한 순서로 가상 링을 구성하게 되고, 토큰이 상기 가상 링을 따라 순환하는 형식은 토큰링 형태와 동일하다. 즉, 데이터를 전송하고자 하는 노드는 토큰이 자기 위치에 왔을 때 데이터를 전송하고, 데이터 전송 확인 후에는 토큰을 다음 노드에게 넘겨주게 된다.
이러한 토큰버스방식은 가상 링형태를 띄고 있기 때문에, 기본적으로 모든 노드가 네트워크 접근을 교대로 허용해줄 수 있는 권한을 가진 마스터노드역할을 수행하게 된다.
그런데, 마스터 권한을 가진 노드는 할당받은 시간만큼 전송선로를 점유할 권한이 있으므로, 모든 노드들이 가진 마스터권한 때문에 각 노드들의 충돌로 인한 오류발생의 여지가 많다. 따라서 이러한 오류를 줄이기 위해 각 노드들이 통신프로토콜에 많은 타이머를 사용하게 되고, 이로 인해 프로세서에 많은 부담을 주게된다.
본 발명은 상기와 같은 종래의 문제점을 해결하기 위해 안출된 것으로, 본발명의 목적은 데이터의 전송에 있어서 네트워크에 연결된 각 노드들에 대한 충돌을 줄이고, 보다 정확하게 데이터를 전송할 수 있는 방법을 제시하는데 있다.
본 발명의 다른 목적은 데이터 전송선로의 점유에 따른 오류를 줄이기 위한 각 프로세서들의 부담을 줄여, 효율적이고 안정적인 데이터 전송방법을 제시하는데 있다.
도 1은 종래의 CSMA/CD접근방식의 동작을 나타내는 흐름도.
도 2는 종래의 토큰 접근방식의 설명을 위한 예시도
도 3은 본 발명에 따른 토큰의 분배 및 노드관리를 위한 리얼마스터노드의 결정방법의 설명을 위한 간략한 네트워크 구성도
도 4는 본 발명에 따른 토큰의 구조도
도 5a, 5b는 각각 본 발명에 따른 토큰과 전송될 데이터가 하나인 경우 및 여러 개인 경우의 전송시간 분배에 따른 상관관계를 도시한 도면
도 6은 본 발명에 따른 접속메시지의 구조도
도 7은 본 발명에 따른 노드테이블의 구조도
도 8a, 8b는 각각 본 발명에 따른 새로운 노드의 검색주기 및 새로운 노드의 검색에 따른 토큰분배주기를 도시한 도면
도 9는 본 발명에 따른 토큰 분배방법을 도시한 순서도
<도면의 주요 부분에 대한 부호의 설명>
10 : 전송라인12,14,16 : 마스터노드
20 : 송수신장치22,24,26 : 슬레이브노드
30 : 토큰 40 : 접속메시지
50 : 노드테이블
상기 목적을 달성하기 위해, 본 발명은 네트워크를 구성하고 있는 전송라인과; 상기 전송라인에 접속한 다수의 노드와; 상기 전송라인에 접속한 노드들에 대해 토큰의 분배를 담당할 리얼마스터노드를 결정하는 단계와; 상기 리얼마스터노드는 상기 전송라인에 접속한 모든 노드에 대해 일정시간(T3)동안 토큰을 분배하여 응답이 있는 노드를 노드테이블에 등록하는 단계와; 상기 노드테이블에 등록된 노드 중 일정시간(T4)동안 응답이 없는 노드를 삭제하는 단계와; 일정시간(T5)마다 모든 노드들에게 토큰을 분배하여 연결되지 않은 노드가 응답할 경우 상기 노드테이블에 추가하는 단계와; 상기 리얼마스터노드에 의해 분배되는 각 토큰 당 데이터 전송 가능시간(T1)을 설정하는 단계와; 상기 토큰과 데이터프레임 사이의 시간(T2)동안 응답할 노드로부터 데이터의 전송이 없을 경우 일정시간(T6) 후 다음 노드에게 토큰을 분배하는 단계로 구성된 데이터 전송방법을 제공한다.
상기 전송라인은 데이터의 전송이 가능한 통신선로를 말한다.
상기 노드(Node)는 네트워크상에 연결된 각 호스트 컴퓨터와 상기 전송라인과의 연결점을 칭하며, 데이터 송신의 재분배점 또는 끝점을 칭한다.
이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 설명하기로 한다.
도 3은 본 발명에 따른 토큰 버스를 이용한 데이터 전송방식 중, 다수의 노드 중에서 토큰의 분배 및 모든 노드관리를 담당할 리얼마스터노드를 결정하는 방식의 설명을 위한 네트워크 구성도로서, 네트워크는 데이터의 전송을 위한 전송라인(10)과; 상기 네트워크에 연결된 N개의 마스터 및 M개의 슬레이브 노드, 즉 마스터1(12), 마스터2(14), 마스터N(16) 및 슬레이브1(22), 슬레이브2(24), 슬레이브M(26)과; 상기 각각의 노드들을 상기 전송라인(10)과 연결시켜주는 송수신장치(20)로 구성되어 있다.
도시한 바와 같이, 상기 각 노드들은 상기 전송라인과 버스형으로 연결된 네트워크를 이루고 있으나, 상기 버스형의 네트워크는 본 발명에 따른 데이터 전송방법의 설명을 위한 일 예시이며, 그 형태에 한정되는 것은 아니다.
또한 상기 각 마스터(Master)노드(12)(14)(16)는 상기 네트워크상의 토큰의 분배 및 각 노드들의 관리를 담당할 수 있는 기능을 가진 호스트들을 칭하고, 상기 슬레이브(Salve)노드(22)(24)(26)는 상기 토큰에 의한 데이터의 송수신만이 가능한 호스트들을 칭한다.
본 발명에서는 상기와 같은 네트워크환경하에서 상기 다수의 마스터노드(12)(14)(16) 중에서, 실제로 상기 네트워크상에서의 통신을 위한 토큰 분배를 담당할 리얼마스터(Real master)노드가 하나만 존재하는 것이 특징인 바,이를 결정하는 방법에 대한 바람직한 예시를 살펴보면 다음과 같다.
첫째, 상기 다수의 마스터노드(12)(14)(16) 중 가장 먼저 네트워크에 접속한 마스터노드(예를 들어 12)가 우선적으로 리얼마스터노드가 되며, 이후 상기 리얼마스터노드의 주소보다 큰 노드주소를 가지는 마스터노드(예를 들어 14)가 상기 전송선로에 연결되면, 큰 노드주소를 가진 마스터노드(14)가 상기 리얼마스터노드로부터 토큰을 받았을 때 새로이 리얼마스터노드로 설정되는데, 이러한 방법은 토큰에 포함된 노드주소정보를 비교함으로써 가능하다.
만약 다수개의 마스터노드가 동시에 네트워크에 접속할 경우에는 각각의 마스터노드들이 가진 네트워크내의 고유한 주소로써 리얼마스터노드를 결정하게 된다. 즉, 동일 네트워크내의 최대연결 노드 수가 255개인 경우, 각각의 마스터노드들에게 분배된 0에서 254까지의 고유주소를 이용하여 리얼마스터노드를 결정하게된다. 노드주소의 대소를 구별하는 방법으로는 여러 가지가 있을 수 있으며 예를 들어, 네트워크상에서 대기하고 있는 대기시간을 이용하여 구별할 수 있으며, 여기서 대기시간이란 아래 (수식1)과 같이 정의된다.
(수식1) 대기 시간(Waiting Time) Tw = (256-마스터노드의 고유주소)×N0
상기 'N0'는 임의의 정수로서 주소 구별에 의한 최소 대기 시간 차이로써 토큰을 수신 할 수 있어야 하므로 상기 N0는 토큰 프레임 전송시간 보다 큰 시간으로 설정한다.
상기 정의에 의해 산출된 각각의 마스터노드들의 대기시간을 1 또는 임의의 수만큼 동일하게 감소시키면, 마스트노드의 고유주소값이 큰 마스트노드의 대기시간(Tw)이 가장 먼저 0이 되고, 이에 따라 리얼마스터노드를 결정한다.
이상의 설명에서는 본 발명에 따른 실시예에서 리얼마스터노드를 결정하는 방법을 상기 마스터노드의 주소가 큰 순서로 리얼마스터노드가 되도록 하는 방법을 공식화하여 설명하였으나, 이는 리얼마스터노드를 결정하기 위한 방법의 일 예시이며, 예를 들면 상기 네트워크에 동시에 접속한 다수의 마스터노드들 중 리얼마스터노드를 결정하는 방법을 각각의 마스터노드가 가진 고유주소를 비교하여 주소가 작은 순서로 리얼마스터노드를 결정할 수도 있을 것이다. 또한 리얼마스터노드가 결정되었다 하더라도 이후에 상기 리얼마스터노드 보다 더 작은 고유주소를 가진 마스터노드가 접속하게 되면 그 마스터노드가 리얼마스터노드로 다시 설정되게 된다. 그러나 본 발명의 리얼마스터노드를 결정하는 방법이 각 노드가 가진 고유주소를 이용하여 결정하는 것을 목적으로 하는 것이므로 상기의 결정방법에 한정하는 것은 아니며, 이는 네트워크 관리자의 결정에 따라 다양할 것이다.
상기와 같은 방법을 통해 리얼마스터노드가 결정되면, 상기 리얼마스터노드는 다른 마스터노드들과 슬레이브노드들에게 토큰을 분배하게 된다.
상기 리얼마스터노드에 의해 분배된 토큰(30)의 구조는 도 4와 같이, 수신노드주소(31)와 토큰의 판별을 위한 아이디(ID)(33), 토큰소유노드주소(35)와 리얼마스터노드주소(37) 및 프레임체크시퀀스(39)로 구성되어 있다.
상기 수신노드주소(31)는 토큰(30)을 전달받을 수 있는 각각의 노드주소를 말하고, 상기 토큰소유노드주소(35)는 상기 리얼마스터노드에 의해 분배된 토큰을 전달받은 노드의 주소를 말한다.
상기 수신노드주소(31)는 토큰을 상기 전송선로에 연결된 노드에게 보낼 경우에는 토큰소유노드주소(35)가 되고, 그렇지 않을 경우에는 모든 노드가 수신하는 방송용(Broadcasting)주소가 된다. 또한 상기 프레임체크시퀀스(39)는 이전에 전송된 데이터의 수신오류여부를 체크하는 부분으로서, 일반적인 직렬통신에서 쓰이고 있는 기술이다.
상기 토큰소유노드주소(35)와 리얼마스터노드주소(37)은 전술한 리얼마스터노드의 결정에 관련된 토큰 정보로서, 새로운 마스터노드가 상기 전송라인에 접속하여 상기 리얼마스터노드로부터 토큰을 받았을 경우, 토큰에 포함된 상기 두 주소정보를 비교하여 그 비교 결과에 따라 다시 리얼마스터노드를 결정하게 된다. 이때 그 결정방법은 네트워크 관리자의 리얼마스터노드 결정방법에 따른 설정에 따라, 즉 고유주소가 큰 마스터노드 또는 고유주소가 작은 마스터노드를 리얼마스터노드로 결정하는가에 따라 달라질 수 있을 것이다.
도 5a와 5b는 각각 본 발명에 따른 데이터전송에 있어서, 토큰소유노드가 전송할 데이터가 하나인 경우와 전송할 데이터가 여러 개인 경우의 토큰과 데이터의 전송시간에 따른 상관관계를 도시하고 있으며, 각 토큰 당 데이터 전송가능 시간 T1과, 다음 토큰이 분배되는 시간 T6과, 토큰프레임전송시간 T7과, 토큰과 데이터프레임사이 및 데이터프레임과 데이터프레임 사이의 시간 T2를 나타내고 있다.
상기 각 토큰 당 데이터 전송가능 시간 T1과 토큰과 데이터프레임사이 및 데이터프레임과 데이터프레임 사이의 시간 T2, 다음 토큰이 분배되는 시간 T6과, 토큰전송시간 T7은 임의로 설정된 시간으로서, 네트워크의 종류와 각 노드의 프로세서 종류 및 응용에 따라 다양한 시간간격의 설정이 가능하다.
상기 리얼마스터노드가 토큰을 송신하게 되고, 상기 토큰을 받아 토큰소유노드가 된 노드는, 다른 노드로 전송할 데이터가 있을 경우 T2시간 후에 데이터를 송신하게 된다.
여기서 상기 토큰소유노드는 하나의 토큰 당 데이터 전송가능 시간 T1에서 토큰프레임전송시간 T7을 뺀 나머지 시간동안은 데이터의 개수에 상관없이 데이터를 전송할 수 있으나, 토큰과 데이터프레임사이 및 데이터프레임과 데이터프레임 사이의 시간 T2는 반드시 지켜져야 하는데, 그 이유는 데이터를 받는 노드의 최소 데이터처리 시간을 보장하고, 만약 토큰과 데이터프레임사이 시간 T2보다 큰 시간인 토큰분배시간 T6동안에 데이터가 상기 전송라인에 전송되지 않는 경우에는, 상기 토큰소유노드가 전송할 데이터가 없는 경우로 간주되어 상기 리얼마스터노드는 T6시간 이후에 다음 노드에게 토큰을 분배하게 된다. 따라서 토큰과 데이터프레임사이 및 데이터프레임과 데이터프레임 사이의 시간 T2는 항상 다음 토큰이 분배되는 시간 T6보다는 짧은 시간이어야 한다.
이상에서 설명한 바와 같이, 본 발명에 따른 데이터전송을 위한 리얼마스터노드의 결정방법과 토큰구조 및 토큰과 데이터의 전송시간 간격이 정해진 토큰버스의 데이터전송에 따른 노드의 검색방법을 설명한다.
먼저 상기 리얼마스터노드 결정방법에 의해 결정된 리얼마스터노드는 토큰의 효율적인 분배를 위해 상기 전송선로(10)에 연결된 노드와 연결되지 않은 노드를 검색하게 되는데, 상기 리얼마스터노드는 먼저 모든 각각의 노드들에게 임의의 T3시간동안 토큰을 분배하게 된다. 상기 분배된 토큰에 의해 각 노드들은 자신의 접속메시지(Alive message)를 다시 상기 리얼마스터노드로 전송하게 되는데, 상기 접속메시지를 전송 받은 리얼마스터노드는 접속메시지를 보내온 노드를 자신의 노드테이블에 등록을 하고 상기 노드가 전송선로에 연결되었다는 것을 인식하게 된다.
상기 T3은 초기에 리얼마스터노드가 결정되었을 때 네트워크에 연결되어 있는 각각의 노드를 등록하기 위해 각 노드들에게 토큰을 분배하는 시간이다.
여기서 접속메시지(40)는, 도 6과 같이, 상기 메시지의 판별을 위한 아이디(ID)(42), 메시지크기(43), 메시지 송신주소(44) 및 노드형상에 대한 정보(45)와, 모든 노드들에게 자신의 노드 정보를 전달하기 위한 방송용(Broadcasting)주소(41) 및 이전 데이터의 오류확인을 위한 프레임체크시퀀스(46)로 구성되어 있다.
상기 접속메시지에 대해 보다 상세히 설명하면, 일반적으로 전송 선로 상에서 발생 가능한 프레임에는 토큰과 메시지가 있는데, 메시지는 토큰을 제외한 모든 프레임을 말하며, 이들의 한 종류가 접속 메시지이다. 상기 토큰과 접속 메시지는 네트워크 운용에 관한 프레임이고, 나머지는 노드들간의 데이터 전달에 사용되고 있다.
또한 상기 노드테이블은, 도 7을 참조하여 설명하면, 상기 전송라인에 연결된 최대노드의 개수가 255개일 경우, 각각의 노드에 대해 저장공간의 크기가 N1(bit)*255인 접속테이블(Alive table)(52), 저장공간이 N2(bit)*255인 최대토큰테이블(Max token table)(54)로 구성된 2가지의 정보테이블로 구성되어 있다.
상기 N1은 2이상의 정수이며, N2는 1 이상의 정수이다.
상기 최대토큰테이블(54)은 이전 토큰 분배시기에 각각의 노드들에게 분배된 토큰 개수, 즉 다음번 토큰 분배시기에 받을 수 있는 토큰의 개수정보를 저장하고 있다.
상기 도7에서 각 번지의 'X'표시는 0에서 F까지의 16진수로 된 임의의 숫자이며, 각 테이블마다 마지막 주소인 FF번지는, 각각의 노드들의 주소 중 마지막 주소인 FF(노드 주소 255)가 모든 노드들에게 보내는 메시지를 의미하는 방송용 주소로 사용되고 있기 때문에 본 도면에서는 제외하였다.
상기 노드테이블에 등록된 각 노드들은 임의로 설정된 또 다른 T4시간동안 일정하게 접속메시지(40)를 송신하여야 하며, 상기 리얼마스터노드는 T4시간동안에 접속메시지를 송신하지 않은 노드는 전송선로에서 상기 노드가 분리된 것으로 간주하여 노드테이블에서 삭제하게 된다.
상기 접속메시지 대기시간 T4는 수식2와 같이 구해진다.
(수식2) T4 = N3 x T8
상기 N3은 사용자의 설정에 의해 부여되는 2 이상의 임의의 정수며, 상기 임의의 시간 T8은 상기 접속테이블(52)의 N3값들을 1 씩 감소시키는 시간주기를 말한다. 상기 접속테이블(52)은 리얼마스터노드를 제외한 다른 노드들로부터 접속메시지(40)를 받으면 상기 접속테이블의 값을 N3으로 설정한다.
또한 상기 N3은 접속메시지 대기시간 T4시간 동안에 리얼마스터노드가 한번 이상의 접속 메시지를 받을 수 있도록 하기 위해 2 이상의 값이어야 하는데, 예를들면 이하 수식3과 같이 설정할 수 있다.
(수식3) 2 < N3 < 2N1
또한 상기 리얼마스터노드는 임의의 시간 T8시간 동안마다 모든 노드들의 접속테이블의 N3값들을 1씩 감소시키게 되는데, 상기 접속테이블(52)이 0이 아닌 노드는 연결된 노드로 인식하고, 접속테이블(52)이 0인 노드는 T4시간동안 접속메시지를 보내지 않았으므로 연결되지 않은 노드로 인식한다. 따라서 상기 리얼마스터노드는 주소가 0에서 254로 설정되어 있는 각각의 노드들 사이에 접속테이블(52)의 값이 0이 아닌 노드들을 순차적으로 검색하여, 연결된 노드들에 대한 토큰 분배순서를 결정하고, 검색된 노드의 주소가 254번일 경우에는 주소 0번부터 다시 검색하여 이전 검색과 동일하게 반복적으로 연결되어 있는 노드에게 토큰을 분배한다. 이와 같이 상기 리얼마스터노드가 주소 0부터 254까지 연결되어 있는 노드를 순차적으로 검색하여 토큰을 보내는 수행과정을 토큰 턴 어라운드(Token turn around)라고 한다.
그리고 도 8a와 같이, 연결되어 있지 않던 노드들이 상기 노드테이블(50)에 새로이 등록될 경우를 위해 임의의 시간 T5마다 주소 0부터 마지막 주소인 254까지 순차적으로 모든 노드들에게 토큰을 분배하게 된다.
그런데 상기와 같이 토큰을 분배할 경우에는, 상기 T1 시간 분배 또는 T7, T6 시간 분배에 의한 시간 간격과 T5 시간 분배에 의한 각각의 시간 간격이 일치하지 않는 경우가 있을 수 있기 때문에, 도 8b의 도시와 같이, T5시간마다 새로운 연결노드를 검색하여 토큰을 분배하고 난 뒤, 다음 토큰 분배 시에 상기 접속테이블(52)에 등록되어 있지 않은 노드를 위한 토큰을 분배하게 된다.
이상과 같이 전송선로에 연결된 노드를 위한 본 발명에 따른 토큰 분배방법을 도 9의 순서도를 참고하여 설명한다.
상기 리얼마스터노드의 토큰 턴 어라운드 수행에 의해 연결된 노드를 검색하여 등록한 후, 토큰 분배에 따른 메시지응답이 있었을 경우는 이전 노드 토큰 출력 후 T1에서 T7만큼의 시간을 뺀 만큼의 시간 뒤에 토큰을 분배하게 되며, 이전 토큰분배에 따른 메시지 응답이 없었을 경우에는 이전 노드의 토큰 분배 후 T6시간 뒤에 주소가 n인 임의의 노드를 포함한 각각의 노드들에게 토큰을 출력하게 되는데(S1)(S2), 임의의 주소n인 노드로 토큰이 상기 리얼마스터노드는 다음 토큰이 분배되기까지의 시간인 T6보다는 작고 T2보다는 큰 시간동안에 상기 n노드가 접속메시지 또는 데이터와 같은 신호를 보냈는지를 검색하게 되는데, 이것은 상기 n노드가 보낸 접속메시지의 시작부분의 검출에 의해 인식하게 된다.(S3)
T6시간동안 상기 n노드의 토큰에 대한 응답이 전혀 없을 경우는 이번 토큰 턴 어라운드 시기에 n노드로부터 출력할 데이터가 없다는 뜻이므로, 다음 토큰 턴 어라운드 시에 연속적으로 출력할 데이터가 없을 것으로 간주한다. 따라서 다음번 토큰 턴 어라운드 시기에 토큰을 하나만 받을 수 있도록 주소 n노드의 최대토큰테이블(54)의 값과 계수토큰값을 모두 0으로 설정한 후, 주소 n을 연결된 다음차례의 노드 주소로 바꾸어 설정하고(S4) 하나의 토큰분배 주기를 끝내게 되는데(S10), 이런 경우에는 다음 번 토큰 턴 어라운드 시에는 상기 n노드는 최대 하나의 토큰을받게 된다.
여기서, 상기 계수토큰값은 일종의 메모리로서, 상기 최대토큰테이블값에 의해 이번 토큰 턴 어라운드에서 각각의 노드에게 토큰의 분배가 진행되고 있는 동안에 계수되는 토큰의 개수가 저장되며, 토큰 분배에 따른 계수토큰값의 측정값과 상기 최대토큰테이블값과의 연속적인 비교가 이루어진다.
상기 T6시간 동안 접속된 상기 n노드에 대한 응답이 있고, 상기 주소 n인 노드에서 이전 토큰 턴 어라운드에 계속적인 응답이 있었을 경우는 토큰이 연속적으로 분배되며, 동시에 이번 토큰 턴 어라운드 시에 상기 n노드에게 보낼 수 있는 최대 토큰 개수만큼의 토큰을 분배했는지를 확인하기 위해 상기 n노드의 최대토큰테이블(54)과 계수토큰값이 같은지를 연속적으로 비교하게 된다.(S5)
이때 상기 n 노드의 최대토큰테이블(54)에는 상기 n노드보다 작은 주소를 가진 노드들의 경우에는 다음 토큰 턴 어라운드 시에 받을 수 있는 최대토큰 개수를 저장하고 있으며, n노드보다 큰 주소의 노드인 경우에는 이번 토큰 턴 어라운드 시에 받을 수 있는 최대토큰 개수를 저장하고 있다.
상기 (S5)에서 주소 n에게 분배되어야 할 토큰의 개수값인 최대토큰테이블 값과 현재 분배되고 있는 토큰개수를 측정하고 있는 계수토큰값의 비교 결과가 다를 경우에는, 이번 토큰 턴 어라운드 시에 상기 n 노드에게 보낼 수 있는 토큰 개수가 더 있다는 의미이므로 상기 계수토큰값을 1증가시키고 이번 토큰 분배를 끝내게 되며(S6)(S10), 상기 개수 검색결과가 같을 경우에는 상기 최대토큰테이블의 값을 상기 최대토큰테이블의 최대값, 즉 한번의 토큰 턴 어라운드에서 한 노드에 분배 가능한 최대 토큰 수인 토큰비율값과 비교 검사하게 된다.(S7)
상기 토큰비율 값은 0보다는 큰 수로서 수식(4)과 같이 설정될 수 있다.
(수식4) 0 < 토큰비율 < 2N2
여기서 N2는 1이상의 정수이다.
상기 토큰비율 값은 네트워크의 상황에 따라 사용자가 상기 수식(4)의 범위 내에서 선택하는 값인데, 상기 토큰비율 값이 커질수록 최대 토큰 턴 어라운드 시간이 증가하게 되고, 연속적으로 응답하는 노드들에게는 연속적으로 응답을 하지 않는 노드들보다 상대적으로 더 많은 토큰을 분배하게 되어 연속적으로 응답하는 노드들이 데이터를 보관하고 있는 시간이 줄어들게 된다. 또한 상기 토큰비율 값이 작아질수록 최대 토큰 턴 어라운드시간이 감소하지만, 연속적으로 응답하는 노드들과 연속적으로 응답을 하지 않는 노드들 사이에 분배되는 토큰의 개수 차이가 작아지게 되어 연속적으로 응답하는 노드가 데이터를 보관하고 있는 시간이 길어지게 된다.
상기 n노드의 최대토큰테이블에 기록된 값이 상기 토큰비율 값과 같거나 클 경우에는(S7) 상기 n노드의 최대토큰테이블(54) 값이 더 이상 증가할 수 없기 때문에 상기 n노드로 토큰을 더 이상 분배할 수 없다. 따라서 다음 순서 노드의 토큰 분배 계수에 사용하기 위해 상기 계수토큰값을 0으로 설정한 후, 주소 n을 연결된 다음 노드의 주소로 바꾸어 설정한 후(S9), 이번 토큰 분배를 마치게 된다.(S10)
상기 최대토큰테이블의 값이 상기 토큰비율 값보다 작을 경우에는 상기 최대토큰테이블의 값을 임의의 수만큼, 예를 들면 1 또는 2만큼 증가시킨 후(S8) 상기 계수토큰값을 다음 순서 노드의 토큰 분배 계수를 위해 0으로 설정하고(S9) 주소 n을 연결된 다음 노드의 주소로 설정한 후 토큰분배를 끝내게 된다.
상기 (S8)에서 증가된 최대토큰테이블 값은 상기 토큰비율 값보다 같거나 작아야 한다.
이전 토큰 턴 어라운드 시에 상기 '토큰비율' 개수만큼의 토큰을 분배하였을 경우에는, 이번 토큰 턴 어라운드 시기에 분배할 수 있는 토큰의 최대값 역시 상기 '토큰비율'개수와 동일하다. 그리고, 이전 토큰 분배시기에 노드의 메시지응답이 없을 경우에는 이번 토큰 턴 어라운드 시기에 분배할 수 있는 토큰의 최대값은 1이 되는데, 이것은 이전에 메시지 응답이 없었던 노드가 언제든지 메시지 응답을 할 수 있기 때문이다.
이상에서 설명한 바와 같이, 본 발명에 따른 토큰버스를 이용한 데이터 전송방법은 초기에 일정시간(T3)동안 모든 노드들에게 토큰을 분배하여 응답이 있는 노드에게만 토큰을 분배하며, 각 토큰 당 메시지 전송시간(T1)을 설정하고, 연속적인 응답이 많은 노드에게는 다음 토큰 분배시기에 토큰개수를 증가시켜 주고, 또한 토큰에 따른 응답이 없을 경우 일정시간(T6) 후 다음노드에게 토큰을 분배함으로써 토큰분배에 따른 데이터전송시간의 낭비를 줄일 수 있게 됨과 동시에 효율적인 데이터의 전송이 가능하게 되었다.
또한 기존의 모든 노드가 네트워크 접근을 교대로 허용해줄 수 있는 권한을 가진 마스터노드역할을 수행하던 것에 비해, 상기와 같은 마스터노드 권한을 행사할 수 있는 특정한 노드를 지정하여 줌으로써 마스터권한 때문에 발생하던 각 노드들간의 충돌로 인한 오류발생을 줄임과 동시에 각 프로세서의 부담을 경감시킬 수 있게 되었다.
아울러, 일정시간(T4)동안 특정메시지 응답이 없을 경우 해당 노드를 삭제하고, 일정시간(T5)마다 새로운 노드를 검색하여 노드테이블에 추가시킴과 동시에 토큰을 분배하여 주기 때문에 연결이 끊어진 노드에 분배되던 토큰의 낭비를 줄일 수 있으며, 또한 새로이 추가되는 노드에 대해서도 신속한 토큰의 분배가 이루어지는 장점이 있다.
또한 종래 기술에 비해 간략해진 통신방법으로 인해 기존의 토큰을 이용한 데이터전송에서 요구되던 하드웨어의 요구사양을 더욱 경감시킬 수 있게 되는 효과를 더욱 수반하고 있다.

Claims (6)

  1. 전송라인과, 상기 전송라인에 접속한 다수의 노드들 사이의 리얼마스트노드를 구비한 네트워크에서 상기 리얼마스트노드가 수행하는 데이터 전송방법으로서,
    전송라인에 접속한 모든 노드에 대해 시간간격을 두고 토큰을 분배하여 응답이 있는 노드를 노드테이블에 기록하는 단계와;
    상기 기록된 노드 중 하나에 토큰을 분배하는 단계와;
    상기 토큰을 분배받은 노드의 데이터전송여부를 확인하는 단계와;
    상기 데이터전송여부를 확인하여 데이터전송이 끝난 경우에는 다음번째 노드에 토큰을 분배하고, 데이터전송을 하지 않은 경우에는 일정시간 후 다음번째 노드에 토큰을 분배하는 단계
    상기 일정 시간 동안 접속 메시지 응답이 없을 경우에 상기 노드테이블에서 삭제하는 단계
    를 포함하는 토큰버스를 이용한 데이터 전송방법.
  2. 청구항 1에 있어서,
    상기 다수의 노드는 토큰분배기능 가진 마스트노드와 토큰분배기능이 없는 슬레이브노드를 포함하고 있고, 상기 리얼마스트노드는 상기 마스트노드 중 하나로 결정되는 데이터전송방법
  3. 청구항 2에서,
    상기 리얼마스트노드는 상기 전송라인에 접속한 마스트노드의 고유주소에 의해 결정되는 데이터전송방법
  4. 청구항 1에 있어서,
    각 단계들은 일정한 방법으로 반복되는 데이터전송방법
  5. 청구항 4에서,
    상기 토큰을 분배받은 노드의 데이터전송여부를 파악하는 단계에서 상기 노드가 데이터를 전송한 경우, 다음 주기에 상기 노드에 분배하는 토큰수를 증가시키는 데이터전송방법
  6. 전송라인과, 상기 전송라인에 접속하고 토큰의 분배기능을 가지고 각각이 고유주소를 가진 다수의 마스트노드와, 상기 전송라인과 접속하고, 토큰분배기능이 없는 다수의 슬레이브노드를 구비한 네트워크에서 상기 다수개의 마스트노드 중 하나인 리얼마스트노드가 상기 나머지 마스트노드와 슬레이브노드에게 토큰을 분배하여 데이터를 전송하는 방법으로서,
    상기 리얼마스트노드는 상기 다수의 마스트노드가 가진 고유주소의 대소에 따라 결정되는 데이터전송방법
KR1020010007594A 2001-02-15 2001-02-15 토큰을 이용한 데이터 전송방법 KR20020067179A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010007594A KR20020067179A (ko) 2001-02-15 2001-02-15 토큰을 이용한 데이터 전송방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010007594A KR20020067179A (ko) 2001-02-15 2001-02-15 토큰을 이용한 데이터 전송방법

Publications (1)

Publication Number Publication Date
KR20020067179A true KR20020067179A (ko) 2002-08-22

Family

ID=27694510

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010007594A KR20020067179A (ko) 2001-02-15 2001-02-15 토큰을 이용한 데이터 전송방법

Country Status (1)

Country Link
KR (1) KR20020067179A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791429B1 (ko) * 2002-05-10 2008-01-07 인터내셔널 비지네스 머신즈 코포레이션 Nas snmp 단일 시스템 이미지

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0357992A2 (en) * 1988-08-10 1990-03-14 Omron Corporation Bus-type local area network using a token-passing scheme
JPH10145406A (ja) * 1996-11-06 1998-05-29 Matsushita Electric Ind Co Ltd ネットワーク制御方法
JP2000165418A (ja) * 1998-11-25 2000-06-16 Matsushita Electric Ind Co Ltd ネットワーク制御装置
KR100300905B1 (ko) * 1998-02-13 2001-09-26 마츠시타 덴끼 산교 가부시키가이샤 네트워크 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0357992A2 (en) * 1988-08-10 1990-03-14 Omron Corporation Bus-type local area network using a token-passing scheme
JPH10145406A (ja) * 1996-11-06 1998-05-29 Matsushita Electric Ind Co Ltd ネットワーク制御方法
KR100300905B1 (ko) * 1998-02-13 2001-09-26 마츠시타 덴끼 산교 가부시키가이샤 네트워크 시스템
JP2000165418A (ja) * 1998-11-25 2000-06-16 Matsushita Electric Ind Co Ltd ネットワーク制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791429B1 (ko) * 2002-05-10 2008-01-07 인터내셔널 비지네스 머신즈 코포레이션 Nas snmp 단일 시스템 이미지

Similar Documents

Publication Publication Date Title
US7139267B2 (en) System and method of stacking network switches
US6023471A (en) Network interconnect device and protocol for communicating data among packet forwarding devices
US5875309A (en) Arbitration system using linked table
US6122667A (en) Method and integrated circuit for high-bandwidth network server interfacing to a local area network using CSMA/CD
US5631905A (en) Communications network control method
US6092214A (en) Redundant network management system for a stackable fast ethernet repeater
KR100280642B1 (ko) 이더넷 컨트롤러의 메모리 관리 장치 및 그 제어방법
US5764895A (en) Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus
US5430848A (en) Distributed arbitration with programmable priorities
CA2408532C (en) Method and apparatus for unique address assignment, node self-identification and topology mapping for a directed acyclic graph
EP0617368B1 (en) Arbitration process for controlling data flow through an I/O controller
KR100210250B1 (ko) 데이타 전송 시스템
JPS62229354A (ja) バスへのノ−ドのアクセスを決定する方法
US5293487A (en) Network adapter with high throughput data transfer circuit to optimize network data transfers, with host receive ring resource monitoring and reporting
JP3995249B2 (ja) 通信リング上の複数のトークンの同時管理の方法およびシステム
KR100232237B1 (ko) 근거리 통신망 인터페이스 장치 및 방법
EP0666666B1 (en) Method and apparatus for improved throughput in a multi-node communication system with a shared resource
US6157951A (en) Dual priority chains for data-communication ports in a multi-port bridge for a local area network
US6442168B1 (en) High speed bus structure in a multi-port bridge for a local area network
GB2401519A (en) Granting access to interconnect devices using sequence numbers
US8473579B2 (en) Data reception management apparatus, systems, and methods
US4780871A (en) Data Transmission system
US20010019579A1 (en) Infinitely expandable ethernet network repeater unit
KR20020067179A (ko) 토큰을 이용한 데이터 전송방법
US7239633B1 (en) Ethernet switch and method of switching

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application