오늘은 DSP 통해 인코딩된 보이스 Payload 어떻게 패킷화 되는지를 좀더 알아 보도록 하겠습니다.

앞서 칼럼에서 알아본 처럼 DSP 적용되는 코덱 알고리즘에 따라 코덱의 종류별로 보이스의 인코딩 타임은 다릅니다.

 

예를 들면 G.711 G.729   10ms 이고 G.723 30ms 입니다.

 

, DSP 통해 하나의 보이스 프레임 아웃풋이 나오기까지 그만큼의 시간이 소요 되는 이지요.이때 이러한 보이스 프레임을 어떻게 패킷화 하느냐에 따라 보이스 트래픽의 소모 밴드위드 네트워크 지연시간(Delay time) 달라 집니다.

 

아래 그림을 보시죠.


                                                                   <그림1>

 

  <그림2>

 

 

<그림1> G.711코덱을 사용했을 경우에서  Payload  값의 변화에 따른 차이를 보여 줍니.위에 있는 트럭 그림이 디폴트 경우 입니다.

DSP 에서 10ms 마다 생성되는 보이스 프레임을 2개를 모아서 패킷화 한것입니다. 경우 20ms 마다 패킷이 생성되고 Payload 160Byte 됩니다.(G.711 초당 64Kbps ,8000 Byte 이므로 20ms 160Byte 됩니다.)

 

IP 네트워크를 통해 이러한 보이스 프레임을 전달하기 위해서는 RTP,UDP,IP  그리고 사용하는 미디어 타입에 따른 데이터 링크 레이어 헤더 정보가 필요 합니다.

 

그림에서 헤더가 58Byte 보여지는 것은 이더넷일 경우를 가정한 입니다., 패킷 마다 RTP 헤더 12 Byte + UDP 헤더 8Byte + IP 헤더 20Byte + 이더넷 헤더 18 Byte = 58 Byte 붙게 됩니다.이러한 패킷이 패킷화 타임이 20ms 라면 초당 50 전송 됩니다.따라서 G.711 경우 필요한 밴드위드는 Payload (64Kbps) + Overheader ( 23.2Kbps) = 87.2Kbps 됩니다. (<그림2> 계산 수식 참조)

 

<그림1> 아래 트럭 그림은 Payload 사이즈를 보다 60 ms 만큼 모아서 늘렸을 경우 입니.

 

경우는 60ms 이므로 DSP 보이스 프레임 아웃풋을 6(80Byte *6 = 480 Byte) 모으 됩니다.따라서 60ms 마다 패킷화가 이루어져 전송되므로 초당 16.7 정도만 전송이 됩니다.이 경우는 오버헤드가 20ms 보다 훨씬 줄게 되어서 필요한 밴드위드는 Payload (64Kbps) + Overheader ( 7.75Kbps) = 71.75Kbps 됩니다. (<그림2> 계산 수식 참조)

 

, G.711 Payload 경우 모두 동일 하지만 패킷화 타임에 따라 소모하는 밴드위드는 달라 집니다.

 

여러분들이 보시기에 위의 두가지 경우에서 어떤게 낫습니까?

 

밴드위드 측면에서 보자면 당연히 오버헤더가 작아서 밴드위드 소모가 적은 아래의 경우가 낫지요.하지만 이렇게 패킷화 시간을 길게 잡으면 실시간 트래픽의 성격에 맞지가 않습니다.실시간 트래픽은  빠른 전송이 필요합니다. 만약 너무 늦어지면 원활한 통신이 방해가 됩니.따라서 G.711, G.729 디폴트 인코딩 타임이 20ms 되어 있는 이지요물론 경우에 따라 얼마든지 변경이 가능하구요.

 

시스코 라우터 에서는 IOS 명령어로 이것의 수정이 가능 합니다.아직은 라우터의 구성 명령어를 소개해 드리지 않겠습니다.사실 지금까지 배운 내용으로 구성 할수 있는 것들이 별로 없거든요.아래 내용은 별도의 설명을 드리지 않겠습니다.그냥 참조만 하세요;

 

Dial-peer voice 1 voip

Destination-pattern 3501

Session target ipv4:10.0.2.3

Codec g711ulaw byte 480 (코덱을 지정하고 Payload 사이즈를 설정하는 명령어 입니. 디폴트는 “codec g729r8 byte 20” 입니다.)

[출처] VoIP 개요|작성자 스펀지밥

 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)