Transcript chap7(3)
7장 목차
7.1 멀티미디어 네트워킹 응용
7.2 스트리밍 저장 오디오 및
비디오
7.3 최선형 서비스를 최대로
활용하기
7.4 실시간 대화형 응용
프로토콜
7.5 다양한 서비스
클래스 제공
7.6 QoS 보장
7-1
실시간 대화식 응용
PC-2-PC 전화
Skype
PC-2-phone
Dialpad
Net2phone
Skype
화상 회의
Skype
Polycom
PC-2-PC 인터넷 전화를
예로 하여 설명한다.
7-2
대화식 멀티미디어: 인터넷 전화
통화자의 음성은 말하는 구간(talk spurt)과 묵음 구간
(silent period)이 반복된다.
말하는 구간은 64 kbps
패킷은 말하는 구간에서 생성된다.
20 msec마다 패킷(chunk)을 만들어서 전송
• 8 Kbytes/sec이므로 패킷의 길이는 160 bytes
응용 계층은 패킷(chunk)에 헤더를 첨가
chunk+header는 UDP datagram으로 캡슐화된다.
응용 계층은 말하는 구간에서는 매 20msec 마다 UDP
datagram을 socket으로 전달한다.
7-3
인테넷 전화: 패킷 손실과 지연
네트워크에서 손실: IP datagram은 네트워크
체증으로 손실 발생( 라우터 버퍼 오버플로우)
지연 손실: IP datagram은 수신자가 재생하는데 너무
늦게 도착한다.
최대 허용 지연 시간: 400 ms
손실 허용치: 인코딩 방식과 손실 처리 방법에 따라서
1%에서 10% 사이의 패킷 손실은 허용될 수 있다.
7-4
지연 변이(Delay Jitter)
variable
network
delay
(jitter)
client
reception
constant bit
rate playout
at client
buffered
data
constant bit
rate
transmission
client playout
delay
time
두 개의 연속되는 패킷의 end-to-end delay가
20msec 보다 적을 수도 있고 클 수도 있다.
7-5
인터넷 전화: 고정 재생 지연
수신자는 패킷이 생성되고 정확히 q msec 후에
재생을 하려고 한다.
패킷의 타임스탬프: t
패킷의 재생 시간: t+q .
패킷이 t+q이 지나서 도착하면 재생하기에 너무
늦게 도착: 손실과 마찬가지
q의 선택:
q가 크면: 패킷의 손실은 줄어든다.
q가 작으면: 더 좋은 대화가 가능하다.
• q <150msec : 대화자가 감지 못함
• 150 <q < 400msec : 대화자가 참을 정도
• q > 400msec : 대화를 방해할 정도
7-6
고정 재생 지연
• 송신자는 말하는 구간에서 매 20msec마다 패킷을 발생
packets
• 첫번째 패킷은 시간 r에 도착
• 두 가지 재생 스케쥴을 비교
•만약 재생을 시간 p에 시작한다면,
•만약 재생을 시간 p’에 시작한다면,
loss
packets
generated
packets
received
playout schedule
p' - r
playout schedule
p-r
time
r
p
p'
7-7
적응 재생 지연(1)
목표: 재생 지연을 최소화, 손실율을 낮춘다.
접근 방법: 재생 지연 시간을 조절한다:
네트워크 지연을 측정하여 각 말하는 구간이 시작될 때 재생 지연
시간을 조절한다.
묵음 구간을 늘리거나 줄일 수 있다.
하지만 말하는 구간에서 패킷은 여전히 20msec 마다 재생된다.
t i timestampof theith packet
ri the timepacketi is receivedby receiver
p i the timepacketi is playedat receiver
ri t i networkdelay for ith packet
d i estimateof averagenetworkdelay afterreceivingith packet
수신 지점에서 평균 지연 시간의 동적인 예측:
di (1 u)di 1 u(ri ti )
u 는 고정 상수(예, u = .01).
7-8
적응 재생 지연(2)
지연 시간의 평균 변이(delay variation)의 예측치, vi :
vi (1 u)vi 1 u | ri ti di |
매번 도착하는 패킷에 대해서 di , vi 를 계산
(하지만 말하는 구간이 시작할 때만 이 계산을 사용)
말하는 구간의 첫 번째 패킷에 대해서 재생 지연 시간:
pi ti di Kvi
K는 양의 상수
동일 말하는 구간에 도착하는 패킷에 대해서는 규칙적으로 재생한다.
7-9
적응 재생 지연(3)
질문: 어떻게 수신자는 말하는 구간이 시작되는 것을 알
수 있는가?
손실이 없다면, 수신자는 연속적인 타임스탬프를 본다.
타임스탬프의 차이 > 20 msec -->말하는 구간이 시작.
손실이 있다면, 수신자는 타임스탬프와 일련 번호를
같이 본다.
타임스탬프의 차이 > 20 msec 그리고 일련 번호에 갭이 없다면
--> 말하는 구간이 시작
7-10
패킷 손실의 복구(1)
Forward Error Correction
재생 지연: 모든 n+1 패킷을
(FEC): 간단한 방법
받기 위해 걸리는 시간
n개의 패킷으로 구성된 매
tradeoff:
그룹 마다 그룹을 구성하는
n을 증가시키면
패킷들을 exclusive OR
• 대역의 소비는 감소,
연산을 한 중복(redundant)
하지만 재생 지연 시간은
패킷을 만든다.
증가
• 2개 이상의 패킷이
n+1 패킷을 보내는 것은
손실될 확률이 증가
대역을 1/n 만큼 더 사용
1개의 패킷이 손실되었다면
n+1 패킷으로부터 원래의
n개의 패킷을 재구성할 수
있다.(위치는?)
7-11
패킷 손실의 복구(2)
2nd FEC 방법
“저품질의 오디오
스티림을 껴 붙인다
(piggyback)”
저품질 오디오 스트림을
중복 정보로 보낸다.
예, 64kbps의 PCM
스트림에 13kbps의 GSM
스트림을 중복해서
보낸다.
연속적인 손실이 있지않다면 수신자는 손실을 회복할 수 있다.
또한 바로 앞의 두 개 저품질 오디오 패킷을 붙일 수도 있다.
7-12
패킷 손실의 복구(3)
인터리빙(interleaving)
패킷을 더 작은 단위로
분해한다.
예를 들면, 한 패킷을 4개의 5
msec 길이의 단위로 분해
다른 패킷의 단위로 전송할
패킷을 만든다.
패킷이 손실되더라도 실제
패킷의 대부분의 단위들은
제대로 도착했다.
중복으로 인한 오버헤드가
없다. 하지만 재생 지연 시간이
길어진다.
7-13
컨텐츠 분배 네트워크 (CDNs)
컨텐츠 복사
하나의 서버로 부터 커다란
스트림 파일(예, 비디오)을
실시간으로 전송하는 문제
해법: 컨텐츠를 수백개의 서버에
복사하여 저장
컨텐츠는 미리 CDN 서버에
다운로드한다.
컨텐츠를 사용자에 가까운
위치에 저장하여 긴 경로를
통해 전송할 경우 발생할 수
있는 손실과 지연을 줄인다.
CDN 서버는 네트워크의 경계
혹은 엑세스 네트워크에
위치한다.
origin server
in North America
CDN distribution node
CDN server
in S. America CDN server
in Europe
CDN server
in Asia
7-14
컨텐츠 분배 네트워크(CDNs)
컨텐츠 복사
CDN (예, Akamai) 고객은
컨텐츠 제공자이다(예,
CNN)
CDN은 고객의 컨텐츠를
CDN 서버에 복사한다.
컨텐츠 제공자가 컨텐츠를
업데이트할 때 CDN은
서버를 업데이트한다.
origin server
in North America
CDN distribution node
CDN server
in S. America CDN server
in Europe
CDN server
in Asia
7-15
CDN 예
HTTP request for
www.foo.com/sports/sports.html
1
2
client
3
origin server
DNS query for www.cdn.com
CDN’s authoritative
DNS server
HTTP request for
www.cdn.com/www.foo.com/sports/ruth.gif
CDN server near client
원래 서버 (www.foo.com)
HTML을 보낼 때
http://www.foo.com/sports.ruth.gif
를 다음으로 대체
http://www.cdn.com/www.foo.com/sports/ruth.gif
CDN 회사 (cdn.com)
gif 파일을 분산
DNS 서버가 요청
경로를 바꾼다.
7-16
CDN
routing 라우팅 요청
CDN은 “map”을 작성하여 여기에 지역(leaf) ISP와
CDN 노드와의 거리를 명시한다.
요청이 authoritative DNS server에 도착하면:
서버는 요청이 발생한 ISP를 결정한다.
map을 사용하여 최적의 CDN 서버를 결정한다.
CDN 노드는 응용 계층 위에서 오버레이 네트워크를
구성한다.
7-17
요약: 멀티미디어 응용을 위한 여러 방안들
UDP 사용: TCP 체증 제어로 인한 지연을 회피한다.
Client는 적응 재생 지연 사용: 지연의 영향을 줄인다.
Server는 client로 전송되는 경로에 상황에 따라
스트림 대역을 조절한다.
인코딩 방법 중에서 대역에 적절한 것을 선택
동적인 인코딩 방법 사용
에러 복원 (UDP 위에서)
FEC, 인터리빙, 에러 감추기
지연 시간이 허용된다면 재전송
CDN: 컨텐츠를 사용자에게 가깝게 위치시킨다.
7-18