공부용 블로그

Protocol_1주차(2) 본문

설계/Protocol

Protocol_1주차(2)

tomato212 2018. 5. 30. 16:02

1. 프로토콜이 뭐지?

- 컴퓨터간에 정보를 주고 받을 때의 통신방법에 대한 규칙과 약속


2. 무슨 규칙과 약속을 하지?

- 구문(syntax), 의미(semantic), 순서(timing)


(1) 구문 : 데이터 형식, 부호화, 신호 레벨 등을 규정

(2) 의미 : 정확한 정보전송을 위한 전송 제어와 오류 제어 등에 관한 규정

(3) 순서 : 두 지점간의 통신속도 조정 및 순서제어 등에 관한 규정


3. 컴퓨터간의 통신방법은?


(1) 먼저 Client/Server System의 변천사부터 알아야 함

- C/S 시스템은 서버에 있는 풍부한 자원들과 서비스를 통합된 방식으로 제공받기 위한 시스템이다.

# 자원 : 데이터(ISAM,Database), CPU, 파일, 문서, 이미지, 멀티미디어 등

# 서비스 : 고도의 CPU와 메모리를 통해서만 산출될 수 있는 계산 결과나 집중되고 통합된 데이터와 로직을 기반으로 한 비즈니스 로직의 결과 등

- C/S 시스템은 자원을 공유하고 소통하기 위한 수단으로 소통을 위한 쌍방간 또는 다자간에 약속된 규약을 정하고, 그에 기반하여 통신하기 위한 다양한 통신 프로토콜을 정의하고 발전해나가는 과정에 있다.

- C/S 시스템의 발전과정은 좀더 광범위하고 분산된 환경을 통합적으로 소통하고 공유하기위해 좀더 광범위하게 통일된 규약으로 모아져가는 경향이 있다.

(HTTP, REST 등)


* ISAM(Index Sequential Access Method) : 색인 순차 접근 방식 

빠른 데이터 검색을 위한 파일 시스템 구조. IBM 메인프레임 컴퓨터를 위해 개발되었으며, 관계형 데이터베이스 등에서 저장 구조로 활용되고 있다.


*REST(Representational State Transfer) : 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.

엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다.


(2) 통신 프로토콜(1번 질문과 같은 개념)


대표적인 통신 프로토콜로 

- IBM의 폐쇄형 망 구조인 SNA(System Network Architecture) 

- 개방형 망 구조인 TCP/IP 가 있다.


(3) 통신방식은 자료 흐름과 동시성 여부에 따라 단방향, 반이중, 전이중 방식으로 나누어짐.


가. 단방향 통신

- 한 DTE는 송신만 가능하고, 다른 DTE는 수신 기능만 가지는 형태임. 일반적인 컴퓨터의 데이터 통신에는 없으며, TV, 라디오 같은 방송용으로 쓰임


나. 반이중 방식(Half Duplex) 

- 통신하는 두 DTE가 시간적으로 교대로 데이터를 교환하는 방식의 통신(한 번에 한 방향으로만)


다. 전이중 통신(Full Duplex)

- 두 DTE가 동시에 송수신이 가능한 형태. 이를 위해서는 송신과 수신을 위한 독립적인 채널이 필요함 




TCP/IP 응용 계층에 적용 확장된 프로토콜로

- 전자우편 서비스를 위한 SMTP(Simple Mail Transfer Service)

- 파일 전송 서비스를 위한 FTP(File Transfer Protocol)

- 망 관리(Network Management) 서비스를 위한 SNMP(Simple Network Management Protocol)

- 주로 다루게 될 웹 서비스(Web Service)를 위한 HTTP(Hyper Text Transfer Protocol) 등이 있다.


4. SNA 

- 1974년에 만들어진 IBM의 사유 네트워크 아키텍처이다. 컴퓨터와 자신의 자원 간 상호 연결을 위한 완전한 프로토콜 스택이다.

포맷과 프로토콜을 기술하며, 그 자체가 소프트웨어의 일종은 아니다. SNA 구현을 통해 다양한 통신 패키지의 형태를 취한다.


- 기업 내의 네트워크 컴퓨팅을 구현하기 위해 1974년에 소개된 IBM의 메인프레임 네트워크 표준이다. 원래는 많은 수의 단말기를 제어하는 호스트 컴퓨터용 중앙집중식 아키텍쳐였으나, APPN이나 APPC와 같은 기능향상이 이루어짐으로써 현재는 peer-to-peer 통신과 분산 컴퓨팅 환경에 알맞게 변화되었다.

여러 기업이 함께 네트워크 컴퓨팅을 하게 되는 인터넷과 사실상의 개방형 아키텍처인 TCP/IP의 탄생과 함께 IBM은 대형 네트워크상의 업무를 위해 TCP/IP를 사용하는 기업 내에 자사의 SNA를 결합시키는 방법을 찾고 있었다. 


5. TCP/IP (udp랑 비교 참고 : http://mangkyu.tistory.com/15)

- 인터넷 접속을 위한 통신규약.

TCP라는 프로토콜과 IP라는 프로토콜을 합쳐서 사용하는 것으로, '123.123.123.123'과 같은 IP 주소 체계를 사용하면서(IP 프로토콜의 특징), 신뢰성 높은 데이터 송수신을 제공한다(TCP 프로토콜의 특징).


이에 따라 전세계의 모든 컴퓨터, 기기가 인터넷을 통해 상호 연결되기 위해서는 TCP/IP라는 통신 규약을 사용해야 하고, 그 일환으로 IP주소를 각각 부여하고 있다. 윈도우 운영체계의 네트워크 속성 등에서 보는 'Internet Protocol Version 4(TCP/IPv4)'가 바로 이것이다(MS 윈도우7 기준).


참고로 여기서 말하는 '인터넷'이란 엄밀히 말해 흔히 웹 브라우저로 접속하는 '인터넷 웹 사이트'가 아닌, 각기 다른 지역의 컴퓨터가 서로 연결되는 방식을 통칭하는 의미다. 웹 브라우저로 접속하는 인터넷 웹 페이지는 '인터넷'의 방식 중 하나일 뿐이다. 


6. HTTP

- 인터넷 웹 페이지는 '하이퍼 텍스트'라는 글자로 구성되는데 이 하이퍼 텍스트를 전송, 제어하는 규약이 HTTP 이다. 

그리고 웹 페이지를 작성하는 언어가 'HTML'이다. 


웹브라우저 주소창에 'http://...' 라 입력하는건, 이제부터 접속할 인터넷은 하이퍼 텍스트로 작성된 웹 페이지에 접속한다는 뜻이다.

만약 이 'http'대신에 다른 프로토콜(ex.FTP)을 입력하면 다른 방식의 인터넷으로 접속된다.


HTTPS는 http와 동일하지만 보안(secure) 기능을 추가한 것으로 http 프로토콜에 보안 기능을 제공하는 SSL 프로토콜을 접목한 형태다.

일반적으로 온라인 결재 웹 페이지나 회원 가입 웹 페이지 등에 적용되어 정보 유출을 방지한다. 웹 사이트에 로그인하거나 인터넷 쇼핑몰 등에서 온라인 결재할 때 인터넷 주소창을 유심히 보면 http에서 https로 변경됐다가 다시 http로 복귀되는 것을 볼 수 있다. 즉 회원 정보나 결재 정보가 전송되는 단계에서는 https 프로토콜로 전환되는 것이다.


# FTP

- 순전히 파일 전송을 위해 사용하는 인터넷 규약이다. 다른 어떤 프로토콜보다 속도가 빠른것이 특징이다. 앞선 http를 사용하는 웹 페이지에서도 파일을 다운로드할 수 있지만, 대량의 파일을 다운로드하기에는 불편하고 느리다. FTP 프로토콜은 원격의 컴퓨터에 접속하여 파일만 빠르게 업로드/다운로드 할 수 있도록 한다. ftp 역시 인터넷 규약이므로, 동일한 인터넷 주소라도 'http://'를 입력했을 때와 'ftp://'를 입력했을 때는 다른 화면이 나타난다(해당 사이트에서 http와 ftp 서비스를 제공한다는 가정). 즉 같은 '인터넷'이지만 접속 및 전송 방식이 다른 것이다. 규약이 다르기 때문이다. 


# POP/SMTP

- 메일을 받고 보내기 위한 규약. 일반적으로 네이버 등의 포털 사이트의 메일 서비스를 통해 메일을 주고받을 때는 이들 메일 프로토콜에 대해 몰라도 된다. 포털 측에서 미리 설정해 뒀기 때문이다. 하지만 ms 아웃룩 등의 메일 클라이언트 프로그램을 설치해 이를 통해 메일을 발신, 수신하기 위해서는 POP, SMTP 프로토콜 설정을 직접 해야한다 예를 들어 네이버 메일을 ms 아웃룩에서 사용하려면 네이버에서 제공하는 메일 수신용 POP 서버주소(pop.naver.com)와 발신용 SMTP 서버주소(smtp.naver.com)를 아웃룩에 입력하면서 계정과 암호를 설정해야한다(네이버 로그인 계정과 암호). pop 설정만 하면 메일 수신만 가능하고, SMTP 설정만 하면 메일 발신만 가능하다.


# DHCP

- IP주소를 자동으로 설정하기 위한 규약 


# 대역폭(bandwidth) : 한 선(채널)을 통해 전달되는 초당 정보의 양이다. 단위는 대개 bps(bits per second)이며, 100bps이면 초당 100비트의 데이터를 전송한다. 구리선을 사용할 경우 수십 Mbps까지도 전송이 가능하다. 



7. 프로토콜은 왜 생겨났지?


8. OSI 7계층이 뭐지? (참고 : http://www.ciokorea.com/news/36536)


9.


10. 프로토콜 종류는 뭐가 있지?


11. 스트리밍 서비스를 제공할 때 쓸 수 있는 프로토콜은?


12. RTSP/RTMP 스트리밍이란?


- RTSP (Real Time Streaming Protocol) : 스트리밍 시스템에 사용되며 미디어 서버를 원격으로 제어할 때 사용하며 포트 번호는 554번이다.


HTTP 규약과 비교했을 때 문법이나 동작이 비슷하다.

그러나 HTTP가 stateless인 반면 RTSP는 stateful 규약이다. 명령어로는 재생, 일시정지, 빨리감기, 되감기, 재생위치 변경 같은 것들이 있다.

TCP, UDP 중 어느 것을 사용할지 정해져 있지 않지만 보통 UDP를 사용한다. RTSP를 사용하기 위해서는 media server와 client가 connection을 맺어야 한다.

그 후, client가 server 접속요청을 하면 server는 컨첸츠의 정보를 전달한다. 그런 다음엔 setup명령어를 통해서 연결설정을 하고, media를 플레이한다.

마지막으로 teardown 명령어로 연결을 해제한다.


- RTMP (참고: https://blog.kollus.com/?p=144)


21세기 초반 어도비의 플래시는 인터넷에서 사용자 경험과 RIA 측면에서 가장 앞섰던 기술이었다. 기존의 윈도우 미디어가 지배했던 웹 비디오 시장이 점차 HTTP 다운로드 방식의 플래시 비디오로 넘어가게 되었다. 이 당시 비디오 공유 시장, 소위 ucc의 확산으로 플래시 비디오는 거의 웹 표준으로까지 성장하게 된다. 그러나 이 방식(HTTP 다운로드 방식)은 보안과 저작권에 대한 문제를 안고 있다. 

PC의 임시 저장 공간에 남아있는 컨텐츠로 인해서 누구라도 복제하고 재배포할  수 있는 우려를 낳게 해준다.

이에 어도비는 전통적인 스트리밍 방식의 RTMP 프로토콜을 공개한다.




*RIA(Rich Internet Application) : 기존 웹 브라우저 기반 인터페이스의 단점인 늦은 응답 속도, 데스트톱 어플리케이션에 비해 떨어지는 조작성 등을 개선하기 위한 기술 

- 특징

- 서버 부하 감소 : 클라이언트에서 UI 기능 등을 처리함

- 비동기 통신

- 로컬 스토리지 사용

- 빠른 응답, 네트워크 부하 감소

- 미려한 UI, 조작 편리


13. CDN서버가 뭐지? (http://mygumi.tistory.com/67)

- 컨텐츠 전송 네트워크(Content delivery network or content distribution network)는 컨텐츠를 효율적으로 전달하기 위해 여러 녿를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다.

- 사용자가 인터넷상에서 가장 가까운 곳의 서버로 컨텐츠를 전송받아 트래픽이 특정 서버에 집중되지 않고 각 서버로 분산되도록 하는 기술

- 최종 사용자와 가까운 POP(point-of-presence) 위치의 Edge 서버에 캐시된 콘텐츠를 저장하여 대기 시간을 최소화한다.

- 전세계에 전략적으로 배치된 물리적 노드에서 콘텐츠를 캐싱하여 사용자에게 고대역폭 콘텐츠를 신속하게 배달할 수 있는 글로벌 솔루션을 개발자에게 제공.


14. RTP 스트리밍이란?


15. RTCP 스트리밍이란?


16. Adaptive HTTP 스트리밍이란?


Adaptive HTTP Streaming 은 전통적인 기술을 개선한 새로운 스트리밍 방식이다. 이 방식은 RTMP/RTSP 스트리밍과 프로그레시브 다운로드의 장점을 결합한방식이다. 서버에 작은 조각 단위(Chunk : 몇초 단위) 의 동영상을 가지고 스트리밍하게 되며, 플레이어는 이 비디오 조각을 연속된 스트림으로 연결시킨다.
이 기술은 Move Network 사의 특허 기술인 adaptive bitrate 기술에서 출발하였다.

Adaptive는 시청자 bandwidth 환경을 스스로 인지하여 그에 맞는 스트리밍을 자동으로 보내주는 기술로, 2008년 베이징 올림픽 인터넷 라이브 중계로 마이크로소프트의 IIS Smooth Streaming 기술을 사용한 것이 처음이다. Apple 은 2009년 중순 iPhone 3.0 출시와 함께 HTTP Live Streaming 이란 이름으로 iOS 기반의 디바이스에서 라이브 중계와 VOD 서비스를 위해 출시하였다. Adobe Systems 는 2009년 말에 Adobe HTTP Dynamic Streaming (프로젝트명 : Zeri) 이란 이름으로 이 기술을 발표하였다.

– HD화질 전송 / 모바일 환경의 needs

– 서비스 공급자는 여러 bit-rate 로 인코딩하여 저장해야 하는 불편은 있다.
– Bandwidth / CPU 상황 등을 체크하여 그에 맞는 화질과 음질을 내려주는 방식으로 품질개선 및 안전성 확보

Adaptive Streaming = Progressive Download + RTMP 장점의 결합
– Progressive 장점: 미디어 서버와 같은 비싼 장비와 RTMP 프로토콜 같은 복잡한 기술을 사용하지 않는다.
– RTMP 장점: Bandwidth 효율성이 뛰어나고, 비디오 화질 변경이 용이




17. 비트레이트 : 특정한 시간 단위마다 처리하는 비트의 수


비트레이트와 대역폭의 차이점 http://mangkyu.tistory.com/15



18. 스트리밍 프로토콜은 왜 생겨났지? 





'설계 > Protocol' 카테고리의 다른 글

protocol_2주차(2) HLS(apple)  (0) 2018.06.08
protocol_2주차(1) WebRTC  (0) 2018.06.08
What is latency?  (0) 2018.06.02
Protocol_1주차(3)  (0) 2018.06.01
Protocol_1주차(1)  (0) 2018.05.28