Computer science/네트워크

[네트워크] Streaming service

JiWonSon 2023. 2. 4. 09:29

1. 스트리밍 서비스?

- 음악이나 동영상 등의 멀티미디어 파일을 전송, 재생하는 방식으로 서비스를 제공한다.

- 파일을 다운로드하는 것과 더불어 재생함으로써 기다리는 시간을 줄일 수 있다.

ex) 왓챠, 유튜브, 넷플릭스 등등

 

2. 스트리밍 프로토콜?

- 스트리밍 프로토콜이란 위 서비스를 위해 데이터를 전달하는 방식이다.

 

2.1 종류

1) Progressive Download

- 웹 서버로부터 동영상을 다운로드하면서 파일이 도착하는 대로 재생해주는 방식이다.

@ 출처 : https://abt.net/multimedia.php

 

[장점]

- 웹 서버에 업로드 후 클라이언트 쪽에 URL만 알려주면 되므로, 구현이 쉽다.

 

[단점]

- 전체 파일을 가져오는 방식으로 유료 서비스에 적용하기 어렵다.

- 시청한 만큼의 용량이 아닌 다운로드 한 만큼의 네트워크 트래픽을 사용하므로, 네트워크 사용량이 많다.

- 다운로드 시작 중에는 비디오 품질을 변경할 수 없다.

 

[예시]

- VOD(Video On Demand 주문형 비디오)

영상 등 멀티미디어 데이터를 서버에 저장해두고, 원하는 때에 원하는 서비스를 제공 가능하다.

 

 

2)RTMP, RSTP 스트리밍

- 웹폴더에 있는 파일을 다운받아 진행하는 방식이다.

- 서버는 미디어 파일을 몇 초 단위로 단편화 시킨다.

- 클라이언트는 단편하된 미디어 파일들을 받아 연속된 미디어 스트림으로 조합하여 재생한다.

 

RTMP (Real Time Messaging Protocol)

– 실시간 메시지 전송 프로토콜이다.
– 어도비 시스템즈 (Adobe Systems) 사의 독점 컴퓨터 통신 규약이다.
– 오디오, 비디오 및 기타 데이터를 인터넷을 통해 스트리밍 할때 사용한다.
– 포트번호 1935번을 사용한다.

RTSP (Real Time Streaming Protocol)

– IETF (Internet Engineering Task Force) 가 1998년에 개발한 통신 규약이다.
– 스트리밍 데이터를 제어하기 위한 방법을 제공한다.
– 오디오, 비디오 등 멀티미디어 데이터를 포함하는 미디어 서버를 원격 조작하기 위한 프로토콜이다.
– 명령어는 Play, Pause 와 같이 VCR 동작하고 비슷하며, 시간 정보를 바탕으로 서버에 접근한다.
– 실제 미디어 스트리밍 데이터를 전송하지 않고, RTP 규약을 사용하여 전송 계층으로 실제 오디오/비디오 데이터를 전송한다.
– RTSP 규약은 HTTP 규약하고 비교해 볼 때, 문법이나 동작은 비슷하지만, HTTP가 무상태형 (Stateless) 인 반면 RTSP 는 상태형 (Stateful) 규약이다.
– 포트번호는 554번을 사용한다.

 

https://abt.net/multimedia.php

[장점]

- 서버 파일을 몇 초단위로 단편화 시키므로 Progressive Download 보다 트래픽을 줄 일 수 있다. 

 

[단점]

- 일반적인 MP4 파일에서 동작하지 않는다. 

 

3) Adaptive HTTP 스트리밍

 

- RSTP/RTMP 와 Progressive Download의 장점을 결합한 방식이다.

- 넷플릭스나 유튜브 동영상을 시청할 때 처음에는 해상도가 좋지 않다가 점점 해상도가 좋아지는 것을 경험했던 적이 있을 것이다. 처음에는 사용자의 네트워크 상태를 판단할 수 없으니 낮은 해상도의 콘텐츠 조각을 내려주다가 네트워크의 품질이 식별되면 그에 따른 해상도로 내려주는 전략을 선택했을 것으로 짐작해볼 수 있다.

 

- Adaptive 하게 스트리밍을 하게 되면 서비스를 제공하는 서버의 트래픽을 관리할 수 있는 이점이 있는 것은 물론 사용자 입장에서도 네트워크 데이터 사용을 줄일 수 있는 장점이 있고 버퍼링 없는 동영상 시청이 가능하게 된다. 버퍼링을 감수하고라도 고해상도로 보고자 하는 유저들에게는 UI를 통한 선택권을 줄 수 있다.

https://abt.net/multimedia.php

 

[장점]
- 네트워크 트래픽의 부하 분산 , 트래픽 감소

 

[단점]

- 표준화가 부족하다. 각 공급자(ms, apple, adobe) 마다 서로의 프로토콜이 존재한다.

- 단편화 된 파일간의 변환 툴이 아직까지는 일반화 되지 않았다.

 

[예시]

- YouTube : 원래는 Progressive Download 방식으로 구현되었지만, 현재는 Adaptive Http Streaming 방식으로 서비스하고 있다. 

 

https://www.netmanias.com/ko/post/blog/5819/google-http-adaptive-streaming-http-progressive-download-ott-video-streaming-youtube/youtube-switched-to-chunking-and-adaptive-streaming


3. FTP

3.1정의

 - File Transfer Protocol로, 인터넷 상의 한 컴퓨터에서 다른 컴퓨터로 원하는 파일을 전송할 수 있는 TCP/IP 응용 프로토콜이다.

3.2 FTP 포트의 사용과 명령

- 프로토콜 : TCP

- 사용 포트

20번 - 서버와 클라이언트 간에 데이터 전송 용도의 포트

21번 - 클라이언트에서 서버로 보내는 명령을 제어하는 용도의 포트

클라이언트 접속 명령 FTP : [접속지 주소]

 

- 익명 사용자가 FTP 사이트의 특정 디렉터리에 파일을 업로드하려면, 쓰기/사용 권한을 부여받아야 한다.

- 다른 응용 프로토콜과 달리 FTP 서버는 21번만 열린 상태에서 클라이언트가 접속되길 기다린다.

- 자료를 전송할 떄는 20번 포트를 사용하고, 21번 포트가 동작이 불가능하면 접속을 할 수 없다.

21번 접속이 가능하고 20번 포트가 동작하지 않으면 접속은 되지만 자료 전송을 할 수 없다.

- 송수신할 때 포트를 2개쓰므로 다소 비효율적인 면이 있다.

 

3.3 FTP의 특징

- 서로 다른 시스템 사이에서 동작되고, 하나의 시스템 사용자들로부터 운영 시스템과는 관계없이 다른 종류의 시스템과 연결된다.

- FTP 클라이언트는 대화식으로 클라이언트보다 상위 계층 요소 기술이 필요하다.

- 텍스트 명령어 중심의 인터페이스에서 동작하며, 제한된 파일 형식과 파일 구조를 지원한다.

- 접속에는 계정 접속과 익명 접속 두 가지가 있다.

계정 접속은 FTP 서버에 로그인하기 위한 계정이 필요하고, 익명 접속은 다수가 로그인할 때 Anonymous FTP라는 계정이 필요하다.

- 로컬 시스템과, 원격 시스템간의 파일 전송 프로토콜 기능을 제공한다.

- Telnet, Rlogin, Rsh와 같은 원격 접속 프로토콜은 파일 전송이 불가능하기 때문에 서버 대 호스트간의 파일 전송을 위해 사용된다.

- 파일 전송 형태는 파일 특성에 따라 이진 형태와 텍스트 형태로 구성된다. 전송 파일에 따라 모드를 구분해야 한다.