KR20100014274A - Tcp ack들을 관리하여 lan에서의 쓰루풋 향상 - Google Patents
Tcp ack들을 관리하여 lan에서의 쓰루풋 향상 Download PDFInfo
- Publication number
- KR20100014274A KR20100014274A KR1020097012868A KR20097012868A KR20100014274A KR 20100014274 A KR20100014274 A KR 20100014274A KR 1020097012868 A KR1020097012868 A KR 1020097012868A KR 20097012868 A KR20097012868 A KR 20097012868A KR 20100014274 A KR20100014274 A KR 20100014274A
- Authority
- KR
- South Korea
- Prior art keywords
- ack
- tcp
- stb
- segment
- mac
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/283—Processing of data at an internetworking point of a home automation network
- H04L12/2834—Switching of information between an external network and a home network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2838—Distribution of signals within a home automation network, e.g. involving splitting/multiplexing signals to/from different paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0097—Relays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/06—Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Small-Scale Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
데이터 패킷 및 ACK를 접속하여 식별하고, 어떤 ACK가 제거될 수 있는지 결정하고, 제거될 수 있는 ACK를 단일 ACK로 대체하고 단일 ACK를 송신하는 것을 비롯한, ACK를 관리하는 방법 및 장치가 설명된다. 데이터 세그먼트를 수신하고, 접속을 추적하고, 소정수의 채널 타임 할당에 대한 충분한 데이터 세그먼트가 있는지를 결정하고 소정수의 채널 타임 할당에 대한 충분한 데이터 세그먼트가 있다면 선택된 접속에 ACK하는 것을 비롯한, ACK를 관리하는 대체 방법 및 장치가 설명된다. 상기 두 개의 방법의 조합인 대체 방법도 설명된다.
멀티미디어, 업스트림, 다운스트림, CTA, MAC, 비콘, STB
Description
본 발명은 무선 비디오 분배 시스템에서 셋톱 박스(Set Top Box: STB)와 같은 마스터 장치로부터 STB와 같은 원격 장치로 압축 멀티미디어/비디오를 분배하는 것에 관한 것이다.
케이블 비디오 서비스에 있어서, 특정 비디오 프로그램은 전용 주파수 대역의 케이블 상에서 통상적으로 방송된다. 집에서의 TV는 그 주파수에 동조시킴으로써 임의의 특정 프로그램에 동조될 수 있다. 최신 TV 시리즈의 경우 (예를 들어, 위성 TV 분배, 인터넷 TV 분배), 프로그램은 마스터 STB에 "동조"된 후 홈 네트워크(home network)를 통하여 원격 STB로 분배된다. 많은 경우, 홈 네트워크(또는 홈 분배 시스템)를 설치할 필요가 있다. 비록 유선[동축 케이블(coax), 트위스티드 페어 케이블(twisted-pair) 등]이 신뢰성이 있긴 하지만 이것들은 설치 비용이 비싸고 집주인은 설치를 위해 설치 기사가 벽에 구멍을 뚫는 것을 좋아하지 않는다. 이러한 정신으로, 산업은 비디오 프로그램 재분배 시스템 문제에 대한 무선적인 해결책에 관심을 가져 왔다.
현재 가정내 디지털 비디오 프로그램 분배 시스템은 대부분 분배 매체로서 이더넷(Ethernet)을 사용하고 있다. 대부분의 이더넷 설치는 100Mbps의 링크 레이트(link rate)를 사용하고, 어드레싱된 장치를 포함하는 브랜치(branch)로만 트래픽을 선택적으로 전송하는 스위치를 사용하기 때문에, 제어된 트래픽 레이트로 비디오 재분배 시스템에 사용되는 경우에서는 QoS 문제가 거의 없다. 일부 유형의 QoS 보호 없이 동일 네트워크 상에서 범용 IP 데이터 트래픽이 전송되는 경우에는 이더넷에 문제가 있을 수 있다. 현재, 이더넷에 이용 가능한 한 가지 유형의 MAC(media access control) 레벨 QoS가 있다. 이는 우선 순위 기초 방식으로서, VLAN (vertical local area network) 태그 내 사용자 우선 순위 필드를 사용한다. 파라미터화된(parameterized) QoS(대역폭 요청, 대역폭 보증, 허용 제어 등)의 부가는 현재 IEEE 802 네트워크 분과의 IEEE 802.1 부위원회 내의 작업 그룹의 주제 중 하나이다. 하지만, 이더넷은 운용에 필요한 유선이 있어야 한다는 단점이 있고, 새로이 유선을 설치하지 않는 기술이 바람직하다.
필요한 것은 MAC 레벨 분기를 통하여 이더넷 분배를 대체할 수 있는 무선 분배 시스템이다. 여러 홈 네트워크는 IP 프로토콜을 이용하여 비디오를 분배하지만, 많은 가능성이 있다. 일부의 경우, 비디오는 실시간 전송 프로토콜(real time transport protocol, RTP)에 의하여 특정되는 UDP를 이용하여 전송되는 반면, 다른 경우[예컨대, DLNA(Digital Living Network Alliance)], 비디오는 TCP를 통하여 분배된다. UDP는 단방향을 통신을 필요로 하는 반면 TCP는 양방향 통신을 필요로 한다. 추가적인 가능성이 있다. 이미 이더넷 인터페이스를 갖추고 있는 경우 마스터 및 원격 장치/STB에 대한 더 이상의 수정이 필요하지 않는 홈 분배 시스템을 갖 는 것이 바람직하다(즉, 대역폭 지정도 없고, 무선 브리지 장치에 대한 언급도 요하지 않는 등). 매체는 무선이어서 대역이 제한되는 공통의 매체이므로 MAC층은 매우 효율적인 것이 또한 바람직하다. 이로 인해, 본 발명은 TDMA MAC 방식을 사용한다. TDMA MAC 방식에 있어서, 타임 할당은 각 클라이언트/원격 장치(STB)에 할당되어 전용 대역폭을 갖게 한다. 본 명세서에서 사용되는 바와 같이, "/"는 동일 컴포넌트에 대한 대체 이름을 나타낸다. 비디오의 정확한 비트 레이트와 다른 특성은 심지어 마스터 STB에게도 원래 알려져 있지 않을 수 있다. 비디오의 정확한 비트 레이트가 원래 알려져 있을지라도 마스터 STB가 무선 장치(원격 및/또는 마스터 브리징 노드)와 특정하거나 새로운 통신을 하지 않도록 하는 것이 바람직하다. 멀티 미디어 트래픽은 대부분 마스터 장치로부터 몇몇 원격 장치로 다운스트림되기 때문에, 오버헤드를 제거할 기회가 있다. TCP를 사용하여 멀티 미디어 스트림을 분배할 때, 대부분의 업스트림 트래픽은 TCP ACK들이다. 이들 TCP ACK들 중 몇몇을 제거하면 전송되는 오버헤드의 양이 감소되어, 멀티 미디어 스트림 정보를 실질적으로 전달하는데 보다 많은 BW을 지정할 수 있다.
원격 STB/장치로부터 마스터 장치/STB로의 리턴/업스트림 경로에 할당된 타임은 비디오 분배를 위한 다운스트림 경로에서는 이용할 수 없는 타임이다. 비디오 분배는 목표 시스템의 주 기능이기 때문에, TCP ACK에 의한 오버헤드를 줄이고 TCP 슬라이딩 윈도우의 부정적 영향을 줄이는 것이 바람직하다.
현재 IEEEE에서 표준화를 진행 중인 IEEE 802.11N은 비디오 분배를 위한 수단으로 권장되고 있다. IEEE 802.11N의 주제인 기술과 많은 관계가 있다. 우선, 아직은 CSMA(IEEE 802.11) 기반이다. 이러한 MAC 계층 유형은 내재적으로 비효율적이며 QoS 보증을 제공하지 못한다. 많은 MAC 레벨 QoS 강화가 IEEE 802.11N에 부가되었지만, CSMA 기반 MAC은 TDMA MAC만큼 효율적인 것 같지는 않다. QoS 강화는 IEEE 802.11E로부터의 우선 순위 기반 QoS와 일부 형태의 폴링(polling) 및 MAC 프로토콜 데이터 유닛(MPDU) 및 MAC 서비스 데이터 유닛(MSDU) 수집의 부가를 포함한다. 이러한 강화는 IEEE 802.11 네트워크의 자원을 관리할 때에는 매우 유용하지만, 무선 홈 비디오 분배 시스템에 필요하거나 바람직한 QoS 보증을 하지는 못한다. 폴링은 본 발명이 작용할 수 있는 TDMA형 서비스를 창출하는데 사용될 수 있지만, 폴링 자체는 MAC 효율을 감소시킨다. MAC 효율은 집에서의 더 먼 영역에 이용 가능한 링크 레이트가 제한되어 있으므로 더욱 더 중요하다. 현재 WLAN(wirelss local area network)의 대부분은 공통 전송 매체(예를 들어, 동일 전송 주파수에서의 무선 스펙트럼)를 이용한다. 이 때문에, MAC은 이런 매체를 공유할 메커니즘을 필요로 한다. 송신 기회가 CSMA를 통해 주어지거나 폴링을 통해 할당되는 경우라면 본 발명이 적용될 수 있다는 것을 유의하자.
일부 서비스 제공자는 동축 케이블, 전화선 및/또는 전력선에 기초한 새로운 유선이 필요하지 않은 기술을 바라보고 있다. 여러 상이한 가능성이 있으며, 그 중의 대부분은 일부 형태의 우선 순위 또는 파라미터화된 QoS의 형태를 일부 갖는다. 이러한 해결책에서의 내재적인 문제는, 집에 동축 케이블이나 전화선이 이미 있을지라도, 이 선들은 정확한 장소까지 배치되어 있지 않거나 기술이 다루기 어려운 토폴로지(topology)일 수 있다. 이러한 기술의 대부분은 또한 다른 집들과 대 역폭을 공유하고 (예를 들어, 네 집에 대한 전력선이 하나의 전력 변환기 상에 있음) 현재 신뢰성이 부족하다. 파라미터화된 서비스에 있어서, STB는 각 링크 마다 확보할 대역폭이 얼마인지 알아야 한다. 비디오 홈 분배 시스템에 있어서, 트래픽이 제어되지 않아 집중될 수 있으며, 적어도 일부분은 모르게 된다.
본 발명은 전술한 문제를 해결하는 홈 멀티미디어 스트림 분배 시스템을 포함한다.
현재 대부분의 무선 LAN은 공통의 전송 매체(즉, 동일 전송 주파수에서 무선 주파수)를 활용한다. 이로 인해, 미디어 액세스 제어(media access control, MAC) 계층은 그 매체를 공유할 메커니즘을 필요로 한다. 대부분의 메커니즘은 캐리어 센스 멀티플 액세스(carrier sense multiple access, CSMA) MAC 계층(예컨대, IEEE 802.11)에 기초한다. 이러한 유형의 MAC 계층은 내재적으로 비효율적이며 서비스 품질(quality of service, QoS) 보증을 하지 못한다. MAC 효율은 집에서의 더 먼 영역에 이용 가능한 제한된 링크 레이트 때문에 무선 네트워크에서 훨씬 더 중요하다. 매우 높은 효율과 QoS 보증을 달성하기 위하여, 본 발명은 시분할 다중 액세스(time division multiple access, TDMA) IEEE 802.15.3b에 기초하는 MAC을 이용한다. 기본적인 TDMA 기능을 위해 표준 MAC을 사용하지만 TCP ACK들에 기인한 네트워크 부하를 감소시키는 능력이 부가된다.
본 발명이 의도하는 통상의 시스템은 인터넷 프로토콜(IP) 기반 비디오를 세 개의 클라이언트/원격 장치까지 분배하는 마스터 장치를 포함한다. 이 장치는 이더넷 기반 STB에서 실제 비디오 동조 및 렌더링(tuning and rendering)이 행해지는 이더넷/무선 MAC 레벨 브리지 장치이다. 본 발명이 STB의 관점에서 설명하지만, 동일 또는 유사한 기능을 갖는 임의의 장치는 그 장치의 명칭에 관계 없이 본 발명이 고려하는 것이다. 일반적으로, MAC 브리지는 동일하거나 상이한 LAN 세그먼트(segment)를 연결시킨다. 브리지로 상호 연결되는 서로 다른 LAN 기술의 모음은 브리지 로컬 영역 네트워크로 알려져 있다. 순수 MAC 브리지는 QoS에서 다를 가능성이 있는 것을 제외하고는 MAC 서비스 범위 내에서 동작하고 MAC 브리지 서비스 범위 외에서 사용되는 프로토콜에 투명하다.
본 발명의 시스템 및 방법은 세 개의 원격 STB로 통신이 제한되는(즉, 마스터 STB로의 모든 통신) 예시적인 홈 비디오 분배 시스템의 관점에서 설명한다. 여기서 설명하는 기술은 더 일반적인 홈 네트워크로 용이하게 확장될 수 있다. 집에서 세 개의 고품위 비디오 스트림을 세 개의 원격 위치로 분배할 수 있는 무선 홈 분배 시스템은 현재까지는 없다는 것을 유의하여야 한다. 본 발명을 비디오 스트리밍(video streaming)을 포함하는 예시적인 실시예의 관점에서 설명하지만, "비디오"라는 용어는 디지털 오디오와 같은 다른 스트리밍 미디어를 포함하는 "멀티미디어 스트림"을 포함하는 것으로 확장될 수 있음이 명백함을 또한 유의하여야 한다.
모든 트래픽은 마스터 브리징(bridging) 장치로 출입하는 것으로 한정된다. 마스터 브리징 장치는 각 장치가 데이터를 송신하는 채널 시간 할당(channel time allocation, CTA)을 표시하는 비콘(beacon)을 주기적으로 송신한다. 비콘과 다음 비콘까지의 모든 CTA를 도 8에 도시한 것처럼 "수퍼프레임"이라 한다. CTA 1, 2 및 3은 다운스트림 트래픽(대부분 비디오)용이다. CTA 4, 5 및 6은 업스트림 트래픽(대부분 TCP 수신 확인(ACK) 및 기타 관리/제어 프레임)용이다. 마스터 브리지 장치는 비콘 전송에 앞서 CTA 할당을 결정한다. 일반적으로, CTA는 마스터 장치에 의하여 결정되거나 원격 장치(원격 STB)에 의하여 요청되는 고정 시간 슬롯(fixed time slot)일 수 있다. 모든 가용 시간 할당/슬롯을 완전히 사용하는 것이 바람직하다.
본 발명은 또한 비디오를 반송하는 프로토콜을 포함하는 비디오 시스템 미들웨어에 대한 변경을 요하지 않는 이점이 있다.
전술한 설명에서, 비디오는 프로토콜 스택에서 IP를 통해 계층화된 접속 지향 양방향 프로토콜인 TCP를 통해 분배된다. TCP ACK들이 인터넷을 통한 송신에 유용함에도 불구하고, 본 발명에서와 같이 비디오 스트리밍에 사용하기 위한 신뢰성있는 LAN에서의 유용함에는 의문의 여지가 있다. 그러나, TCP는 브리징 장치에서 미들웨어로서 이용가능한 것이고 기존 미들웨어를 변경하는 것이 아니라 TCP를 확대하거나 향상시키는 것이 오히려 바람직하다. 고도의 신뢰성은 낮은 물리 계층(PHY) 패킷 에러 레이트 및 MAC 계층에서의 재송신을 통해 이루어 질 수 있다. 또한, 원격 STB에 의해 리턴되는 TCP ACK들에 기인하는 오버헤드 및 TCP 슬라이딩 윈도우 상의 부정적인 영얗ㅇ을 줄이는 것도 바람직하다.
본 명세서에서는 TCP ACK들에 기인한 오버헤드를 줄이는 세가지 방법이 설명된다. 처음 두 개의 방법이 결합되어 세 번째 방법을 형성한다. (설명을 목적으로 하는) 본 발명의 예시적 실시예는 TDMA MAC을 기초로 하기 때문에, 원격 STB로부터 마스터 STB로의 송신은 수퍼프레임의 길이에 따라 매 5 또는 10 msec 벌크로 발생한다. 이러한 송신을 위해, 원격 STB는 송신 큐를 벗어난 패킷을 취하고 이들을 송신을 위해 일련의 프레임(또는 집합 프레임)으로 수집한다. 이러한 예시적 실시예에서, 이러한 모든 트래픽은 마스터 STB용으로 예정된다. 제1 실시예에 대하여, 원격 브리지 장치는 송신 큐의 IP 및 프레임의 TCP 헤더를 검사하고 어떤 ACK가 제거될 수 있는지를 결정한다. 프레임의 콘텐츠에 따라, 몇몇 TCP ACK는 하나의 TCP ACK로 대체된다. 이와 같이 함으로써, 원격 장치/STB에 할당되는 보다 짧은 CTA가 마스터 장치/STB에 할당된 CTA보다 더 많이 전송되도록 하는 것이 가능하다.
제2 방법에서, 마스터 STB로 되돌아 오는 TCP ACK는 마스터 브리지 장치에 의해 생성된다. 이 경우, 마스터 STB는 패킷이 이미 원격 STB에 의해 수신되었다고 생각하게 된다. 마스터 브리지 장치는 TCP 슬라이딩 윈도우, TCP 시퀀스 번호, 최대 세그먼트 크기(MSS) 및 자신의 송신 큐의 트랙을 추적한다. TCP 프레임은 마스터 STB로부터 너무 종종 도착한다면, 마스터 브리지 장치는 큐 레벨이 감소할 때까지 TCP ACK를 보류한다. 이것은 흐름 제어의 일 형태이다. 마스터 브리지 장치는 또한 원격 STB로부터 실질적으로 리턴되는 TCP ACK를 인터셉트하여 TCP ACK들이 마스터 STB로 확실히 포워드되지 않도록 한다. 대안으로, TCP ACK는 원격 브리지 장치에 의해 인터셉트될 수 있고 필요하다면 요약 리포트가 마스터 브리지 장치에 전송될 수 있다. 또한, 원격 브리지 장치가 인터셉트된 TCP ACK를 버리는 것도 가능하다. 이러한 제2 방법은 오버헤드 감소에 더하여 작은 TCP 슬라이딩 윈도우의 부정적 영향을 감소시킬 수 있다는 장점이 있다.
제3 방법은 전술한 두 개의 방법을 결합한 것이다. TCP ACK는 제2 방법에서와 같이 브리지 장치들(마스터 또는 원격) 중 하나에 의해 국부적으로 발생되지만, 원격 STB에 의해 리턴되는 TCP ACK는 제1 방법에서 설명된 바와 같이 결합된다. 이들 방법들은 MACK, IP 및 TCP 계층/기능을 포함하고 브리지/MAC 계층에 상주하기 때문에 교차계층화(crosslayering)로 고려될 수 있다. 이점으로는 STB에 대한 변경을 요구하지 않으면서도 TCP를 통한 스트림의 부적적인 영향이 감소된다는 것이다. 브리지 장치는 제한된 양의 TCP/IP 처리를 식별하고 실행한다. 일반적인 데이터 네트워크 트래픽에 대하여, 당해 산업에서는 대부분 모든 계층을 분리하여 독립적으로 유지하였다. MAC 계층은 일반적으로 프레임의 페이로드에 반송되는 데이터 트래픽의 유형을 인식하지 못한다. 예를 들면, 가정용 이더넷 스위치는 TCP 또는 IP를 인식하지 못하고, 사실상 일반적으로 셋업을 요구하지 않는다. 브리지는 네트워크에 투명하고 MAC 계층에서 동작한다. MAC/브리지 계층 향상을 통해 TCP ACK를 줄이는 것을 목적으로 하는 임의의 분배 시스템의 종래 방법은 없었다.
데이터 패킷 및 ACK를 접속으로 식별하고, 어떤 ACK가 제거될 수 있는지 결정하고, 제거될 수 있는 ACK를 단일 ACK로 대체하고 단일 ACK를 송신하는 것을 비롯한, ACK를 관리하는 방법 및 장치가 설명된다. 데이터 세그먼트를 수신하고, 접속을 추적하고, 소정수의 채널 타임 할당에 대한 충분한 데이터 세그먼트가 있는지를 결정하고 소정수의 채널 타임 할당에 대한 충분한 데이터 세그먼트가 있다면 선택된 접속에 ACK하는 것을 비롯한, ACK를 관리하는 대체 방법 및 장치가 설명된다. 상기 두 개의 방법의 조합인 대체 방법도 설명된다.
본 발명은 첨부하는 도면과 함께 상세한 설명으로부터 가장 잘 이해될 것이다. 도면은 이하에 간략하게 설명하는 다음의 도면을 포함한다.
도 1은 본 발명의 원리에 따른 예시적인 무선 홈 비디오 분배 시스템이다.
도 2는 MAC 레벨 브리지(bridge)이다.
도 3은 범용 무선 브리지이다.
도 4는 본 발명의 예시적인 실시예에서 무선 홈 비디오 분배에 적합한 제약 경로를 갖는 무선 브리지이다.
도 5는 마스터 STB와 무선 MAC 브리지의 서버측의 소프트웨어(논리 구조)의 블록도이다.
도 6은 원격/클라이언트 STB와 무선 MAC 브리지의 클라이언트측의 소프트웨어(논리 구조)의 블록도이다.
도 7은 본 발명에 따라 DTA가 어떻게 사용되는 가를 보여 주는 무선 MAC 브리지의 블록도이다.
도 8은 본 발명에 따른 수퍼프레임(superframe)을 도시한다.
도 9는 비디오 서버(마스터 STB)에 연결되어 있는 PNC에 대한 하이 레벨 전송 패킷 흐름도이다.
도 10은 비디오 서버(마스터 STB)에 연결되어 있는 PNC에 대한 하이 레벨 수신 패킷 흐름도이다.
도 11은 비디오 클라이언트(원격 STB)에 연결되어 있는 DEV-x에 대한 하이 레벨 송신 패킷 흐름도이다.
도 12는 비디오 클라이언트(원격 STB)에 연결되어 있는 DEV-x에 대한 하이 레벨 수신 패킷 흐름도이다.
도 13은 단일 다운스트림 CTA (PNC에서 DEV-x까지)를 도시한다.
도 14는 수퍼 MAC(MAC 프레임의 비표준 집합)과 물리 프레임 포맷을 도시한다.
도 15은 단일 업스트림 CTA(DEV-x에서 PNC까지)를 도시한다.
도 16은 TCP/IP 인캡슐레이션을 도시한다.
도 17은 IP 헤더를 도시한다.
도 18은 TCP 헤더를 도시한다.
도 19는 TCP 슬라이딩 윈도우 동작을 도시한다.
도 20은 원격 브리징 장치에서의 처리의 예시적 실시예의 고레벨 흐름도이다.
도 21은 마스터 브리징 창지에서의 처리의 제2 예시적 실시예의 고레벨 송신 흐름도이다.
도 22는 마스터 브리징 장치에서 원격 ACK를 포워딩하는 고레벨 흐름도이다.
도 23은 원격 브리징 장치에서 제2 실시예의 고레벨 흐름도이다.
본 발명은 TDMA 서비스(수퍼프레임 내 전송 시간이 할당된 수퍼프레임의 시작점의 비콘)를 지원하는 IEEE 802.15.3b MAC으로 시작한다. IEEE 802.15b는 개인 용 네트워크용으로 설계되었고, 따라서, LAN 또는 MAN(metropolitan area network)용으로 설계된 기술보다 "더 가볍다(lighter)". 다른 TDMA MAC을 이용 가능하고 이용할 수 있지만(예를 들어, IEEE 802.16), MAC 계층에 이용 가능한 트래픽 특성에 순전히 기초하여 동적으로 CTA 길이를 할당하려는 시도가 종래 기술에는 없었다. IEEE 802.16는 WMAN(wirelss metropolitan area network)용으로 설계되었고 서비스 가입자에게 인터넷 분배용으로 사용되고 있다. 이것은 서비스 제공자가 자신들의 네트워크를 맞춤화할 수 있도록 하는 많은 특징 및 옵션을 포함한다. 본 발명의 실시예가 IEEE 802.15.3b와 관련하여 설명되지만, 그 개념은 IEEE 802.16 실시예에 동일하게 적용될 수 있다. 파싱(parsing)하기 위해 어느 정도의 헤더가 존재한다.
CTA를 설정하는 경우 고려하여야 할 몇 가지 TCP 특성이 있다. TCP는 32 비트 시퀀스 번호(sequence number) 및 요청 번호(request number), 그리고 16 비트 슬라이딩 윈도우 길이 필드(sliding window length field)를 이용하는 전송 프로토콜이다. 이러한 세 번호는 "스톱 앤 웨이트(Stop-and-Wait)" 또는 "고우 백 앤(Go-Back-N)" ARQ 에러 복구 방식을 구현하는데 사용된다. 송신 큐(transmit queue) 내에서 그리고 송신 처리 중인 TCP 패킷은 "네트워크 내"에 있기 때문에, TCP 윈도우는 그러한 패킷이 현저해지도록(outstanding) 수신부에 의하여 충분히 크게 설정되어야 한다. 일반적으로, MAC 레벨 브리징 장치는 그러한 윈도우 크기 설정을 통해 제어하지 않지만, 초기 CTA의 선택과 수퍼프레임의 길이는 문제를 최소화하기에 충분할 만큼 짧게 선택될 수 있다. 수퍼프레임의 길이는 가변 TCP 윈 도우의 크기를 다룰 수 있도록 조정 가능(또는 적응 가능)하게 할 수 있다.
10msec의 수퍼프레임의 경우, 약 19개의 1400 바이트짜리 TCP 패킷이 10msec 마다 송신된다. 이는 26,600 바이트를 차지한다. 약 165kbyte의 송신 버퍼 큐를 이용하여 다음의 예시적인 실시예에 대하여 설명한다. TCP 트래픽에 있어서, TCP 윈도우의 크기는 현저한 데이터 중 64kbyte 이상을 허용하지 않으므로 송신 버퍼 큐는 절대 오버플로우(overflow)가 일어나지 않는다. 윈도우는 CTA가 완전히 차는 것을 허용하지 않을 정도로 충분히 작은 것도 가능하다. 이로 인해, 짧은 수퍼프레임(5msec)으로 시작하는 것이 좋다. 그러면 송신 버퍼 큐는 51kbyte 이상일 필요가 없으며, 적어도 단일 TCP 세션을 처리할 수 있다. 하지만, UDP를 통하여 전송되는 비디오의 경우에는 패킷 손실을 막기 위하여 165kbyte의 송신 버퍼 큐를 선택하였다.
ARQ 에러 복구 방식의 수학적인 모델은 큐잉 이론(queueing theory) 분야에서 발전되어 왔고 필요하다면 더 정확하게 TCP 성능을 모델화하는데 사용될 수 있음을 유의하여야 한다. 윈도우 크기가 충분히 커서 현저하게 큰 TCP 패킷 중 일부는 큐 내에, 일부는 CTA 내에 있는 것이 가능하다고 가정하자. 다섯 번까지의 재송신이 허용되는 예시적인 실시예에서, 그 데이터의 약 다섯 배가 송신 버퍼 큐에 저장되도록 CTA는 충분히 작아야 한다. 5msec 수퍼프레임은 최대 크기의 TCP 윈도우를 사용한다면 이를 달성할 수 있다.
초기 애플리케이션은 TCP를 이용하여 비디오를 스트리밍하지만, 일반적인 의미에서 양호한 성능을 보증하는 유일한 방법이 그러한 애플리케이션을 트래픽 패턴 에 적용가능하게 하는 것이라는 것에는 구현의 불확실성이 충분하다.
실시간 길이 유연성 수퍼프레임 구성이 가능하며, 이는 시스템 신뢰도를 향상시키고 시스템 성능을 개선시킨다. 수퍼프레임의 길이는 예시적인 실시예서는 세 개의 개별 비디오 큐의 길이, 다운스트림 송신 채널 상태 및 다른 가능한 문제에 따를 수 있다. 길이 유연성 수퍼프레임의 경우, 비콘은 이어지는 CTA의 길이를 방송해야 하며, 각각의 원격 STB는 자신의 CTA의 길이에 대하여 보고를 받는다.
전술한 바와 같이, TCP 수신 윈도우가 CTA의 길이에 비하여 충분히 작은 경우, 서버는 소스에서의 스트림의 속도를 효율적으로 줄이면서 이전 패킷으로부터 ACK를 수신하기 까지는 다음 패킷을 보내지 않는다. 레이트(rate)는 원하는 실시간 스트리밍 레이트 이하로 떨어질 수 있다. 이를 피하기 위하여, 본 발명은 이러한 부족 상태를 야기하지 않는 CTA 크기를 선택한다. 적절한 레이트를 유지하기 위하여, CTA는 크기가 줄어든 경우에는 더 자주 발생할 필요가 있다. 이는 수퍼프레임의 크기를 줄이거나 하나 이상의 CTA를 수퍼프레임당 링크에 할당함으로써 발생한다.
추가로 전술한 바와 같이, TCP 윈도우 크기가 특정되지 않으므로 수퍼프레임의 크기를 가변시킬 수 있다. 이는 TCP 헤더의 관찰에 기초하여 수퍼프레임 변경을 트리거하거나, 송신 버퍼 큐를 더 적절하게 모니터링함으로써, 그리고 송신 버퍼 큐가 CTA로 하여금 송신할 데이터가 부족하도록 너무 자주 비는 경우에는 수퍼프레임을 짧게 함으로써 MAC 계층에서 행해질 수 있다. 처음에 고정된 수퍼프레임 길이가 예시적인 실시예에 사용되었다. 고정된 수퍼프레임 길이가 주어지면, 트래픽 특성에 적응하도록 CTA 길이를 수정하는 조사가 이루어진다. 이 경우, STB에 있는 TCP 스택은 ACK를 그룹화하고/하거나 데이터를 포함하는 패킷의 헤더에 ACK를 포함할 수 있으므로, TCP ACK로 대부분 읽히는 CTA에 얼마나 많은 시간을 할당할지는 약간의 불확실함이 있다.
최소한, 주어진 임의의 송신 큐의 평균 출력 패킷 레이트는 평균 패킷 도달 레이트 이하로 유지되어야 하는 것으로 알려져 있고, 그렇지 않으면 큐는 오버플로우하게 된다. 하지만, 평균 도달 레이트가 평균 출발 레이트 이하일지라도, 입력 스트림의 통계적인 성질 때문에 입력 레이트가 출력 레이트를 일시적으로 초과할 수 있다. 평균 출력 레이트를 평균 입력 레이트보다 높게 유지하는 것이 필요하지만, 충분하지는 않다. IP 트래픽의 특이성을 감소시켜 시스템을 적응시키는 것이 최선이다.
적응을 위하여 모든 수퍼프레임에 대한 큐 정보를 기록한다. 큐 정보는 큐의 크기(고정된 경우에는 보낼 필요 없음), 큐에서의 패킷의 수, 큐에서의 패킷의 평균 길이 및 입력 패킷 레이트의 추정(estimate)을 포함한다. 각 DEV 또는 원격 STB에 대한 신뢰할만한 링크 레이트에 관한 정보와 함께 이들 정보는 목적이 패킷을 빠뜨리지 않고 그 목적을 달성하는 방식으로 수퍼프레임 시간을 CTA에 분배하는 적응형 알고리즘의 입력으로 사용된다. 적응형 알고리즘은 각 큐에서의 예상 패킷 수를 최소화(그리하여 지연을 최소화)하며/하거나 큐가 오버플로우하는 가능성을 최소화한다. 큐 레벨을 모니터링함으로써, MAC 계층은 수퍼프레임마다 CTA를 조정하여 대부분이 꽉 찬 큐에 송신 우선권(preference)을 부여한다.
본 발명은 무선 비디오 서비스 분배 시스템의 MAC 및 브리징 계층에 관한 것으로서 마스터 STB에서 원격 STB로 압축된 비디오를 분배한다. 시스템은 IEEE 802.15.3b TDMA MAC을 일부 사용하여 그 규격으로부터의 일부 용어를 사용한다. STB에 구축된 기술을 포함하는 예시적인 시스템이 도 1에 도시되어 있다.
마스터 STB(105)는 ATSC(Advanced Television Systems Committee) 안테나(디지털 TV), 위성 안테나 및 WAN(wide area network) 모뎀을 포함하는 다양한 비디오 소스로부터 입력을 수신한다. 마스터 STB는 복합 NTSC(National Television Standards Committee) 비디오 디스플레이, HDMI(High Definition Multimedia Interface) 콤포넌트 비디오 디스플레이와, 고객 스위치(customer switch)에 연결되어 있는 LAN(local area network)를 포함하는 비디오 디스플레이(110)에 출력을 제공한다. 마스터 STB는 5개의 위성 튜너[전자 프로그램 가이드(EPG), 메인, 세 개의 원격 튜너 및 녹화 튜너]를 구비한다. 메인 튜너는 마스터 STB와 통신하여 그 디스플레이의 사용자가 원하는 프로그램에 동조시키기 위한 것이다. 세 개의 원격 튜너는 원격 디스플레이의 사용자 각각이 원하는 프로그램에 동조시키기 위한 것이다. EPG 튜너는 전자 프로그램 가이드에 동조시키기 위한 것이다. 녹화 튜너는 마스터 STB와 통신하여 디스플레이의 사용자가 메인 위성 튜너에 의하여 동조된 프로그램을 시청하면서 녹화하고 싶은 프로그램에 동조시키기 위한 것이다. 마스터 STB는 두 개의 ATSC 튜너, 즉 메인 튜너와 녹화 튜너를 갖는다. 메인 튜너는 마스터 STB와 통신하여 디스플레이의 사용자가 원하는 프로그램에 동조시키기 위한 것이다. 녹화 튜너는 마스터 STB와 통신하여 디스플레이의 사용자가 메인 ATSC 튜 너에 의하여 동조된 프로그램을 시청하면서 녹화하고 싶은 프로그램에 동조시키기 위한 것이다. 마스터 STB는 디멀티플렉서(디먹스), PVR(personal video recorder), 원격 제어 장치와 함께 사용되는 적외선(IR) 수신기, 위성/ATSC 디코더 및 무선 허브를 포함한다. 마스터 STB(105)는 약 20Mbps로 각각의 원격 STB에 비디오를 전송할 수 있다. 마스터 STB(105)는 각각의 원격 STB와 위성 벤더 IP 트래픽을 교환할 수 있다. 마스터 STB(105)는 각각의 원격 STB와 제어 정보를 교환할 수 있다.
마스터 STB는 세 개의 원격 STB[원격 STB1(115), 원격 STB2(125) 및 원격 STB3(135)]와 통신한다. 원격 STB1(115)는 비디오 디스플레이(120)와 통신한다. 원격 STB2(125)는 비디오 디스플레이(130)와 통신한다. 원격 STB1(135)은 비디오 디스플레이(140)와 통신한다. 원격 STB는 유사한 구성을 가지므로 원격 STB1에 대하여만 설명한다. 원격 STB1(115)은 위성/ATSC 디코더, 원격 제어 장치와 함께 사용되는 IR 수신기 및 무선 스테이션을 갖는다. 원격 STB1(115)은 약 20Mbps로 마스터 STB(105)로부터 비디오를 수신할 수 있다. 원격 STB1은 마스터 STB(105)와의 사이에서 위성 벤더 IP 트래픽을 교환할 수 있다. 원격 STB1(115)은 마스터 STB(105)와 제어 정보를 교환할 수 있다.
본 발명은 MAC 레벨 무선 브리지(도 2 참조)로서 구축된다. 일반적으로, MAC 브리지는 동일하거나 다를 수 있는 LAN 세그먼트들을 연결시킨다. 브리지에 의하여 서로 연결되어 있는 상이한 LAN 기술의 모임은 브리지 LAN으로 불린다. MAC 브리지는 QoS에서의 차이가 있을 가능성을 제외하고는 MAC 서비스 범위 내에서 동작하고 MAC 브리지 서비스 범위를 넘어서 사용되는 프로토콜에 대하여는 투과성(transparent)이다. MAC 서비스 사용자는 MAC 서비스 범위 외이고 MAC 서비스 제공자는 MAC 서비스 범위 내이다. MAC 계층 브리지는 각각의 LAN 세그먼트/콤포넌트와 접속하는 릴레이(relay)를 포함한다.
일반적인 무선 브리지가 도 3에 도시되어 있다. 무선 브리지(305)는 이더넷 연결을 통하여 서버와 통신한다. 두 개의 서버(310, 315)가 도시되어 있다. 또한, 무선 브리지(305)는 이더넷 연결을 통하여 클라이언트와 통신한다. 4개의 클라이언트(320, 325, 330, 335)가 도시되어 있다. 일반적인 무선 브리지 내에는 피코넷 제어기(piconet controller, PNC)(340)인 DEV0이 있다. PNC(340)는 복수의 장치와 무선으로 통신한다. 세 개의 장치 DEV1(345), DEV2(350) 및 DEV3(355)가 도시되어 있다. DEV0/PNC(340)는 서버(310, 315)와 통신한다. DEV1(345)은 클라이언트(320)와 통신한다. DEV2(350)는 클라이언트(325)와 통신한다. DEV3(355)는 클라이언트(330, 335)와 통신한다.
하지만, 본 발명의 예시적인 실시예는 무선 홈 비디오 서비스 분배 애플리케이션에 맞도록 경로를 제한한다. 도 4에는 가능한 데이터 경로를 점선으로 나타내었다. 무선 브리지(405)는 마스터 STB(410)와 무선으로 통신한다. 무선 브리지(405)는 또한 원격 STB(415, 420, 425)와 무선으로 통신한다. 무선 브리지(405)는 내부적으로는 도 2와 같이 구성되어 있다. 모든 트래픽은 마스터 STB(410)로 출입한다.
도 5는 서버측(마스터 STB 및 브리지 장치)의 소프트웨어 구 조(architecture)를 나타낸다. 마스터 브리지 장치 역시 IEEE 502.15.3에서 설명한 것과 같은 피코넷 제어기(PNC)임을 유의하여야 한다. 마스터 STB(505)는 미들웨어(middleware) 비디오 서버 애플리케이션(510)을 포함한다. 멀티미디어 스트림 미들웨어(515)는 미디어 QoS 제어부(520)와 장치 드라이버(525) 모두와 접속한다. 멀티미디어 스트림 미들웨어(515)는 장치 드라이버(525)로 비디오 데이터를 전달하고 미디어 QoS 제어 미들웨어(520)와 제어 정보를 교환한다. 미디어 QoS 제어 미들웨어는 장치 드라이버(525)와 제어 정보를 교환한다. 장치 드라이버(525)는 네트워크 인터페이스(IEEE 802.3)(530)와 주로 비디오 데이터를 교환한다. 장치 드라이버(525)에는 미디어 스트림 미들웨어 비디오 데이터와 제어 정보를 수신하고 미디어 QoS 제어 미들웨어(520)와 정보를 교환하는 휴대용 운영체제 유닉스(portable operating system Unix, POSIX) 서브세트가 있다. POSIX 드라이버 서브세트는 TCP/IP(540), 미디어 스트림 프로토콜(545) 및 QoS 관리 및 제어(550)를 모은 QoS 미들웨어와 정보를 교환한다. PNC(555)는 무선 MAC 비디오 서버 애플리케이션(560)을 포함하고, 이는 복수의 소프트웨어 모듈을 포함하는 소프트웨어(565)와 제어 정보를 교환한다. 소프트웨어(565)는 무선 라디오 인터페이스(570)와 IEEE 802.3 드라이버(575)와 비디오 데이터 및 제어 정보를 교환한다. IEEE 802.3 드라이버는 IEEE 802.3 네트워크 인터페이스(580)와 주로 비디오 데이터를 교환하고, 이는 IEEE 802.3 네트워크 인터페이스(530)와 접속하고 비디오 정보를 교환한다. 소프트웨어(565)는 IEEE 802.1D 브리징 모듈을 포함하는 여러 소프트웨어 구성요소를 포함하고, 무선 장치 관리 엔터티(device management entity, DME)와 IEEE 802.2 프레임 컨버전스 부계층(frame convergence sublayer, FCSL) 서비스 액세스 포인트(service access point, SAP) 계층으로 되어 있다. 무선 MAC 비디오 서버 브리지 애플리케이션(560)은 무선 DME 관리 SAP와 접속한다. 무선 DME 관리 SAP와 무선 DME와 IEEE 802.2 FCSL SAP는 IEEE 802.2 FCSL DME 위의 계층이고, IEEE 802.15.3b PNC의 기능을 수행하며, QoS 스케줄링을 행하면서 브리지 기능을 관리한다. IEEE 802.2 FCSL DME는 IEEE 802.15.3b MAC SAP와 IEEE 802.15.3b MAC 계층 관리 엔터티(MLME) SAP 위의 계층으로 되어 있다. IEEE 802.15.3b MAC 계층 관리 엔터티(MLME) SAP는 IEEE 802.15.3b MLME 위의 계층이며, 이는 무선 물리 계층 관리 엔터티(PLME) SAP 위의 계층이다. IEEE 802.15.3b MAC SAP는 IEEE 802.15.3b MAC 부계층 위의 계층이고, 이는 무선 물리 SAP 위의 계층이다. IEEE 802.15.3b MAC SAP는 무선 물리 계층 위의 계층이다. 무선 물리 계층 관리 엔터티(PLME) SAP는 무선 물리 계층 PLME 위의 계층이다. 무선 PLME는 무선 물리 계층과 통신한다. IEEE 802.15.3b MAC 부계층은 IEEE 802.15.3b MLME와 통신한다. 두 무선 물리 계층과 무선 PLME는 무선 라디오 인터페이스와 각각 비디오 데이터와 제어 정보를 교환한다.
도 6은 클라이언트측(원격 STB 및 브리지 장치)의 소프트웨어 구조를 나타낸다. 본 발명은 브리지 장치 내이지만 STB는 문맥상 도시되어 있음을 유의하여야 한다. 원격/클라이언트 브리지 장치 역시 IEEE 802.15.3에서 설명하는 것과 같은 DEV-x(non-PNC 장치)임을 유의하여야 한다. 원격/클라이언트 STB(605)는 미들웨어 비디오 클라이언트 애플리케이션(610)을 포함한다. 미디어 스트림 미들웨어(615) 는 미디어 QoS 제어(620) 및 장치 드라이버(625)와 접속한다. 미디어 스트림 미들웨어(615)는 장치 드라이버(625)로부터 데이터를 받고 미디어 QoS 제어 미들웨어(620)와 제어 정보를 교환한다. 미디어 QoS 제어 미들웨어는 장치 드라이버와 제어 정보를 교환한다. 장치 드라이버(625)는 네트워크 인터페이스(IEEE 802.3)(630)와 대부분의 데이터를 교환한다. 장치 드라이버(625) 내에는 주로 비디오 데이터를 미디어 스트림 미들웨어(651)로 보내고 정보를 미디어 QoS 제어 미들웨어(620)와 교환하는 POSIX 드라이버(635)의 서브세트가 있다. POSIX 드라이버 서브세트는 TCP/IP(640), 미디어 스트림 프로토콜(545) 및 QoS 관리 및 제어(650)를 모은 QoS 미들웨어와 정보를 교환한다. DEV-x(655)는 무선 MAC 비디오 서버 애플리케이션(660)을 포함하고, 이는 복수의 소프트웨어 모듈을 포함하는 소프트웨어(665)와 제어 정보를 교환한다. 소프트웨어(665)는 무선 라디오 인터페이스(670)와 IEEE 802.3 드라이버(675)와 비디오 데이터 및 제어 정보를 교환한다. IEEE 802.3 드라이버는 IEEE 802.3 네트워크 인터페이스(680)와 주로 비디오 데이터를 교환하고, 이는 IEEE 802.3 네트워크 인터페이스(630)와 비디오 정보를 접속하고 교환한다.
소프트웨어(665)는 IEEE 802.1D 브리징 모듈을 포함하는 여러 소프트웨어 구성요소를 포함하고, 무선 DME와 IEEE 802.2 FCSL SAP 계층으로 되어 있다. 무선 MAC 비디오 서버 브리지 애플리케이션(560)은 무선 DME 관리 SAP와 접속한다. 무선 DME 관리 SAP와 무선 DME와 IEEE 802.2 FCSL SAP는 IEEE 802.2 FCSL DME 위의 계층이고, IEEE 802.15.3b DEV-x의 기능을 수행하며, QoS 스케줄링에 대하여 상태 를 PNC로 보내면서 브리지 기능을 관리한다. IEEE 802.2 FCSL DME는 IEEE 802.15.3b MAC SAP와 IEEE 802.15.3b MLME SAP 위의 계층으로 되어 있다. IEEE 802.15.3b MLME SAP는 IEEE 802.15.3b MLME 위의 계층이며, 이는 무선 물리 계층 관리 엔터티(PLME) SAP 위의 계층이다. IEEE 802.15.3b MAC SAP는 IEEE 802.15.3b MAC 부계층 위의 계층이고, 이는 무선 물리 SAP 위의 계층이다. IEEE 802.15.3b MAC SAP는 무선 물리 계층 위의 계층이다. 무선 PLME SAP는 무선 물리 계층 PLME 위의 계층이다. 무선 PLME는 무선 물리 계층과 통신한다. IEEE 802.15.3b MAC 부계층은 IEEE 802.15.3b MLME와 통신한다. 두 무선 물리 계층과 무선 PLME는 무선 라디오 인터페이스와 비디오 데이터와 제어 정보를 각각 교환한다. 소프트웨어(665, 660)는 CTA 상의 정보와 함께 비콘 신호를 수신하고, 다운스트림 CTA 내의 재분배된 비디오/미디어를 수신하며, 적절한 업스트림 CTA에서 MAC 레벨 ACK 또는 NAK를 송신한다. 이러한 ACK는 TCP가 사용되는 경우 비디오 클라이어언트에서 생성될 수 있는 TCP ACK와 다름을 유의하여야 한다.
이제 도 7을 참고하면, 본 발명의 원리에 따른 무선 MAC 브리지의 블록도를 나타낸다. PNC(705)는 할당된 CTA에서 원격 STB(710, 715, 720)와 데이터/정보를 송수신한다. 마스터 장치(705)는 각 장치가 데이터를 송신하는 채널 시간 할당(channel time allocation, CTA)을 표시하는 비콘을 주기적으로 송신한다. CTA 1, 2 및 3은 다운스트림 트래픽(대부분 비디오)용이다. CTA 4, 5 및 6은 업스트림 트래픽(대부분 TCP ACK 및 기타 관리 프레임)용이다.
도 8에 수퍼프레임이 도시되어 있다. 마스터 장치는 비콘 전송에 앞서 CTA 를 결정한다. 일반적으로, CTA는 마스터 장치/PNC에 의하여 결정되거나 원격 장치/STB에 의하여 요청되는 고정 시간 슬롯(fixed time slot)일 수 있다. 특히, IEEE 802.15.3b에 있어서, 규격은 "CTReq" 메시지를 PNC로 전송하여 대역폭을 요청하는 원격 STB/장치를 규정하고 있다. 하지만, 아무리 CTA 시간이 요청되거나 설정되더라도, 장치 중 어느 것도, 특히 원격 STB는 IP 트래픽 특성 모두를 실제로 알지 못한다. 트래픽은 UDP(ACK 없음)에 기초하거나 TCP에 기초할 수 있다. 어떤 때에는 모든 트래픽이 다운스트림일 수 있고, 다른 때에는 다소 대칭적일 수 있다. CTA 내의 시간을 적응시켜 트래픽 흐름을 최적화함으로써 모든 가용 시간을 완전히 사용하는 것이 바람직하다. 수퍼프레임의 가장 좌측 부분은 무선으로(over the air) 먼저 송신되고, 가장 우측 부분은 무선으로 마지막에 송신된다. 비콘에 이어서, 다운스트림 CTA가 먼저 송신되고 업스트림 CTA가 그 다음에 송신되는 순서로 CTA가 송신된다. 본 발명에서의 수퍼프레임은 5msec와 10msec 사이에서 변화할 수 있다.
마스터 STB에 연결되어 있는 PNC에 대한 예시적인 패킷 흐름도가 도 9 및 10에 도시되어 있다. 원격 STB에 연결되어 있는 DEV-x(즉, non-PNC 장치)에 대한 예시적인 패킷 흐름도에 대한 예시적인 패킷 흐름도가 도 11 및 12에 도시되어 있다. 전술한 바와 같이, 예시적인 고품위 비디오 재분배 시스템의 무선 MAC 브리지는 제한된 브리지로서 동작한다.
도 9를 참고하면, PNC는 이더넷 포트(대부분 비디오)(905) 상의 이더넷 비디오 데이터 프레임을 수신한다. PNC는 수퍼프레임과 각 CTA의 길이를 결정한다. 목적지 MAC 주소에 따라 적절한 송신 큐(910a, 910b, 910c)에 프레임을 위치시킨 다. PNC는 IEEE 802.1D에 서술된 바와 같은 플러딩(flooding)을 통하여 MAC 주소를 알 수 있거나, 필터링/라우팅 테이블을 수작업으로 채울 수 있다. 도면의 혼잡을 줄이기 위하여, 송신 포트(각 DEV-x/원격 STB로 향함)당 오직 하나의 큐를 가정하여 본 발명에 대하여 설명한다. 복수의 우선 순위를 원하는 경우에는 송신 포트(각 DEV-x/원격 STB로 향함)당 복수의 큐가 있을 수 있다. 즉, 각 우선 순위 그룹에는 하나의 큐가 대응된다. 이더넷 비디오 데이터 프레임은 큐로 분할된다. 예시적인 실시예에서, 큐는 각각 165kbyte이고 수퍼프레임은 5msec와 10msec 사이의 길이이다. 큐로부터의 비디오 데이터 프레임은 우선 순위 매핑, 프레임 체크 시퀀스(frame check sequence, FCS), 프래그멘테이션(fragmentation) 및 헤더 정정 코드(header correction code, HCC) 계산을 포함하여, 이더넷 비디오 데이터 프레임을 IEEE 802.15.3b MAC 프레임으로 변환하는 소프트웨어 모듈(915)로 전달된다. 소프트웨어 모듈(915)은 송신 MAC 서비스 데이터 유닛(MSDU)을 저장하기 위한 버퍼(925)와 통신한다. 소프트웨어 모듈(930)은 수퍼프레임을 구성하기 위하여 소프트웨어 모듈(915)로부터 MAC 프레임을 요청한다. 소프트웨어 모듈(915)은 복수의 MSDU를 소프트웨어 모듈(930)로 전달한다. 소프트웨어 모듈(930)은 저장 장치(935)로부터 물리 특성과 파라미터를 수신하고 버퍼(940)로부터의 이전 서비스 프레임 데이터로부터 MSDU ACK를 수신하여 수퍼프레임을 구성한다. 데이터 저장 장치(945)는 로컬 및 원격 DEV(STB) 큐 길이로서 저장되는 MAC 대역폭 관리 커맨드를 이전 수퍼프레임으로부터 수신하여 CTA 길이를 변화시킨다. 이 정보는 MAC 대역폭 관리 엔터티(950)로 전달되고, 이는 CTA 길이를 소프트웨어 모듈(930)로 전달 하여 수퍼프레임의 구성을 추가로 지원한다. 소프트웨어 모듈(930)은 또한 수퍼프레임 재송신 버퍼(955)로부터의 이전 프레임으로부터 재송신되는 MSDU를 수신하고, 버퍼는 각각의 STB MAC 프로토콜 데이터 유닛(MPDU)에 복수의 MSDU를 저장하고 수신 확인된 MSDU를 버린다. 소프트웨어 모듈(930)에 의하여 구성된 수퍼프레임은 수퍼프레임 구성 버퍼(960)에 저장된다. 소프트웨어 모듈(930)에 의하여 구성된 수퍼프레임은 다운스트림 MPDU 및 업스트림 시간을 포함한다. 수퍼프레임 구성 버퍼(960)는 각 원격 STB MPDU에서의 복수의 MSDU의 형태로 수퍼프레임 송신 버퍼(965)로 구성된 수퍼프레임을 전달한다. 수퍼프레임 송신 버퍼(965)는 수퍼프레임 구성 버퍼로부터 수신한 수퍼프레임을 수퍼프레임 재송신 버퍼(955)로 전달한다. 수퍼프레임 송신 버퍼(965)는 완전한 MPDU를 소프트웨어 모듈(970)로 전달한다. 소프트웨어 모듈은 수신 기간 동안 원격 STB로부터 지연 ACK를 수신하고 타임 클록(975)으로부터 타이밍 정보를 수신한다. 소프트웨어 모듈(970)은 복수의 MSDU를 MPDU에 모아서 물리 계층 모듈(980)로 전달하여 송신한다. 소프트웨어 모듈(970)은 비콘 내의 타이밍에 기초하여 타이밍을 이용하고 송신 데이터, 송신 데이터 레이트, 송신 길이, 송신 전력 레벨 및 송신 안테나 제어를 물리 계층 모듈(980)로 전달하며, 이는 PNC로부터의 물리 데이터 프로토콜 유닛(physical data protocol unit, PPDU)을 지정된 원격 STB로 송신한다.
도 10은 수신 패킷 흐름을 나타내므로, 도면의 우측에서 설명을 시작한다. PPDU는 타임 클록(1010)으로부터 입력도 수신하는 물리 계층 소프트웨어 모듈(1005)에서 수신된다. 물리 계층 소프트웨어 모듈은 수신된 데이터, 길이, 링크 품질 표시기(ling quality indicator, LQI), 수신된 신호 세기 표시기(received signal strength indicator, RSSI) 및 PHY 수신 에러를 소프트웨어 모듈(1015)로 전달한다. 소프트웨어 모듈(1015)은 PPDU를, 타이밍 비콘에 기초하여 타이밍을 이용하여 모은 MSDU인 MPDU로 분해하고 이를 소프트웨어 모듈(1020)로 전달하고, 모듈은 HCC 계산을 행하고, 완전한 MSDU 프레임 또는 프래그먼트를 분리하며, 프레임 체크 시퀀스를 처리하고, 정확하게 수신된 MSDU를 계속하여 추적하며, 지연 ACK 요청에 응답하여 지연 ACK를 구성하고, MSDU를 필터링하여 서버로 예정된 정확한 MSDU만이 서버(마스터 STB)로 전달되게 한다. 소프트웨어 모듈(1020)은 수신 MSDU에 대한 지연 ACK를 전달하고, 서버(마스터 STB)로 예정되지 않은 MSDU를 버린다. 소프트웨어 모듈(1020)은 데이터 저장 장치(1025)로부터 물리 특성과 파라미터를 수신하여 전술한 기능을 수행한다. 소프트웨어 모듈(1020)은 지연 ACK와 같은 MAC 커맨드와 대역폭 관리 메시지를 소프트웨어 모듈(1030)로 전달하고, 이는 MAC 커맨드를 분리하고 MSDU ACK를 MSDU ACK 버퍼(1035)로 전달하며 MAC 대역폭 정보 엘리먼트(information element, IE)를 MAC 대역폭 관리 엔터티(1040)로 전달한다. 소프트웨어 모듈(1020)은 또한 MSDU(대부분 TCP ACK)를 소프트웨어 모듈(1045)로 전달하고, 이는 프래그먼트로부터 완전한 MSDU를 재구성하고 불완전 MSDU 프래그먼트를 저장하며 적절한 순서로 MSDU를 배치한다. 소프트웨어 모듈(1045)는 재배열 프레임 구성 버퍼(1050)와 통신하며 MSDU 프래그먼트 버퍼(1055)를 수신한다. 소프트웨어 모듈(1045)은 완전한 MSDU를 소프트웨어 모듈(1060)으로 전달하고, 여기에서 완전한 MSDU는 프레임 체크 시퀀스와 우선 순위 매핑을 포함하는 이더넷 프레임 으로 변환된다. 소프트웨어 모듈은 포워딩 테이블(forwarding table)과 서비스 흐름 정보를 데이터 저장 장치(1065)로부터 수신하고 이더넷 프레임을 서버(마스터 STB)로 전달한다.
도 11은 원격 STB(비디오 클라이언트)에 연결되어 있는 DEV-x에 대한 하이 레벨 송신 패킷 흐름도이다. 이더넷 프레임은 비디오 클라이언트로부터 오는 프레임을 필터링하고 분류하는 소프트웨어 모듈(1105)에 의하여 수신된다. 소프트웨어 모듈(1105)은 이더넷 프레임을 프레임 큐(1110)로 전달한다. 모든 트래픽은 서버(마스터 STB)로 가므로 오직 하나의 큐만 있다. 하지만, 복수의 큐를 원한다면, 각 우선 순위 그룹마다 하나의 큐로 복수의 큐를 구현한다. 큐 내의 데이터는 소프트웨어 모듈(1115)로 전달되고, 이는 이더넷 프레임을 우선 순위 매핑, 프레임 체크 시퀀스, 프래그멘테이션 및 HCC 계산을 포함하는 IEEE 802.15.3 MAC 프레임으로 변환한다. 소프트웨어 모듈(1115)은 데이터 저장 장치(1120)로부터 포워딩 테이블 및 서비스 흐름 정보를 수신한다. 소프트웨어 모듈(1115)은 MSDU 송신 버퍼(1125)와 통신한다. 소프트웨어 모듈은 복수의 MSDU를 소프트웨어 모듈(1130)로 전달하고, 이는 전송될 업스트림 MPDU를 다음 수퍼프레임 내에 구성한다. 소프트웨어 모듈(1115)은 소프트웨어 모듈(1130)로부터 요청을 수신한다. 소프트웨어 모듈(1130)은 버퍼(1135)로부터의 이전 수퍼프레임으로부터 MSDU ACK를 수신한다. 소프트웨어 모듈(1130)은 데이터 저장 장치(1140)로부터 물리 특성 및 파라미터를 수신하고 데이터 저장 장치(1145)로부터 비콘으로부터의 CTA 정보를 수신한다. 소프트웨어 모듈(1130)은 MAC 대역폭 관리 커맨드를 소프트웨어 모듈(1150)로부터 수 신하고, 이는 데이터 저장 장치(1155)로부터 수신되는 로컬 큐 길이 정보를 이용하여 대역폭 관리 메시지를 구성하고 데이터 저장 장치로부터(1160) 이전 수퍼프레임으로부터의 MAC 대역폭 요청 응답(큐 정보를 교환하는 비규격 방식으로 사용되는 IEEE 802.15.3 MAC)을 수신한다. 소프트웨어 모듈(1160)은 수퍼프레임 재송신 버퍼(1165)로부터 이전 수퍼프레임으로부터 재송신되는 MSDU를 수신한다. 각 MPDU에는 복수의 MSDU가 있다. 수퍼프레임 재송신 버퍼(1165)는 또한 수신 확인된 MSDU를 버린다. 소프트웨어 모듈(1130)은 다음 수퍼프레임에 대한 업스트림 MPDU용 버퍼인 구성 버퍼(1170)와 통신한다. 구성 버퍼(1170)는 업스트림 MPDU를 수퍼프레임 송신 버퍼(1175)로 전달하고, 이는 업스트림 MPDU를 소프트웨어 모듈(1180)로 전달한다. 수퍼프레임 송신 버퍼(1175)는 또한 업스트림 MPDU를 수퍼프레임 재송신 버퍼(1165)로 전달한다. 소프트웨어 모듈(1180)은 비콘에 기초하여 타이밍을 이용하여 복수의 MSDU를 결집하여 MPDU로 만들고 MPDU를 물리 계층 소프트웨어 모듈(1185)로 전달하여 송신한다. 소프트웨어 모듈은 타임 클록(1190)으로부터 시간을 수신하고 수신 기간 동안 서버(마스터 STB)로부터 지연 ACK를 수신한다. 소프트웨어 모듈(1180)은 송신 데이터, 송신 데이터 레이트, 송신 길이, 송신 전력 레벨 및 송신 안테나 제어를 물리 계층 소프트웨어 모듈(1185)로 전달한다.
원격 DEV에서의 수신 처리가 개략적으로 도 12에 도시되어 있다. 수신 처리는 수퍼프레임을 분해한 후 조각난 프레임을 재조립하는 것을 포함하는 이더넷 프레임 재구성으로 주로 이루어져 있다. 수신측에서는 에러를 체크하고 PNC로 다시 송신하기 위한 DLY ACK(벌크형 ACK)를 준비한다. DLY ACK는 패킷이 도달한 CTA의 반대 방향을 첫 머리로하여 CTA의 시작시에 보내진다. 이는 규격으로부터의 또 다른 이탈이다.
도 12는 비디오 클라이언트(원격 STB)에 연결되어 있는 DEV-x에 대한 하이 레벨 수신 패킷 흐름도이므로 도면의 우측에서 설명을 시작한다. 소프트웨어 모듈(1205)는 PPDU를 수신하고 수신된 데이터, 길이, LQI 및 RSSI를 소프트웨어 모듈(1215)로 전달한다. 소프트웨어 모듈(1215)은 소프트웨어 모듈(1215)로부터 수신 안테나 제어 정보를 수신하고 타임 클록(1210)으로부터 타이밍 정보를 수신한다. 소프트웨어 모듈(1215)은 물리 계층 소프트웨어 모듈(1205)로부터 MPDU를 수신한다. 복수의 MSDU를 각 MPDU로 모은다. 소프트웨어 모듈(1215)은 타임 클록(1210)으로부터 타이밍을 수신한다. 소프트웨어 모듈(1215)은 MPDU 조각을 소프트웨어 모듈(1220)로 전달하고, 이는 HCC 계산을 행하고, 완전한 MSDU 프레임 또는 프래그먼트를 분리하며, 프레임 체크 시퀀스를 처리하고, 정확하게 수신된 MSDU를 계속하여 추적하며, 지연 ACK 요청에 응답하여 지연 ACK를 구성하고, MSDU를 필터링하여 서버로 예정된 정확한 MSDU만이 서버(마스터 STB)로 전달되게 한다. 소프트웨어 모듈은 데이터 저장 장치(1225)로부터 물리 특성 및 파라미터를 수신하고 수신된 MSDU에 대한 지연 ACK를 전달한다. 소프트웨어 모듈(1220)은 비디오 클라이언트(원격 STB)로 예정되지 않은 MSDU를 버리며, MAC 커맨드를 소프트웨어 모듈(1230)로 전달하며, 이는 MAC 관리 메시지를 분리하고 MAC 대역폭 응답을 데이터 저장 장치(1235)로 전달하며 원격 STB로부터의 MSDU ACK를 MSDU 버퍼(1240)로 전달한다. 소프트웨어 모듈(1220)은 MSDU를 소프트웨어 모듈(1245)로 전달하고, 이는 프래그먼트로부터 완전한 MSDU를 재구성하고 불완전한 MSDU의 프래그먼트를 저장하며 적당한 순서로 MSDU를 배치한다. 소프트웨어 모듈(1245)은 재배열 프레임 구성 버퍼(1250)와 통신하며 MSDU 프래그먼트 버퍼(1255)를 수신한다. 소프트웨어 모듈(1245)은 완전한 MSDU를 소프트웨어 모듈(1260)로 전달하고, 여기에서 완전한 MSDU는 우선 순위를 포함하는 이더넷 프레임으로 변환된다. 소프트웨어 모듈(1260)은 또한 포워딩 테이블과 서비스 흐름 정보를 데이터 저장 장치(1265)로부터 수신한다.
도 13를 참고하면, 물리 프리앰블(preamble)과 물리 헤더는 CTA당 하나의 물리 프레임을 구성한다. 원격 STB로의 지연 ACK, 원격 STB로의 큐 상태 정보 요청 및 원격 STB로의 복수의 데이터 패킷은 MAC 헤더가 보호되는 MAC 프레임 컬렉션(collection)을 구성한다. CTA 내의 나머지 시간으로 연결된 상기의 것은 원격 STB로의 PNC에 대한 다운스트림 CTA를 구성한다.
도 14를 참고하면, MAC 페이로드 마다 해당 MAC 헤더가 있다. HCC를 계산하여 MAC 헤더 다음과 MAC 페이로드 전에 삽입한다. FCS를 계산하여 MAC 페이로드 다음에 삽입한다. 이를 MAC 페이로드 마다 행하여 수퍼 MAC 프레임을 생성한다. 수퍼 MAC 프레임 길이는 CTA를 만드는 수퍼 MAC 프레임의 앞에 삽입되는 물리 헤더의 일부이며, CTA를 변조하여 무선으로 송신한다. 물리 헤더는 신뢰할만한 느린 속도로 송신되고 CTA의 수퍼 MAC 부분은 바람직한 속도로 송신된다.
CTA 4, 5 및 6 내의 프레임의 송신은 유사한 방식으로 보내진다. CTA 중 하나에서 보내지는 프레임의 한 예가 도 15에 도시되어 있고, 이는 단일 업스트림 CTA(DEV-x에서 PNC로)를 나타내고 있고, 단일 업스트림 CTA는 물리 프레임, 헤더가 보호되는 MAC 프레임 컬렉션 및 CTA 내의 나머지 시간을 포함한다. 본 발명에 대하여, 많은 업스트림 트래픽이 TCP ACK가 될 것이다. 도 13에 도시한 다운스트림 CTA와 같이, 물리 프레임은 물리 프리앰블과 물리 헤더를 포함한다. MAC 프레임 컬렉션은 PNC로의 지연 ACK, PNC로의 큐 정보 및 PNC로의 데이터 패킷을 포함한다. CTA는 큐 상태 정보를 다시 PNC로 반송하는 프레임을 포함함을 유의하여야 한다. 이 큐 상태 정보는 큐의 크기(가변인 경우), 큐 내의 프레임 수, 프레임의 평균 길이 및 큐 입력시의 프레임 도달 속도를 포함할 수 있다.
본 발명에 대하여, 비디오 스트리밍 패킷(다운스트림)은 TCP를 사용하여 마스터 STB로부터 전송된다고 가정한다. 이 때문에, TCP ACK는 비디오의 반대 방향(업스트림)으로 생성될것이다. 이들 TCP ACK는, 제거된다면, 보다 많은 실 트래픽(즉, 다운스트림 비디오)에 대한 시간을 자유롭게할 수 있는 오버헤드를 부가한다. 또한, TCP에 구축된 흐름 제어 메카니즘 때문에 그리고 (버퍼 및 CTA에 기인한) 무선 브리지에 의해 부가되는 여분의 지연때문에, TCP는 실제 도달하는데 필요한 레이트로 도달하도록 비디오 스트림을 유지할 수 있다.
우선, 문제점이 보다 잘 이해되도록 TCP를 간단히 설명한다. 문제점을 해결하는데 도움이되는 고레벨에서의 몇몇 교차-계층 수정이 제공된다. 마스터 STB 및 원격 STB에 있는 TCP 파라미터를 변경하는 것이 그러한 문제점을 해결하는 또 다른 방법일 수 있지만, 몇번 전술한 바와 같이, 이것은 가능하지 않다고 가정한다.
TCP는 풀-듀플렉스 접속-지향 전송 프로토콜이다. TCP는 데이터 스트림의 세그먼트를 전송한다. UDP는 제공되는 대로 패킷을 전송한다. TCP의 한가지 특징은 신뢰성있는 전달이다. 이것은 TCP ACK를 사용함으로써 보장된다. 이 메카니즘이 인터넷 트래픽에 장점이 있는 것으로 증명되었지만, 신뢰성 있는 전달을 생성하기 위한 이점은 이미 신뢰성이 높은 LAN 상에서는 의문의 여지가 있다. 따라서, TCP ACK는 상당한 오버헤드를 부가한다. 무선과 같은 대역폭이 제한된 네트워크의 경우, 그러한 오버헤드의 단점은 매우 크다.
TCP 인캡슐레이션(Encapsulation)이 도 16에 도시되어 있다. TCP 헤더는 TCP 페이로드에 첨가된다. IP 헤더는 이들 모두에 첨가된다. TCP 페이로드와 TCP 헤더의 결합을 TCP 세그먼트라고도 한다. TCP 세그먼트와 IP 헤더의 결합은 IP 데이터그램이라고도 한다.
IP 헤더 및 TCP 헤더는 도 17 및 도 18에 각각 도시되어 있다. IP 헤더는 수신지 IP 어드레스 및 소스 IP 어드레스를 포함한다. 또한, 자신의 페이로드를 식별하는데 사용되는 프로토콜 번호를 포함한다. TCP의 경우, 이 번호는 17이다. UDP의 경우에는 6이다. TCP 헤더는 수신지 포트 번호와 소스 포트 번호를 포함한다. 포트 번호는 TCP 접속과 관계된 코드 또는 소프트웨어 애플리케이션을 식별하기 위해 각각의 종단에서 장치에 의해 사용된다.
또한, TCP 헤더는 본 발명의 동작에 중요한 몇몇 다른 필드를 포함한다. TCP가 풀 듀플렉스 접속이기 때문에, 각각의 종단은 개별 시퀀스 번호 카운터를 유지한다. 32비트 시퀀스 번호는 바이트 카운터이고, 이 카운터는 나가는 모든 패킷에 대하여 동일한 TCP 접속의 일부인 소스 장치에 의해 증분된다. 헤더는 또한 다 음 바이트가 수신기가 기대하는 것이라는 것을 전송기에 알려주는데 사용되는 32비트 ACK 번호를 포함한다(즉, 수신기는 바이트-1을 통해 성공적으로 수신함). 풀 듀플렉스 TCP 접속의 반대 방향에도 동일한 과정이 뒤따른다.
수신기로부터 전송기로, 수신할 수 있는 최대 세그먼트 크기를 (바이트로) 지시하는 최대 세그먼트 크기(MSS)가 전송된다. 전형적인 TCP MSS는 1024(공통), 536(일단이 타단으로부터 MSS를 수신하지 못할 때의 디폴트), 이더넷 상에서는 1460이다. 디폴트 536은 IP가 576 바이트 패킷(페이로드 및 TCP 및 IP 헤더)의 최대 크기를 핸들링할 수 있어야 한다는 사실을 반영한다. 따라서, 인터넷으로 전송되는 트래픽은 일반적으로 이 번호에 제한된다. 외부 대 내부 라우트는 경로 최대 전달 유닛(maximum transfer unit; MTU) 전달에 의해 결정된다.
체크섬은 TCP 헤더 및 데이터를 커버하고 프레임이 정확하게 수신되었는지를 결정하는데 사용된다. 가장 공통인 옵션 필드는 접속이 성립될 때 전송되는 최대 세그먼트 크기(MSS)이다. ACK 필드는 ACK값이 유효하다는 것을 의미한다.
시퀀스 번호는 선택적 재선송 또는 부정적 ACK없이 슬라이딩 윈도우 프로토콜을 구현하는데 사용된다. 이것은 "Go-Back-N" 방법 또는 "Stop-n-Wait" 방법에 사용될 수 있다. TCP 슬라이딩 윈도우 동작이 도 19에 도시되어 있다. 기본적으로, 임의의 주어진 시간에 "네트워크에는" 제한된 수의 미확인 바이트가 허여된다. 바이트가 확인되면, 윈도우의 트레일링부는 왼쪽으로 이동한다. 윈도우의 선단(leading end)은 바이트가 확인되고 및/또는 보다 큰 윈도우가 통지되면 왼쪽으로 이동한다. 사용가능 윈도우에 남은 바이트 수는 윈도우 크기 및 얼마나 많은 바이트가 이미 전송되었는지에 의존한다. 수신지는 (아마도 수신 버퍼 크기에 기초하여) 수신할 수 있는 바이트 수에 기초하여 윈도우 크기를 설정한다. 슬라이딩 윈도우는 아래에 도시된 공지된 대역폭 지연 곱 제한이 된다.
윈도우 크기(용량)=유효 BW(비트/sec)×라운드 트립 시간(sec)
TCP는 기본적으로 16비트 윈도우 크기만을 갖고, 이는 TCP 수신기가 윈도우 크기를 최대로 설정했을 때를 의하고, 네트워크에서는 단지 64 Kbyte만이 허여된다. 윈도우 크기는 네트워크에서 보다 많은 바이트가 미확인될 수 있도록 하는 스케일링 옵션을 포함하는 것으로 수정되었다. 그러나, 레거시(legacy) 구현 때문에 그리고 "대부분 시간" 동작하기 때문에, 많은 구현예에서는 단지 16비트 슬라이딩 윈도우만을 사용한다. 유한 TCP 슬라이딩 윈도우는 비디오에 필요한 고 대역폭 및 TDMA MAC 무선 브리지에 필요한 지연에 기연하여 목표 애플리케이션에 문제를 일으킬 수 있다.
슬라이딩 윈도우가 예시적 브리징 시스템에 어떻게 부정적 영향을 미치는지 알기 위해, 다음 예를 고려하자. 수퍼프레임의 길이가 5 또는 10으로 고정되고, CTA가 고정되어 있는 경우, 표 1은 몇몇 대표 값을 보여 준다. 표 2는 여기에서 그리고 다른 몇몇 특정 가정(예를 들면, 비디오 패킷 크기)에 도시된 MPDU 집합의 방법을 사용하여 각 CTA 내에서 기대할 수 있는 패킷의 근사치를 나타낸다. 라운드 트립 시간(round trip time; RTT)은 TCP 패킷이 전송될 때부터 단지 그 세그먼트와 관계된 TCP ACK가 수신되는 때가지의 시간이다. 수퍼프레임이 10 msec이면, RTT는 적어도 20 msec이다. 이것은 패킷이 송신 큐에 있고 MAC 레벨에서의 재전송 에 기인하여 실제 더 높을 것이다. 20 Mbps 및 20 msec 지연에서, 슬라이딩 윈도우는 스트림이 의도된 레이트로 전송하도록 적어도 50 Kbyte가 될 것이다. 여분의 버퍼링 및 데이터가 CTA의 시작과 비동기하여 들어온다는 사실에 기인하여 스트림이 본 예에서는 더 느리게 될 가능성이 있다. 또한, TCP 슬라이딩 윈도우는 50 Kbyte보다 어느정도 더 느리게 설정될 수 있다.
[표 1] 수퍼 MAC 크기 및 권장 CTA 길이
[표 2] CTA 당 데이터 프레임의 근사값
또한 몇개의 흥미로운 타임아웃도 있다. 재전송 타임아웃은 RTT의 측정을 기초로 할 수 있지만 전형적으로 500 msec로 설정된다. 재전송 타임아웃은 확인되지 않은 TCP 세그먼트의 재전송을 개시하는데 사용된다. 또 다른 타이머는 때때로 TCP ACK가 송신기로 리턴될 때 지연시키기 위해 사용된다. 이것은 데이터가 페이로드용으로 이용가능하게 되도록 한다. 이 타이머는 전형적으로 200 msec로 설정 되고 본 적용예에 대해서는 RTT를 증가시킬 것이다.
TCP 수신기가 에러가 있는 패킷을 수신하면, 이것을 버리고 전송기가 패킷을 재전송하는 것을 기다린다. TCP 전송기가 타임아웃 주기, 전형적으로 500 msec 내에 ACK를 수신하지 못하면, TCP 전송기는 패킷을 재전송한다. 비디오 스트리밍 애플리케이션에 대하여, 이것은 수신기가 패킷을 사용하기에 너무 늦게 되어 버리게 될 것이다.
"느린 시작"은 TCP의 비교적 더 새로운 특징이다. 이 특징에서, 새로운 패킷이 네트워크에 삽입되어야 하는 레이트는 ACK가 타단에 의해 리턴되는 레이트이다. 이것은 혼잡(congestion) 윈도우로서 공지된 전송기의 TCP에 또 다른 윈도우를 효과적으로 부가한다. 이것은 대부분 라우터를 통해 갈 때 혼잡을 피하기 위해 사용된다.
본 발명에서, TCP AC 오버헤드 및 TCP 윈도 및 혼잡 관리의 영향을 줄이기 위한 두 개의 방법이 있다. 두 개의 방법을 결합하여 세 번째 방법을 형성할 수 있다. 본 발명의 방법은 TCP ACK 처리에 제한된 방식으로 참가하는 MAC 계층을 포함한다. 비디오 스트림 패킷 및 리터닝 ACK는 TCP 접속의 일부로서 식별된다. 동일한 접속(또는 스트림)에 속하는 TCP 패킷은 수신지 IP 어드레스, 소스 IP 어드레스, TCP 소스 포트 번호 및 TCP 수신지 포트 번호에 의해 고유하게 식별될 수 있다. 목표 애플리케이션에 대하여, 동일한 송신 큐 내의 대부분의 패킷은 동일한 TCP 접속에 속할 가능성이 있다. 따라서, 유효한 시퀀스 번호를 갖는 TCP ACK는 TCP 헤더에 있는 ACK 플래그를 봄을써 결정될 수 있다.
제1 방법에서, 원격 브리지 장치와 마스터 브리징 장치로부터 무선 링크를 거쳐 실제 전송되는 TCP ACK의 수를 줄이는 것이 바람직하다. 본 발명은 TDMA MAC을 사용하기 때문에, 원격 STB로부터 마스터 STB로의 전송은 수퍼프레임의 길이에 따라 매 5 또는 10 msec 벌크로 발생한다. 원격 STB/장치로부터 마스터 STB/장치로의 전송에 대해, 원격 STB는 송신 큐 밖의 패킷을 취하고 전송을 위해 일련의 프레임(또는 집합 프레임)으로 수집한다. 본 적용예에서, 이러한 모든 트래픽은 마스터 STB로 의도된 것이다.
원격 브리지 장치는 송신 큐에 있는 프레임의 IP 및 TCP 헤더를 검사하고 동일 TCP 접속으로부터 어떤 TCP ACK가 있는지를 결정한다. 그 후, 그들 패킷에 대해, TCP 헤더에 있는 시퀀스 번호가 판독된다. 그들 패킷에 페이로드가 없다고 가정하면, 원격 브리지 장치는 최고 시퀀스 번호가 모든 하위 시퀀스 번호를 포함하기 때문에 TCP를 통해 최고 시퀀스 번호만을 전송할 필요가 있다. 패킷 중의 하나가 페이로드를 포함하면, 그 특정 패킷은 헤더에 적절한 시퀀스 번호 세트로 리턴되는 것일 수 있다. 하나 이상의 TCP ACK 패킷이 자신의 페이로드에 데이터를 포함하면, 시퀀스 번호가 반복되도록 또한 전송된다. 이것은 송신 큐로부터 모든 리던던트 TCP-ACK-only-packets를 효과적으로 제거할 것이다. 이와 같이 하면, 보다 짧은 CTA가 마스터 장치/STB에 할당된 CTA에 대하여 더 많이 떠나는 원격 장치/STB에 할당되도록 할 수 있고, 따라서 다운스트림 비디오 전송에 더 여러번 할당될 수 있다.
도 20은 원격 브리지 장치에서 실행되는 바와 같이 본 발명의 제1 방법의 고 레벨 플로우차트이다. 2005에서, 원격 브리지 장치는 마스터 브리지 장치로 포워드될 몇몇 TCP ACK를 수신한다. 2010에서 원격 브리지 장치는 페이로드가 없는 인근 TCP ACK들을 TCP ACK의 세트에서 최고 시퀀스 번호를 확인하는 하나의 TCP ACK로 대체하는 송신 큐를 스캐닝한다. 2015에서, 단일 집합 TCP ACK는 CTA 내의 마스터 브리지 장치로 포워드된다. 프로세스는 2005에서 시작해서 반복된다.
이러한 제1 방법은 TCP 송신 ACK의 오버헤드를 감소시키지만, 여전히 TCP 패킷이 TCP 레벨에서 늦게 재전송될 가능성이 있다. TCP 재전송은 상당히 긴 타임아웃에 기초하기 때문에, 이들은 실시간 비디오 스트림용으로는 많이 사용하지 않는다. TCP-레벨 재전송은 많은 비디오 코더-디코더(CODEC)가 에러 소거 기법을 포함하기 때문에 패킷이 약간의 에러를 갖고 정시에 도달하는 것보다 더 심각한 문제를 야기할 수 있다.
본 발명의 제2 방법에서, 마스터 장치/STB로 리턴될 로컬 TCP ACK는 마스터 브리지 장치에 의해 생성된다. 즉, 마스터 장치/STB는 다운스트림 패킷이 원격 장치/STB에 의해 이미 수신되었다고 오인할 것이다. 마스터 장치/STB가 TCP ACK를 수신하기 때문에 그러한 데이터/정보를 재전송하지 않을 것이다. 따라서, 몇몇 이유로 다운스트림 데이터가 에러로 수신되면, 몇몇 MAC레벨 재전송 후에도, 다운스트림 비디오 데이터는 원격 장치/STB로 여전히 포워드된다. 그러나, 지적된 바와 같이, 비디오 스트림에 대하여, "몇몇 에러를 갖고 비교적 정시에"가 "느리면서 정확한" 것보다는 더 바람직하다.
이 방법은 마스터 장치/STB로부터의 모든 트래픽에 대하여 사용될 수 있거나 또는 특정 TCP 접속에만 사용될 수 있다. 어느 경우든, 마스터 브리지 장치는 각각의 TCP 접속을 개별적으로 추적한다. 지적된 바와 같이, TCP 트래픽은 프로토콜 번호에 의해 IP 헤더에서 식별되고 스트림 자체는 소스 및 수신지 IP 어드레스 및 소스 및 수신지 TCP 포트 번호에 의해 고유하게 식별된다.
몇몇 이유로 이 방법은 비디오 스트림 자체에 대하여 사용하는 것이 최상이다. 비디오 스트림 패킷이 원격 장치/STB로 정시에 통과되록 하는 것이 최상이지만, 에러가 있더라도, 다른 빈번하지 않은 데이터 트래픽은 정확하게 도착하도록 할 필요가 있을 수 있다. 또한, 각각의 TCP 접속은 개별적으로 관리될 필요가 있기 때문에, N TCP 접속을 관리하는 것은 각각의 원격 장치/STB에 대한 하나의 TCP 접속을 관리하는 것 보다 N배 이상의 리소스(즉, 데이터 구조 등)를 필요로 한다. 또한, 대부분의 잠재적 효율 증가는 예시적 적용예가 다운스트림 비디오 분배이기 때문에 비디오 스트림에서 이용가능하다. 모든 이러한 것들 때문에, 목표 애플리케이션인 비디오 스트림 접속에 대해 로컬 TCP ACK를 생성하는 것만이 바람직하다.
마스터 브리징 장치는 비디오 스트림을 식별하기 위해 몇몇 방법 중 하나를 사용할 수 있다. 몇몇 애플리케이션에서, STB 및 브리징 장치는 한의 제조자에게서 유래한다. 비디오 분배용으로 사용되는 TCP 포트 번호는 미리(즉, 설계시에 구축) 브리지 장치에 공지될 수 있거나 또는, 직접 또는 네트워크 또는 다른 인터페이스를 통해 브리징 장치에 정보를 수동으로 입력하는 것도 가능하다. 브리징 장치는 서비스 제공자의 네트워크와 직접 통신하는, 아마도 STB와 직접 통신하는 몇몇 다른 방식으로 스트림을 식별하는 것이 가능하다.
마스터 브리징 장치가 자신의 특성으로부터 비디오 스트림을 식별하는 것이 가능하다. (방송사업자로부터의) 대부분의 비디오 스트림은 1-1 Mbps 범위 내에 있다. 고화질 비디오는 15-20 Mbps에 가깝다. 마스터 브리징 장치는 TCP 접속 셋업 패킷을 "스니프(sniff)"한 다음 몇몇 시간 주기(예를 들면, 1초)동안 스트림을 감시한다. 일정한 스트림이 나타나면, 마스터 브리지 장치는 이 방법을 사용하여 개시할 수 있다.
마스터 브리지 장치는 TCP 슬라이딩 윈도우, TCP 시퀀스 번호 및 자신 고유의 송신 큐를 추적한다. TCP 프레임이 마스터 장치/STB로부터 너무 종종 도착하면, 마스터 브리지 장치는 큐 레벨이 떨어질 때까지 TCP ACK를 보류한다. 본 발명의 이러한 방법은 흐름 제어의 일 형태이다.
도 21은 마스터 브리징 장치에서 실행되는 바와 같이 본 발명의 제2 방법의 고레벨 전송 플로우차트이다. 선택적으로, 2105에서 TCP 셋업동안, 마스터 브리지 장치는 최적 세그먼트 크기와 버퍼링 및 CTA에 기인한 시스템 지연을 커버하기에 충분히 큰 TCP 윈도우 크기를 국부적으로 갖는 마스터 장치/STB에 응답한다. 2110에서,마스터 브리지 장치는 마스터 장치/STB로부터 TCP 데이터 세그먼트를 수신한다. 2115에서는 송신 큐가 소정 수의 CTA(예를 들면, 두 개의 CTA)에 대해 충분한 TCP 데이터 세그먼트를 포함하는지를 결정한다. 충분한 TCP 데이터 세그먼트가 있다면, 2110에서 액션이 다시 수행된다. 충분한 TCP 데이터 세그먼트가 없다면, 마스터 브리지 장치는 2120에서 로컬 TCP ACK를 생성하여 마스터 장치/STB로 리턴한 다음 2110에서 액션이 다시 수행된다.
TCP 접속이 풀 듀플렉스 접속이기 때문에, 원격 장치/STB로부터 마스터 장치/STB에 국부적으로 향하는(heading) ACK가 존재한다. 이 경우, 원격 장치/STB는 다운스트림 패킷에 마스터 장치 STB가 수행한 처리를 업스트림 패킷에 동일하게 행한다.
마스터 브리지 장치는 또한 원격 장치/STB로부터 실제 리턴되는 TCP ACK를 인터셉트하여 이들이 마스터 장치/STB로 확실히 전송되지 못하도록 한다. 마스터 브리지 장치는 이들 TCP ACK에 있는 정보를 사용하여 원격 장치/STB가 들어오는 패킷을 처리하는 것과 관련하여 있는 곳을 결정한다. 대안으로, TCP ACK는 원격 브리지 장치에 의해 인터셉트되고 원한다면 요약 리포트가 마스터 브리지 장치로 포원드된다. 원격 브리지 장치가 인터셉트된 TCP ACK를 버리는 것도 가능하다.
도 22는 마스터 브리지 장치에서 원격 TCP ACK를 포워딩하는 고레벨 플로우차트이다. 2205에서, 마스터 브리지 장치는 원격 장치/STB로부터 (페이로드없는) TCP ACK를 수신한다. 2210에서 테스트를 수행하여 수신된 데이터 세그먼트가 이미 확인되었는지를 결정한다. 데이터 세그먼트가 이미 확인되었다면, TCP ACK는 2215에서 소거되고 처리는 2205에서 시작해서 반복된다. 데이터 세그먼트가 아직 확인되지 않았다면, 2220에서 단일 TCP ACK가 마스터 장치/STB로 포워드된다.
원격 브리지 장치는 MAC 레벨에서 몇번 전송된 패킷을 인식한다. 패킷은 늦어질 수 있고 원격 브리지 장치에서 최종적으로 수신되면 에러가 있을 수 있다. 어느 경우든, 어느 바이트가 수신되고 확인되었는지를 원격 장치/STB가 또한 추적하기 때문에, 데이터 세그먼트는 원격 장치/STB로 여전히 포워드된다.
도 23은 원격 브리지 장치에서 실행되는 바와 같이 본 발명의 제2 방법의 고레벨 플로우차트이다. 2305에서, 원격 브리지 장치는 마스터 브리지 장치로부터 (페이로드없는) TCP 데이터 세그먼트를 수신한다. 2310에서 테스트를 실행하여 프레임이 정확한지(프레임이 프레임 체크 시퀀스를 통과했는지)를 결정한다. 프레임이 정확하다면, 프레임은 2315에서 원격 장치/STB로 포워드되고 프로세스는 2305에서 시작하여 반복된다. 프레임이 정확하지 않다면, 2320에서 또 다른 테스트를 실행하여 이것이 재전송을 위해 MAC 계층에 의한 최종 시도(5번째 시도)인지를 결정한다. 이것이 최종 시도가 아니라면, 프로세스는 2305에서 시작하여 반복된다. 이것이 최종 시도라면, 2325에서 새로운 프레임 체크 시퀀스를 계산하여 데이터를 정합시키고 새로운 TCP 프레임이 구성된다. 새로운 이 프레임은 정확하게 보이지만 악성/부정확 데이터를 갖고 빈번하지 않게 발생해야 한다.
본 발명의 제2 방법의 장점은 패킷이 확인되었다고 소스가 오인하게 하는 능력이다. 이에 의해, 통신 경로에 보다 많은 패킷이 있을 수 있고 윈도우 및 결과의 평균 비트 레이트를 효과적으로 길게 할 수 있다. 이러한 평큔 비트 레이트는 자연적인 비디오의 스트리밍 레이트 이상으로 유지되어야 한다.
제3 방법은 전술한 두 개의 방법을 결합한 것이다. TCP ACK는 제2 방법에서와 같이 브리지 장치(마스터 또는 원격) 중 하나에 의해 국부적으로 생성되지만, 원격 STB에 의해 리턴되는 TCP ACK는 제1 방법에서 설명한 바와 같이 결합된다.
고품위 비디오 분배 애플리케이션에 맞도록 하나의 마스터와 세 개의 원격 장치를 갖는 무선 브리징 시스템을 위주로 설명하였지만, 전술한 본 발명의 상기 방법이 범용 무선 CSMA 또는 TDAM MAC과 나아가 공통 매체(예를 들어, 전력선) 상에서 동작하는 유선 MAC에까지 확장될 수 있음은 당업자에게 명백하다.
본 발명은 하드웨어, 소프트웨어, 펌웨어, 특수 목적 처리기 또는 이들의 조합의 여러 형태로 구현될 수 있음을 이해할 것이다. 본 발명은 하드웨어와 소프트웨어의 조합으로 구현되는 것이 바람직하다. 또한, 소프트웨어는 프로그램 저장 장치 상에서 실재로 구체화되는 애플리케이션 프로그램으로 구현되는 것이 바람직하다. 애플리케이션 프로그램은 적절한 임의의 구조를 갖는 기계로 업로드되어 실행될 수 있다. 기계는 하나 이상의 중앙 처리 장치(CPU), 랜덤 액세스 메모리(RAM), 입출력(I/O) 인터페이스와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현되는 것이 바람직하다. 컴퓨터 플랫폼은 또한 운영 체제 및 마이크로 명령어 코드를 포함한다. 여기서 설명하는 다양한 처리 및 기능은 마이크로 명령어 코드의 일부이거나 애플리케이션 프로그램의 일부(또는 이들의 조합)일 수 있으며, 이는 운영 체제를 통하여 실행된다. 또한, 부가적인 데이터 저장 장치와 프린트 장치와 같은 여러 다른 주변 장치가 컴퓨터 플랫폼에 연결되어 있을 수 있다.
첨부한 도면에 도시한 시스템 구성 요소와 방법의 단계는 일부는 소프트웨어로 구현되는 것이 바람직하므로, 시스템 구성 요소(또는 처리 단계) 사이의 실제 연결 관계는 본 발명이 프로그래밍되는 방식에 따라 또한 다를 수 있음을 유의하여 한다. 당업자는 여기서의 기재로 인하여 본 발명의 이러한 그리고 유사한 구현 또는 구성을 고려할 수 있을 것이다.
Claims (32)
- ACK(acknowledgement)를 관리하는 방법으로서,접속하여 데이터 패킷과 ACK를 식별하는 단계,상기 ACK 중 어느 것이 제거될 수 있는지 결정하는 단계,제거될 수 있는 상기 ACK를 단일 ACK로 대체하는 단계, 및상기 단일 ACK를 전송하는 단계를 포함하는 ACK 관리 방법.
- 제1항에 있어서,상기 식별하는 단계는 송신 큐에 있는 헤더를 검사하는 단계를 더 포함하는 ACK 관리 방법.
- 제2항에 있어서,상기 검사하는 단계는 상기 헤더에 있는 플래그를 검사하는 단계를 더 포함하는 ACK 관리 방법.
- 제2항에 있어서,상기 결정하는 단계는 어떤 ACK가 공통 접속으로부터 유래하는 것인지를 결정하는 단계를 더 포함하는 ACK 관리 방법.
- 제4항에 있어서,상기 헤더에 있는 시퀀스 번호를 판독하는 단계를 더 포함하는 ACK 관리 방법.
- 제5항에 있어서,상기 단일 ACK는 확인되는 상기 데이터 패킷 중 최고 시퀀스 번호를 갖는 ACK 관리 방법.
- 제1항에 있어서,전송될 페이로드(payload) 패킷이 있는지를 결정하는 단계, 및상기 페이로드 패킷에 상기 단일 ACK를 전송하는 단계를 더 포함하는 ACK 관리 방법.
- 제1항에 있어서,상기 접속은 TCP 접속인 ACK 관리 방법.
- 제1항에 있어서,상기 ACK는 TCP ACK이고 상기 단일 ACK는 하나의 TCP ACK인 ACK 관리 방법.
- ACK를 관리하는 방법으로서,데이터 세그먼트를 수신하는 단계,접속을 추적하는 단계,미리정한 수의 채널 시간 할당에 대해 충분한 데이터 세그먼트가 있는지를 결정하는 단계, 및상기 미리정한 수의 채널 시간 할당에 대해 충분한 데이터 세그먼트가 있다면 선택된 접속에 대해 상기 ACK를 생성하는 단계를 포함하는 ACK 관리 방법.
- 제10항에 있어서,프레임이 너무 빈번하게 도달한다면 ACK를 보류하는 단계를 더 포함하는 ACK 관리 방법.
- 제10항에 있어서,원격 장치에 의해 포워딩되는 세그먼트 ACK를 인터셉트하는 단계,상기 세그먼트가 이미 확인된 것인지를 결정하는 단계,상기 세그먼트가 이미 확인된 것이라면 상기 세그먼트 ACK를 버리는 단계, 및상기 세그먼트가 이미 확인된 것이 아니라면 상기 세그먼트 ACK를 포워딩하는 단계를 더 포함하는 ACK 관리 방법.
- 제10항에 있어서,요약 리포트를 수신하는 단계를 더 포함하는 ACK 관리 방법.
- 제10항에 있어서,상기 접속은 TCP 접속인 ACK 관리 방법.
- 제10항에 있어서,상기 ACK는 TCP ACK인 ACK 관리 방법.
- 제10항에 있어서,상기 ACK를 단일 ACK로 수집하는 단계를 더 포함하는 ACK 관리 방법.
- ACK를 관리하는 장치로서,접속하여 데이터 패킷과 ACK를 식별하는 수단,상기 ACK 중 어느 것이 제거될 수 있는지 결정하는 수단,제거될 수 있는 상기 ACK를 단일 ACK로 대체하는 수단, 및상기 단일 ACK를 전송하는 수단를 포함하는 ACK 관리 장치.
- 제17항에 있어서,상기 식별하는 수단은 송신 큐에 있는 헤더를 검사하는 수단을 더 포함하는 ACK 관리 장치.
- 제18항에 있어서,상기 검사하는 수단은 상기 헤더에 있는 플래그를 검사하는 수단을 더 포함하는 ACK 관리 장치.
- 제18항에 있어서,상기 결정하는 수단은 어떤 ACK가 공통 접속으로부터 유래하는 것인지를 결정하는 수단을 더 포함하는 ACK 관리 장치.
- 제20항에 있어서,상기 헤더에 있는 시퀀스 번호를 판독하는 수단을 더 포함하는 ACK 관리 장치.
- 제21항에 있어서,상기 단일 ACK는 확인되는 상기 데이터 패킷 중 최고 시퀀스 번호를 갖는 ACK 관리 장치.
- 제17항에 있어서,전송될 페이로드 패킷이 있는지를 결정하는 수단, 및상기 페이로드 패킷에 상기 단일 ACK를 전송하는 수단를 더 포함하는 ACK 관리 장치.
- 제17항에 있어서,상기 접속은 TCP 접속인 ACK 관리 장치.
- 제17항에 있어서,상기 ACK는 TCP ACK이고 상기 단일 ACK는 하나의 TCP ACK인 ACK 관리 장치.
- ACK를 관리하는 장치로서,데이터 세그먼트를 수신하는 수단,접속을 추적하는 수단,미리정한 수의 채널 시간 할당에 대해 충분한 데이터 세그먼트가 있는지를 결정하는 수단, 및상기 미리정한 수의 채널 시간 할당에 대해 충분한 데이터 세그먼트가 있다면 선택된 접속에 대해 상기 ACK를 생성하는 수단을 포함하는 ACK 관리 장치.
- 제26항에 있어서,프레임이 너무 빈번하게 도달한다면 ACK를 보류하는 수단을 더 포함하는 ACK 관리 장치.
- 제26항에 있어서,원격 장치에 의해 포워딩되는 세그먼트 ACK를 인터셉트하는 수단,상기 세그먼트가 이미 확인된 것인지를 결정하는 수단,상기 세그먼트가 이미 확인된 것이라면 상기 세그먼트 ACK를 버리는 수단, 및상기 세그먼트가 이미 확인된 것이 아니라면 상기 세그먼트 ACK를 포워딩하는 수단을 더 포함하는 ACK 관리 장치.
- 제16항에 있어서,요약 리포트를 수신하는 단계를 더 포함하는 ACK 관리 방법.
- 제16항에 있어서,상기 접속은 TCP 접속인 ACK 관리 방법.
- 제26항에 있어서,상기 ACK는 TCP ACK인 ACK 관리 장치.
- 제26항에 있어서,상기 ACK를 단일 ACK로 수집하는 수단을 더 포함하는 ACK 관리 장치.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2006/048619 WO2009105053A2 (en) | 2006-12-20 | 2006-12-20 | Improving throughput in a lan by managing tcp acks |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100014274A true KR20100014274A (ko) | 2010-02-10 |
Family
ID=40986080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097012868A KR20100014274A (ko) | 2006-12-20 | 2006-12-20 | Tcp ack들을 관리하여 lan에서의 쓰루풋 향상 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20110044338A1 (ko) |
EP (1) | EP2116001A4 (ko) |
JP (1) | JP2010522468A (ko) |
KR (1) | KR20100014274A (ko) |
CN (1) | CN101971590A (ko) |
WO (1) | WO2009105053A2 (ko) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189307B2 (en) | 2004-08-06 | 2015-11-17 | LiveQoS Inc. | Method of improving the performance of an access network for coupling user devices to an application server |
US7953114B2 (en) | 2004-08-06 | 2011-05-31 | Ipeak Networks Incorporated | System and method for achieving accelerated throughput |
US8009696B2 (en) | 2004-08-06 | 2011-08-30 | Ipeak Networks Incorporated | System and method for achieving accelerated throughput |
US9647952B2 (en) | 2004-08-06 | 2017-05-09 | LiveQoS Inc. | Network quality as a service |
JP5258307B2 (ja) * | 2007-01-19 | 2013-08-07 | パナソニック株式会社 | 無線通信方法および無線通信装置 |
KR20080069524A (ko) * | 2007-01-23 | 2008-07-28 | 삼성전자주식회사 | 무선 네트워크에서 데이터를 송수신하는 방법 및 장치 |
US8544046B2 (en) * | 2008-10-09 | 2013-09-24 | Packetvideo Corporation | System and method for controlling media rendering in a network using a mobile device |
WO2011052201A1 (ja) | 2009-11-02 | 2011-05-05 | パナソニック株式会社 | 通信端末および通信方法 |
US20120028712A1 (en) * | 2010-07-30 | 2012-02-02 | Britesmart Llc | Distributed cloud gaming method and system where interactivity and resources are securely shared among multiple users and networks |
US10951743B2 (en) | 2011-02-04 | 2021-03-16 | Adaptiv Networks Inc. | Methods for achieving target loss ratio |
US9590913B2 (en) | 2011-02-07 | 2017-03-07 | LiveQoS Inc. | System and method for reducing bandwidth usage of a network |
US8717900B2 (en) | 2011-02-07 | 2014-05-06 | LivQoS Inc. | Mechanisms to improve the transmission control protocol performance in wireless networks |
CN102761905B (zh) * | 2011-04-26 | 2016-03-30 | 华为技术有限公司 | 消息处理方法、设备及*** |
CN102420684B (zh) * | 2011-11-04 | 2014-11-05 | 展讯通信(上海)有限公司 | Tcp数据流的处理方法以及通信设备 |
US9025475B1 (en) * | 2012-01-16 | 2015-05-05 | Amazon Technologies, Inc. | Proactively retransmitting data packets in a low latency packet data network |
GB2500373A (en) * | 2012-03-13 | 2013-09-25 | Ibm | Object caching for mobile data communication with mobility management |
WO2014067042A1 (en) * | 2012-10-29 | 2014-05-08 | Qualcomm Incorporated | Combined transmission of multiple-priority network traffic |
US9537792B2 (en) * | 2013-08-30 | 2017-01-03 | Qualcomm Incorporated | Channel loading for one-to-many communications in a network |
US20150071273A1 (en) * | 2013-09-11 | 2015-03-12 | Celeno Communications (Israel) Ltd. | Efficient transfer of tcp traffic over wlan |
CN104734836A (zh) * | 2013-12-23 | 2015-06-24 | 中兴通讯股份有限公司 | 传输确认信息的发送方法和*** |
WO2015196393A1 (zh) * | 2014-06-25 | 2015-12-30 | 华为技术有限公司 | 一种数据传输方法及设备 |
JP6340962B2 (ja) * | 2014-07-07 | 2018-06-13 | 富士通株式会社 | バス制御装置、データ転送システム、及びバス制御方法 |
JP2017038297A (ja) * | 2015-08-12 | 2017-02-16 | キヤノン株式会社 | 通信装置、通信方法、及び通信システム |
US10523895B2 (en) | 2016-09-26 | 2019-12-31 | Samsung Display Co., Ltd. | System and method for electronic data communication |
US10075671B2 (en) | 2016-09-26 | 2018-09-11 | Samsung Display Co., Ltd. | System and method for electronic data communication |
US10469857B2 (en) | 2016-09-26 | 2019-11-05 | Samsung Display Co., Ltd. | System and method for electronic data communication |
US10616383B2 (en) * | 2016-09-26 | 2020-04-07 | Samsung Display Co., Ltd. | System and method for electronic data communication |
CN107959554B (zh) * | 2016-10-14 | 2019-08-20 | ***通信有限公司研究院 | 一种数据的重传方法及装置 |
US11144226B2 (en) | 2019-04-11 | 2021-10-12 | Samsung Electronics Co., Ltd. | Intelligent path selection and load balancing |
US10523233B1 (en) * | 2019-04-26 | 2019-12-31 | Cattron Holdings, Inc. | Membrane digital analog switches |
US10887432B2 (en) * | 2019-05-20 | 2021-01-05 | Google Llc | Trip time estimation for transport control protocol |
US12028749B2 (en) * | 2019-05-23 | 2024-07-02 | Lg Electronics Inc. | Transmission device and reception device for data in wireless AV system |
US11216190B2 (en) * | 2019-06-10 | 2022-01-04 | Samsung Electronics Co., Ltd. | Systems and methods for I/O transmissions in queue pair-based NVMeoF initiator-target system |
US11240294B2 (en) | 2019-08-23 | 2022-02-01 | Samsung Electronics Co., Ltd. | Systems and methods for spike detection and load balancing resource management |
CN110505641B (zh) * | 2019-08-28 | 2021-07-20 | 西南大学 | 利用全双工UART通信提高ZigBee主从通信轮询效率的方法及其协调器 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06132981A (ja) * | 1992-10-15 | 1994-05-13 | Hitachi Ltd | パケット送信方式 |
US6701370B1 (en) * | 1994-06-08 | 2004-03-02 | Hughes Electronics Corporation | Network system with TCP/IP protocol spoofing |
AU706160B2 (en) * | 1994-06-08 | 1999-06-10 | Hughes Electronics Corporation | Apparatus and method for hybrid network access |
US6185197B1 (en) * | 1995-06-02 | 2001-02-06 | Airspan Networks, Inc. | Control message transmission in telecommunications systems |
JP4601888B2 (ja) * | 2000-03-30 | 2010-12-22 | 三菱電機株式会社 | エレベーターの通信制御装置及び通信制御方法 |
US6894974B1 (en) * | 2000-05-08 | 2005-05-17 | Nortel Networks Limited | Method, apparatus, media, and signals for controlling packet transmission rate from a packet source |
JP3730480B2 (ja) * | 2000-05-23 | 2006-01-05 | 株式会社東芝 | ゲートウェイ装置 |
US6990098B1 (en) * | 2000-09-11 | 2006-01-24 | Sun Microsystems, Inc. | Reliable multicast using merged acknowledgements |
JP2003131975A (ja) * | 2001-10-24 | 2003-05-09 | Matsushita Electric Ind Co Ltd | ストリーミング配信システム及び情報端末 |
JP2003224546A (ja) * | 2002-01-29 | 2003-08-08 | Sony Corp | 通信システム、データ受信方法およびデータ通信端末 |
US7630305B2 (en) * | 2003-07-29 | 2009-12-08 | Orbital Data Corporation | TCP selective acknowledgements for communicating delivered and missed data packets |
US7315515B2 (en) * | 2003-09-30 | 2008-01-01 | Conexant Systems, Inc. | TCP acceleration system |
JP4558739B2 (ja) * | 2003-10-28 | 2010-10-06 | 株式会社エヌ・ティ・ティ・ドコモ | マルチキャストサービスを提供する方法 |
KR101042813B1 (ko) * | 2004-02-17 | 2011-06-20 | 삼성전자주식회사 | 시분할 듀플렉싱 이동 통신 시스템에서 상향 방향 전송증대를 위한 데이터 수신 여부 정보를 전송하는 방법 |
US7908623B2 (en) * | 2004-05-12 | 2011-03-15 | Matrox Electronic Systems Ltd. | Set top box for PC/HDTV multimedia center |
JP4364763B2 (ja) * | 2004-09-30 | 2009-11-18 | 京セラ株式会社 | データ通信装置 |
JP4063282B2 (ja) * | 2005-02-08 | 2008-03-19 | 日本電気株式会社 | パケット通信装置及びパケット通信方法及びパケット通信プログラム |
JP4627669B2 (ja) * | 2005-03-16 | 2011-02-09 | アラクサラネットワークス株式会社 | パケット転送装置およびその転送制御方式 |
JP2006279867A (ja) * | 2005-03-30 | 2006-10-12 | Nec Access Technica Ltd | Adsl通信装置、プログラム及び方法 |
KR100651469B1 (ko) * | 2005-10-07 | 2006-11-29 | 삼성전자주식회사 | 비대칭 무선 네트워크 환경에서의 tcp의 ack피기배킹을 이용한 데이터 전송률을 향상시킬 수 있는방법과 그 단말 및 시스템 |
-
2006
- 2006-12-20 US US12/312,950 patent/US20110044338A1/en not_active Abandoned
- 2006-12-20 CN CN200680056686XA patent/CN101971590A/zh active Pending
- 2006-12-20 EP EP06852057A patent/EP2116001A4/en not_active Withdrawn
- 2006-12-20 WO PCT/US2006/048619 patent/WO2009105053A2/en active Application Filing
- 2006-12-20 KR KR1020097012868A patent/KR20100014274A/ko not_active Application Discontinuation
- 2006-12-20 JP JP2009554495A patent/JP2010522468A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP2116001A2 (en) | 2009-11-11 |
CN101971590A (zh) | 2011-02-09 |
JP2010522468A (ja) | 2010-07-01 |
US20110044338A1 (en) | 2011-02-24 |
WO2009105053A3 (en) | 2010-02-25 |
EP2116001A4 (en) | 2013-04-03 |
WO2009105053A2 (en) | 2009-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100014274A (ko) | Tcp ack들을 관리하여 lan에서의 쓰루풋 향상 | |
KR101303513B1 (ko) | Tdma mac 계층에서의 적응형 시간 할당 | |
JP4813602B2 (ja) | 時分割多重アクセス媒体アクセス制御層における媒体アクセス制御プロトコル・データ単位集積 | |
US6574668B1 (en) | Retransmission scheme in wireless computer networks | |
US9554177B2 (en) | Systems and methods for retransmitting packets over a network of communication channels | |
US20060062192A1 (en) | Method for wireless access system supporting multiple frame types | |
US20070234170A1 (en) | Method and system for communication of video information over wireless channels | |
US7881271B2 (en) | Wireless LAN system and its broadcasting station | |
US7355976B2 (en) | Method and apparatus for providing retry control, buffer sizing and management | |
US20100124189A1 (en) | Method for transmitting data packets and conrreponding reception method | |
US8364832B2 (en) | Data segregation and fragmentation in a wireless network for improving video performance | |
JP4953965B2 (ja) | 通信システム、通信装置およびパケット伝送方法 | |
JP2013013093A (ja) | Tcpackの管理によるlanにおけるスループット改善 | |
US7450512B1 (en) | Recirculating retransmission queuing system and method | |
Zhushi | Cross-Layer Techniques for Efficient Medium Access in Wi-Fi Networks | |
Radio | 4.1 Extending the Differentiated Service Framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E601 | Decision to refuse application |