KR102233371B1 - 멀티캐스트 네트워크에서의 릴레이 방법 및 장치 - Google Patents

멀티캐스트 네트워크에서의 릴레이 방법 및 장치 Download PDF

Info

Publication number
KR102233371B1
KR102233371B1 KR1020140077343A KR20140077343A KR102233371B1 KR 102233371 B1 KR102233371 B1 KR 102233371B1 KR 1020140077343 A KR1020140077343 A KR 1020140077343A KR 20140077343 A KR20140077343 A KR 20140077343A KR 102233371 B1 KR102233371 B1 KR 102233371B1
Authority
KR
South Korea
Prior art keywords
node
packet
nodes
relay
amount
Prior art date
Application number
KR1020140077343A
Other languages
English (en)
Other versions
KR20160000226A (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 KR1020140077343A priority Critical patent/KR102233371B1/ko
Priority to US14/667,989 priority patent/US10129139B2/en
Priority to JP2015112248A priority patent/JP6578137B2/ja
Priority to EP15172121.4A priority patent/EP2961099A3/en
Priority to CN201510354299.5A priority patent/CN105306370B/zh
Publication of KR20160000226A publication Critical patent/KR20160000226A/ko
Application granted granted Critical
Publication of KR102233371B1 publication Critical patent/KR102233371B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Abstract

멀티캐스트 네트워크에서의 릴레이 방법 및 장치가 개시된다. 일 실시예에 따른 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득하여 멀티캐스트 네트워크의 토폴로지 정보를 추출하고, 토폴로지 정보를 기초로 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택할 수 있다.

Description

멀티캐스트 네트워크에서의 릴레이 방법 및 장치{METHOD AND APPARATUS FOR RELAYING IN MULTICAST NETWORK}
아래의 실시예들은 멀티캐스트 네트워크에서의 릴레이 방법 및 장치에 관한 것이다.
지금까지 통신 시스템은 주로 사람과 사람만을 연결하는 수단으로 사용되어 왔다. 때문에 현재 지구상에 존재하는 기기들 중 1% 정도만이 네트워크로 서로 연결되어 사용되고 있다. 하지만, 통신 기술의 발달과 기기 통합에 따른 단일화 추세에 따라 스마트 폰, 센서 기기, 그 밖의 통신 기능을 구비한 다양한 기기들이 거대한 네트워크를 구성하고 있다. 뿐만 아니라, 많은 통신 단말의 사용자들은 기기 간 직접 연결을 통해 컨텐츠 공유, 동기화, 출력 및 게임 등의 다양한 어플리케이션을 보다 쉽게 활용하고 있다. 이러한 시장의 변화 요구에 반응하기 위하여 기존 인프라 스트럭처(infra-structure)를 이용한 셀룰러 통신을 넘어선 기기 간 직접 연결 (Device-to-Device 통신)을 지원할 수 있는 무선 접속 기술들이 있다.
멀티캐스트(multicast)는 유니캐스트(unicast)와 많은 면에서 차이가 있다. 우선, 멀티캐스트는 서비스를 받는 사용자가 다수이기 때문에 제대로 서비스가 전달되었는지 판단하는 것이 쉽지 않다. 서비스 전달 여부를 판단하고자 한다면 그에 따른 오버헤드가 사용자의 수에 따라 급격하게 증가하기 때문이다. 또한, 많은 멀티캐스트/브로드캐스트 서비스는 실시간으로 전달되어야 하고, 무선 채널의 특성상 시간, 장소 및 기타 많은 요소들에 의해 가변적이다.
일 실시예에 따른 소스 노드는, 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 토폴로지 정보 추출부; 및 상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 릴레이 노드 선택부를 포함할 수 있다.
상기 토폴로지 정보 추출부는, 상기 복수의 노드 중 상기 소스 노드를 제외한 나머지 노드들이 수신한 패킷에 대한 정보를 기초로 상기 토폴로지 정보를 추출할 수 있다.
상기 토폴로지 정보 추출부는, 상기 나머지 노드들 중 제1 노드로 트레이닝 패킷들을 전송하고, 상기 제1 노드가 수신한 트레이닝 패킷(training packet)들에 대한 정보를 포함하는 트레이닝 리포트 패킷(training report packet)을 상기 제1 노드로부터 피드백받을 수 있다.
상기 토폴로지 정보 추출부는, 상기 트레이닝 리포트 패킷을 이용하여 상기 제1 노드의 패킷 수신율을 연산하고, 상기 패킷 수신율이 미리 정해진 임계 레벨 이상인 경우, 상기 제1 노드를 상기 릴레이 후보 노드로 선택할 수 있다.
상기 토폴로지 정보 추출부는, 상기 나머지 노드들 중에서 선택된 릴레이 후보 노드가 상기 나머지 노드들 중 제2 노드에 상기 트레이닝 패킷을 전송하게 하는 트레이닝 폴링 패킷(training polling packet)을 상기 릴레이 후보 노드에 전송할 수 있다.
상기 토폴로지 정보 추출부는, 상기 릴레이 후보 노드가 복수일 경우, 미리 정해진 순서에 따라 상기 복수의 릴레이 후보 노드에 상기 트레이닝 폴링 패킷을 전송할 수 있다.
상기 토폴로지 정보 추출부는, 상기 제2 노드가 수신한 트레이닝 패킷들에 대한 정보를 상기 릴레이 후보 노드가 획득한 경우, 상기 릴레이 후보 노드로부터, 상기 제2 노드에 대한 정보 및 상기 제2 노드가 수신한 트레이닝 패킷들에 대한 정보를 포함하는 네이버(neighbor) 리포트 패킷을 수신할 수 있다.
상기 토폴로지 정보 추출부는, 상기 나머지 노드들 중 일부 노드들이 수신한 트레이닝 패킷에 대한 정보를 상기 릴레이 후보 노드가 획득한 경우, 상기 릴레이 후보 노드로부터, 상기 일부 노드들에 상기 트레이닝 패킷들을 전송한 노드들에 대한 정보, 상기 일부 노드들에 대한 정보 및 상기 일부 노드들이 수신한 트레이닝 패킷들에 대한 정보를 포함하는 블록 트레이닝 리포트 패킷을 수신할 수 있다.
상기 토폴로지 정보 추출부는, 상기 나머지 노드들 중 일부의 노드들을 트레이닝 노드로 선정하고, 상기 선정된 트레이닝 노드들이 수신한 패킷에 대한 정보를 기초로 상기 토폴로지 정보를 추출할 수 있다.
상기 토폴로지 정보 추출부는, 상기 나머지 노드들이 수집한 상기 복수의 노드 간의 상기 채널 상태에 대한 통계 정보를 수신하고, 상기 통계 정보를 기초로 상기 토폴로지 정보를 추출할 수 있다.
상기 릴레이 노드 선택부는, 상기 토폴로지 정보를 기초로, 상기 나머지 노드들을 1-홉 노드 그룹 및 2-홉 노드 그룹으로 분류하고, 복수의 릴레이 후보 노드의 패킷 전송이 상기 나머지 노드들 중 적어도 일부에 미치는 영향을 고려하여 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택할 수 있다.
상기 릴레이 노드 선택부는, 상기 토폴로지 정보를 이용하여 상기 나머지 노드들 각각의 예상 패킷 수신량 - 상기 예상 패킷 수신량은 상기 나머지 노드들 각각이 목표 패킷 수신량 이상의 패킷을 수신할 확률이 미리 정해진 임계 확률 이상이 되도록 하는 상기 나머지 노드들 각각의 패킷 수신량을 의미함 - 을 추정하고, 상기 나머지 노드들 각각에 대하여, 상기 나머지 노드들의 예상 패킷 수신량을 기초로, 상기 나머지 노드들 각각이 다른 노드로부터 패킷을 수신한 후에 추가로 수신해야 하는 패킷의 양을 나타내는 잠재적 요구 자유도를 추정하고, 상기 잠재적 요구 자유도가 낮은 노드를 상기 1-홉 노드 그룹으로, 상기 잠재적 요구 자유도가 높은 노드를 상기 2-홉 노드 그룹으로 결정할 수 있다.
상기 릴레이 노드 선택부는, 상기 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각에 대하여, 상기 복수의 릴레이 후보 노드 각각에 대한 상기 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 상기 잠재적 요구 자유도를 기초로, 상기 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각이 상기 복수의 릴레이 후보 노드 각각에 대하여 전송을 요구하는 패킷의 양을 나타내는 요구 전송량을 연산하고, 상기 적어도 하나의 노드 각각의 상기 요구 전송량들을 기초로 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택할 수 있다.
상기 릴레이 노드 선택부는, 상기 적어도 하나의 노드 각각에 대하여, 상기 적어도 하나의 노드 각각의 상기 요구 전송량들 중 양이 가장 적은 요구 전송량을 나타내는 최소 요구 전송량을 추정하고, 상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 적어도 하나의 노드 중 해당 릴레이 후보 노드에 상기 최소 요구 전송량으로 패킷 전송을 요청하는 노드로 구성된 최적 노드 그룹을 추출하며, 상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 최적 노드 그룹에 포함된 노드의 상기 최소 요구 전송량 중 양이 가장 많은 최소 요구 전송량을 나타내는 최대 요구 전송량을 추정하고, 상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 복수의 릴레이 후보 노드 각각의 상기 최대 요구 전송량에 따른 상기 최적 노드 그룹에 포함된 노드로의 패킷 전송이 상기 나머지 노드들 중 적어도 일부에 미치는 영향을 나타내는 제1 유틸리티를 추정할 수 있다.
상기 릴레이 선택 노드부는, 상기 복수의 릴레이 후보 노드 중 상기 제1 유틸리티의 크기가 가장 큰 릴레이 후보 노드를 상기 릴레이 노드로 결정할 수 있다.
상기 릴레이 선택 노드부는, 상기 복수의 릴레이 후보 노드 중 상기 최대 요구 전송량의 크기가 가장 큰 릴레이 후보 노드를 상기 릴레이 노드로 결정할 수 있다.
상기 릴레이 선택 노드부는, 상기 선택된 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량보다 작은 경우, 상기 잠재적 요구 자유도, 상기 요구 전송량, 상기 최소 요구 전송량, 상기 최대 요구 전송량 및 상기 제1 유틸리티를, 상기 선택된 릴레이 노드를 기준으로 업데이트하여 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택할 수 있다.
상기 릴레이 선택 노드부는, 상기 2-홉 노드 그룹에 포함된 노드 각각에 대하여, 상기 복수의 릴레이 후보 노드 각각의 상기 2-홉 노드 그룹에 포함된 노드로의 패킷 전송에 따른 상기 2-홉 노드 그룹에 포함된 노드의 만족도를 나타내는 제2 유틸리티를 추정하고, 상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 2-홉 노드 그룹에 포함된 노드 각각의 제2 유틸리티를 기초로, 상기 복수의 릴레이 후보 노드 각각의 상기 패킷 전송에 따른 상기 2-홉 노드 그룹의 만족도를 나타내는 네트워크 유틸리티를 추정하고, 상기 복수의 릴레이 후보 노드 각각의 네트워크 유틸리티를 기초로 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택할 수 있다.
상기 릴레이 선택 노드부는, 상기 릴레이 후보 노드에서 전송하는 패킷의 양에 따른 상기 네트워크 유틸리티의 기울기가 변경될 때 마다, 상기 복수의 릴레이 후보 노드 각각의 제2 유틸리티를 업데이트하여, 상기 복수의 릴레이 후보 노드 중 상기 릴레이 후보 노드에서 전송하는 패킷의 양에 따른 상기 제2 유틸리티의 기울기가 가장 큰 릴레이 후보 노드를 상기 릴레이 노드로 선택할 수 있다.
일 실시예에 따른 노드는, 랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환하는 인코딩부; 및 상기 인코딩된 패킷을 기초로 생성된 생성자 행렬(generator matrix)을 이용하여 상기 인코딩된 패킷을 상기 원본 패킷으로 변환하는 디코딩부를 포함할 수 있다.
상기 인코딩부는, 상기 원본 패킷을 복수의 서브 패킷으로 분류하고, 상기 복수의 서브 패킷과 상기 랜덤 행렬을 연산하여 인코딩된 데이터를 생성할 수 있다.
상기 인코딩부는, 상기 인코딩된 데이터에, 상기 인코딩된 데이터에 대한 정보를 포함하는 제1 헤더를 부가하여 상기 인코딩된 패킷을 생성할 수 있다.
상기 제1 헤더는, 상기 원본 패킷의 개수에 대한 정보, 상기 랜덤 행렬의 길이에 대한 정보, 상기 인코딩된 패킷의 식별자에 대한 정보, 상기 랜덤 행렬의 계수(coefficient)에 대한 정보 및 상기 인코딩된 패킷의 타입에 대한 정보 중 적어도 하나를 포함할 수 있다.
상기 인코딩된 패킷의 타입에 대한 정보는, 상기 인코딩된 패킷을 무선랜 모듈로 전송하기 이전에 상기 원본 패킷을 상기 무선랜 모듈에 전송하는 조직 코드(systematic code) 및 상기 인코딩된 패킷만을 상기 무선랜 모듈로 전송하는 비조직 코드(non systematic code)를 포함할 수 있다.
상기 인코딩부는, 상기 인코딩된 패킷에, 상기 원본 패킷의 이더넷 타입에 대한 정보를 포함하는 제2 헤더를 부가할 수 있다.
상기 인코딩부는, 이더넷 모듈로부터 수신한 상기 원본 패킷의 개수가 K개인 경우, 상기 K개의 랜덤 행렬을 이용하여 상기 K개의 원본 패킷을 N개의 인코딩된 패킷으로 변환하고, 상기 N개의 인코딩된 패킷을 무선랜 모듈로 전송할 수 있다.
상기 디코딩부는, 상기 인코딩된 패킷으로부터 추출된 행렬 계수를 기초로 상기 생성자 행렬을 생성하고, 상기 인코딩된 패킷과 상기 생성자 행렬의 역행렬을 연산하여 상기 원본 패킷을 추출할 수 있다.
상기 디코딩부는, LU 분해(LU decomposition) 기법을 이용하여, 상기 인코딩된 패킷을 상기 원본 패킷으로 변환할 수 있다.
상기 디코딩부는, 상기 인코딩된 패킷을 패킷 큐(queue) 리스트에 포함된 패킷 큐에 삽입하고, 상기 패킷 큐에 삽입(enqueue)된 상기 인코딩된 패킷이 미리 정해진 개수 이상인 경우, 상기 인코딩된 패킷을 상기 원본 패킷으로 변환할 수 있다.
상기 패킷 큐는, 상기 패킷 큐 리스트에 포함된 나머지 패킷 큐와 링크드 리스트(linked list)로 연결되고, 상기 패킷 큐에 삽입되는 상기 인코딩된 패킷의 식별자에 대한 정보 및 상기 인코딩된 패킷이 상기 패킷 큐에 삽입되는 시간에 대한 정보를 포함할 수 있다.
상기 디코딩부는, 상기 인코딩된 패킷이 상기 패킷 큐에 삽입되는 시간이 미리 정해진 임계 시간보다 앞선 경우, 상기 패킷 큐 리스트에서 상기 패킷 큐를 삭제할 수 있다.
상기 디코딩부는, 무선랜 모듈로부터 수신한 상기 인코딩된 패킷의 식별자가 미리 정해진 시간동안 원본 패킷으로 변환된 인코딩된 패킷의 식별자와 동일하지 않은 경우, 상기 인코딩된 패킷을 상기 패킷 큐에 삽입할 수 있다.
상기 디코딩부는, 무선랜 모듈로부터 수신한 상기 인코딩된 패킷의 식별자가 상기 패킷 큐 리스트에 포함된 복수의 패킷 큐에 삽입된 인코딩된 패킷들의 식별자들과 동일하지 않은 경우, 상기 인코딩된 패킷을 상기 패킷 큐에 삽입할 수 있다.
상기 디코딩부는, 상기 생성자 행렬 중 상기 인코딩된 패킷에 대응하는 성분이 선형 종속적인(linearly independent) 경우, 상기 패킷 큐에서 상기 인코딩된 패킷을 삭제할 수 있다.
일 실시예에 따른 소스 노드는, 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 토폴로지 정보 추출부; 상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 릴레이 노드 선택부; 및 랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환하여 상기 릴레이 노드로 상기 인코딩된 패킷을 전송하거나, 상기 릴레이 노드로부터 수신한 상기 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 상기 인코딩된 패킷을 상기 원본 패킷으로 변환하는 변환부를 포함할 수 있다.
일 실시예에 따른 소스 노드는, 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 단계; 및 상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 단계를 포함할 수 있다.
일 실시예에 따른 노드는, 랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환하는 단계; 및 상기 인코딩된 패킷을 기초로 생성된 생성자 행렬(generator matrix)을 이용하여 상기 인코딩된 패킷을 상기 원본 패킷으로 변환하는 단계를 포함할 수 있다.
일 실시예에 따른 소스 노드는, 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 단계; 상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 단계; 및 랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환하여 상기 릴레이 노드로 상기 인코딩된 패킷을 전송하거나, 상기 릴레이 노드로부터 수신한 상기 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 상기 인코딩된 패킷을 상기 원본 패킷으로 변환하는 단계를 포함할 수 있다.
도 1은 일 실시예에 따른 멀티캐스트 네트워크에서의 노드를 나타낸 블록도이다.
도 2는 일 실시예에 따른 소스 노드를 나타낸 블록도이다.
도 3은 일 실시예에 따른 패킷의 구조를 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 복수의 노드의 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 릴레이 노드 선택 기법을 설명하기 위한 동작 흐름도이다.
도 6은 다른 일 실시예에 따른 릴레이 노드 선택 기법을 설명하기 위한 동작 흐름도이다.
도 7은 일 실시예에 따른 릴레이 노드의 선택을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 네트워크 유틸리티를 설명하기 위한 도면이다.
도 9는 또 다른 일 실시예에 따른 릴레이 노드 선택 기법을 설명하기 위한 동작 흐름도이다.
도 10은 일 실시예에 따른 릴레이 선택 패킷의 구조를 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 노드를 나타낸 블록도이다.
도 12는 일 실시예에 따른 인코딩 기법을 설명하기 위한 도면이다.
도 13은 일 실시예에 따른 인코딩된 패킷의 구조를 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 디코딩 기법을 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 소스 노드의 동작 방법을 나타낸 동작 흐름도이다.
도 16는 일 실시예에 따른 노드의 동작 방법을 나타낸 동작 흐름도이다.
도 17은 다른 일 실시예에 따른 소스 노드의 동작 방법을 나타낸 동작 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
<멀티캐스트 네트워크에서의 노드>
도 1은 일 실시예에 따른 멀티캐스트 네트워크에서의 노드를 나타낸 블록도이다.
도 1을 참조하면, 멀티캐스트 네트워크는 복수의 노드들을 포함할 수 있다. 멀티캐스트 네트워크에서, 소스 노드는 복수의 노드에 패킷을 전송할 수 있다. 이 경우, 소스 노드는 복수의 노드 중 릴레이 노드를 선택하고, 릴레이 노드를 경유하여 나머지 노드들에 패킷을 전송할 수 있다. 이에 따라, 소스 노드의 전송 커버리지는 넓어질 수 있고, 소스 노드의 패킷 전송 효율이 향상될 수 있다.
일 실시예에서, 멀티캐스트 네트워크에서 노드(100)는 이더넷 모듈(110), 무선랜 모듈(120) 및 매트릭스 네트워크 코딩 모듈(130)을 포함할 수 있다. 매트릭스 네트워크 코딩 모듈(130)은 이더넷 모듈(110)과 무선랜 모듈(120) 사이에 위치할 수 있다. 일 실시예에서, 매트릭스 네트워크 코딩 모듈(130)의 위치는 이더넷 모듈(110)과 무선랜 모듈(120) 사이에 한정되지 않을 수 있다. 예를 들어, 무선랜 모듈(120)이 이더넷 모듈(110)을 거치지 않고, L3 레이어로부터 패킷을 수신하는 경우, 매트릭스 네트워크 코딩 모듈(130)은 무선랜 모듈(120)의 위에 위치할 수 있다.
매트릭스 네트워크 코딩 모듈(130)은 토폴로지 정보 추출부(140), 릴레이 노드 선택부(150) 및 변환부(160)를 포함할 수 있다. 토폴로지 정보 추출부(140)는 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다. 예를 들어, 노드(100)는 멀티캐스트 네트워크 내의 다른 노드들과 패킷을 송수신할 수 있고, 토폴로지 정보 추출부(140)는 무선랜 모듈(120)로부터 송수신한 패킷을 획득할 수 있다. 토폴로지 정보 추출부(140)는 송수신한 패킷을 기초로 노드(100)와 다른 노드들 사이의 채널 상태에 대한 정보를 추출할 수 있다. 또한, 토폴로지 정보 추출부(140)는 노드(100)외의 다른 노드들이 상호간에 송수신한 패킷을 무선랜 모듈(120)로부터 획득할 수 있고, 토폴로지 정보 추출부(140)는 무선랜 모듈(120)로부터 획득한 패킷을 기초로 다른 노드들간의 채널 상태에 대한 정보를 추출할 수 있다. 이에 따라, 토폴로지 정보 추출부(140)는 노드(100)와 다른 노드들 사이의 채널 상태에 대한 정보 및 다른 노드들간의 채널 상태에 대한 정보를 이용하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다.
릴레이 노드 선택부(150)는 토폴로지 정보를 기초로 멀티캐스트 네트워크를 구성하는 복수의 노드 중 노드(100)에서 전송된 패킷을 중계하는 릴레이 노드를 선택할 수 있다. 또한, 릴레이 노드 선택부(150)는 릴레이 노드의 패킷 전송량을 결정할 수 있다. 일 실시예에서, 노드(100)가 소스 노드가 아닌 경우, 노드(100)는 소스 노드의 선택에 의하여 릴레이 노드가 될 수 있다.
변환부(160)는 이더넷 모듈(110)로부터 수신한 원본 패킷을 랜덤 행렬을 이용하여 인코딩된 패킷으로 변환하고, 인코딩된 패킷을 무선랜 모듈(120)에 전송할 수 있다. 이에 따라, 인코딩된 패킷은 릴레이 노드 또는 다른 노드로 전송될 수 있다. 또한, 노드(100)가 릴레이 노드 또는 다른 노드로부터 인코딩된 패킷을 수신하는 경우, 변환부(160)는 무선랜 모듈(120)로부터 인코딩된 패킷을 수신할 수 있고, 변환부(160)는 인코딩된 패킷을 기초로 생성된 생성자 행렬(generator matrix)을 이용하여 인코딩된 패킷을 원본 패킷으로 변환하고, 원본 패킷을 이더넷 모듈(110)에 전송할 수 있다. 이에 따라, 노드(100)가 소스 노드인 경우, 노드(100)는 토폴로지 정보를 획득하여 복수의 노드 중 릴레이 노드를 선택할 수 있고, 릴레이 노드에 인코딩된 패킷을 전송할 수 있고, 인코딩된 패킷을 릴레이 노드로부터 수신하여 인코딩된 패킷을 원본 패킷으로 디코딩할 수 있다. 또한, 노드(100)가 소스 노드가 아닌 경우, 노드(100)는 소스 노드의 제어에 의하여 릴레이 노드로 선택될 수 있다. 노드(100)가 릴레이 노드로 선택될 경우, 노드(100)는 소스 노드로부터 인코딩된 패킷을 수신하고, 인코딩된 패킷을 다른 노드로 중계할 수 있다. 또한, 노드(100)가 릴레이 노드로 선택되지 않을 경우, 노드(100)는 릴레이 노드로부터 인코딩된 패킷을 수신하고, 인코딩된 패킷을 원본 패킷으로 디코딩할 수 있다.
< 토폴로지 정보 추출 기법>
도 2는 일 실시예에 따른 소스 노드를 나타낸 블록도이다.
도 2를 참조하면, 소스 노드(200)는 토폴로지 정보 추출부(210) 및 릴레이 노드 선택부(220)를 포함할 수 있다. 일 실시예에서, 소스 노드(200)는 변환부(미도시)를 더 포함할 수 있다. 변환부(미도시)는 소스 노드(200)는 랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 인코딩하거나, 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 인코딩된 패킷을 원본 패킷으로 디코딩할 수 있다.
토폴로지 정보 추출부(210)는 멀티캐스트 네트워크에 포함된 복수의 노드 중 소스 노드(200)를 제외한 나머지 노드들이 수신한 패킷에 대한 정보를 기초로 토폴로지 정보를 추출할 수 있다. 토폴로지 정보 추출부(210)는 나머지 노드들이 수신한 패킷에 대한 정보를 통하여 소스 노드(200)와 나머지 노드들 간의 채널 상태 및 나머지 노드들간의 채널 상태에 대한 정보를 획득할 수 있고, 획득한 채널 상태에 대한 정보를 이용하여 토폴로지 정보를 추정할 수 있다.
일 실시예에서, 토폴로지 정보 추출부(210)는 소스 노드(200)의 주변 노드에 트레이닝 패킷(training packet)들을 전송하고, 트레이닝 패킷들을 수신한 주변 노드로부터 트레이닝 리포트 패킷(training report packet)을 피드백받을 수 있다. 여기서, 특정 노드의 주변 노드는 특정 노드와 거리가 상대적으로 가까운 노드를 의미할 수도 있고, 실시예에 따라 멀티캐스트 네트워크에 포함된 모든 노드를 의미할 수도 있다. 트레이닝 패킷은 토폴로지 정보 추출부(210)가 패킷 수신율을 측정하기 위하여 패킷 수신율을 측정하고자 하는 노드에 전송하는 패킷을 의미할 수 있다. 트레이닝 리포트 패킷은 트레이닝 패킷을 수신한 노드가 트레이닝 패킷을 전송한 노드에게 트레이닝 패킷의 수신에 대한 보고를 하기 위한 패킷을 의미할 수 있다. 트레이닝 리포트 패킷은 주변 노드가 수신한 트레이닝 패킷들에 대한 정보를 포함할 수 있다. 예를 들어, 토폴로지 정보 추출부(210)가 제1 노드에 K개의 트레이닝 패킷을 전송할 때, 소스 노드(200)와 제1 노드 사이의 채널 상태에 의하여 제1 노드는 K-2개의 트레이닝 패킷을 수신할 수 있다. 이 때, 제1 노드는 수신한 트레이닝 패킷의 개수에 대한 정보를 포함하는 트레이닝 리포트 패킷을 생성하고, 생성한 트레이닝 레포트 패킷을 토폴로지 정보 추출부(210)에 전송할 수 있다.
또한, 토폴로지 정보 추출부(210)는 트레이닝 리포트 패킷을 이용하여, 트레이닝 리포트 패킷을 전송한 주변 노드의 패킷 수신율을 연산할 수 있다. 일 실시예에서, 토폴로지 정보 추출부(210)는 패킷 수신율이 미리 정해진 임계 레벨 이상인 노드를 릴레이 후보 노드로 선택할 수 있다. 예를 들어, 제1 노드에서 전송한 트레이닝 리포트 패킷으로부터, 토폴로지 정보 추출부(210)는 토폴로지 정보 추출부(210)가 10개의 트레이닝 패킷을 제1 노드에 전송하고 제1 노드가 8개의 트레이닝 패킷을 수신하였다는 정보를 추출할 수 있다. 이에 따라, 토폴로지 정보 추출부(210)는 제1 노드의 패킷 수신율을 80%로 계산할 수 있다. 이 때, 미리 정해진 임계 레벨이 70%인 경우, 토폴로지 정보 추출부(210)는 미리 정해진 임계 레벨 이상의 패킷 수신율을 가지는 제1 노드를 릴레이 후보 노드로 결정할 수 있다.
또한, 토폴로지 정보 추출부(210)는 릴레이 후보 노드에 트레이닝 폴링 패킷(training polling packet)을 전송할 수 있다. 여기서, 트레이닝 폴링 패킷은 트레이닝 폴링 패킷을 수신한 노드가 트레이닝 폴링 패킷을 수신한 노드의 주변 노드에게 트레이닝 패킷들을 전송하게 하는 패킷일 수 있다. 이에 따라, 릴레이 후보 노드는 주변 노드에 트레이닝 패킷들을 전송할 수 있고, 트레이닝 패킷들을 수신한 주변 노드로부터 주변 노드가 수신한 트레이닝 패킷들의 개수에 대한 정보를 포함하는 트레이닝 리포트 패킷을 수신할 수 있다. 릴레이 후보 노드는 트레이닝 리포트 패킷의 수신에 응답하여 네이버 리포트 패킷(neighbor report packet)을 생성할 수 있고, 네이버 리포트 패킷을 토폴로지 정보 추출부(210)에 전송할 수 있다. 여기서, 네이버 리포트 패킷은 트레이닝 폴링 패킷에 의하여 릴레이 후보 노드가 주변 노드에 트레이닝 패킷들을 전송하고, 릴레이 후보 노드가 주변 노드로부터 트레이닝 리포트 패킷을 수신한 경우, 수신한 트레이닝 리포트 패킷을 소스 노드에게 보고하기 위한 패킷을 의미할 수 있다. 네이버 리포트 필드는 트레이닝 리포트 패킷을 전송한 주변 노드에 대한 정보 및 주변 노드가 수신한 트레이닝 패킷들에 대한 정보를 포함할 수 있다. 예를 들어, 소스 노드(200)와 제2 노드 사이의 거리가 상대적으로 먼 경우, 제2 노드의 패킷 수신율을 추출하기 위하여, 토폴로지 정보 추출부(210)는 소스 노드(200)와의 거리가 상대적으로 가까운 제1 노드에 트레이닝 폴링 패킷을 전송할 수 있고, 제1 노드는 트레이닝 폴링 패킷의 수신에 응답하여 제2 노드에 트레이닝 패킷들을 전송할 수 있다. 제2 노드는 수신한 트레이닝 패킷들의 개수에 대한 정보를 포함하는 트레이닝 리포트 패킷을 생성하고, 트레이닝 리포트 패킷을 제1 노드에 전송할 수 있다. 제1 노드는 수신한 트레이닝 리포트 패킷을 기초로, 제2 노드에 대한 정보 및 제2 노드가 수신한 트레이닝 패킷들에 대한 정보를 포함하는 네이버 리포트 패킷을 생성할 수 있다. 소스 노드(200)는 제1 노드로부터 네이버 리포트 패킷을 수신하고, 네이버 리포트 패킷을 이용하여, 제1 노드에 대한 제2 노드의 패킷 수신율을 연산할 수 있다.
일 실시예에서, 토폴로지 정보 추출부(210)가 전송하는 트레이닝 패킷과 릴레이 후보 노드가 전송하는 트레이닝 패킷은 구별될 수 있다. 예를 들어, 소스 노드(200)가 전송하는 트레이닝 패킷은 타입(type) 필드의 필드값이 1 일 수 있고, 릴레이 후보 노드가 전송하는 트레이닝 패킷은 타입 필드의 필드값이 2 일 수 있다. 또한, 토폴로지 정보 추출부(210)가 수신하는 트레이닝 리포트 패킷과 릴레이 후보 노드가 수신하는 트레이닝 리포트 패킷은 구별될 수 있다. 예를 들어, 토폴로지 정보 추출부(210)가 수신하는 트레이닝 리포트 패킷은 타입(type) 필드의 필드값이 3 일 수 있고, 릴레이 후보 노드가 수신하는 트레이닝 리포트 패킷은 타입 필드의 필드값이 4 일 수 있다.
또한, 소스 노드(200)의 주변 노드가 복수의 다른 노드로부터 트레이닝 리포트 패킷들을 획득한 경우, 토폴로지 정보 추출부(210)는 소스 노드(200)의 주변 노드로부터 블록 트레이닝 리포트 패킷(block training report packet)을 수신할 수 있다. 여기서, 블록 트레이닝 리포트 패킷은 소스 노드외의 노드가 복수의 다른 노드들로부터 트레이닝 리포트 패킷들을 수신한 경우, 수신한 트레이닝 리포트 패킷들을 소스 노드에게 보고하기 위한 패킷을 의미할 수 있다. 블록 트레이닝 리포트 패킷은 복수의 다른 노드들에 트레이닝 패킷들을 전송한 노드들에 대한 정보, 복수의 다른 노드들에 대한 정보 및 복수의 다른 노드들이 수신한 트레이닝 패킷들에 대한 정보를 포함할 수 있다. 예를 들어, 토폴로지 정보 추출부(210)가 릴레이 후보 노드인 제1 노드에 트레이닝 폴링 패킷을 전송할 수 있고, 트레이닝 폴링 패킷의 수신에 응답하여 제1 노드는 제2 노드 및 제3 노드에 트레이닝 패킷들을 전송할 수 있다. 제1 노드는 제2 노드 및 제3 노드 각각으로부터 트레이닝 리포트 패킷을 수신하고, 수신한 트레이닝 리포트 패킷들을 이용하여 블록 트레이닝 리포트 패킷을 생성할 수 있다. 이 때, 블록 트레이닝 리포트 패킷은 제1 노드에 대한 정보, 제2 노드 및 제3 노드에 대한 정보 및 제2 노드 및 제3 노드가 수신한 트레이닝 패킷들에 대한 정보를 포함할 수 있다. 토폴로지 정보 추출부(210)는 제1 노드로부터 블록 트레이닝 리포트 패킷을 수신하여, 블록 트레이닝 리포트 패킷으로부터 제2 노드 및 제3 노드 각각과 제1 노드간의 채널 상태를 추정할 수 있다.
일 실시예에서, 토폴로지 정보 추출부(210)는 멀티캐스트 네트워크에 포함된 복수의 노드 중 일부의 노드들을 트레이닝 노드로 선정하고, 복수의 노드가 일반 패킷을 송수신하는 도중에 주기적으로 또는 비주기적으로 선정된 트레이닝 노드들이 수신한 패킷에 대한 정보를 기초로 토폴로지 정보를 추출할 수 있다. 따라서, 토폴로지 정보 추출부(210)는 복수의 노드 전체가 아닌 일부의 노드와 토폴로지 정보를 추출하기 위한 패킷을 송수신할 수 있고, 이에 따라, 멀티캐스트 네트워크의 부하가 감소될 수 있다.
일 실시예에서, 토폴로지 정보 추출부(210)는 멀티캐스트 네트워크에 포함된 복수의 노드가 일반 패킷을 송수신하는 도중에, 복수의 노드는 복수의 노드 간에 채널 상태를 지속적으로 모니터링 및 업데이트하여 채널 상태에 대한 통계 정보를 토폴로지 정보 추출부(210)에 전송할 수 있다. 토폴로지 정보 추출부(210)는 수신한 복수의 노드 간의 채널 상태에 대한 정보를 기초로 토폴로지 정보를 추출할 수 있다.
도 3은 일 실시예에 따른 패킷의 구조를 설명하기 위한 도면이다. 도 3 및 도 4에 대한 설명에서, 소스 노드의 동작은 도 2의 토폴로지 정보 추출부(210)의 동작을 나타낼 수 있다.
도 3을 참조하면, 소스 노드는 트레이닝 패킷(310), 트레이닝 리포트 패킷(320), 트레이닝 폴링 패킷(330), 네이버 리포트 패킷(340) 및 블록 트레이닝 리포트 패킷(350)을 이용하여 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득할 수 있다.
트레이닝 패킷(310)은 트레이닝 패킷은 소스 노드가 패킷 수신율을 측정하기 위하여 패킷 수신율을 측정하고자 하는 노드에 전송하는 패킷을 의미할 수 있다. 트레이닝 패킷(310)은 이더 헤더(311), 타입 필드(312), 전송량 필드(313), 시퀀스 필드(314) 및 데이터 필드(315)를 포함할 수 있다. 이더 헤더(311)는 트레이닝 패킷(310)의 이더넷 타입을 나타내고, 타입 필드(312)는 트레이닝 패킷(310)의 속성을 나타낼 수 있다. 예를 들어, 타입 필드(312)의 필드값이 1인 경우, 트레이닝 패킷(310)은 소스 노드에서 전송되는 트레이닝 패킷일 수 있고, 타입 필드(312)의 필드값이 2인 경우, 트레이닝 패킷(310)은 소스 노드외의 다른 노드에서 전송되는 트레이닝 패킷일 수 있다. 전송량 필드(313)는 노드에서 전송되는 트레이닝 패킷들의 전체 전송 개수를 나타내고, 시퀀스 필드(314)는 노드에서 전송되는 트레이닝 패킷들 중 트레이닝 패킷(310)가 몇 번째 트레이닝 패킷인지에 대한 정보를 포함한다. 데이터 필드(315)는 갈로아 필드(galois field) 상에서의 랜덤 데이터를 포함할 수 있다. 일 실시예에서, 데이터 필드(315)는 실제 노드가 송수신하는 패킷의 길이와 동일할 수 있다. 예를 들어, 소스 노드가 제1 노드에게 1353 bytes의 패킷을 송수신하는 경우, 소스 노드는 데이터 필드(315)를 1353 bytes로 설정할 수 있다.
트레이닝 리포트 패킷(320)은 트레이닝 패킷을 수신한 노드가 트레이닝 패킷을 전송한 노드에게 트레이닝 패킷의 수신에 대한 보고를 하기 위한 패킷을 의미할 수 있다. 트레이닝 리포트 패킷(320)은 이더 헤더(321), 타입 필드(322), 전송량 필드(323), 수신량 필드(324) 및 처리율 필드(325)를 포함할 수 있다. 이더 헤더(321)는 트레이닝 리포트 패킷(320)의 이더넷 타입을 나타내고, 타입 필드(322)는 트레이닝 리포트 패킷(320)의 속성을 나타낼 수 있다. 예를 들어, 타입 필드(322)의 필드값이 3인 경우, 트레이닝 리포트 패킷(320)은 소스 노드에서 전송되는 트레이닝 패킷에 대한 트레이닝 리포트 패킷일 수 있고, 타입 필드(322)의 필드값이 4인 경우, 트레이닝 리포트 패킷(320)은 소스 노드외의 다른 노드에서 전송되는 트레이닝 패킷에 대한 트레이닝 리포트 패킷일 수 있다. 전송량 필드(323)는 트레이닝 패킷들의 전체 전송 개수를 나타내고, 수신량 필드(324)는 노드가 실제로 수신한 트레이닝 패킷의 개수를 나타낼 수 있다. 처리량 필드(325)는 트레이닝 리포트 패킷(320)을 전송하는 노드가 측정한 처리량(throughput)을 나타낼 수 있다.
트레이닝 폴링 패킷(330)은 트레이닝 폴링 패킷을 수신한 노드가 트레이닝 폴링 패킷을 수신한 노드의 주변 노드에게 트레이닝 패킷들을 전송하게 하는 패킷을 의미할 수 있다. 트레이닝 폴링 패킷(330)은 이더 헤더(331) 및 타입 필드(332)를 포함할 수 있다. 이더 헤더(331)는 트레이닝 폴링 패킷(330)의 이더넷 타입을 나타내고, 타입 필드(332)는 트레이닝 폴링 패킷(330)의 속성을 나타낸다. 일 실시예에서, 트레이닝 폴링 패킷(330)의 타입 필드(332)의 필드값은 5일 수 있다.
네이버 리포트 패킷(340)은 트레이닝 폴링 패킷에 의하여 릴레이 후보 노드가 주변 노드에 트레이닝 패킷들을 전송하고, 릴레이 후보 노드가 주변 노드로부터 트레이닝 리포트 패킷을 수신한 경우, 수신한 트레이닝 리포트 패킷을 소스 노드에게 보고하기 위한 패킷을 의미할 수 있다. 네이버 리포트 패킷(340)은 이더 헤더(341), 타입 필드(342), 리포트 패킷 수량 필드(343), 주소 필드(344), 전송량 필드(345), 수신량 필드(346), 처리량 필드(347)을 포함할 수 있다. 이더 헤더(341)는 네이버 리포트 패킷(340)의 이더넷 타입을 나타내고, 타입 필드(342)는 네이버 리포트 패킷(340)의 속성을 나타낼 수 있다. 예를 들어, 타입 필드(342)의 필드값은 6일 수 있다. 리포트 패킷 수량 필드(343)는 네이버 리포트 패킷(340)이 보고하는 트레이닝 리포트 패킷의 개수를 나타내고, 주소 필드(344)는 n번째 트레이닝 리포트 필드에 대응하는 노드의 MAC 주소를 나타내고, 전송량 필드(345)는 n번째 트레이닝 리포트 필드에 대응하는 노드에 전송한 트레이닝 패킷의 개수를 나타내고, 수신량 필드(346)는 n번째 트레이닝 리포트 필드에 대응하는 노드가 실제로 수신한 트레이닝 패킷의 개수를 나타낼 수 있다. 처리량 필드(347)는 네이버 리포트 패킷(340)이 보고하는 트레이닝 리포트 패킷들 각각에 대응하는 노드가 측정한 처리량을 나타낼 수 있다.
블록 트레이닝 리포트 패킷(350)은 소스 노드외의 노드가 다른 노드들로부터 트레이닝 리포트 패킷들을 수신한 경우, 수신한 트레이닝 리포트 패킷들을 소스 노드에게 보고하기 위한 패킷을 의미할 수 있다. 블록 트레이닝 리포트 패킷(350)은 이더 헤더(351), 타입 필드(352), 리포트 패킷 수량 필드(353), 수신자 주소 필드(354), 전송자 주소 필드(355), 전송량 필드(356), 수신량 필드(347), 처리량 필드(348)를 포함할 수 있다.
이더 헤더(351)는 블록 트레이닝 리포트 패킷(350)의 이더넷 타입을 나타내고, 타입 필드(352)는 블록 트레이닝 리포트 패킷(350)의 속성을 나타낼 수 있다. 예를 들어, 타입 필드(352)의 필드값은 7일 수 있다. 리포트 패킷 수량 필드(353)는 블록 트레이닝 리포트 패킷(350)을 생성하는 노드가 수신한 트레이닝 리포트 패킷의 개수를 나타내고, 수신자 주소 필드(354)는 n번째 트레이닝 리포트 필드에 대응하는 노드의 주소를 나타내고, 전송자 주소 필드(355)는 n번째 트레이닝 리포트 필드에 대응하는 노드에, 트레이닝 패킷들을 전송한 노드의 주소를 나타내고, 전송량 필드(356)는 n번째 트레이닝 리포트 필드에 대응하는 노드에 전송한 트레이닝 패킷의 개수를 나타내고, 수신량 필드(357)는 n번째 트레이닝 리포트 필드에 대응하는 노드가 실제로 수신한 트레이닝 패킷의 개수를 나타낼 수 있다. 처리량 필드(358)는 블록 트레이닝 리포트 패킷(350)이 보고하는 트레이닝 리포트 패킷들 각각에 대응하는 노드가 측정한 처리량을 나타낼 수 있다.
도 4는 일 실시예에 따른 복수의 노드의 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 멀티캐스트 네트워크는 소스 노드(410), 제1 노드(421), 제2 노드(422), 제3 노드(431) 및 제4 노드(432)를 포함할 수 있다. 여기서, 제1 노드(421) 및 제2 노드(422)는 소스 노드(410)로부터 패킷을 수신하는 1-홉 노드일 수 있고, 제3 노드(431) 및 제4 노드(432)는 1-홉 노드로부터 패킷을 수신하는 2-홉 노드일 수 있다.
소스 노드(410)는 미리 정해진 주기에 따라 토폴로지 정보를 추출할 수도 있고, 외부로부터의 제어에 따라 토폴로지 정보를 추출할 수도 있다. 소스 노드(410)는 제1 노드(421) 및 제2 노드(422)에 멀티캐스트로 트레이닝 패킷들을 전송할 수 있다. 제1 노드(421) 및 제2 노드(422)는 수신한 트레이닝 패킷들의 개수를 측정하고, 트레이닝 패킷들의 수신에 응답하여 트레이닝 리포트 패킷을 유니캐스트로 소스 노드(410)에 전송할 수 있다. 소스 노드(410)는 수신한 트레이닝 리포트 패킷을 이용하여, 제1 노드(421) 및 제2 노드(422)의 패킷 수신율을 연산할 수 있고, 제1 노드(421) 및 제2 노드(422)의 패킷 수신율이 미리 정해진 임계 레벨 이상임에 따라, 제1 노드(421) 및 제2 노드(422)를 릴레이 후보 노드로 선택할 수 있다. 소스 노드(410)는 트레이닝 리포트 패킷을 수신한 후 미리 정해진 시간이 지난 후, 소스 노드(410)는 미리 정해진 규칙에 따라, 릴레이 후보 노드인 제1 노드(421) 및 제2 노드(422) 중 제1 노드(421)에 먼저 트레이닝 폴링 패킷을 전송할 수 있다. 소스 노드(410)는 제1 노드(421)로부터 네이버 리포트 패킷을 수신한 후, 제2 노드(422)에 트레이닝 폴링 패킷을 전송할 수 있다. 일 실시예에서, 미리 정해진 시간동안 제1 노드(421)로부터 네이버 리포트 패킷을 수신하지 못한 경우, 소스 노드(410)는 제1 노드(421)에 네이버 리포트 패킷의 재전송을 요구할 수 있다. 만약, 최대 재전송 횟수에 도달할 때까지 소스 노드(410)가 제1 노드(421)로부터 네이버 리포트 패킷을 수신하지 못할 경우, 소스 노드(410)는 제2 노드(422)에 트레이닝 폴링 패킷을 전송할 수 있다. 트레이닝 폴링 패킷을 수신한 제1 노드(421)는 제3 노드(431) 및 제4 노드(432)에 트레이닝 패킷을 전송할 수 있다. 제1 노드(421)는 제3 노드(431) 및 제4 노드(432)로부터 트레이닝 리포트 패킷을 수신할 수 있고, 미리 정해진 시간의 경과 후에, 수신한 트레이닝 리포트 패킷을 기초로 네이버 리포트 패킷을 생성하고, 생성한 네이버 리포트 패킷을 소스 노드(410)에 전송할 수 있다. 일 실시예에서, 제1 노드(421) 와 소스 노드(410)간의 채널 상태가 좋지 않은 경우, 제1 노드(421)는 제3 노드(431) 및 제4 노드(432)로부터 수신한 트레이닝 리포트 패킷들을 기초로 블록 트레이닝 리포트 패킷을 생성할 수 있고, 생성한 블록 트레이닝 리포트 패킷을 제2 노드(422)에 전송할 수 있다. 제2 노드(422)는 제1 노드(421)로부터 수신한 블록 트레이닝 리포트 패킷을 소스 노드(410)에 전송할 수 있다. 소스 노드(410)는 다른 노드들(421, 422, 431, 432)로부터 수신한 트레이닝 리포트 패킷, 네이버 리포트 패킷 또는 블록 트레이닝 리포트 패킷을 이용하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다.
<릴레이 노드 선택 기법>
도 2를 참조하면, 릴레이 노드 선택부(220)는 토폴로지 정보 추출부(210)에서 추출된 토폴로지 정보를 기초로 멀티캐스트 네트워크를 구성하는 복수의 노드 중 릴레이 노드를 선택할 수 있다. 여기서, 릴레이 노드는 소스 노드(200)로부터 패킷을 수신하고, 수신한 패킷을 다른 노드에 중계하는 노드들 의미할 수 있다. 릴레이 노드 선택부(220)는 토폴로지 정보를 기초로 복수의 노드 중 소스 노드(200)를 제외한 나머지 노드들을 1-홉 노드 그룹 및 2-홉 노드 그룹으로 분류하고, 복수의 릴레이 후보 노드의 패킷 전송이 나머지 노드들 중 적어도 일부에 미치는 영향을 고려하여 복수의 릴레이 후보 노드 중 릴레이 노드를 선택할 수 있다. 릴레이 노드 선택부(220)의 구체적인 동작에 대해서는 도 5 내지 도 10에서 상세하게 설명한다. 도 5 내지 도 10에 대한 설명에서, 소스 노드의 동작은 도 2의 릴레이 노드 선택부(220)의 동작을 나타낼 수 있다.
도 5 내지 도 10을 설명하기 위해, 아래에서는 릴레이 노드 선택부(220)에서 이용되는 파라미터에 대해서 정의한다.
(1) 예상 패킷 수신량: 예상 패킷 수신량은 패킷 전송 성공률이 일정한 환경에서, 수신 노드가 목표 패킷 수신량 이상의 패킷을 수신할 확률이 임계 확률 이상이 되도록 하는 수신 노드의 패킷 수신량을 나타낼 수 있다. 여기서, 수신 노드는 2-홉 노드를 의미할 수 있다. 전송 노드의 패킷 전송 성공률이 p이고, 전송 노드의 패킷 전송과 다른 노드에서의 패킷 전송은 서로 독립적이라고 가정할 때, 수신 노드가 목표 수신량만큼 패킷을 수신할 확률은 아래의 수학식 1과 같이 나타낼 수 있다.
[수학식 1]
Figure 112014059023334-pat00001

여기서, X는 수신 노드의 패킷 수신량을 나타내고, k는 목표 수신량을 나타내고, N은 전송 노드의 패킷 전송량을 나타내고, p는 전송 노드의 패킷 전송 성공률을 나타낼 수 있다.
또한, 수신 노드가 목표 패킷 수신량 이상의 패킷을 수신할 확률이 임계 확률 이상이 되도록 하는 수신 노드의 패킷 수신량인 예상 패킷 수신량은 아래의 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
Figure 112014059023334-pat00002

여기서, N은 전송 노드의 패킷 전송량을 나타내고, p는 전송 노드의 패킷 전송 성공률을 나타내고,
Figure 112014059023334-pat00003
는 임계 확률을 나타낼 수 있다. X는 수신 노드의 패킷 수신량을 나타내고, k는 목표 수신량을 나타낼 수 있고,
Figure 112014059023334-pat00004
는 예상 패킷 수신량을 나타낼 수 있다. 이에 따라, 예상 패킷 수신량
Figure 112014059023334-pat00005
는 패킷 전송 성공률이 p인 환경에서 전송 노드가 N 개의 패킷을 전송할 때, 수신 노드가 목표 패킷 수신량 이상의 패킷을 수신할 확률이 임계 확률
Figure 112014059023334-pat00006
이상이 되도록 하는 수신 노드의 패킷 수신량을 의미할 수 있다. 예상 패킷 수신량
Figure 112014059023334-pat00007
의 연산은 계산 복잡도가 높을 수 있다. 이에 따라, 예상 패킷 수신량
Figure 112014059023334-pat00008
은 패킷 전송량 N과 패킷 전송 성공률 p에 대한 다항식 형태로 근사화될 수 있다. 일 실시예에서, 임계 확률
Figure 112014059023334-pat00009
가 0.99일 때, 예상 패킷 수신량
Figure 112014059023334-pat00010
은 패킷 전송량 N이 10 내지 20이고, 패킷 전송 성공률 p가 0 내지 1인 영역에 대하여
Figure 112014059023334-pat00011
의 식으로 근사화될 수 있다. 예를 들어,
Figure 112014059023334-pat00012
이 0.7656으로 설정될 경우,
Figure 112014059023334-pat00013
은 평균 오차가 0.6일 수 있다. 또한, 일 실시예에서, 예상 패킷 수신량
Figure 112014059023334-pat00014
은 룩업 테이블을 통해 연산될 수 있다. 예를 들어, 각각의 패킷 전송량 N, 패킷 전송 성공률 p 및 임계 확률
Figure 112014059023334-pat00015
에 대한 예상 패킷 수신량
Figure 112014059023334-pat00016
이 미리 계산되어 룩업 테이블 형태로 저장된 경우, 노드는 룩업 테이블을 참조하여 예상 패킷 수신량
Figure 112014059023334-pat00017
를 추출할 수 있다.
(2) 잠재적 요구 자유도(Potentially Required Degree: PR-DoF): 잠재적 요구 자유도는 전송 노드로부터 패킷을 수신한 수신 노드가 추가로 수신해야 하는 패킷의 양을 나타낼 수 있다. 소스 노드가 노드 i에 패킷을 전송할 경우, 노드 i의 잠재적 요구 자유도는 아래의 수학식 3과 같이 나타날 수 있다.
[수학식 3]
Figure 112014059023334-pat00018

여기서,
Figure 112014059023334-pat00019
는 노드 i의 잠재적 요구 자유도를 나타내고, K는 소스 노드가 원본 패킷을 랜덤 행렬을 이용하여 인코딩된 패킷으로 변환하고 인코딩된 패킷을 노드 i에 전송할 경우의 원본 패킷의 개수를 나타내고,
Figure 112014059023334-pat00020
는 소스 노드가 노드 i에 전송하는 인코딩된 패킷의 개수를 나타낼 수 있다.
Figure 112014059023334-pat00021
는 소스 노드와 노드 i 사이의 패킷 전송 성공률을 나타내고,
Figure 112014059023334-pat00022
는 임계 확률을 나타낼 수 있다.
Figure 112014059023334-pat00023
는 노드 i의 예상 패킷 수신량을 나타낼 수 있다. 수학식 3은 아래의 수학식 4와 같이 일반화될 수 있다.
[수학식 4]
Figure 112014059023334-pat00024

여기서,
Figure 112014059023334-pat00025
는 전송 노드 i에 대한 수신 노드 j의 잠재적 요구 자유도를 나타내고,
Figure 112014059023334-pat00026
는 수신 노드 j의 이전 잠재적 요구 자유도를 나타내고,
Figure 112014059023334-pat00027
는 전송 노드 i가 수신 노드 j에 전송하는 인코딩된 패킷의 개수를 나타내고,
Figure 112014059023334-pat00028
는 전송 노드 i와 수신 노드 j 사이의 패킷 전송 성공률을 나타내고,
Figure 112014059023334-pat00029
는 임계 확률을 나타낼 수 있다.
Figure 112014059023334-pat00030
는 수신 노드 j의 예상 패킷 수신량을 나타낼 수 있다. 이에 따라, 노드 j의 현재 잠재적 요구 자유도는 노드 j의 이전 잠재적 요구 자유도에서 노드 j의 예상 패킷 수신량을 뺀 값을 의미할 수 있다.
(3) 요구 전송량(number of required transmissions: RTX): 요구 전송량은 노드가 릴레이 후보 노드에게 전송을 요구하는 패킷의 양을 의미할 수 있다. 노드 i의 릴레이 후보 노드 j에 대한 요구 전송량은 수학식 5와 같이 나타낼 수 있다.
[수학식 5]
Figure 112014059023334-pat00031

여기서,
Figure 112014059023334-pat00032
는 노드 i의 릴레이 후보 노드 j에 대한 요구 전송량을 나타내고,
Figure 112014059023334-pat00033
는 노드 i에 대한 릴레이 후보 노드 j의 잠재적 요구 자유도를 나타내고,
Figure 112014059023334-pat00034
는 릴레이 후보 노드 j의 이전 잠재적 요구 자유도를 나타내고,
Figure 112014059023334-pat00035
는 노드 i가 릴레이 후보 노드 j에 전송하는 인코딩된 패킷의 개수를 나타내고,
Figure 112014059023334-pat00036
는 노드 i와 릴레이 후보 노드 j 사이의 패킷 전송 성공률을 나타내고,
Figure 112014059023334-pat00037
는 임계 확률을 나타낼 수 있다.
Figure 112014059023334-pat00038
는 예상 패킷 수신량을 나타낼 수 있다.
(4) 최소 요구 전송량(minimum RTX: mRTX): 수신 노드의 복수의 전송 노드에 대한 요구 전송량 중 양이 가장 적은 요구 전송량을 의미할 수 있다. 수신 노드 j의 릴레이 후보 노드 i에 대한 최소 요구 전송량은 수학식 6과 같이 나타낼 수 있다.
[수학식 6]
Figure 112014059023334-pat00039

여기서,
Figure 112014059023334-pat00040
는 수신 노드 j의 최소 요구 전송량을 나타낼 수 있다.
(5) 최적 노드 그룹(Best Two-hop node Group: BTG): 최적 노드 그룹은 수신 노드들 중 해당 릴레이 후보 노드에 최소 요구량으로 패킷 전송을 요청하는 노드로 구성된 그룹을 의미할 수 있다. 릴레이 후보 노드 i의 최적 노드 그룹은 수학식 7과 같이 나타낼 수 있다.
[수학식 7]
Figure 112014059023334-pat00041

여기서,
Figure 112014059023334-pat00042
는 릴레이 후보 노드 i의 최적 노드 그룹을 나타내고,
Figure 112014059023334-pat00043
는 수신 노드 j의 최소 요구 전송량을 나타내고,
Figure 112014059023334-pat00044
는 수신 노드 j의 릴레이 후보 노드 i에 대한 요구 전송량을 나타낼 수 있다. 이에 따라, 릴레이 후보 노드 i의 최적 노드 그룹은 복수의 노드들 중 최소 요구 전송량이 릴레이 후보 노드 i와 관련있는 수신 노드로 구성된 그룹일 수 있다.
(6) 최대 요구 전송량(Maximum RTX: MmRTX): 최대 요구 전송량은 최적 노드 그룹에 포함된 노드의 최소 요구 전송량 중 양이 가장 많은 최소 요구 전송량을 의미할 수 있다. 릴레이 후보 노드 i의 최대 요구 전송량은 수학식 8과 같이 나타낼 수 있다.
[수학식 8]
Figure 112014059023334-pat00045

Figure 112014059023334-pat00046
는 릴레이 후보 노드 i의 최대 요구 전송량을 나타내고,
Figure 112014059023334-pat00047
는 수신 노드 j의 최소 요구 전송량을 나타내고,
Figure 112014059023334-pat00048
는 릴레이 후보 노드 i의 최적 노드 그룹을 나타낼 수 있다. 일 실시예에서, 릴레이 후보 노드 i의 최대 요구 전송량은 릴레이 후보 노드 i의 최적 노드 그룹에 포함된 노드에 전송해야 하는 패킷의 양을 의미할 수 있다.
(7) 제1 유틸리티(utility): 제1 유틸리티는 릴레이 후보 노드의 최대 요구 전송량에 따른 최적 노드 그룹에 포함된 노드로의 패킷 전송이 주변 노드에 미치는 영향을 나타낼 수 있다. 릴레이 후보 노드 i의 제1 유틸리티는 수학식 9와 같이 나타낼 수 있다.
[수학식 9]
Figure 112014059023334-pat00049

여기서, S는 수신 노드들의 집합을 나타낼 수 있다. 멀티캐스트 네트워크의 상황에 따라, 집합 S는 릴레이 후보 노드 i의 최적 노드 그룹을 나타낼 수도 있고, 멀티캐스트 네트워크를 구성하는 복수의 노드 전체를 나타낼 수도 있다.
Figure 112014059023334-pat00050
는 릴레이 후보 노드 i의 제1 유틸리티를 나타내고,
Figure 112014059023334-pat00051
는 수신 노드 j의 이전 잠재적 요구 자유도를 나타내고,
Figure 112014059023334-pat00052
는 릴레이 후보 노드 i와 수신 노드 j 사이의 패킷 전송 성공률을 나타내고,
Figure 112014059023334-pat00053
는 임계 확률을 나타낼 수 있다.
Figure 112014059023334-pat00054
는 릴레이 후보 노드 i의 최대 요구 전송량을 나타내고,
Figure 112014059023334-pat00055
는 수신 노드 j의 예상 패킷 수신량을 나타낼 수 있다. 이에 따라, 수학식 9에 따른 제1 유틸리티는 릴레이 후보 노드 i가
Figure 112014059023334-pat00056
개의 패킷을 재전송할 경우, 멀티캐스트 네트워크를 구성하는 복수의 노드에 전송할 수 있는 패킷의 수를 의미할 수 있다.
또한, 제1 유틸리티는 수학식 10과 같이 나타낼 수도 있다.
[수학식 10]
Figure 112014059023334-pat00057

여기서,
Figure 112014059023334-pat00058
는 릴레이 후보 노드 i의 제1 유틸리티를 나타내고,
Figure 112014059023334-pat00059
는 릴레이 후보 노드 i의 최적 노드 그룹을 나타낼 수 있다. 이에 따라, 수학식 10에 따른 제1 유틸리티는 릴레이 후보 노드 i가 만족시킬 수 있는 수신 노드의 개수를 의미할 수 있다. 일 실시예에서, 소스 노드는 릴레이 후보 노드 i의 수학식 10에 따른 제1 유틸리티와 릴레이 후보 노드 j의 수학식 10에 따른 제1 유틸리티가 서로 동일할 경우, 최대 요구 전송량이 작은 릴레이 후보 노드를 릴레이 노드로 결정할 수 있다.
또한, 제1 유틸리티는 수학식 11과 같이 나타낼 수 있다.
[수학식 11]
Figure 112014059023334-pat00060

여기서,
Figure 112014059023334-pat00061
는 릴레이 후보 노드 i의 제1 유틸리티를 나타내고, S는 멀티캐스트 네트워크를 구성하는 복수의 노드의 집합을 나타내고,
Figure 112014059023334-pat00062
는 수신 노드 j의 이전 잠재적 요구 자유도를 나타내고,
Figure 112014059023334-pat00063
는 릴레이 후보 노드 i가 수신 노드 j에 전송하는 인코딩된 패킷의 개수를 나타내고,
Figure 112014059023334-pat00064
는 릴레이 후보 노드 i와 수신 노드 j 사이의 패킷 전송 성공률을 나타내고,
Figure 112014059023334-pat00065
는 임계 확률을 나타낼 수 있다.
도 5는 일 실시예에 따른 릴레이 노드 선택 기법을 설명하기 위한 동작 흐름도이다.
도 5를 참조하면, 소스 노드는 토폴로지 정보를 획득할 수 있다(510). 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다.
또한, 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드 중 소스 노드를 제외한 나머지 노드들을 1-홉 노드 그룹 및 2-홉 노드 그룹으로 분류할 수 있다(520). 여기서, 1-홉 노드 그룹은 소스 노드로부터 패킷을 수신하는 노드들의 그룹을 의미할 수 있고, 2-홉 노드 그룹은 소스 노드에서 전송된 패킷을 1-홉 노드의 중계에 따라 수신하는 노드들의 그룹을 의미할 수 있다. 소스 노드는 토폴로지 정보를 이용하여, 멀티캐스트 네트워크를 구성하는 복수의 노드 중 소스 노드를 제외한 나머지 노드들 각각의 예상 패킷 수신량을 상술한 수학식 2에 따라 추정할 수 있다. 여기서, 예상 패킷 수신량은 나머지 노드들 각각이 목표 패킷 수신량 이상의 패킷을 수신할 확률이 미리 정해진 임계 확률 이상이 되도록 하는 나머지 노드들 각각의 패킷 수신량을 의미할 수 있다. 소스 노드는 상술한 수학식 3에 따라, 나머지 노드들의 예상 패킷 수신량을 기초로 나머지 노드들 각각의 잠재적 요구 자유도를 추정할 수 있다. 여기서, 잠재적 요구 자유도는 나머지 노드들 각각이 다른 노드로부터 패킷을 수신한 후에 추가로 수신해야 하는 패킷의 양을 나타낼 수 있다. 소스 노드는 잠재적 요구 자유도가 낮은 노드를 1-홉 노드 그룹으로 결정하고, 잠재적 요구 자유도가 높은 노드를 2-홉 노드 그룹으로 결정할 수 있다. 예를 들어, 소스 노드는 잠재적 요구 자유도가 0인 노드를 1-홉 노드 그룹으로 결정하고, 잠재적 요구 자유도가 0보다 큰 노드를 2-홉 노드 그룹으로 결정할 수 있다.
또한, 소스 노드는 시스템 파라미터를 추정할 수 있다(530). 여기서, 시스템 파라미터는 요구 전송량, 최소 요구 전송량, 최대 요구 전송량 및 제1 유틸리티를 포함할 수 있다.
일 실시예에서, 소스 노드는 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각에 대하여 요구 전송량을 연산할 수 있다. 이를 위해, 소스 노드는 상술한 수학식 4에 따라 복수의 릴레이 후보 노드 각각에 대한 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 잠재적 요구 자유도를 연산할 수 있다. 소스 노드는 상술한 수학식 5에 따라, 복수의 릴레이 후보 노드 각각에 대한 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 잠재적 요구 자유도를 기초로, 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 복수의 릴레이 후보 노드 각각에 대한 요구 전송량을 연산할 수 있다.
일 실시예에서, 소스 노드는 상술한 수학식 6을 기초로, 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각에 대하여, 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 요구 전송량들 중 양이 가장 적은 요구 전송량을 나타내는 최소 요구 전송량을 추정할 수 있다.
일 실시예에서, 소스 노드는 상술한 수학식 7을 기초로, 복수의 릴레이 후보 노드 각각에 대하여, 2-홉 노드 그룹에 포함된 적어도 하나의 노드 중 해당 릴레이 후보 노드에 최소 요구량으로 패킷 전송을 요청하는 노드로 구성된 최적 노드 그룹을 추출할 수 있다.
일 실시예에서, 소스 노드는 상술한 수학식 8을 기초로, 복수의 릴레이 후보 노드 각각에 대하여, 최적 노드 그룹에 포함된 노드의 최소 요구 전송량 중 양이 가장 많은 최소 요구 전송량을 나타내는 최대 요구 전송량을 추정할 수 있다.
일 실시예에서, 소스 노드는 상술한 수학식 9, 수학식 10 또는 수학식 11 중 적어도 하나를 기초로 복수의 릴레이 후보 노드 각각에 대하여 제1 유틸리티를 추정할 수 있다. 여기서, 제1 유틸리티는 복수의 릴레이 후보 노드 각각의 최대 요구 전송량에 따른 최적 노드 그룹에 포함된 노드로의 패킷 전송이 나머지 노드들 중 적어도 일부에 미치는 영향을 나타낼 수 있다.
또한, 소스 노드는 릴레이 노드 및 릴레이 노드의 패킷 전송량을 결정할 수 있다(540). 일 실시예에서, 소스 노드는 복수의 릴레이 후보 노드 중 제1 유틸리티의 크기가 가장 큰 릴레이 후보 노드를 릴레이 노드로 결정하고, 선택된 릴레이 노드의 패킷 전송량을 결정할 수 있다. 다른 일 실시예에서, 소스 노드는 복수의 릴레이 후보 노드 중 최대 요구 전송량의 크기가 가장 큰 릴레이 후보 노드를 릴레이 노드로 결정하고, 선택된 릴레이 노드의 패킷 전송량을 결정할 수 있다.
또한, 소스 노드는 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하인지 여부를 판단할 수 있다(550). 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량보다 큰 경우, 소스 노드는 릴레이 노드의 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하가 되도록 릴레이 노드의 패킷 전송량을 수정할 수 있다(551).
또한, 소스 노드는 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하인 경우, 시스템 파라미터를 업데이트할 수 있다(560). 일 실시예에서, 소스 노드는 잠재적 요구 자유도, 요구 전송량, 최소 요구 전송량, 최대 요구 전송량 및 제1 유틸리티를 릴레이 노드를 기준으로 업데이트할 수 있다.
또한, 소스 노드는 나머지 노드들이 패킷 수신을 완료하였는지 여부를 판단할 수 있다(570). 나머지 노드들이 패킷 수신을 완료하지 않은 경우, 소스 노드는 단계 530 내지 단계 570을 반복하여 수행할 수 있다. 나머지 노드들이 패킷 수신을 완료한 경우, 소스 노드는 유휴(idle) 상태가 될 수 있다.
도 6은 다른 일 실시예에 따른 릴레이 노드 선택 기법을 설명하기 위한 동작 흐름도이다.
도 6을 참조하면, 소스 노드는 토폴로지 정보를 획득할 수 있다(610). 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다.
또한, 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드 중 소스 노드를 제외한 나머지 노드들의 잠재적 요구 자유도를 추정할 수 있다(620). 잠재적 요구 자유도는 나머지 노드들 각각이 다른 노드로부터 패킷을 수신한 후에 추가로 수신해야 하는 패킷의 양을 나타낼 수 있다. 소스 노드는 나머지 노드들 각각의 상술한 수학식 2에 따라 예상 패킷 수신량을 예측하고, 상술한 수학식 3에 따라, 나머지 노드들의 예상 패킷 수신량을 기초로 나머지 노드들 각각의 잠재적 요구 자유도를 추정할 수 있다.
또한, 소스 노드는 나머지 노드들을 1-홉 노드 그룹 및 2-홉 노드 그룹으로 분류할 수 있다(630). 소스 노드는 잠재적 요구 자유도가 낮은 노드를 1-홉 노드 그룹으로 결정하고, 잠재적 요구 자유도가 높은 노드를 2-홉 노드 그룹으로 결정할 수 있다. 예를 들어, 소스 노드는 잠재적 요구 자유도가 0인 노드를 1-홉 노드 그룹으로 결정하고, 잠재적 요구 자유도가 0보다 큰 노드를 2-홉 노드 그룹으로 결정할 수 있다.
또한, 소스 노드는 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각에 대하여 요구 전송량을 연산할 수 있다(640). 소스 노드는 상술한 수학식 5에 따라, 복수의 릴레이 후보 노드 각각에 대한 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 잠재적 요구 자유도를 기초로, 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 복수의 릴레이 후보 노드 각각에 대한 요구 전송량을 연산할 수 있다.
또한, 소스 노드는 최소 요구 전송량, 최대 요구 전송량 및 제1 유틸리티를 추정할 수 있다(650). 소스 노드는 상술한 수학식 6을 기초로 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 최소 요구 전송량을 추정할 수 있다. 또한, 소스 노드는 상술한 수학식 7을 기초로 복수의 릴레이 후보 노드 각각의 최적 노드 그룹을 추출하고, 상술한 수학식 8을 기초로, 복수의 릴레이 후보 노드 각각의 최대 요구 전송량을 추정할 수 있다. 또한, 소스 노드는 상술한 수학식 9, 수학식 10 또는 수학식 11 중 적어도 하나를 기초로 복수의 릴레이 후보 노드 각각에 대하여 제1 유틸리티를 추정할 수 있다.
또한, 소스 노드는 릴레이 노드 및 릴레이 노드의 패킷 전송량을 결정할 수 있다(660). 일 실시예에서, 소스 노드가 상술한 수학식 9 또는 수학식 10을 기초로 복수의 후보 릴레이 노드 각각에 대하여 제1 유틸리티를 추정한 경우, 소스 노드는 복수의 릴레이 후보 노드 중 제1 유틸리티의 크기가 가장 큰 릴레이 후보 노드를 릴레이 노드로 결정하고, 선택된 릴레이 노드의 최대 요구 전송량을 릴레이 노드의 패킷 전송량으로 결정할 수 있다. 다른 일 실시예에서, 소스 노드는 복수의 릴레이 후보 노드 중 최대 요구 전송량의 크기가 가장 큰 릴레이 후보 노드를 릴레이 노드로 결정하고, 선택된 릴레이 노드의 최대 요구 전송량을 릴레이 노드의 패킷 전송량으로 결정할 수 있다.
또한, 소스 노드는 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하인지 여부를 판단할 수 있다(670). 일 실시예에서, 미리 정해진 최대 패킷 전송량은 릴레이 노드가 측정한 처리량을 기초로 설정될 수 있다. 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량보다 큰 경우, 소스 노드는 릴레이 노드의 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하가 되도록 릴레이 노드의 패킷 전송량을 수정할 수 있다(671).
또한, 소스 노드는 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하인 경우, 나머지 노드들의 잠재적 요구 자유도를 업데이트할 수 있다(680).
또한, 소스 노드는 나머지 노드들의 잠재적 요구 자유도가 0인지 여부를 판단할 수 있다(690). 나머지 노드들 중 의 잠재적 요구 자유도가 0보다 큰 노드가 존재하는 경우, 소스 노드는 단계 650 내지 단계 690을 반복하여 수행할 수 있다. 나머지 노드들의 잠재적 요구 자유도가 0인 경우, 소스 노드는 유휴(idle) 상태가 될 수 있다. 일 실시예에서, 멀티캐스트 네트워크를 구성하는 복수의 노드에서 전송된 패킷의 개수가 미리 정해진 임계 개수 이상인 경우, 소스 노드는 유휴 상태가 될 수 있다.
도 7은 일 실시예에 따른 릴레이 노드의 선택을 설명하기 위한 도면이다.
도 7을 참조하면, 멀티캐스트 네트워크(700)는 복수의 노드(710 내지 760)를 포함할 수 있다. 소스 노드(710)는 복수의 노드(710 내지 760)의 토폴로지 정보를 획득할 수 있다. 소스 노드(710)는 토폴로지 정보를 통하여 복수의 노드(710 내지 760)간의 패킷 전송 성공률에 대한 정보를 추출할 수 있다. 소스 노드(710)는 10개의 원본 패킷을 20개의 인코딩된 패킷으로 인코딩하고, 각각의 노드에 20개의 인코딩된 패킷을 전송할 수 있다.
소스 노드(710)는 상술한 수학식 2를 근사화하여 나머지 노드들(720 내지 760)의 예상 패킷 전송량을 추정할 수 있다. 이 때,
Figure 112014059023334-pat00066
는 0.8로 설정될 수 있다. 또한, 소스 노드는 상술한 수학식 3을 이용하여 나머지 노드들(720 내지 760)의 잠재적 요구 자유도를 추정할 수 있다. 이 경우, 제1 노드(720) 및 제2 노드(730)의 잠재적 요구 자유도는 0으로 추정될 수 있고, 제3 노드(740)의 자유도는 8로 추정되고, 제4 노드(750)의 자유도는 10로 추정되고, 제5 노드(760)의 자유도는 10으로 추정될 수 있다. 이에 따라, 소스 노드는 잠재적 요구 자유도는 0인 제1 노드(720) 및 제2 노드(730)를 1-홉 노드 그룹으로 분류할 수 있고, 잠재적 요구 자유도가 0을 초과하는 제3 노드(740), 제4 노드(750) 및 제5 노드(760)를 2-홉 노드 그룹으로 분류할 수 있다.
소스 노드는 상술한 수학식 5를 기초로 2-홉 노드 그룹에 포함된 노드들(740 내지 760)의 요구 전송량을 추정할 수 있다. 이 경우, 제3 노드(740)의 제1 노드(720)에 대한 요구 전송량 M13은 13으로 추정되고, 제3 노드(740)의 제2 노드(730)에 대한 요구 전송량 M23은 28으로 추정될 수 있다. 제4 노드(750)의 제1 노드(720)에 대한 요구 전송량 M14는 20으로 추정되고, 제4 노드(750)의 제2 노드(730)에 대한 요구 전송량 M24는 16으로 추정되고, 제5 노드(760)의 제2 노드(730)에 대한 요구 전송량 M25는 20으로 추정될 수 있다.
또한, 소스 노드는 상술한 수학식 6에 따라, 제3 노드의 최소 요구 전송량 M3 *을 제3 노드(740)의 제1 노드(720)에 대한 요구 전송량 M13인 13으로 추정하고, 제4 노드의 최소 요구 전송량 M4 *을 제4 노드(750)의 제2 노드(730)에 대한 요구 전송량 M24인 16으로 추정하고, 제4 노드의 최소 요구 전송량 M5 *을 제5 노드(760)의 제2 노드(730)에 대한 요구 전송량 M25인 20으로 추정할 수 있다.
또한, 소스 노드는 상술한 수학식 7을 기초로 제1 노드(720)의 최적 노드 그룹에 제3 노드(740)를 포함시키고, 상술한 수학식 8에 따라 제1 노드(720)의 최대 요구 전송량 M1 '를 제3 노드(740)의 제1 노드(720)에 대한 요구 전송량 M13인 13으로 추정할 수 있다. 또한, 소스 노드는 상술한 수학식 7을 기초로 제2 노드(730)의 최적 노드 그룹에 제4 노드(750) 및 제5 노드(760)를 포함시키고, 상술한 수학식 8에 따라 제2 노드(730)의 최대 요구 전송량 M2 '를 제5 노드(760)의 제2 노드(730)에 대한 요구 전송량 M25인 20으로 추정할 수 있다.
또한, 소스 노드는 상술한 수학식 9를 기초로 제1 노드(720)의 제1 유틸리티 U1을 14로 추정하고, 제2 노드(730)의 제1 유틸리티 U2를 25로 추정할 수 있다. 일 실시예에서, 제2 노드(730)의 제1 유틸리티 U2가 제1 유틸리티 U1보다 값이 크므로, 소스 노드는 제2 노드(730)를 릴레이 노드로 결정하고, 제2 노드(730)의 패킷 전송량을 제2 노드(730)의 최대 요구 전송량 M2 '인 20으로 결정할 수 있다.
릴레이 노드인 제2 노드(730)의 패킷 전송량이 미리 정해진 최대 패킷 전송량보다 작다고 판단된 경우, 소스 노드는 상술한 수학식 3을 이용하여 나머지 노드들(720 내지 760)의 잠재적 요구 자유도를 업데이트할 수 있다. 이 경우, 제1 노드(720), 제2 노드(730), 제4 노드(750) 및 제5 노드(760)의 잠재적 요구 자유도는 0으로 추정될 수 있고, 제3 노드(740)의 자유도는 3으로 추정될 수 있다. 이에 따라, 소스 노드는 잠재적 요구 자유도는 0인 제1 노드(720), 제2 노드(730), 제4 노드(750) 및 제5 노드(760)를 1-홉 노드 그룹으로 분류할 수 있고, 잠재적 요구 자유도가 0을 초과하는 제3 노드(740) 를 2-홉 노드 그룹으로 분류할 수 있다.
소스 노드는 상술한 수학식 5를 기초로 2-홉 노드 그룹에 포함된 노드인 제3 노드(740)의 요구 전송량을 추정할 수 있다. 이 경우, 제3 노드(740)의 제1 노드(720)에 대한 요구 전송량 M13은 5로 추정될 수 있다. 또한, 소스 노드는 상술한 수학식 6에 따라, 제3 노드의 최소 요구 전송량 M3 *을 제3 노드(740)의 제1 노드(720)에 대한 요구 전송량 M13인 5로 추정하고, 소스 노드는 상술한 수학식 7을 기초로 제1 노드(720)의 최적 노드 그룹에 제3 노드(740)를 포함시키고, 상술한 수학식 8에 따라 제1 노드(720)의 최대 요구 전송량 M1 '를 제3 노드(740)의 제1 노드(720)에 대한 요구 전송량 M13인 5로 추정할 수 있다.
또한, 소스 노드는 상술한 수학식 9를 기초로 제1 노드(720)의 제1 유틸리티 U1을 3로 추정하고, 제1 노드(720)를 릴레이 노드로 결정할 수 있다. 또한, 소스 노드는 제1 노드(720)의 패킷 전송량을 제1 노드(720)의 최대 요구 전송량 M1 '인 3으로 결정할 수 있다. 이후, 릴레이 노드인 제1 노드(720)의 패킷 전송량이 미리 정해진 최대 패킷 전송량보다 작다고 판단된 경우, 소스 노드는 상술한 수학식 3을 이용하여 나머지 노드들(720 내지 760)의 잠재적 요구 자유도를 업데이트할 수 있다. 업데이트 결과, 나머지 노드들(720 내지 760)의 잠재적 요구 자유도가 0인 경우, 소스 노드(710)는 유휴(idle) 상태가 될 수 있다.
도 8은 일 실시예에 따른 네트워크 유틸리티를 설명하기 위한 도면이다.
도 8을 참조하면, 그래프(810)는 릴레이 후보 노드 i에서 전송하는 패킷의 양에 따른 수신 노드 j의 제2 유틸리티의 기울기를 나타낸 그래프이다. 여기서, 수신 노드 j의 제2 유틸리티는 릴레이 후보 노드 i의 수신 노드 j로의 패킷 전송에 따른 수신 노드 j의 만족도를 나타낼 수 있다. 또한, 수신 노드 j는 2-홉 노드 그룹에 포함될 수 있다. 릴레이 후보 노드 i의 수신 노드 j로의 패킷 전송에 따른 수신 노드 j의 제2 유틸리티는 수학식 12와 같이 나타낼 수 있다.
[수학식 12]
Figure 112014059023334-pat00067

Figure 112014059023334-pat00068
는 릴레이 후보 노드 i의 수신 노드 j로의 패킷 전송에 따른 수신 노드 j의 제2 유틸리티를 나타내고,
Figure 112014059023334-pat00069
는 수신 노드 j의 예상 패킷 수신량을 나타낼 수 있다.
Figure 112014059023334-pat00070
는 수신 노드 j의 이전 잠재적 요구 자유도를 나타내고,
Figure 112014059023334-pat00071
는 릴레이 후보 노드 i가 수신 노드 j에 전송하는 인코딩된 패킷의 개수를 나타내고,
Figure 112014059023334-pat00072
는 릴레이 후보 노드 i와 수신 노드 j 사이의 패킷 전송 성공률을 나타내고,
Figure 112014059023334-pat00073
는 임계 확률을 나타낼 수 있다. 일 실시예에서, 수신 노드 j의 제2 유틸리티는 수신 노드 j의 이전 잠재적 요구 자유도
Figure 112014059023334-pat00074
에 수렴할 수 있다.
그래프(820)는 릴레이 후보 노드 i가 전송하는 패킷의 양에 따른 릴레이 후보 노드 i의 네트워크 유틸리티의 기울기를 나타낸 그래프이다. 여기서, 릴레이 후보 노드 i의 네트워크 유틸리티는 릴레이 후보 노드 i의 패킷 전송에 따른 2-홉 노드 그룹의 만족도를 나타낼 수 있다. 릴레이 후보 노드 i의 네트워크 유틸리티는 수학식 13과 같이 나타낼 수 있다.
[수학식 13]
Figure 112014059023334-pat00075

여기서,
Figure 112014059023334-pat00076
는 릴레이 후보 노드 i의 네트워크 유틸리티를 나타내고,
Figure 112014059023334-pat00077
는 릴레이 후보 노드 i의 수신 노드 j로의 패킷 전송에 따른 수신 노드 j의 제2 유틸리티를 나타내고, S는 수신 노드들의 집합을 나타낼 수 있다. 멀티캐스트 네트워크에 따라, 집합 S는 가변될 수 있다. 집합 S에 속한 수신 노드 j의 제2 유틸리티
Figure 112014059023334-pat00078
의 합은 최대값이 특정 값에 수렴될 수 있다. 예를 들어, 집합 S에 속한 수신 노드 j의 제2 유틸리티
Figure 112014059023334-pat00079
의 합은 수신 노드 j의 이전 잠재적 요구 자유도
Figure 112014059023334-pat00080
의 합인
Figure 112014059023334-pat00081
에 수렴할 수 있다. 일 실시예에서, 그래프 (820)의 변곡점(821, 822, 823)에서와 같이, 릴레이 후보 노드 i에서 전송하는 패킷의 양에 따른 릴레이 후보 노드 i의 네트워크 유틸리티의 기울기가 변경될 때 마다, 소스 노드는 새로운 릴레이 노드를 선정하고, 선정된 릴레이 노드의 패킷 전송량을 결정할 수 있다.
도 9는 또 다른 일 실시예에 따른 릴레이 노드 선택 기법을 설명하기 위한 동작 흐름도이다.
도 9를 참조하면, 소스 노드는 토폴로지 정보를 획득할 수 있다(910). 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다.
또한, 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드 중 소스 노드를 제외한 나머지 노드들을 1-홉 노드 그룹 및 2-홉 노드 그룹으로 분류할 수 있다(920). 소스 노드는 토폴로지 정보를 이용하여, 멀티캐스트 네트워크를 구성하는 복수의 노드 중 소스 노드를 제외한 나머지 노드들 각각의 예상 패킷 수신량을 상술한 수학식 2에 따라 추정할 수 있다. 또한, 소스 노드는 상술한 수학식 3에 따라, 나머지 노드들의 예상 패킷 수신량을 기초로 나머지 노드들 각각의 잠재적 요구 자유도를 추정할 수 있다. 또한, 소스 노드는 잠재적 요구 자유도가 낮은 노드를 1-홉 노드 그룹으로 결정하고, 잠재적 요구 자유도가 높은 노드를 2-홉 노드 그룹으로 결정할 수 있다.
또한, 소스 노드는 복수의 릴레이 후보 노드 각각의 네트워크 유틸리티를 추정할 수 있다(730). 소스 노드는 2-홉 노드 그룹에 포함된 노드 각각에 대하여, 상술한 수학식 12를 기초로 복수의 릴레이 후보 노드 각각의 2-홉 노드 그룹에 포함된 노드로의 패킷 전송에 따른 2-홉 노드 그룹에 포함된 노드의 만족도를 나타내는 제2 유틸리티를 추정하고, 복수의 릴레이 후보 노드 각각에 대하여, 상술한 수학식 13을 기초로 네트워크 유틸리티를 추정할 수 있다.
또한, 소스 노드는 릴레이 노드 및 릴레이 노드의 패킷 전송량을 결정할 수 있다(740). 소스 노드는 소스 노드가 멀티캐스트 네트워크를 구성하는 복수의 노드 중 소스 노드를 제외한 나머지 노드들에 패킷을 전송하는 것을 가정할 때, 상술한 수학식 13을 이용하여 소스 노드의 네트워크 유틸리티를 추정하고, 소스 노드가 전송하는 패킷의 양에 따른 소스 노드의 네트워크 유틸리티의 기울기를 추출할 수 있다. 소스 노드가 전송하는 패킷의 양에 따른 소스 노드의 네트워크 유틸리티의 기울기가 변경되는 경우, 소스 노드는 상술한 수학식 13을 기초로 복수의 릴레이 후보 노드 각각의 네트워크 유틸리티를 추정하고, 복수의 릴레이 후보 노드 각각에 대하여, 복수의 릴레이 후보 노드 각각이 전송하는 패킷의 양에 따른 복수의 릴레이 후보 노드 각각의 네트워크 유틸리티의 기울기를 추출할 수 있다. 소스 노드는 추출된 노드들의 네트워크 유틸리티의 기울기를 비교하여, 기울기가 가장 큰 노드를 릴레이 노드로 결정할 수 있다. 또한, 릴레이 노드에서 전송하는 패킷의 양에 따른 릴레이 노드의 네트워크 유틸리티의 기울기가 변경될 때 마다, 소스 노드는 복수의 릴레이 후보 노드 각각의 제2 유틸리티를 업데이트하여, 복수의 릴레이 후보 노드 중 릴레이 후보 노드에서 전송하는 패킷의 양에 따른 제2 유틸리티의 기울기가 가장 큰 릴레이 후보 노드를 릴레이 노드로 선택할 수 있다. 일 실시예에서, 릴레이 노드에서 전송하는 패킷의 양에 따른 릴레이 노드의 네트워크 유틸리티의 기울기가 변경될 때, 소스 노드는 추가되는 릴레이 후보 노드가 있는지 여부를 판단할 수 있다. 추가되는 릴레이 후보 노드가 존재하는 경우, 소스 노드는 추가되는 릴레이 후보 노드의 네트워크 유틸리티를 추정하고, 추가되는 릴레이 후보 노드가 전송하는 패킷의 양에 따른 추가되는 릴레이 후보 노드의 네트워크 유틸리티의 기울기를 추출할 수 있다. 또한, 일 실시예에서, 릴레이 노드를 선택할 경우, 릴레이 노드에서 전송하는 패킷의 양에 따른 릴레이 노드의 네트워크 유틸리티의 기울기가 변경될 때 까지를 기준으로, 선택된 릴레이 노드의 패킷 전송량을 결정할 수 있다.
또한, 소스 노드는 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하인지 여부를 판단할 수 있다(950). 일 실시예에서, 미리 정해진 최대 패킷 전송량은 릴레이 노드가 측정한 처리량을 기초로 설정될 수 있다. 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량보다 큰 경우, 소스 노드는 릴레이 노드의 패킷 전송량이 미리 정해진 최대 패킷 전송량 이하가 되도록 릴레이 노드의 패킷 전송량을 수정할 수 있다(951).
또한, 소스 노드는 나머지 노드들이 패킷 수신을 완료하였는지 여부를 판단할 수 있다(960). 나머지 노드들이 패킷 수신을 완료하지 않은 경우, 소스 노드는 단계 940 내지 단계 960을 반복하여 수행할 수 있다. 나머지 노드들이 패킷 수신을 완료한 경우, 소스 노드는 유휴 상태가 될 수 있다.
도 10은 일 실시예에 따른 릴레이 선택 패킷의 구조를 설명하기 위한 도면이다.
도 10을 참조하면, 소스 노드가 복수의 릴레이 후보 노드들 중 릴레이 노드 및 릴레이 노드의 패킷 전송량을 선택하는 경우, 소스 노드는 릴레이 노드에 릴레이 선택 패킷(1000)을 전송할 수 있다.
일 실시예에서, 릴레이 선택 패킷(1000)은 이더 헤더(1010), 타입 필드(1020), 원본 패킷 필드(1030) 및 인코딩 패킷 필드(1040)를 포함할 수 있다. 이더 헤더(1010)는 릴레이 선택 패킷(1000)의 이더넷 타입을 나타내고, 타입 필드(1020)는 릴레이 선택 패킷(1000)의 속성을 나타낼 수 있다. 예를 들어, 타입 필드(1020)의 필드값은 8일 수 있다. 원본 패킷 필드(1030)는 인코딩된 패킷으로 변환할 원본 패킷의 수를 나타내고, 인코딩 패킷 필드(1040)는 변환될 인코딩된 패킷의 수를 나타낼 수 있다.
<매트릭스 네트워크 코딩을 이용한 인코딩 및 디코딩 기법>
도 11은 일 실시예에 따른 노드를 나타낸 블록도이다.
도 11을 참조하면, 노드(1100)는 인코딩부(1110) 및 디코딩부(1120)를 포함할 수 있다. 인코딩부(1110)는 이더넷 모듈로부터 원본 패킷을 수신하고, 원본 패킷을 복수의 서브 패킷으로 분류하고, 복수의 서브 패킷과 랜덤 행렬을 연산하여 인코딩된 데이터를 생성할 수 있다. 일 실시예에서, 인코딩부(1110)는 인코딩된 데이터에, 인코딩된 데이터에 대한 정보를 포함하는 제1 헤더를 부가할 수 있다. 여기서, 제1 헤더는 원본 패킷의 개수에 대한 정보, 랜덤 행렬의 길이에 대한 정보, 인코딩된 패킷의 식별자에 대한 정보, 랜덤 행렬의 계수(coefficient)에 대한 정보 및 인코딩된 패킷의 타입에 대한 정보 중 적어도 하나를 포함할 수 있다. 이 때, 인코딩된 패킷의 타입에 대한 정보는 조직 코드(systematic code) 및 비조직 코드(non systematic code)를 포함할 수 있다. 조직 코드는 인코딩된 패킷을 무선랜 모듈로 전송하기 이전에 원본 패킷을 무선랜 모듈에 전송하는 코드를 의미할 수 있고, 비조직 코드는 인코딩된 패킷만을 무선랜 모듈로 전송하는 코드를 의미할 수 있다. 또한, 인코딩부(1110)는 인코딩된 패킷에 원본 패킷의 이더넷 타입에 대한 정보를 포함하는 제2 헤더를 부가할 수 있다.
일 실시예에서, 인코딩부(1110)는 수신한 K개의 원본 패킷을 매트릭스 네트워크 코딩을 이용하여 N개의 인코딩된 패킷으로 변환할 수 있다(N=K). 예를 들어, 인코딩부(1110)는 이더넷 모듈로부터 K개의 원본 패킷을 K개의 랜덤 행렬을 이용하여 N개의 인코딩된 패킷으로 변환하고, N개의 인코딩된 패킷을 무선랜 모듈로 전송할 수 있다. 노드(1100)는 N개의 인코딩된 패킷을 다른 노드에 전송할 수 있다. 일 실시예에서, 인코딩된 패킷을 수신하는 노드가 N개의 인코딩된 패킷 중 K개 이상의 인코딩된 패킷을 수신할 경우, 인코딩된 패킷을 수신하는 노드가 K개의 원본 패킷을 획득할 확률이 높아져 신뢰성이 증가될 수 있다. 또한, 노드(1100)가 전송하는 인코딩된 패킷의 개수가 늘어날수록, 인코딩된 패킷을 송수신하는 노드들의 오버헤드 역시 증가될 수 있다. 이에 따라, 노드(1100)는 원본 패킷의 개수인 K개와 인코딩된 패킷의 개수인 N개의 비율을 조절하여 인코딩된 패킷을 송수신하는 노드들의 신뢰도 및 오버헤드를 조절할 수 있다.
디코딩부(1120)는 다른 노드로부터 수신한 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 인코딩된 패킷을 원본 패킷으로 변환할 수 있다. 일 실시예에서, 디코딩부(1120)는 수신한 인코딩된 패킷으로부터 행렬 계수를 추출하여 생성자 행렬을 생성할 수 있다. 예를 들어, 수신한 인코딩된 패킷의 개수가 K개인 경우, 디코딩부(1120)는 K개의 인코딩된 패킷으로부터 행렬 계수를 추출하여
Figure 112014059023334-pat00082
크기의 생성자 행렬을 생성할 수 있다. 여기서, p는 인코딩부(1110)에서 원본 패킷이 분할된 복수의 서브 패킷 각각의 길이를 의미할 수 있다. 디코딩부(1120)는 생성자 행렬의 역행렬을 추출하고, 인코딩된 패킷과 생성자 행렬의 역행렬을 곱하여 원본 패킷을 추출할 수 있다. 이 때, 디코딩부(1120)는 LU 분해(LU decomposition) 기법을 이용할 수 있다. 이에 따라, 디코딩부(1120)의 디코딩 속도가 향상될 수 있다.
도 12는 일 실시예에 따른 인코딩 기법을 설명하기 위한 도면이다. 도 12 및 도 13에 대한 설명에서, 노드의 동작은 도 11의 인코딩부(1110)의 동작을 나타낼 수 있다.
도 12를 참조하면, K개의 원본 패킷(1210)을 인코딩하기 위하여, 노드는 K개의 원본 패킷(1210) 각각을 q개의 서브 패킷으로 분류할 수 있다. 이 때, K개의 원본 패킷(1210) 각각은 L 심볼 길이일 수 있고, q개의 서브 패킷 각각은 p 심볼 길이일 수 있다. 노드는 p x p 크기를 갖는 K개의 랜덤 행렬 A1 내지 AK를 생성할 수 있고, K개의 원본 패킷(1210)의 인덱스에 따라 랜덤 행렬을 선택하여, 해당 인덱스를 갖는 원본 패킷의 서브 패킷들과 선택된 랜덤 행렬을 곱할 수 있다. 예를 들어, 제1 패킷(1221)의 서브 패킷들은 제1 랜덤 행렬 A1(1231)과 곱할 수 있고, 제2 패킷(1222)의 서브 패킷들은 제2 랜덤 행렬 A2(1232)과 곱할 수 있으며, 제K 패킷(1223)의 서브 패킷들은 제K 랜덤 행렬 AK(1233)과 곱할 수 있다. 노드는 랜덤 행렬과 곱해진 각각의 서브 패킷들을 합하여 하나의 인코딩된 패킷(1240)을 생성할 수 있다. 일 실시예에서, 도 12에서의 심볼 및 연산은 갈로아 필드에서 정의된 것으로 가정한다. 노드는 상술한 과정을 N번 반복하여, N개의 인코딩된 패킷을 생성할 수 있다.
도 13은 일 실시예에 따른 인코딩된 패킷의 구조를 설명하기 위한 도면이다.
도 13을 참조하면, 원본 패킷(1310)은 이더 헤더(1311), IP 필드(1312), UDP 필드(1313) 및 데이터 필드(1314)를 포함할 수 있다. 이더 헤더(1311)는 원본 패킷(1310)의 이더넷 타입을 나타낼 수 있다. 노드는 IP 필드(1312), UDP 필드(1313) 및 데이터 필드(1314)에 대하여 인코딩을 수행할 수 있다.
인코딩된 패킷(1320)는 이더 헤더(1321), MNC 헤더(1322) 및 인코딩된 데이터 필드(1323)를 포함할 수 있다. 인코딩된 데이터 필드(1323)는 원본 패킷(1310)의 IP 필드(1312), UDP 필드(1313) 및 데이터 필드(1314)가 변환된 부분을 의미할 수 있다. 이더 헤더(1321)는 인코딩된 패킷(1320)의 이더넷 타입을 나타낼 수 있다. MNC 헤더(1322)는 K 필드(1331), p 필드(1332), eid 필드(1333), sys 필드(1334) 및 coefficient 필드(1335)를 포함할 수 있다.
K 필드(1331)는 원본 패킷의 개수를 나타내고, p 필드(1332)는 인코딩 수행시 원본 패킷(1310)의 서브 패킷들에 곱하지는 랜덤 행렬의 길이를 나타낼 수 있다. eid 필드(1333)는 인코딩된 패킷의 식별자를 나타낼 수 있다. 예를 들어, 노드는 인코딩을 수행할 때 마다 eid 필드(1333)의 값을 1씩 증가시켜 인코딩된 패킷들을 구별할 수 있다. sys 필드(1334)는 인코딩된 패킷의 타입을 나타낸다. 여기서, 인코딩된 패킷의 타입에 대한 정보는 조직 코드 및 비조직 코드를 포함할 수 있다. 조직 코드는 인코딩된 패킷을 노드의 무선랜 모듈로 전송하기 이전에, 원본 패킷을 노드의 무선랜 모듈에 전송하는 코드를 의미할 수 있고, 비조직 코드는 인코딩된 패킷만을 노드의 무선랜 모듈로 전송하는 코드를 의미할 수 있다. coefficient 필드(1335)는 유한 필드(finite field)의 원소로, 노드는 유한 필드 연산을 이용하여 인코딩 및 디코딩을 수행할 수 있다. coefficient 필드(1335)의 크기는 인코딩에 사용한 유한 필드의 크기, 랜덤 행렬의 길이 및 원본 패킷의 개수에 비례할 수 있다. 일 실시예에서, coefficient 필드(1335)의 크기는 수학식 14로 나타낼 수 있다.
[수학식 14]
Figure 112014059023334-pat00083

여기서,
Figure 112014059023334-pat00084
는 인코딩에 사용한 유한 필드의 크기를 나타내고,
Figure 112014059023334-pat00085
는 랜덤 행렬의 길이를 나타내고,
Figure 112014059023334-pat00086
는 원본 패킷의 개수를 나타낼 수 있다. 일 실시예에서, 노드는 미리 정해진 처리 기법을 이용하여 MNC 헤더(1322)의 크기를 줄일 수 있다.
일 실시예에서, 노드는 원본 패킷을 획득할 경우, 이를 패킷 큐(queue)에 저장할 수 있다. 패킷 큐에 K개의 원본 패킷이 저장된 경우, 노드는 인코딩을 수행할 수 있다. 이 때, 인코딩된 패킷이 조직 코드에 따를 경우, 노드는 K개의 원본 패킷에 MNC 헤더(1322)를 부가하고, N-K개의 인코딩된 패킷을 생성하고, 인코딩된 패킷에 MNC 헤더(1322)를 부가할 수 있다. 또한, 인코딩된 패킷이 비조직 코드에 따를 경우, 노드는 N개의 인코딩된 패킷을 생성하고, 인코딩된 패킷에 MNC 헤더(1322)를 부가할 수 있다. 일 실시예에서, 미리 정해진 시간 동안 노드가 K개의 원본 패킷을 획득하지 못할 경우, 노드는 저장된 패킷만을 인코딩할 수 있다. 이는 인코딩 지연 시간이 길어지는 것을 방지하기 위함일 수 있다.
도 14는 일 실시예에 따른 디코딩 기법을 설명하기 위한 도면이다. 도 14에 대한 설명에서, 노드의 동작은 도 11의 디코딩부(1120)의 동작을 나타낼 수 있다.
도 14를 참조하면, 노드는 패킷 큐 리스트를 이용하여 인코딩된 패킷을 디코딩할 수 있다. 패킷 큐 리스트는 패킷 큐 헤드(1410)와 복수의 패킷 큐(1420, 1430, 1440)를 포함할 수 있다. 패킷 큐 헤드(1410) 및 복수의 패킷 큐(1420, 1430, 1440)는 링크드 리스트(linked list) 형태로 구성될 수 있다. 패킷 큐 헤드(1410)는 패킷 큐 리스트의 초기 포인터를 나타낼 수 있다. 패킷 큐 헤드(1410)는 next 데이터(1411) 및 qlen 데이터(1412)를 포함할 수 있다. next 데이터(1411)는 제1 패킷 큐(1420)의 주소값을 나타내고, qlen 데이터(1412)는 복수의 패킷 큐(1420, 1430, 1440)의 개수를 나타낼 수 있다. 제1 패킷 큐(1420)는 next 데이터(1421), prev 데이터(1422), list 데이터(1423), eid 데이터(1424), etime 데이터(1425) 및 패킷 데이터(1426)를 포함할 수 있다. next 데이터(1421)는 제2 패킷 큐(1430)의 주소값을 나타내고, prev 데이터(1422)는 이전 패킷 큐의 주소값을 나타낼 수 있다. 제1 패킷 큐(1420)의 경우, 이전 패킷 큐가 존재하지 않으므로, prev 데이터(1422)는 null일 수 있다. list 데이터(1423)는 패킷 큐 헤드(1410)의 next 데이터(1411)를 지시하고, 패킷 데이터(1426)는 제1 패킷 큐(1420)에 삽입(enqueue)된 패킷을 포함할 수 있다. 이 때, 인코딩되지 않은 패킷 및 인코딩된 패킷을 포함할 수 있다. etime 데이터(1425)는 제1 패킷 큐(1420)에 마지막으로 패킷이 삽입된 시간을 나타내고, eid 데이터(1424)는 패킷 큐(1420)에 삽입된 패킷의 식별자를 나타낼 수 있다. 이에 따라, 하나의 패킷 큐에 삽입된 패킷들은 모두 동일한 식별자를 가질 수 있다.
일 실시예에서, 다른 노드로부터 패킷을 수신한 경우, 노드는 패킷을 패킷 큐 리스트에 포함된 패킷 큐에 삽입할 수 있다. 이 때, 노드는 패킷이 패킷 큐에 삽입되는 시간과 미리 정해진 임계 시간을 비교하여, 패킷 큐에 삽입되는 시간이 미리 정해진 임계 시간보다 앞선 경우, 패킷 큐 리스트에서 해당 패킷 큐를 삭제할 수 있다. 또한, 노드는 패킷의 식별자가 미리 정해진 시간동안 원본 패킷으로 변환된 인코딩된 패킷의 식별자와 동일할 경우, 패킷을 패킷 큐에 삽입하지 않을 수 있다. 패킷의 식별자가 미리 정해진 시간동안 원본 패킷으로 변환된 인코딩된 패킷의 식별자와 동일하지 않은 경우, 패킷을 패킷 큐에 삽입하고, 패킷 큐의 etime 데이터를 업데이트할 수 있다.
일 실시예에서, 패킷 큐에 K개의 패킷이 삽입된 경우, 노드는 패킷 큐에 삽입된 패킷이 인코딩되지 않은 패킷인지 또는 인코딩된 패킷인지 여부를 판단할 수 있다. 패킷 큐에 삽입된 모든 패킷이 인코딩되지 않은 패킷인 경우, 노드는 별도의 디코딩을 수행하지 않고, 인코딩되지 않은 패킷중 원본 패킷에 삽입된 필드만을 제거하여 원본 패킷을 추출할 수 있다. 패킷 큐에 삽입된 패킷들 중 인코딩된 패킷이 하나라도 존재하는 경우, 노드는 생성자 행렬을 이용하여 디코딩을 수행할 수 있다. 이 경우, 노드는 생성자 행렬을 생성하고, 생성자 행렬의 역행렬을 추출하고, 인코딩된 패킷과 생성자 행렬의 역행렬을 곱하여 원본 패킷을 추출할 수 있다. 일 실시예에서, 특정 인코딩된 패킷에 대응하는 성분이 선형 종속적일(linearly independent) 경우, 노드는 생성자 행렬의 역행렬을 추출할 수 없을 수 있다. 이 경우, 노드는 패킷 큐에서 선형 종속적인 성분과 대응하는 인코딩된 패킷을 삭제할 수 있다.
<멀티캐스트 네트워크에서의 노드의 동작 방법>
도 15는 일 실시예에 따른 소스 노드의 동작 방법을 나타낸 동작 흐름도이다.
도 15를 참조하면, 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다(1510).
또한, 소스 노드는 토폴로지 정보를 기초로 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택할 수 있다(1520).
도 15에 도시된 일 실시예에 따른 소스 노드의 동작 방법에는 도 1 내지 도 14를 통해 설명된 내용이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
도 16은 일 실시예에 따른 노드의 동작 방법을 나타낸 동작 흐름도이다.
도 16을 참조하면, 노드는 랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환할 수 있다(1610).
또한, 노드는 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 인코딩된 패킷을 상기 원본 패킷으로 변환할 수 있다(1620).
도 16에 도시된 일 실시예에 따른 노드의 동작 방법에는 도 1 내지 도 14를 통해 설명된 내용이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
도 17은 다른 일 실시예에 따른 소스 노드의 동작 방법을 나타낸 동작 흐름도이다.
도 17을 참조하면, 소스 노드는 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 멀티캐스트 네트워크의 토폴로지 정보를 추출할 수 있다(1710).
또한, 소스 노드는 토폴로지 정보를 기초로 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택할 수 있다(1720).
또한, 소스 노드는 랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환하여 릴레이 노드로 인코딩된 패킷을 전송하거나, 릴레이 노드로부터 수신한 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 인코딩된 패킷을 원본 패킷으로 변환할 수 있다(1730).
도 17에 도시된 일 실시예에 따른 소스 노드의 동작 방법에는 도 1 내지 도 14를 통해 설명된 내용이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (39)

  1. 멀티캐스트 네트워크를 구성하는 복수의 노드 간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 토폴로지 정보 추출부; 및
    상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 릴레이 노드 선택부
    를 포함하고,
    상기 릴레이 노드 선택부는
    상기 토폴로지 정보를 이용하여 상기 복수의 노드 중 상기 소스 노드를 제외한 나머지 노드들 각각의 예상 패킷 수신량- 상기 예상 패킷 수신량은 상기 나머지 노드들 각각이 목표 패킷 수신량 이상의 패킷을 수신할 확률이 미리 정해진 임계 확률 이상이 되도록 하는 상기 나머지 노드들 각각의 패킷 수신량을 의미함 - 을 추정하고,
    상기 나머지 노드들 각각에 대하여, 상기 나머지 노드들의 예상 패킷 수신량을 기초로, 상기 나머지 노드들 각각이 다른 노드로부터 패킷을 수신한 후에 추가로 수신해야 하는 패킷의 양을 나타내는 잠재적 요구 자유도를 추정하고,
    상기 나머지 노드들 각각의 예상 패킷 수신량 및 상기 잠재적 요구 자유도에 기초하여 상기 릴레이 노드를 선택하는 소스 노드.
  2. 제1항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 나머지 노드들이 수신한 패킷에 대한 정보를 기초로 상기 토폴로지 정보를 추출하는,
    소스 노드.
  3. 제2항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 나머지 노드들 중 제1 노드로 트레이닝 패킷들을 전송하고,
    상기 제1 노드가 수신한 트레이닝 패킷(training packet)들에 대한 정보를 포함하는 트레이닝 리포트 패킷(training report packet)을 상기 제1 노드로부터 피드백받는,
    소스 노드.
  4. 제3항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 트레이닝 리포트 패킷을 이용하여 상기 제1 노드의 패킷 수신율을 연산하고,
    상기 패킷 수신율이 미리 정해진 임계 레벨 이상인 경우, 상기 제1 노드를 릴레이 후보 노드로 선택하는,
    소스 노드.
  5. 제3항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 나머지 노드들 중에서 선택된 릴레이 후보 노드가 상기 나머지 노드들 중 제2 노드에 상기 트레이닝 패킷을 전송하게 하는 트레이닝 폴링 패킷(training polling packet)을 상기 릴레이 후보 노드에 전송하는,
    소스 노드.
  6. 제5항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 릴레이 후보 노드가 복수일 경우, 미리 정해진 순서에 따라 상기 복수의 릴레이 후보 노드에 상기 트레이닝 폴링 패킷을 전송하는,
    소스 노드.
  7. 제5항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 제2 노드가 수신한 트레이닝 패킷들에 대한 정보를 상기 릴레이 후보 노드가 획득한 경우,
    상기 릴레이 후보 노드로부터, 상기 제2 노드에 대한 정보 및 상기 제2 노드가 수신한 트레이닝 패킷들에 대한 정보를 포함하는 네이버(neighbor) 리포트 패킷을 수신하는,
    소스 노드.
  8. 제5항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 나머지 노드들 중 일부 노드들이 수신한 트레이닝 패킷에 대한 정보를 상기 릴레이 후보 노드가 획득한 경우, 상기 릴레이 후보 노드로부터, 상기 일부 노드들에 상기 트레이닝 패킷들을 전송한 노드들에 대한 정보, 상기 일부 노드들에 대한 정보 및 상기 일부 노드들이 수신한 트레이닝 패킷들에 대한 정보를 포함하는 블록 트레이닝 리포트 패킷을 수신하는,
    소스 노드.
  9. 제2항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 나머지 노드들 중 일부의 노드들을 트레이닝 노드로 선정하고, 상기 선정된 트레이닝 노드들이 수신한 패킷에 대한 정보를 기초로 상기 토폴로지 정보를 추출하는,
    소스 노드.
  10. 제2항에 있어서,
    상기 토폴로지 정보 추출부는,
    상기 나머지 노드들이 수집한 상기 복수의 노드 간의 상기 채널 상태에 대한 통계 정보를 수신하고, 상기 통계 정보를 기초로 상기 토폴로지 정보를 추출하는,
    소스 노드.
  11. 제2항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 토폴로지 정보를 기초로, 상기 나머지 노드들을 1-홉 노드 그룹 및 2-홉 노드 그룹으로 분류하고,
    복수의 릴레이 후보 노드의 패킷 전송이 상기 나머지 노드들 중 적어도 일부에 미치는 영향을 고려하여 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택하는,
    소스 노드.
  12. 제11항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 잠재적 요구 자유도가 낮은 노드를 상기 1-홉 노드 그룹으로, 상기 잠재적 요구 자유도가 높은 노드를 상기 2-홉 노드 그룹으로 결정하는,
    소스 노드.
  13. 제12항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각에 대하여, 상기 복수의 릴레이 후보 노드 각각에 대한 상기 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각의 상기 잠재적 요구 자유도를 기초로, 상기 2-홉 노드 그룹에 포함된 적어도 하나의 노드 각각이 상기 복수의 릴레이 후보 노드 각각에 대하여 전송을 요구하는 패킷의 양을 나타내는 요구 전송량들을 연산하고, 상기 적어도 하나의 노드 각각의 상기 요구 전송량들을 기초로 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택하는,
    소스 노드.
  14. 제13항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 적어도 하나의 노드 각각에 대하여, 상기 적어도 하나의 노드 각각의 상기 요구 전송량들 중 양이 가장 적은 요구 전송량을 나타내는 최소 요구 전송량을 추정하고,
    상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 적어도 하나의 노드 중 해당 릴레이 후보 노드에 상기 최소 요구 전송량으로 패킷 전송을 요청하는 노드로 구성된 최적 노드 그룹을 추출하며,
    상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 최적 노드 그룹에 포함된 노드의 상기 최소 요구 전송량 중 양이 가장 많은 최소 요구 전송량을 나타내는 최대 요구 전송량을 추정하고,
    상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 복수의 릴레이 후보 노드 각각의 상기 최대 요구 전송량에 따른 상기 최적 노드 그룹에 포함된 노드로의 패킷 전송이 상기 나머지 노드들 중 적어도 일부에 미치는 영향을 나타내는 제1 유틸리티를 추정하는,
    소스 노드.
  15. 제14항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 복수의 릴레이 후보 노드 중 상기 제1 유틸리티의 크기가 가장 큰 릴레이 후보 노드를 상기 릴레이 노드로 결정하는,
    소스 노드.
  16. 제14항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 복수의 릴레이 후보 노드 중 상기 최대 요구 전송량의 크기가 가장 큰 릴레이 후보 노드를 상기 릴레이 노드로 결정하는,
    소스 노드.
  17. 제14항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 선택된 릴레이 노드의 총 패킷 전송량이 미리 정해진 최대 패킷 전송량보다 작은 경우,
    상기 잠재적 요구 자유도, 상기 요구 전송량, 상기 최소 요구 전송량, 상기 최대 요구 전송량 및 상기 제1 유틸리티를, 상기 선택된 릴레이 노드를 기준으로 업데이트하여 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택하는,
    소스 노드.
  18. 제14항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 2-홉 노드 그룹에 포함된 노드 각각에 대하여, 상기 복수의 릴레이 후보 노드 각각의 상기 2-홉 노드 그룹에 포함된 노드로의 패킷 전송에 따른 상기 2-홉 노드 그룹에 포함된 노드의 만족도를 나타내는 제2 유틸리티를 추정하고,
    상기 복수의 릴레이 후보 노드 각각에 대하여, 상기 2-홉 노드 그룹에 포함된 노드 각각의 제2 유틸리티를 기초로, 상기 복수의 릴레이 후보 노드 각각의 상기 패킷 전송에 따른 상기 2-홉 노드 그룹의 만족도를 나타내는 네트워크 유틸리티를 추정하고,
    상기 복수의 릴레이 후보 노드 각각의 네트워크 유틸리티를 기초로 상기 복수의 릴레이 후보 노드 중 상기 릴레이 노드를 선택하는,
    소스 노드.
  19. 제18항에 있어서,
    상기 릴레이 노드 선택부는,
    상기 릴레이 후보 노드에서 전송하는 패킷의 양에 따른 상기 네트워크 유틸리티의 기울기가 변경될 때 마다, 상기 복수의 릴레이 후보 노드 각각의 제2 유틸리티를 업데이트하여, 상기 복수의 릴레이 후보 노드 중 상기 릴레이 후보 노드에서 전송하는 패킷의 양에 따른 상기 제2 유틸리티의 기울기가 가장 큰 릴레이 후보 노드를 상기 릴레이 노드로 선택하는,
    소스 노드.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 토폴로지 정보 추출부;
    상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 릴레이 노드 선택부; 및
    랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환하여 상기 릴레이 노드로 상기 인코딩된 패킷을 전송하거나, 상기 릴레이 노드로부터 수신한 상기 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 상기 인코딩된 패킷을 상기 원본 패킷으로 변환하는 변환부
    를 포함하고,
    상기 릴레이 노드 선택부는
    상기 토폴로지 정보를 이용하여 상기 복수의 노드 중 상기 소스 노드를 제외한 나머지 노드들 각각의 예상 패킷 수신량- 상기 예상 패킷 수신량은 상기 나머지 노드들 각각이 목표 패킷 수신량 이상의 패킷을 수신할 확률이 미리 정해진 임계 확률 이상이 되도록 하는 상기 나머지 노드들 각각의 패킷 수신량을 의미함 - 을 추정하고,
    상기 나머지 노드들 각각에 대하여, 상기 나머지 노드들의 예상 패킷 수신량을 기초로, 상기 나머지 노드들 각각이 다른 노드로부터 패킷을 수신한 후에 추가로 수신해야 하는 패킷의 양을 나타내는 잠재적 요구 자유도를 추정하고,
    상기 나머지 노드들 각각의 예상 패킷 수신량 및 상기 잠재적 요구 자유도에 기초하여 상기 릴레이 노드를 선택하는 소스 노드.
  36. 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 단계; 및
    상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 단계
    를 포함하고,
    상기 릴레이 노드를 선택하는 단계는
    상기 토폴로지 정보를 이용하여 상기 복수의 노드 중 상기 소스 노드를 제외한 나머지 노드들 각각의 예상 패킷 수신량- 상기 예상 패킷 수신량은 상기 나머지 노드들 각각이 목표 패킷 수신량 이상의 패킷을 수신할 확률이 미리 정해진 임계 확률 이상이 되도록 하는 상기 나머지 노드들 각각의 패킷 수신량을 의미함 - 을 추정하는 단계;
    상기 나머지 노드들 각각에 대하여, 상기 나머지 노드들의 예상 패킷 수신량을 기초로, 상기 나머지 노드들 각각이 다른 노드로부터 패킷을 수신한 후에 추가로 수신해야 하는 패킷의 양을 나타내는 잠재적 요구 자유도를 추정하는 단계; 및
    상기 나머지 노드들 각각의 예상 패킷 수신량 및 상기 잠재적 요구 자유도에 기초하여 상기 릴레이 노드를 선택하는 단계
    를 포함하는 소스 노드의 동작 방법.
  37. 삭제
  38. 멀티캐스트 네트워크를 구성하는 복수의 노드간의 채널 상태에 대한 정보를 획득하여 상기 멀티캐스트 네트워크의 토폴로지 정보를 추출하는 단계;
    상기 토폴로지 정보를 기초로 상기 복수의 노드 중 소스 노드에서 전송된 패킷을 중계하는 릴레이 노드를 선택하는 단계; 및
    랜덤 행렬을 이용하여 원본 패킷을 인코딩된 패킷으로 변환하여 상기 릴레이 노드로 상기 인코딩된 패킷을 전송하거나, 상기 릴레이 노드로부터 수신한 상기 인코딩된 패킷을 기초로 생성된 생성자 행렬을 이용하여 상기 인코딩된 패킷을 상기 원본 패킷으로 변환하는 단계
    를 포함하고,
    상기 릴레이 노드를 선택하는 단계는
    상기 토폴로지 정보를 이용하여 상기 복수의 노드 중 상기 소스 노드를 제외한 나머지 노드들 각각의 예상 패킷 수신량- 상기 예상 패킷 수신량은 상기 나머지 노드들 각각이 목표 패킷 수신량 이상의 패킷을 수신할 확률이 미리 정해진 임계 확률 이상이 되도록 하는 상기 나머지 노드들 각각의 패킷 수신량을 의미함 - 을 추정하는 단계;
    상기 나머지 노드들 각각에 대하여, 상기 나머지 노드들의 예상 패킷 수신량을 기초로, 상기 나머지 노드들 각각이 다른 노드로부터 패킷을 수신한 후에 추가로 수신해야 하는 패킷의 양을 나타내는 잠재적 요구 자유도를 추정하는 단계; 및
    상기 나머지 노드들 각각의 예상 패킷 수신량 및 상기 잠재적 요구 자유도에 기초하여 상기 릴레이 노드를 선택하는 단계
    를 포함하는 소스 노드의 동작 방법.
  39. 제36항 및 제38항 중 어느 하나의 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020140077343A 2014-06-24 2014-06-24 멀티캐스트 네트워크에서의 릴레이 방법 및 장치 KR102233371B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020140077343A KR102233371B1 (ko) 2014-06-24 2014-06-24 멀티캐스트 네트워크에서의 릴레이 방법 및 장치
US14/667,989 US10129139B2 (en) 2014-06-24 2015-03-25 Method and apparatus for relaying in multicast network
JP2015112248A JP6578137B2 (ja) 2014-06-24 2015-06-02 マルチキャストネットワークにおけるソースノード及びその動作方法
EP15172121.4A EP2961099A3 (en) 2014-06-24 2015-06-15 Method and apparatus for relaying in multicast network
CN201510354299.5A CN105306370B (zh) 2014-06-24 2015-06-24 用于在多播网络中进行转发的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140077343A KR102233371B1 (ko) 2014-06-24 2014-06-24 멀티캐스트 네트워크에서의 릴레이 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160000226A KR20160000226A (ko) 2016-01-04
KR102233371B1 true KR102233371B1 (ko) 2021-03-29

Family

ID=53496411

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140077343A KR102233371B1 (ko) 2014-06-24 2014-06-24 멀티캐스트 네트워크에서의 릴레이 방법 및 장치

Country Status (5)

Country Link
US (1) US10129139B2 (ko)
EP (1) EP2961099A3 (ko)
JP (1) JP6578137B2 (ko)
KR (1) KR102233371B1 (ko)
CN (1) CN105306370B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523000B2 (en) * 2015-03-24 2019-12-31 Eaton Intelligent Power Limited Arc flash mitigation switch for quenching external arc faults in low voltage switchgear
JP6142124B1 (ja) * 2016-11-30 2017-06-07 サイレックス・テクノロジー株式会社 無線通信装置、無線通信方法およびプログラム
KR102609359B1 (ko) * 2017-01-31 2023-12-05 삼성전자주식회사 통신장치, 통신장치 제어방법 및 통신장치를 포함하는 공기조화기
GB201719654D0 (en) 2017-11-27 2018-01-10 Nchain Holdings Ltd Computer-implemented system and method
KR102258814B1 (ko) * 2018-10-04 2021-07-14 주식회사 엘지에너지솔루션 Bms 간 통신 시스템 및 방법
JP6632778B1 (ja) * 2018-11-29 2020-01-22 三菱電機株式会社 無線通信装置、無線通信システムおよび無線通信プログラム
CN112769696B (zh) * 2019-11-06 2023-09-26 中兴通讯股份有限公司 路由选择方法、网络控制器、系统和存储介质
CN112565651B (zh) * 2020-11-30 2022-10-21 深圳数字电视国家工程实验室股份有限公司 数据传输方法、电子设备及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070086366A1 (en) * 2005-10-19 2007-04-19 Microsoft Corporation Application-level routing protocol for multiparty audio-video conferencing

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6788670B1 (en) * 2000-10-27 2004-09-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for forwarding in multi-hop networks
WO2003056763A1 (en) * 2001-12-21 2003-07-10 Chip Engines Reconfigurable data packet header processor
JP4761365B2 (ja) * 2005-12-28 2011-08-31 Kddi株式会社 通信スケジューリング方法
US8514861B2 (en) * 2006-01-03 2013-08-20 Meshnetworks, Inc. Apparatus and method for multicasting data in a communication network
JP2007266697A (ja) 2006-03-27 2007-10-11 Toyota Infotechnology Center Co Ltd 無線通信方法、無線通信装置、および無線通信プログラム
US7873338B2 (en) * 2006-11-06 2011-01-18 Motorola Mobility, Inc. Method and apparatus for determining an appropriate link path in a multi-hop communication system
US8179848B2 (en) 2007-12-03 2012-05-15 Polytechnic Institute Of New York University Video multicast using relay devices defined by a channel quality parameter hierarchy
CN101222397B (zh) * 2008-01-25 2011-03-02 大连海事大学 无线传感器网络信号同步采集及准实时传输系统
JP5125572B2 (ja) * 2008-02-12 2013-01-23 日本電気株式会社 無線ネットワークのトラヒック性能評価システム及びその方法並びにプログラム
CN101800670A (zh) * 2009-02-05 2010-08-11 李冰 一种主动寻找客户端以实现规模扩张的网站建立方法
CN102064992B (zh) 2009-11-13 2012-11-28 中兴通讯股份有限公司 一种中继节点、中继节点的分布式网络及其组网方法
KR101751497B1 (ko) * 2010-06-11 2017-06-27 삼성전자주식회사 행렬 네트워크 코딩을 사용하는 장치 및 방법
US8693501B2 (en) * 2010-11-23 2014-04-08 The Chinese University Of Hong Kong Subset coding for communication systems
CN102075352B (zh) * 2010-12-17 2013-10-16 北京邮电大学 一种网络用户行为预测的方法和装置
US8839069B2 (en) * 2011-04-08 2014-09-16 Micron Technology, Inc. Encoding and decoding techniques using low-density parity check codes
JP5943431B2 (ja) 2011-04-13 2016-07-05 日本電気株式会社 ネットワーク、データ転送ノード、通信方法およびプログラム
JP5651092B2 (ja) * 2011-09-28 2015-01-07 京セラ株式会社 基地局及び通信制御方法
US9648087B2 (en) * 2012-10-08 2017-05-09 International Business Machines Corporation Allocating distributed storage and task execution resources
US9673841B2 (en) * 2013-03-15 2017-06-06 Quanta Computer, Inc. Error-correcting code
US9137642B2 (en) * 2013-03-20 2015-09-15 Google Inc. Multi-cast optimized medium access method for wireless network
KR102094718B1 (ko) 2013-09-26 2020-05-27 삼성전자주식회사 무선 네트워크에서 학습에 기반한 중계 노드 선택 방법 및 중계 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070086366A1 (en) * 2005-10-19 2007-04-19 Microsoft Corporation Application-level routing protocol for multiparty audio-video conferencing

Also Published As

Publication number Publication date
JP6578137B2 (ja) 2019-09-18
JP2016010153A (ja) 2016-01-18
CN105306370B (zh) 2020-05-12
EP2961099A3 (en) 2016-03-09
EP2961099A2 (en) 2015-12-30
US20150372897A1 (en) 2015-12-24
CN105306370A (zh) 2016-02-03
US10129139B2 (en) 2018-11-13
KR20160000226A (ko) 2016-01-04

Similar Documents

Publication Publication Date Title
KR102233371B1 (ko) 멀티캐스트 네트워크에서의 릴레이 방법 및 장치
US10588075B2 (en) System and method for dynamically configurable air interfaces
CN107040334B (zh) 用于设备辅助通信的方法、装置和计算机可读介质
US20190273574A1 (en) Receiver, transmitter, communication network, data signal and method improving a retransmission process in a communication network
KR20150045346A (ko) 이동 통신 시스템에서 멀티미디어 데이터 송수신 방법 및 장치
JP6468193B2 (ja) 通信装置及び通信装置におけるネットワーク利用可能帯域推定方法、並びにネットワーク利用可能帯域推定プログラム
US20160316022A1 (en) Communication device, communication processing method, and storage medium
Fidler et al. Capacity–delay–error boundaries: A composable model of sources and systems
CN107615810B (zh) 用于在线网络代码的包头压缩系统和方法
WO2019054112A1 (ja) 通信装置、無線通信システムおよびデータフロー制御方法
Franco et al. Analysis of Age of Information threshold violations
US9668238B1 (en) Multicast file delivery
Pu et al. QoS-driven network coded wireless multicast
WO2010085212A1 (en) Method and system for linear network coding in broadcast systems
Bouras et al. Al-fec application on ngmn-edge computing integrated systems
Jafarizadeh et al. Adapting distributed LT codes to Y-networks: an abstraction of collection tree in sensor networks
KR101988849B1 (ko) 네트워크장치 및 네트워크장치의 메시지 무결성 체크 방법
Kim et al. A collision avoidance scheme for the synchronized broadcast packets in a multi-AP Wi-Fi broadcasting system
KR102288700B1 (ko) 사용자 장치의 메모리 저장 정보를 이용하는 무선 통신 방법 및 장치
Kim et al. Delay model of multicast protocols co‐existing with legacy unicast in IEEE 802.11 wireless local area network
KR20140061109A (ko) 파일 동기화 방법 및 장치
WO2024036211A1 (en) Adaptive harq selection in high density environments
WO2024011172A1 (en) A method for application control and adaptive quality of service (qos) handling
Torabkhani et al. Throughput and latency of finite-buffer wireless erasure networks with backpressure routing
KR20210055585A (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