KR20010094288A - 인터 프로세서 통신장치의 메시지 송수신방법 - Google Patents

인터 프로세서 통신장치의 메시지 송수신방법 Download PDF

Info

Publication number
KR20010094288A
KR20010094288A KR1020000017870A KR20000017870A KR20010094288A KR 20010094288 A KR20010094288 A KR 20010094288A KR 1020000017870 A KR1020000017870 A KR 1020000017870A KR 20000017870 A KR20000017870 A KR 20000017870A KR 20010094288 A KR20010094288 A KR 20010094288A
Authority
KR
South Korea
Prior art keywords
message
ipc
task
transmission
messages
Prior art date
Application number
KR1020000017870A
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 KR1020000017870A priority Critical patent/KR20010094288A/ko
Publication of KR20010094288A publication Critical patent/KR20010094288A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

가. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 통신시스템에서 인터 프로세서 통신장치의 메시지 송수신방법에 관한 것이다.
나. 발명이 해결하고자 하는 기술적 과제
인터 프로세서 통신장치를 다양한 피지컬 디바이스에 적용가능하게 하며, 메시지 세그먼테이션/리어셈블기능 및 에러검출기능을 제공하여 다양한 크기의 메시지 송수신을 가능하게 하며, 메시지가 유실되는 경우에 대비하여 메시지를 재전송하게 할 수 있게 한다.
다. 발명의 해결방법의 요지
송신측에서 송신할 메시지의 크기가 인터 프로세서 통신용 피지컬 디바이스의 전송 데이타 유니트 사이즈를 초과하는지를 검색하는 단계와, 상기 송신할 메시지의 크기가 상기 전송 데이타 유니트 사이즈를 초과하면, 그 송신할 메시지를 상기 전송 데이타 유니트 사이즈로 세그먼테이션한 후에 다수의 세그먼테이션된 메시지에 시퀀스 번호를 부가하는 단계와, 상기 다수의 세그먼테이션된 메시지를 시퀀스 번호 순서에 따라 수신측으로 송신하는 단계와, 상기 수신측에서 수신한 다수의 세그먼테이션된 메시지들을 리어셈블하여 처리하는 단계를 구비하는 것을 특징으로 한다.
라. 발명의 중요한 용도
본 발명은 통신시스템에 사용된다.

Description

인터 프로세서 통신장치의 메시지 송수신방법{METHOD FOR TRANSMITTING/RECEIVING MESSAGE IN THE INTER-PROCESSOR COMMUNICATION APPARATUS}
본 발명은 통신시스템에 관한 것으로, 특히 통신시스템의 인터 프로세서 통신장치의 메시지 송수신방법에 관한 것이다.
통상적인 인터 프로세서 통신(inter processor communication; 이하 IPC라 칭함) 과정의 예를 도시한 도 1을 참조하면, IPC는 각 프로세서에 구비된 피지컬 디바이스(100,102)를 통해 이루어진다. 상기 피지컬 디바이스(100,102)로는 LAN(local area network) 칩이나, HDLC(high level link control procedures) 칩이나, DPRAM(dual port random access memory) 등이 채용될 수 있다.
상기와 같은 IPC 중에는 다양한 경우가 발생될 수 있는데, 예를들면 송신측에서 피지컬 디바이스(100,102)의 최대 메시지 전송범위내의 메시지를 송신하는 경우, 상기 최대 메시지 전송범위를 초과하는 메시지를 송신하는 경우, 메시지 송신중에 비트에러가 발생하는 경우 등이 있다.
먼저 상기 송신측의 IPC부가 피지컬 디바이스(100)의 최대 전송 데이타 유니트(transmit data unit;이하 TDU라 함) 사이즈(size)내의 메시지인 1300[바이트]의 메시지를 송신하는 경우에, 송신측의 IPC부는 데이타 길이(data length)와 TX DATA(transmit data)로 구성되는 T_DATA_REQ(transmit data request) 메시지를 피지컬 디바이스(100,102)를 통해 T_DATA_IND(transmit data indication) 메시지로서 수신측 IPC부에 제공한다. 상기 수신측 IPC부는 수신된 T_DATA_IND(transmit dataindication) 메시지를 RX DATA(receive data)로서 정상처리한다.
그리고 송신측 IPC부가 피지컬 디바이스(100,102)의 최대 메시지 전송범위를 초과하는 메시지인 1500[바이트]의 메시지를 송신하는 경우에, 송신측 IPC부는 데이타 길이와 TX DATA로 구성되는 1300[바이트]의 T_DATA_REQ 메시지를 피지컬 디바이스(100,102)를 통해 송신측 IPC부로의 송신을 시도한다. 즉 200[바이트]의 데이타 손실이 발생한다. 이에따라 송신측 IPC부가 전송하고자 하는 메시지가 수신측 IPC부로 제공되지 못한다. 종래에는 이러한 문제를 해결하기 위해서 TDU 사이즈내의 메시지만 송수신하는 방식을 채용하였다.
그리고 송신측 IPC부가 에러검출(error detection) 기능이 없는 듀얼 포트 램과 같은 피지컬 디바이스(100,102)로 T_DATA_REQ 메시지를 전송하는 과정에서 비트에러가 발생하는 경우에, 상기 피지컬 디바이스(100,102)는 비트에러가 발생된 메시지를 그대로 수신측 IPC부로 제공하는데, 이 경우 수신측 IPC부는 그 메시지를 정상적인 메시지로 인식하는 오류를 발생할 수 있었다.
상술한 바와 같이 종래 IPC는 피지컬 디바이스의 최대 메시지 전송범위에 종속되므로 피지컬 디바이스에 따라 각기 다른 소프트웨어가 구현되어야 하며, 최대 메시지 전송범위를 초과하는 메시지는 전송할 수 없었으며, 메시지 전송중 발생하는 비트에러를 인식할 수 없는 경우도 발생할 수 있었다. 또한 종래에는 하나의 피지컬 디바이스를 통해 하나의 IPC 채널만 형성함에 따라 디버깅이나 기타 운용을 위한 부가적인 채널형성이 요구되었다.
상술한 바와 같이 종래에는 IPC가 피지컬 디바이스에 종속되어 피지컬 디바이스의 종류에 따라 소프트웨어를 다르게 구현하여야 하는 번거로운 점이 있었다. 또한 최대 메시지 전송범위를 초과하는 메시지는 전송할 수 없었으며, 메시지 전송중 발생하는 비트에러를 인식할 수 없는 경우도 발생할 수 있는 문제점이 있었다. 또한 하나의 피지컬 디바이스를 통한 IPC 채널이 하나만 형성됨에 따라 디버깅이나 기타 운용을 위한 부가적인 채널형성이 요구되었다.
따라서 본 발명의 목적은 다양한 피지컬 디바이스에 적용가능하며, 메시지 세그먼테이션(segmentation)/리어셈블기능(reassemble) 및 에러검출기능을 제공하여 다양한 크기의 메시지 송수신을 가능하게 하며, 메시지가 유실되는 경우에 대비하여 메시지를 재전송하게 할 수 있는 통신시스템의 IPC 장치의 메시지 송수신방법을 제공함에 있다.
그리고 본 발명의 다른 목적은 하나의 피지컬 디바이스를 통해 다수의 채널을 형성할 수 있도록 하여 정상적인 메시지 송수신과 더불어 디버깅이나 기타 운용을 가능하게 할 수 있는 통신시스템의 IPC 장치의 메시지 송수신방법을 제공함에 있다.
도 1은 종래의 메시지 송수신과정을 개략적으로 도시한 도면,
도 2는 본 발명의 바람직한 실시예에 따른 메시지 송수신부의 구성도,
도 3은 도 2의 IPC 타스크의 구성도,
도 4는 본 발명의 메시지 송수신부가 채용된 통신시스템의 예를 도시한 도면,
도 5는 본 발명의 바람직한 실시예에 따른 링크설정과정을 도시한 도면,
도 6은 본 발명의 바람직한 실시예에 따른 링크해제과정을 도시한 도면,
도 7은 본 발명의 바람직한 실시예에 따른 메시지 송신방법의 흐름도,
도 8은 본 발명의 바람직한 실시예에 따른 메시지 수신방법의 흐름도,
도 9 및 도 11은 메시지의 예를 도시한 도면,
도 10 및 도 12, 도 13은 메시지 송수신예를 도시한 도면,
도 14는 본 발명의 바람직한 실시예에 따른 링크 콘트롤 과정을 도시한 도면.
상술한 목적을 달성하기 위한 본 발명은 송신측에서 송신할 메시지의 크기가 인터 프로세서 통신용 피지컬 디바이스의 전송 데이타 유니트 사이즈를 초과하는지를 검색하는 단계와, 상기 송신할 메시지의 크기가 상기 전송 데이타 유니트 사이즈를 초과하면, 그 송신할 메시지를 상기 전송 데이타 유니트 사이즈로 세그먼테이션한 후에 다수의 세그먼테이션된 메시지에 시퀀스 번호를 부가하는 단계와, 상기 다수의 세그먼테이션된 메시지를 시퀀스 번호 순서에 따라 수신측으로 송신하는 단계와, 상기 수신측에서 수신한 다수의 세그먼테이션된 메시지들을 리어셈블하여 처리하는 단계를 구비하는 것을 특징으로 한다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부 도면에서 많은 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있으나, 이들 특정 상세들은 본 발명의 설명을 위해 예시한 것으로 본 발명이 그들에 한정됨을 의미하는 것은 아니다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
본 발명의 바람직한 실시예에 따른 메시지 송수신부를 도시한 도 2를 참조하면, 상기 메시지 송수신부는 크게 어플리케이션부(200)와 IPC부(300)와 제1 내지 제N메시지 송수신 드라이버부(4001내지 400N)로 구성된다. 상기 어플리케이션부(200)는 어플리케이션 타스크(202)와 업퍼 메시지 큐(204)로 구성된다. 상기 어플리케이션 타스크(202)는 업퍼 메시지 큐(204)를 통해 IPC 타스크(302)가 제공하는 메시지를 수신하며, IPC부(300)를 통해 송신할 메시지가 발생되면 IPC 메시지 큐(304)를 통해 IPC 타스크(302)에 제공한다.
상기 IPC부(300)는 IPC 타스크(302)와 IPC 메시지 큐(304)로 구성된다. 상기 IPC 타스크(302)는 본 발명의 바람직한 실시예에 따른 IPC를 수행하는데, IPC 메시지 큐(304)를 통해 어플리케이션 타스크(202) 또는 제1 내지 제N수신 드라이버 타스크(4061내지 406N)로부터의 메시지를 제공받아 해당 메시지가 어플리케이션부(200)로 제공될 것이면 업퍼 메시지 큐(204)에 제공하고, 해당 메시지가 제1 내지 제N메시지 송수신 드라이버부(4001내지 400N) 중 어느 하나에 제공될 것이면 해당 메시지 송수신 드라이버부의 로워 메시지 큐에 제공한다. 또한 상기 IPC 타스크(302)는 상기 IPC 메시지 큐(304)로부터 제공된 메시지가 IPC 타스크(302) 내부에서 처리될 것이면 그 메시지를 처리한다. 상기 IPC 타스크(302)는 내부에서 생성된 메시지를 제1 내지 제N메시지 송수신 드라이버부(4001내지 400N) 중 어느 하나에 제공하기 위해 해당 메시지 송수신 드라이버부의 로워 메시지 큐에 제공한다.
상기 제1 내지 제N메시지 송수신 드라이버부(4001내지 400N)는 그 구성과 동작이 동일하므로, 이하 제1메시지 송수신 드라이버부(4001)의 구성과 동작만을 설명한다. 상기 제1메시지 송수신 드라이버부(4001)는 제1로워 메시지 큐(4021)와 제1송신드라이버 타스크(4041)와 제1수신 드라이버 타스크(4061)로 구성된다. 상기 제1송신 드라이버 타스크(4041)는 제1로워 메시지 큐(4021)를 통해 IPC 타스크(302)가 제공하는 메시지를 제1피지컬 디바이스(PD1)를 통해 송신한다. 그리고 상기 제1수신 드라이버 타스크(4061)는 제1피지컬 디바이스(PD1)로부터 메시지를 제공받아 IPC 메시지 큐(304)를 통해 IPC 타스크(302)로 제공한다.
이렇게 구성되는 메시지 송수신부간에 송수신되는 메시지는 크게 헤더와 데이타로 구성되는데, 상기 헤더에는 프리미티브(primitive)가 포함된다. 상기 프리미티브의 종류를 나타낸 것이 표 1a 내지 표 1c이다.
상기 IPC 타스크(302)는 상기와 같은 프리미티브를 참조하여 해당 메시지의 소스 및 데스티네이션 및 기능을 확인할 수 있다.
상기 IPC 타스크(302)의 동작을 IPC 타스크(302)의 기능블럭 구성도를 도시한 도 3을 참조하여 좀 더 상세히 설명한다. 상기 IPC 타스크(302)는 디스트리뷰션 펑션(distribution function)부(500), 타이머 펑션(timer function)부(502), 링크콘트롤 펑션(link control function)부(504), 커넥션 콘트롤 펑션(connection control function)부(506), 송신펑션부(508), 수신펑션부(510)로 구성된다.
상기 디스트리뷰션 펑션부(500)는 어플리케이션 타스크(202) 또는 수신 드라이버 타스크(406)가 IPC 메시지 큐(304)를 통해 포스트(POST)한 메시지를 제공받아, 그 메시지의 프리미티브를 검색하여 그 메시지를 해당 펑션부에 제공한다. 즉 상기 디스트리뷰션 펑션부(500)는 상기 메시지가 어플리케이션 타스크(202)로 제공할 것이면 수신펑션부(510)를 통해 어플리케이션부(200)의 업퍼 메시지 큐(204)로 제공하고, 그 메시지가 피지컬 디바이스를 통해 송신할 것이면 송신 펑션부(508)를 통해 송신 드라이버 타스크(404)로 제공하고, 그 메시지가 커넥션 요구에 대한 것이면 커넥션 콘트롤 펑션부(506)에 제공하고, 그 메시지가 링크 콘트롤에 관한 것이면 링크 콘트롤 펑션부(504)에 제공한다.
상기 타이머 펑션부(502)는 IPC 타스크(302)를 주기적으로 웨이크 업(wake-up)시켜 IPC 타스크(302)를 활성화시키며, 또한 링크 콘트롤을 위해 프리미티브가 IPC_HELLO_REQ인 메시지를 생성하도록 하기 위한 타임틱(time tick)을 생성하여 링크 콘트롤 펑션부(504)에 제공한다.
상기 링크 콘트롤 펑션부(504)는 상기 타이머 펑션부(502)로부터 제공된 타임틱에 따라 프리미티브가 IPC_HELLO_REQ인 메시지를 생성하여 송신 드라이버 타스크(404)에 제공함과 아울러, 상기 디스트리뷰션 펑션부(500)로부터 링크 콘트롤을 위한 메시지 즉, 프리미티브가 IPC_HELLO_IND인 메시지가 제공되는지의 여부에 따라 링크 상태를 관리한다. 상기 프리미티브가 IPC_HELLO_IND인 메시지가 미리 정해둔 시간내에 제공되면 그 링크의 상태는 노멀(normal) 상태이고, 그렇지 않으면 상기 링크의 상태는 장애(failure) 상태로 판단된다.
상기 커넥션 콘트롤 펑션부(506)는 커넥션 오리엔티드 서비스(connection oriented service)를 수행하는 것으로, 커넥션을 위한 각종 메시지에 따라 커넥션의 설정 및 해제를 수행한다. 또한 상기 커넥션 콘트롤 펑션부(506)는 채널관리기능을 수행한다.
상기 송신펑션부(508)는 상기 디스트리뷰션 펑션부(500)가 제공하는 메시지를 로워 메시지 큐를 통해 송신 드라이버 타스크로 제공한다. 그리고 상기 수신펑션부(510)는 상기 디스트리뷰션 펑션부(500)가 제공하는 메시지를 업퍼 메시지 큐(204)를 통해 어플리케이션 타스크(202)로 제공한다. 상기와 같은 메시지 송수신부를 전송장비에 적용한 예를 도 4를 참조하여 설명한다. 제1네트워크 엘러먼트(network element)(600)와 제2네트워크 엘러먼트(700)는 OSI(open system interconnection) 스택을 통해 연결된다. 상기 제1,제2네트워크 엘러먼트(600,700)는 본 발명의 바람직한 실시예에 따른 메시지 송수신부를 구비하며, 그 구성이 동일하므로 이하 제1네트워크 엘러먼트(600)의 구성만을 상세히 설명한다. 또한 상기 메시지 송수신부에 구비되는 다수의 큐는 편의상 생략한다.
상기 제1네트워크 엘러먼트(600)는 MPU(602)와 DCU(612)를 구비하며, 상기 MPU(602)와 DCU(612)간의 IPC를 위하여 피지컬 디바이스인 DPRAM(610)이 연결된다. 상기 MPU(602)는 어플리케이션 타스크(608)와 IPC 타스크(606)와 DPRAM 드라이버(604)로 구성되며, 상기 DCU(612)는 DPRAM 드라이버(614)와 IPC타스크(616)와 어플리케이션 타스크(618)와 메시지 송수신 드라이버부(620)로 구성된다. 상기 MPU(602)와 DCU(612)의 IPC 타스크(606,616)는 DPRAM 드라이버(604,614) 및 DPRAM(610)을 통해 메시지 송수신을 수행한다. 또한 상기 DCU(612)의 IPC 타스크(616)는 메시지 송수신 드라이버부(620) 및 피지컬 디바이스인 OSI 스택을 통해 제2네트워크 엘러먼트(700)와의 메시지 송수신을 수행하기도 한다.
이제 본 발명의 바람직한 실시예에 따른 메시지 송수신 방법을 커넥션 설정과정, 메시지 송수신과정 및 링크 콘트롤 과정으로 나누어 상세히 설명한다.
먼저 제1 및 제2네트워크 엘러먼트(600,700)의 DCU(712,612)간 커넥션 설정 및 해제절차를 도 5 및 도 6을 참조하여 설명한다.
상기 도 5에서 커넥션 설정을 위해 제2네트워크 엘러먼트(700)의 DCU(712)의 어플리케이션 타스크(718)는 커넥션 요구를 위해 프리미티브가 APP_CON_REQ인 메시지를 IPC 타스크(716)에 제공한다. 상기 IPC 타스크(716)는 상기 프리미티브가 APP_CON_REQ인 메시지를 제공받아 프리미티브가 IPC_CON_REQ인 메시지를 메시지 송수신 드라이버부(720)의 송신 드라이버 타스크 및 OSI 스택을 통해 송신한다. 상기 OSI 스택 및 제1네트워크 엘러먼트(600)의 DCU(612)의 메시지 송수신 드라이버부(620)의 수신 드라이버 타스크를 통해 상기 프리미티브가 IPC_CON_REQ인 메시지는 프리미티브가 IPC_CON_IND인 메시지로서 IPC 타스크(616)에 제공된다. 상기 IPC 타스크(616)는 그 프리미티브가 IPC_CON_IND인 메시지를 제공받아 프리미티브가 APP_CON_IND인 메시지를 어플리케이션 타스크(618)에 제공한다. 상기 어플리케이션 타스크(618)는 프리미티브가 APP_CON_IND인 메시지를 제공받아 커넥션을 설정한다. 또한 상기 어플리케이션 타스크(618)는 커넥션 요구에 대한 응답에 대한 프리미티브인 APP_CON_RES를 부가한 메시지를 IPC 타스크(616)에 제공한다. 상기 IPC 타스크(616)는 프리미티브가 APP_CON_RES인 메시지를 제공받아 프리미티브가 IPC_CON_RES인 메시지를 메시지 송수신 드라이버부(620)의 송신 드라이버 타스크를 통해 OSI 스택에 제공한다. 상기 OSI 스택 및 제2네트워크 엘러먼트(700)의 DCU(712)의 메시지 송수신 드라이버부(720)를 통해 상기 프리미티브가 IPC_CON_RES인 메시지는 프리미티브가 IPC_CON_CNF인 메시지로서 IPC 타스크(716)에 제공한다. 상기 IPC 타스크(716)는 그 프리미티브가 IPC_CON_CNF인 메시지를 제공받아 프리미티브가 APP_CON_CNF인 메시지를 어플리케이션 타스크(718)에 제공한다. 상기 프리미티브가 APP_CON_CNF인 메시지를 제공받은 어플리케이션 타스크(718)도 커넥션을 설정하며, 이로서 두 네트워크 엘러먼트(600,700)의 DCU(612,712)간의 커넥션 설정이 완료된다.
상기 도 6에서 커넥션 해제를 위해 제2네트워크 엘러먼트(700)의 DCU(712)의 어플리케이션 타스크(718)는 커넥션 해제를 위해 프리미티브가 APP_DISCON_REQ인 메시지를 IPC 타스크(716)에 제공한다. 상기 IPC 타스크(716)는 프리미티브가 APP_DISCON_REQ인 메시지를 제공받아 프리미티브가 IPC_DISCON_REQ인 메시지를 메시지 송수신 드라이버부(720)의 송신 드라이버 타스크를 통해 피지컬 디바이스인 OSI 스택에 제공한다. 상기 OSI 스택 및 제1네트워크 엘러먼트(600)의 DCU(612)의 메시지 송수신 드라이버부(620)를 통해 상기 프리미티브가 IPC_DISCON_REQ인 메시지는 프리미티브가 IPC_DISCON_IND인 메시지로서 IPC 타스크(616)에 제공된다. 상기 IPC 타스크(616)는 그 프리미티브가 IPC_DISCON_IND인 메시지를 제공받아 프리미티브가 APP_DISCON_IND인 메시지를 어플리케이션 타스크(618)에 제공한다. 상기 어플리케이션 타스크(618)는 상기 메시지를 제공받아 커넥션을 해제한다.
또한 상기 어플리케이션 타스크(618)는 커넥션 해제 요구에 대한 응답에 대한 프리미티브인 APP_DISCON_RES를 부가한 메시지를 IPC 타스크(616)에 제공한다. 상기 IPC 타스크(616)는 프리미티브가 APP_DISCON_RES인 메시지를 제공받아 프리미티브가 IPC_DISCON_RES인 메시지를 송수신 드라이버부(620)의 송신 드라이버 타스크를 통해 OSI 스택에 제공한다. 상기 OSI 스택 및 제1네트워크 엘러먼트(600)의 DCU(612)의 메시지 송수신 드라이버부(720)를 통해 상기 프리미티브가 IPC_DISCON_RES인 메시지는 IPC_DISCON_CNF인 메시지로서 IPC 타스크(716)에 제공된다. 상기 IPC 타스크(716)는 그 프리미티브가 IPC_DISCON_CNF인 메시지를 제공받아 프리미티브가 APP_DISCON_CNF인 메시지를 제공받아 프리미티브가 APP_DISCON_CNF인 메시지를 어플리케이션 타스크(718)에 제공한다. 상기 어플리케이션 타스크(718)는 상기 APP_DISCON_CNF 메시지를 제공받아 커넥션을 해제한다. 이로서 두 네트워크 엘러먼트(600,700)의 DCU(612,712)간의 커넥션 해제가 완료된다.
이제 메시지 송수신과정을 도 7 및 도 8의 흐름도를 참조하여 설명한다.
먼저 제1네트워크 엘러먼트(600)의 DCU(612)에서 이루어지는 메시지 송신과정을 어플리케이션 타스크(618)가 제2네트워크 엘러먼트(700)의 DCU(712)에 메시지를 송신하는 것을 예로 들어 설명하다. 어플리케이션 타스크(618)가 IPC 타스크(616)로 송신할 메시지를 제공하면, IPC 타스크(616)는 도 7의 (802)단계로 진행하여 그 송신 메시지가 재전송요구된 메시지인지를 검색한다. 이때 그 송신 메시지가 재전송요구된 메시지이면, IPC 타스크(616)는 (804)단계로 진행하여 현재의 메시지 시퀀스 번호를 재전송요구된 시퀀스번호로 변경한 후에 (806)단계로 진행하고, 그렇지 않으면 그대로 (806)단계로 진행한다. 상기 (806)단계에서 IPC 타스크(616)는 윈도우 사이즈의 메시지 수신완료응답 메시지(IPC_DATA_ACK_REQ)가 수신되었는지를 검색한다. 이때 IPC 타스크(616)는 윈도우 사이즈의 메시지 수신완료 응답 메시지가 수신되었으면 (812)단계로 진행하고, 그렇지 않으면 (808)단계로 진행한다. 상기 (808)단계에서 IPC 타스크(616)는 송신 타임 아웃시간이 되었는지 검색한다. 이때 IPC 타스크(616)는 송신 타임아웃 시간이 되었으면 (810)단계로 진행하여 현재 송신중인 메시지를 소멸시킨다. 그리고 송신 타임아웃 시간이 되지 않았으면 IPC 타스크(616)는 (816)단계로 진행하여 일정시간 대기한 후에 (800)단계로 진행한다.
상기 (812)단계에서 IPC 타스크(616)는 윈도우 카운트가 윈도우 사이즈와 같은지를 검색한다. 이때 윈도우 카운트가 윈도우 사이즈와 같으면 (814)단계로 진행하고, 그렇지 않으면 (818)단계로 진행한다. 상기 (184)단계에서 IPC 타스크(616)는 송신 가능 플래그를 블럭한 후에 (816)단계로 진행한다. 상기 (816)단계에서 IPC 타스크(616)는 일정시간 대기한 후에 (800)단계로 진행한다.
(818)단계에서 IPC 타스크(616)는 윈도우 카운트를 증가한 후에 (820)단계로진행한다. 상기 (820)단계에서 IPC 타스크(616)는 메시지 시퀀스 번호가 1인지를 검색한다. 상기 메시지 시퀀스 번호가 1이면 IPC 타스크(616)는 (822)단계로 진행하고, 그렇지 않으면 (834)단계로 진행한다. 상기 (822)단계에서 IPC 타스크(616)는 메시지 세그먼테이션이 필요한지를 검색한다. 이때 메시지 세그먼테이션의 필요성은 제공받은 송신메시지의 크기가 송신가능한 메시지의 길이보다 클 때에 세그먼테이션이 필요한 것으로 판단한다. 이때 메시지 세그먼테이션이 필요하면 IPC 타스크(616)는 (830)단계로 진행하고, 그렇지 않으면 (824)단계로 진행한다. 상기 (824)단계에서 IPC 타스크(616)는 송신메시지의 시퀀스 번호가 마지막 시퀀스번호인지를 검색한다. 상기 IPC 타스크(616)는 마지막 시퀀스 번호이면 (826)단계로 진행하고, 그렇지 않으면 (812)단계로 진행한다. 상기 (826)단계에서 IPC 타스크(616)는 송신가능 플래그를 블럭시킨 후에 (828)단계로 진행한다. 상기 (828)단계에서 IPC 타스크(616)는 메시지 송신시간을 현재시간으로 갱신하고, 메시지를 송신한다.
상기 (830)단계에서 IPC 타스크(616)는 메시지 세그먼테이션을 수행하고, 각각의 메시지에 시퀀스 번호를 부여한 후에 (832)단계로 진행하여 송신 시퀀스 번호를 증가한 후에 메시지 송신시간을 현재시간으로 갱신한 후에 (812)단계로 진행한다.
상기 (834)단계에서 IPC 타스크(616)는 시퀀스 번호가 마지막 시퀀스 번호인지를 검색한다. 이때 마지막 시퀀스 번호이면 (836)단계로 진행하고, 그렇지 않으?? (832)단계로 진행한다. 상기 (836)단계에서 IPC 타스크(616)는 송신가능 플래그를 블럭시킨후에 (838)단계로 진행하여 메시지 송신시간을 갱신하고 메시지를 송신한다. 이때 메시지에 체크섬을 부가한다.
이제 제1네트워크 엘러먼트(600)의 DCU(612)에서 이루어지는 메시지 수신과정을 제2네트워크 엘러먼트(700)의 DCU(712)가 제1네트워크 엘러먼트(600)의 DCU(612)의 어플리케이션 타스크(618)로 메시지를 송신하는 것으로 예로 들어 설명하다.
상기 제2네트워크 엘러먼트(700)의 DCU(712)가 OSI 스택 및 메시지 송수신 드라이버부(620)를 통해 메시지를 수신하면 IPC 타스크(616)는 (902)단계로 진행하여 메시지 수신시간을 현재시간으로 갱신한 후에 (904)단계로 진행한다. 상기 (904)단계에서 IPC 타스크(616)는 수신메시지 체크섬에 오류가 있는지를 검색한다. 상기 수신메시지에 체크섬 오류가 있으면 (904)단계로 진행하여 메시지 재전송 요구 메시지(IPC-DATA-ACK-REQ)를 송수신 드라이버 타스크를 통해 송신한다. 그리고 상기 수신메시지에 체크섬 오류가 없으면 (906)단계로 진행하여 새로운 메시지인지를 검색한다. 상기 새로운 메시지이면 IPC 타스크(616)는 (926)단계로 진행하고, 그렇지 않으면 (908)단계로 진행한다. 상기 (908)단계에서 IPC 타스크(616)는 수신 메시지 시퀀스번호가 적합한지를 검색한다. 상기 수신 메시지 시퀀스 번호가 적합하면 IPC 타스크(616)는 (910)단계로 진행하고, 그렇지 않으면 (904)단계로 진행한다. 상기 (910)단계에서 수신 메시지 시퀀스 번호를 증가한 후에 수신 메시지를 저장한다. 그후 IPC 타스크(616)는 (912)단계로 진행하여 수신메시지의 시퀀스 번호가 재전송요구 메시지의 시퀀스 번호인지를 검색한다. 그럴 경우 IPC 타스크(616)는 (914)단계로 진행하여 재전송 요구 메시지의 시퀀스번호를 소멸시킨후에 (916)단계로 진행하고, 그렇지 않을 경우에는 그대로 (916)단계로 진행한다. 상기 (916)단계에서 IPC 타스크(616)는 마지막 시퀀스 번호인지를 검색한다. 이때 마지막 시퀀스 번호이면 IPC 타스크(616)는 (932)단계로 진행하여 수신완료 메시지를 전송한다.
그리고 마지막 시퀀스 번호가 아니면 IPC 타스크(616)는 윈도우 사이즈 만큼의 메시지를 수신하였는지를 검색한다. 윈도우 사이즈만큼의 메시지를 수신하지 않았으면 IPC 타스크(616)는 (922)단계로 진행하여 다음 시퀀스 번호에 대한 메시지 수신을 대기한다. 그리고 윈도우 사이즈만큼의 메시지를 수신하였으면 (920)단계로 진행하여 윈도우 사이즈 메시지 수신완료 응답메시지(IPC_DATA_ACK_REQ)를 송신한 후에 (922)단계로 진행한다.
상기 (906)단계에서 새로운 메시지가 아니면 IPC 타스크(616)는 (926)단계로진행하여 메시지 시퀀스 번호가 1인지를 검색한다. 이때 메시지 시퀀스 번호가 1이면 IPC 타스크(616)는 (928)단계로 진행하여 수신 메시지 시퀀스 번호를 증가한 후에 수신 메시지를 저장한다. 이후 (930)단계로 진행하여 ARM 시퀀스 번호가 마지막 시퀀스 번호인지를 검색한다. 이때 그 시퀀스 번호가 마지막 시퀀스 번호가 아니면 (918)단계로 진행하고, 그렇지 않으면 (932)단계로 진행하여 수신 완료 메시지를 전송한다.
상술한 바와 같이 본 발명의 바람직한 실시예에 따르면 송신측은 송신할 메시지의 사이즈가 최대 TDU 사이즈를 초과하면 그 송신할 메시지를 세그먼테이션한후에 송신하고, 수신측에서는 이를 리어셈블함으로써 송수신한 메시지의 사이즈가 피지컬 디바이스에 종속되지 않게 할 수 있다. 또한 메시지를 미리 정해둔 수만큼 송신할 때마다 그 수신결과를 확인하는 방식을 채택함에 따라 메시지 송신 및 수신효율을 향상시킬 수 있다. 또한 송신한 메시지가 중간에 없어지거나 메시지에 에러가 발생하는 경우에는 해당 메시지를 재송신하도록 함으로써 메시지 송수신의 신뢰성을 향상시킬 수 있다.
상기와 같은 방식으로 메시지를 송수신하는 과정을 예를 들어 설명한다. 도 9에 도시한 바와 같이 총 메시지 사이즈가 최대 TDU 사이즈보다는 크지만 윈도우 사이즈보다는 작은 경우의 메시지 송수신과정을 도 10을 참조하여 설명한다. 송신측의 어플리케이션 타스크는 송신할 메시지에 메시지 송신 요구에 대한 프리미티브 APP_DATA_REQ를 부가하여 IPC 타스크에 제공한다. 상기 IPC 타스크는 제공받은 메시지를 제1 및 제2메시지로 세그먼테이션하고, 그 세그먼테이션한 제1 및 제2메시지들에 시퀀스번호를 부여하고, 그 부여한 시퀀스번호를 각각 부가시킨다. 이후 IPC 타스크는 이러한 제1 및 제2메시지에 총 메시지 사이즈에 대한 정보를 부가하고, 제1 및 제2메시지들의 체크섬을 산출하여 각 메시지에 그 산출된 체크섬을 부가한다. 이후 IPC 타스크는 제1메시지에 메시지 송신 요구를 나타내는 프리미티브인 IPC_DATA_REQ를 부가하여 송신 드라이버 타스크 및 OSI 스택을 통해 송신하며, 수신측에서는 메시지 송신 요구수신을 나타내는 프리미티브인 IPC_DATA_IND를 가지는 제1메시지를 수신하게 된다. 이후 송신측 IPC 타스크는 계속하여 제2메시지에 메시지 송신 요구를 나타내는 프리미티브인 IPC_DATA_REQ를 부가하여 송신 드라이버 타스크 및 OSI 스택을 통해 수신측으로 송신하며, 수신측에서는 메시지 송신 요구수신을 나타내는 프리미티브인 IPC_DATA_IND를 가지는 제2메시지를 수신하게 된다. 이와같이 제1 및 제2메시지의 수신후 수신측 IPC 타스크는 수시된 메시지의 시퀀스번호 및 체크섬을 검색하여 그 시퀀스 번호가 순차적이고 체크섬에 오류가 없으면 메시지 수신완료 응답을 나타내는 프리미티브인 IPC_DATA_RES를 가지는 수신완료 응답 메시지를 송신 드라이버 타스크 및 OSI 스택을 통해 송신측으로 송신하며, 송신측에서는 메시지 수신완료 응답 수신을 나타내는 프리미티브인 IPC_DATA_CNF를 가지는 수신완료 응답 메시지를 수신하게 된다. 상기 수신측에서는 수신한 제1 및 제2메시지를 리어셈블한 후에 메시지 송신요구 수신에 따른 프리미티브인 APP_DATA_IND를 부가하여 어플리케이션 타스크에 제공한다.
이와달리 도 11에 도시한 바와 같이 총 메시지 사이즈가 최대 TDU 사이즈보다 큰 것은 물론이며 윈도우 사이즈보다도 큰 메시지를 송수신하는 과정을 도 12를 참조하여 설명한다.
송신측 어플리케이션 타스크는 APP_DATA_REQ의 프리미티브를 부가한 메시지를 IPC 타스크에 제공한다. 상기 IPC 타스크는 그 메시지를 제1 내지 제4메시지로 세그먼테이션한 후에 그 메시지에 시퀀스 번호 및 총 메시지 사이즈, 체크섬을 부가한다. 이후 송신측 IPC 타스크는 제1 내지 제4메시지중 윈도우 사이즈에 해당되는 제1 내지 제3메시지를 시퀀스 번호 순서에 따라 송신한다. 상기 제1 내지 제3메시지를 수신한 수신측 IPC 타스크는 수신한 제1 내지 제3메시지의 시퀀스 번호가 순차적이며, 각 메시지의 체크섬이 정상적인지를 검색한다. 이때 시퀀스 번호가 순차적이고 체크섬도 정상적이면 IPC 타스크는 윈도우 사이즈의 메시지 수신에 대한 응답요구를 나타내는 프리미티브인 IPC_DATA_ACK_REQ가 부가된 윈도우 사이즈 메시지 수신완료 응답 메시지를 송신 드라이버 타스크 및 송신측으로 송신함에 따라 송신측 IPC 타스크는 윈도우사이즈의 메시지 수신에 대한 응답 요구 수신을 나타내는 프리미티브인 IPC_DATA_IND가 부가된 윈도우 사이즈 메시지 수신완료 응답 메시지를 수신하게 된다. 상기 윈도우 사이즈 메시지 수신완료 응답 메시지의 수신후 송신측 IPC 타스크는 다음 시퀀스 번호의 메시지이자 마지막 시퀀스 번호의 메시지인 제4메시지를 송신한다. 상기 마지막 시퀀스 번호의 메시지인 제4메시지를 수신한 수신측 IPC 타스크는 수신된 제4메시지의 시퀀스 번호 및 체크섬을 검색한 후에 시퀀스 번호 및 체크섬에 오류가 없으면 송신측에 수신완료 응답메시지를 제공한 후에 그 수신된 메시지들을 어셈블하여 어플리케이션 타스크로 제공한다.
여태까지는 수신된 메시지의 시퀀스 번호가 순차적인 것을 예로 들었으나 상기 피지컬 디바이스인 OSI 스택의 문제로 인하여 송신한 메시지가 수신측으로 수신되지 않는 경우도 있다. 이러한 경우의 메시지 송수신과정을 도 13을 참조하여 설명한다. 송신측 IPC 타스크가 송신한 제1 내지 제3메시지중 제2메시지가 OSI 스택의 문제로 수신측 IPC 타스크가 수신하지 못하면, 상기 수신측 IPC 타스크는 제2메시지의 시퀀스 번호를 포함하며, 유실된 메시지 패킷에 대한 재전송요구를 나타내는 프리미티브인 IPC_DATA_RETX-REQ가 부가된 재송신 요구 메시지를 송신측으로 송신한다. 이에따라 송신측 IPC 타스크는 유실된 메시지에 대한 재전송 요구 수신을 나타내는 프리미티브인 IPC_DATA_RETX_IND가 부가된 재송신 요구 메시지를 수신하여 상기 제2메시지부터 제3메시지를 송신측으로 재송신한다.
본 발명의 바람직한 실시예에 따른 링크 콘트롤 과정을 도 14를 참조하여 설명한다. 송신측 및 수신측 IPC 타스크는 일정시간마다 발생되는 타임틱에 따라 링크상태 송신 요구를 나타내는 프리미티브인 IPC_HELLO_REQ가 부가된 링크 콘트롤 메시지를 상대 IPC 타스크로 송신한다. 상기 각 IPC 타스크는 일정시간마다 상기 IPC_HELLO_REQ에 따른 IPC_HELLO_IND가 부가된 링크 콘트롤 메시지를 수신하면 해당 링크의 상태를 정상상태로 판단하고, 그렇지 않을 경우에는 링크상태를 실패(FAIL)로 판단한다.
본 발명의 바람직한 실시예에 따르면 상기 링크 콘트롤 메시지는 메시지 송수신을 위한 링크를 통해 송수신되므로, 하나의 링크를 통해 메시지 송수신 및 감시채널까지도 형성할 수 있게 된다.
상술한 바와 같이 본 발명은 송신할 메시지의 사이즈가 최대 TDU보다 크면 그 메시지를 세그먼테이션하여 송신한 후에 수신측에서 리어셈블하도록 함으로써 송수신 메시지의 사이즈가 피지컬 디바이스에 종속되지 않게 할 수 있는 이점이 있다. 또한 유실되거나 에러가 발생한 메시지를 다시 재송수신할 수 있도록 함으로써 IPC의 신뢰성을 향상시킬 수 있다. 또한 메시지 송수신 채널이외의 다른 채널을 운용할 수 있도록 함으로써 온라인 디버깅을 가능하게 할 수 있는 이점이 있다.

Claims (4)

  1. 통신시스템의 메시지 송수신방법에 있어서,
    송신측에서 송신할 메시지의 크기가 인터 프로세서 통신용 피지컬 디바이스의 전송 데이타 유니트 사이즈를 초과하는지를 검색하는 단계와,
    상기 송신할 메시지의 크기가 상기 전송 데이타 유니트 사이즈를 초과하면, 그 송신할 메시지를 상기 전송 데이타 유니트 사이즈로 세그먼테이션한 후에 다수의 세그먼테이션된 메시지에 시퀀스 번호를 부가하는 단계와,
    상기 다수의 세그먼테이션된 메시지를 시퀀스 번호 순서에 따라 수신측으로 송신하는 단계와,
    상기 수신측에서 수신한 다수의 세그먼테이션된 메시지들을 리어셈블하여 처리하는 단계를 구비하는 것을 특징으로 하는 통신시스템의 인터 프로세서 통신장치의 메시지 송수신방법.
  2. 제1항에 있어서,
    상기 각 세그먼테이션된 메시지에 에러검출을 위한 데이타를 부가한 후에 수신측으로 송신하고,
    상기 수신측에서는 다수의 세그먼테이션된 메시지를 수신하여 시퀀스 번호가 순차적인지를 검색하고, 에러검출을 위한 데이타에 오류가 없는지를 검색하여,
    상기 수신한 세그먼테이션된 메시지들의 시퀀스 번호가 순차적이고 에러검출을 위한 데이타에 오류가 없는 경우에만, 수신된 메시지들을 처리함을 특징으로 하는 통신시스템의 인터 프로세서 통신장치의 메시지 송수신방법.
  3. 제1항에 있어서,
    상기 수신측에서 상기 수신한 세그먼테이션된 메시지들의 시퀀스 번호가 순차적이지 않거나 에러검출을 위한 데이타에 오류가 있으면, 해당 메시지에 대한 시퀀스번호를 포함하는 메시지를 포함하는 재송신 요구 메시지를 상기 송신측으로 송신하는 단계와,
    상기 송신측에서 상기 재송신 요구 메시지를 수신하면 그 재송신 요구 메시지에 포함된 시퀀스 번호의 메시지부터 재송신하는 단계를 더 구비하는 것을 특징으로 하는 통신시스템의 인터 프로세서 통신장치의 메시지 송수신방법.
  4. 제1항에 있어서, 상기 수신측과 송신측 각각이 일정시간마다 링크상태 검색을 위한 메시지를 송신하고, 상대측으로부터 그 링크상태 검색을 위한 메시지의 수신여부에 따라 링크상태를 판단하는 단계를 더 구비하는 것을 특징으로 하는 통신시스템의 인터 프로세서 통신장치의 메시지 송수신방법.
KR1020000017870A 2000-04-06 2000-04-06 인터 프로세서 통신장치의 메시지 송수신방법 KR20010094288A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000017870A KR20010094288A (ko) 2000-04-06 2000-04-06 인터 프로세서 통신장치의 메시지 송수신방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000017870A KR20010094288A (ko) 2000-04-06 2000-04-06 인터 프로세서 통신장치의 메시지 송수신방법

Publications (1)

Publication Number Publication Date
KR20010094288A true KR20010094288A (ko) 2001-10-31

Family

ID=19662069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000017870A KR20010094288A (ko) 2000-04-06 2000-04-06 인터 프로세서 통신장치의 메시지 송수신방법

Country Status (1)

Country Link
KR (1) KR20010094288A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100498928B1 (ko) * 2001-07-07 2005-07-04 삼성전자주식회사 이동 통신시스템에서 데이터 전송 및 수신 방법
KR100937314B1 (ko) * 2002-09-28 2010-01-18 주식회사 케이티 에이알큐 방식의 데이터통신에서의 패킷분할을 이용한 공격적 패킷 합성 방법
KR100975500B1 (ko) * 2008-07-14 2010-08-11 세미텍 주식회사 다이본딩장비의 다이 이젝팅장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100498928B1 (ko) * 2001-07-07 2005-07-04 삼성전자주식회사 이동 통신시스템에서 데이터 전송 및 수신 방법
KR100937314B1 (ko) * 2002-09-28 2010-01-18 주식회사 케이티 에이알큐 방식의 데이터통신에서의 패킷분할을 이용한 공격적 패킷 합성 방법
KR100975500B1 (ko) * 2008-07-14 2010-08-11 세미텍 주식회사 다이본딩장비의 다이 이젝팅장치

Similar Documents

Publication Publication Date Title
US6831912B1 (en) Effective protocol for high-rate, long-latency, asymmetric, and bit-error prone data links
CA2368770C (en) Packet discard notification for semi reliable retransmission protocol
EP3353930B1 (en) Enhancement of pdcp status report
EP1230757B1 (en) Link layer acknowledgement and retransmission for cellular telecommunications
KR100947000B1 (ko) 무선 인터페이스를 통해 tcp 성능을 개선시키기 위한 이중 프록시 접근 방식
US8379610B2 (en) System and method of unacknowledged network layer service access point identifier (NSAPI) recovery in sub-network dependent convergence protocol (SNDCP) communication
KR20070077798A (ko) 이동통신 시스템에서 재전송 제어를 위한 상태보고의요청/전송 방법 및 장치
CN107104902B (zh) 一种rdma数据传输的方法、相关装置与系统
US6401127B1 (en) Adaptive timer for LLC type 2 reliable transport in a computer network
US6169732B1 (en) Method and apparatus in a wireless communication system
KR20050078096A (ko) 데이터 프레임 재전송 방법 및 상기 방법을 사용하는네트워크 장치
EP1505759B1 (en) Method and device for transmitting/receiving data using acknowledged transport layer protocols
JP3953343B2 (ja) 無線パケット通信装置および無線パケット通信方法
KR20010094288A (ko) 인터 프로세서 통신장치의 메시지 송수신방법
CN116963175A (zh) 数据传输方法、装置及系统
KR100913897B1 (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
McAuley Error control for messaging applications in a wireless environment
CN109561516B (zh) 一种rrc的nas pdu新传和重传的发送方法
CN117857232A (zh) 一种套接字组及基于套接字组的数据传输方法
KR101298544B1 (ko) 이동통신 시스템의 수신 패킷 처리 장치 및 방법
KR100524744B1 (ko) 알엘씨 프로토콜의 이피씨 제어 방법
KR100606894B1 (ko) 통신 시스템에서의 무선링크프로토콜 처리 방법
JP2002232509A (ja) 通信装置及び再送型通信におけるデッドロック防止方法
US20040022269A1 (en) Optimized method and optimized protocol engine for message transmission

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
SUBM Submission of document of abandonment before or after decision of registration