UDP 전송에 적합한 사용 사례와 TCP 전송에 적합한 사용 사례가 있습니다.
사용 사례는 비디오의 인코딩 설정도 지정합니다. 축구 경기를 방송 할 때는 품질에 중점을두고 화상 회의의 경우 지연 시간에 중점을 둡니다.
멀티 캐스트를 사용하여 고객에게 비디오를 전달할 때 UDP가 사용됩니다.
멀티 캐스트에 대한 요구 사항은 방송 서버와 고객 간의 값 비싼 네트워킹 하드웨어입니다. 실제로 이는 회사가 네트워크 인프라를 소유하고있는 경우 라이브 비디오 스트리밍에 UDP 및 멀티 캐스트를 사용할 수 있음을 의미합니다. 그런 다음에도 서비스 품질이 구현되어 비디오 패킷을 표시하고 우선 순위를 지정하여 패킷 손실이 발생하지 않습니다.
멀티 캐스트는 네트워크 하드웨어가 고객에게 패킷 배포를 처리하므로 브로드 캐스트 소프트웨어를 단순화합니다. 고객은 멀티 캐스트 채널을 구독하고 네트워크는 패킷을 새 구독자에게 라우팅하도록 재구성됩니다. 기본적으로 모든 채널은 모든 고객이 사용할 수 있으며 최적으로 라우팅 될 수 있습니다.
이 워크 플로는 인증 프로세스에 어려움을줍니다. 네트워크 하드웨어는 가입 한 사용자를 다른 사용자와 구별하지 않습니다. 승인에 대한 해결책은 구독이 유효 할 때 비디오 콘텐츠를 암호화하고 플레이어 소프트웨어에서 암호 해독을 활성화하는 것입니다.
유니 캐스트 (TCP) 워크 플로를 통해 서버는 클라이언트의 자격 증명을 확인하고 유효한 구독 만 허용 할 수 있습니다. 특정 수의 동시 연결 만 허용합니다.
멀티 캐스트는 인터넷을 통해 활성화되지 않습니다.
인터넷을 통해 비디오를 전송하려면 TCP를 사용해야합니다. UDP가 사용되면 개발자는 패킷 재전송을 다시 구현하게됩니다. Bittorrent p2p 라이브 프로토콜.
"TCP를 사용하는 경우 OS는 모든 클라이언트에 대해 승인되지 않은 세그먼트를 버퍼링해야합니다. 이는 특히 라이브 이벤트의 경우 바람직하지 않습니다."
이 버퍼는 어떤 형태로 존재해야합니다. 플레이어 측의 지터 버퍼도 마찬가지입니다. 이를 "소켓 버퍼"라고하며 서버 소프트웨어는이 버퍼가 가득 차면이를 알 수 있으며 라이브 스트림에 적합한 비디오 프레임을 버릴 수 있습니다. 서버 소프트웨어는 적절한 프레임 삭제 로직을 구현할 수 있으므로 유니 캐스트 / TCP 방식을 사용하는 것이 좋습니다. UDP 케이스에서 무작위로 누락 된 패킷은 나쁜 사용자 경험을 생성합니다. 이 비디오처럼 : http://tinypic.com/r/2qn89xz/9
"IP 멀티 캐스트는 많은 청중의 비디오 대역폭 요구 사항을 크게 줄여줍니다."
이것은 사설 네트워크에 해당되며, 멀티 캐스트는 인터넷을 통해 활성화되지 않습니다.
"TCP가 너무 많은 패킷을 잃으면 연결이 끊어집니다. 따라서 UDP는 네트워크 전송 계층 삭제를 고려하지 않기 때문에 UDP는이 응용 프로그램에 대해 훨씬 더 많은 제어를 제공합니다."
UDP는 또한 전체 프레임 또는 프레임 그룹을 삭제하는 데 신경 쓰지 않으므로 사용자 경험을 더 이상 제어 할 수 없습니다.
"보통 비디오 스트림은 내결함성이 있습니다."
인코딩 된 비디오는 내결함성 이 없습니다 . 신뢰할 수없는 전송을 통해 전송되면 순방향 오류 수정이 비디오 컨테이너에 추가됩니다. 좋은 예는 여러 오디오, 비디오, EPG 등의 스트림을 전달하는 위성 비디오 방송에 사용되는 MPEG-TS 컨테이너입니다. 이는 위성 링크가 이중 통신이 아니므로 수신기가 손실 된 패킷의 재전송을 요청할 수 없기 때문에 필요합니다.
이중 통신을 사용할 수있는 경우 패킷 손실이있는 클라이언트에만 데이터를 재전송 한 다음 모든 클라이언트에 전송되는 스트림에 순방향 오류 수정의 오버 헤드를 포함하는 것이 좋습니다.
어쨌든 손실 된 패킷은 허용되지 않습니다. 손실 된 프레임은 대역폭이 방해되는 예외적 인 경우에 괜찮습니다.
누락 된 패킷의 결과는 다음과 같은 아티팩트입니다.
일부 디코더는 중요한 위치에서 패킷이 누락 된 스트림에서 중단 될 수 있습니다.