SlideShare a Scribd company logo
1 of 19
스트리밍 프로토콜
기본 용어정리
• IP – 인터넷 주소, IPv4/IPv6.
• Port – 같은 IP 주소 내의 주소, 부호없는 2바이트 정수
(0 ~ 65535).
• 소켓 – 고유의 ip+port 로 구성된 통신 접점(endpoint),
인터넷 통신을 위한 unique한 identification.
• 소켓 id – 해당 호스트에서 특정 소켓에 대한 id(4바이트
정수).
• 세션/채널 – 통신을 위한 두 접점(endpoint)간에 논리적
통신선로, 주로 TCP 통신에서 클라이언트/서버 간에 연
결을 맺은 상황.
포트 바인딩 개념
※ TCP와 UDP 포트는 서로 별개
0 1 2 … 655358001 110008000
프로세스 A 프로세스 B
소켓 소켓 소켓
… …
TCP/IP 프로토콜 계층구조
TCP와 UDP
TCP UDP
1. 연결(세션)이 있다
2. 전송을 보장한다
3. 스트림 방식
4. 수신패킷의 순서 보장 O
1. 연결(세션)이 없다
2. 전송을 보장하지 않는다
3. 다이어그램 방식
4. 수신패킷의 순서 보장 X
UDP (1)
A B
SW SW
SW SW
SW
1
1
1
2 2
3
3
4
4
4
• 전송순서 1,2,3,4 => 수신순서 2,4,1 (3은 버려짐)
• 전송 패킷 그대로 패킷수신 (데이터 크기가 같음)
• 신뢰성 없는 택배
UDP (2)
• 통신을 위한 연결이 없다 (Server/Client 방식이 아님)
• 송신자는 상대의 수신여부에 상관없이 계속해서 전송 => 네트웍 딜
레이(jitter)가 덜하다
• 패킷 손실(packet loss)이 발생할 수 있다
• 수신 패킷들의 순서가 뒤바뀔 수 있다
• 송신 패킷 크기 그대로 수신한다 (다이어그램 방식) => 도착하던가
버려지던가
• 구현이 용이하다
• 주로 실시간성이 중요시되는 프로토콜 구현에 사용 => RTP
TCP (1)
• Host A는 DS1에 대한 응답(ACK)이 올때까지 다음 패킷을 보내지않음
=> 수신 패킷의 순서 보장
• 정해진 시간 동안 ACK가 오지않으면 DS1 재전송(retransmission) =>
전송을 보장
• 송신 데이터는 TCP 가 쪼개거나 합칠 수 있다 => 스트림 방식
• 수신 데이터는 응용프로그램이 요청하는 만큼 준다 => 스트림 방식
TCP (2)
• 양방향으로 데이터가 흘러가는 방식
• 패킷 손실이 없고 순서를 보장
• 송수신 버퍼의 크기에 따라 송수신 데이터량을 조절
• 물탱크를 가진 양방향 파이프
송신버퍼
수신버퍼
수신버퍼
송신버퍼
Host A Host B
TCP (3)
• 서버는 특정 포트를 열고 대기하다가 클라이언트의 연결
요청을 받으면 연결을 맺는다 => 연결방식
• 전송패킷에 대한 응답(ACK)을 받지 않으면 재전송하는
방식 => 전송보장, 순서 보장
• 송수신 패킷은 합쳐지거나 쪼개질 수 있다 => 스트림 방
식
• 네트웍상에 트래픽 증가(jitter 발생)
• 구현이 용이하지 않음 (서버-클라이언트 방식, 수신 데이
터에 경계가 없다)
• 연결을 끊을때 상대에게 알려줘야 한다
RTSP 설명
• Real Time Streaming Protocol (RFC2326)
• 실시간 데이터 전송을 제어하기 위한 응용계층 프로토콜
• RTSP 서버/클라이언트 구조 (554번 포트 사용)
• Request/Response 방식 (주로 클라이언트가 request/서
버가 response)이며 text 기반 => HTTP 서버와 유사
• RTSP 서버/클라이언트는 세션별로 상태를 가짐
• 주로 video/audio 같은 미디어 스트리밍 제어에 사용
=> live/vod 미디어 스트림, Video Conference
• 주로 TCP 사용
RTSP 메시지 흐름
RTSP 주요 메시지 설명
1. OPTIONS – 사용 가능한 메소드를 얻는다
2. DESCRIBE – 해당 서버세션에 대한 설명을 얻는
다 (SDP – Session Description Protocol)
3. SETUP – 스트림 전송(Transport)에 관해서 서로
약속을 정한다
4. PLAY – 스트림 전송을 시작한다
5. TEARDOWN – 스트림 전송을 중단하고 세션을
종료한다.
DESCRIBE 메시지 예제
DESCRIBE rtsp://192.168.0.79/live/main RTSP/1.0
CSeq: 2
Accept: application/sdp
RTSP/1.0 200 OK
CSeq: 2
Content-Base: rtsp://192.168.0.79/live/main/
Content-Type: application/sdp
Content-Length: 484
v=0
o=- 1 1 IN IP4 127.0.0.1
s=Media Server
a=type:broadcast
t=0 0
c=IN IP4 0.0.0.0
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001F
a=control:track0
m=application 0 RTP/AVP 97
a=rtpmap:97 VND.ONVIF.METADATA/8000
a=control:track1
RTSP URI
서브세션 - 비디오
서브세션 - application
RTP
• Real-time Transport Protocol
• 비디오/오디오와 같은 실시간 패킷을 전송하기
위한 응용계층 프로토콜
• TCP/UDP 모두 사용가능, UDP로 많이 사용(네트
웍 딜레이 문제) => 방화벽 관련 문제로 TCP에
서도 사용
RTP 헤더
M – Marker bit => 프레임 경계의 끝
PT – Payload Type => 스트림 데이터의 종류
Sequence number => 전송 패킷순서, +1씩 증가
Timestamp => 해당 패킷의 인코딩(출력) 시간, 일정간격으로 증가
12 바이트 고정
RTCP
• RTP Control Protocol
• RTP 전송에 관한 QoS 정보를 전송 => RTP 수신 패킷통
계, jitter 계산, 손실패킷 개수 등
• 전송자(RTSP 서버)가 RTCP 정보를 통해 네트웍 상태를
모니터링하고 Adaptive Encoding이 가능하도록 정보를
제공
• 실제로는 RTSP 클라이언트-서버 간에 KeepAlive 용도로
많이 사용
RTSP 스트리밍 구조(1)
• RTSP 는 TCP Connection 이며 연결종료시까지 유지
• Video/Audio 에 대한 RTP/RTCP 데이터는 각각 서로 다른 UDP 포트
로 전송 (RTCP 포트=RTP 포트+1)
RTSP
Server
RTSP
Client
RTSP/TCP
Video RTP/UDP
Video RTCP/UDP
Audio RTP/UDP
Audio RTCP/UDP
RTSP 스트리밍 구조(2)
• TCP 연결을 통해 RTSP 세션을 맺은 뒤 Video/Audio RTP/RTCP 모든
데이터는 같은 RTSP 세션을 통해 전송
• RTPOverRTSP / RTPOverTCP / Interleaved 방식
• 네트웍 딜레이가 있지만 신뢰성있는 전송과 방화벽 문제해결
RTSP
Server
RTSP
Client
RTSP/TCP
RTP/RTCP 모두 전송

More Related Content

What's hot

Quality of Service(Queuing Methods)
Quality of Service(Queuing Methods)Quality of Service(Queuing Methods)
Quality of Service(Queuing Methods)Reza Farahani
 
STP (spanning tree protocol)
STP (spanning tree protocol)STP (spanning tree protocol)
STP (spanning tree protocol)Netwax Lab
 
GRE (Generic Routing Encapsulation)
GRE (Generic Routing Encapsulation)GRE (Generic Routing Encapsulation)
GRE (Generic Routing Encapsulation)NetProtocol Xpert
 
SIP: Call Id, Cseq, Via-branch, From & To-tag role play
SIP: Call Id, Cseq, Via-branch, From & To-tag role playSIP: Call Id, Cseq, Via-branch, From & To-tag role play
SIP: Call Id, Cseq, Via-branch, From & To-tag role playSridhar Kumar N
 
Precision Time Protocol
Precision Time ProtocolPrecision Time Protocol
Precision Time ProtocolSteven Kreuzer
 
Overview of Spanning Tree Protocol
Overview of Spanning Tree ProtocolOverview of Spanning Tree Protocol
Overview of Spanning Tree ProtocolArash Foroughi
 
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment Routing Advanced Use Cases - Cisco Live 2016 USASegment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment Routing Advanced Use Cases - Cisco Live 2016 USAJose Liste
 
MPLS (Multiprotocol Label Switching)
MPLS (Multiprotocol Label Switching)MPLS (Multiprotocol Label Switching)
MPLS (Multiprotocol Label Switching)Netwax Lab
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetChris Changmo Yoo
 
Arp and rarp
Arp and rarpArp and rarp
Arp and rarpMohd Arif
 
GLBP (gateway load balancing protocol)
GLBP (gateway load balancing protocol)GLBP (gateway load balancing protocol)
GLBP (gateway load balancing protocol)Netwax Lab
 
InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)Gene Leybzon
 
패킷의 전달과정
패킷의 전달과정패킷의 전달과정
패킷의 전달과정성연 김
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Peter R. Egli
 

What's hot (20)

Quality of Service(Queuing Methods)
Quality of Service(Queuing Methods)Quality of Service(Queuing Methods)
Quality of Service(Queuing Methods)
 
STP (spanning tree protocol)
STP (spanning tree protocol)STP (spanning tree protocol)
STP (spanning tree protocol)
 
SCTP Tutorial
SCTP TutorialSCTP Tutorial
SCTP Tutorial
 
GRE (Generic Routing Encapsulation)
GRE (Generic Routing Encapsulation)GRE (Generic Routing Encapsulation)
GRE (Generic Routing Encapsulation)
 
SIP: Call Id, Cseq, Via-branch, From & To-tag role play
SIP: Call Id, Cseq, Via-branch, From & To-tag role playSIP: Call Id, Cseq, Via-branch, From & To-tag role play
SIP: Call Id, Cseq, Via-branch, From & To-tag role play
 
Precision Time Protocol
Precision Time ProtocolPrecision Time Protocol
Precision Time Protocol
 
Overview of Spanning Tree Protocol
Overview of Spanning Tree ProtocolOverview of Spanning Tree Protocol
Overview of Spanning Tree Protocol
 
EVPN Introduction
EVPN IntroductionEVPN Introduction
EVPN Introduction
 
EtherChannel
EtherChannelEtherChannel
EtherChannel
 
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment Routing Advanced Use Cases - Cisco Live 2016 USASegment Routing Advanced Use Cases - Cisco Live 2016 USA
Segment Routing Advanced Use Cases - Cisco Live 2016 USA
 
MPLS (Multiprotocol Label Switching)
MPLS (Multiprotocol Label Switching)MPLS (Multiprotocol Label Switching)
MPLS (Multiprotocol Label Switching)
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 Ethernet
 
Arp and rarp
Arp and rarpArp and rarp
Arp and rarp
 
GLBP (gateway load balancing protocol)
GLBP (gateway load balancing protocol)GLBP (gateway load balancing protocol)
GLBP (gateway load balancing protocol)
 
IP Multicasting
IP MulticastingIP Multicasting
IP Multicasting
 
Tcp
TcpTcp
Tcp
 
InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)
 
패킷의 전달과정
패킷의 전달과정패킷의 전달과정
패킷의 전달과정
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)
 
Ospf
OspfOspf
Ospf
 

Similar to 스트리밍 프로토콜

TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수Yeon Soo Kim
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?용민 박
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직Hyunjik Bae
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpointNAVER D2
 
SMTP 프로토콜 (rfc281, rfc2821)
SMTP 프로토콜 (rfc281, rfc2821)SMTP 프로토콜 (rfc281, rfc2821)
SMTP 프로토콜 (rfc281, rfc2821)Jua Alice Kim
 
Icmp Attak Against Tcp
Icmp Attak Against TcpIcmp Attak Against Tcp
Icmp Attak Against Tcpxyzlee
 
TCP 연결 과정_Wh apm
TCP 연결 과정_Wh apmTCP 연결 과정_Wh apm
TCP 연결 과정_Wh apm엑셈
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Sung-jae Park
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명진우 이
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍quxn6
 
Cse342 chapter 04
Cse342 chapter 04Cse342 chapter 04
Cse342 chapter 04Jinil Nam
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원탑크리에듀(구로디지털단지역3번출구 2분거리)
 
05_Reliable UDP 구현
05_Reliable UDP 구현05_Reliable UDP 구현
05_Reliable UDP 구현noerror
 
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은jieun kim
 
TCP가 실패하는 상황들
TCP가 실패하는 상황들TCP가 실패하는 상황들
TCP가 실패하는 상황들ssuser7c5a40
 
Radware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUIRadware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUI윤기 정
 

Similar to 스트리밍 프로토콜 (20)

TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpoint
 
SMTP 프로토콜 (rfc281, rfc2821)
SMTP 프로토콜 (rfc281, rfc2821)SMTP 프로토콜 (rfc281, rfc2821)
SMTP 프로토콜 (rfc281, rfc2821)
 
Icmp Attak Against Tcp
Icmp Attak Against TcpIcmp Attak Against Tcp
Icmp Attak Against Tcp
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
TCP 연결 과정_Wh apm
TCP 연결 과정_Wh apmTCP 연결 과정_Wh apm
TCP 연결 과정_Wh apm
 
퀴즈요약
퀴즈요약퀴즈요약
퀴즈요약
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍
 
Cse342 chapter 04
Cse342 chapter 04Cse342 chapter 04
Cse342 chapter 04
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
 
네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
05_Reliable UDP 구현
05_Reliable UDP 구현05_Reliable UDP 구현
05_Reliable UDP 구현
 
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
20150525 open flow1.3_ryu_sdn_link aggregation 1_김지은
 
TCP가 실패하는 상황들
TCP가 실패하는 상황들TCP가 실패하는 상황들
TCP가 실패하는 상황들
 
Radware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUIRadware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUI
 

Recently uploaded

파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)Wonjun Hwang
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdfssuserf8b8bd1
 
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료Softwide Security
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Wonjun Hwang
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'Hyundai Motor Group
 
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료Softwide Security
 

Recently uploaded (6)

파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
[OpenLAB] AWS reInvent를 통해 바라본 글로벌 Cloud 기술동향.pdf
 
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
오픈소스 위험 관리 및 공급망 보안 솔루션 'Checkmarx SCA' 소개자료
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
클라우드 애플리케이션 보안 플랫폼 'Checkmarx One' 소개자료
 

스트리밍 프로토콜

  • 2. 기본 용어정리 • IP – 인터넷 주소, IPv4/IPv6. • Port – 같은 IP 주소 내의 주소, 부호없는 2바이트 정수 (0 ~ 65535). • 소켓 – 고유의 ip+port 로 구성된 통신 접점(endpoint), 인터넷 통신을 위한 unique한 identification. • 소켓 id – 해당 호스트에서 특정 소켓에 대한 id(4바이트 정수). • 세션/채널 – 통신을 위한 두 접점(endpoint)간에 논리적 통신선로, 주로 TCP 통신에서 클라이언트/서버 간에 연 결을 맺은 상황.
  • 3. 포트 바인딩 개념 ※ TCP와 UDP 포트는 서로 별개 0 1 2 … 655358001 110008000 프로세스 A 프로세스 B 소켓 소켓 소켓 … …
  • 5. TCP와 UDP TCP UDP 1. 연결(세션)이 있다 2. 전송을 보장한다 3. 스트림 방식 4. 수신패킷의 순서 보장 O 1. 연결(세션)이 없다 2. 전송을 보장하지 않는다 3. 다이어그램 방식 4. 수신패킷의 순서 보장 X
  • 6. UDP (1) A B SW SW SW SW SW 1 1 1 2 2 3 3 4 4 4 • 전송순서 1,2,3,4 => 수신순서 2,4,1 (3은 버려짐) • 전송 패킷 그대로 패킷수신 (데이터 크기가 같음) • 신뢰성 없는 택배
  • 7. UDP (2) • 통신을 위한 연결이 없다 (Server/Client 방식이 아님) • 송신자는 상대의 수신여부에 상관없이 계속해서 전송 => 네트웍 딜 레이(jitter)가 덜하다 • 패킷 손실(packet loss)이 발생할 수 있다 • 수신 패킷들의 순서가 뒤바뀔 수 있다 • 송신 패킷 크기 그대로 수신한다 (다이어그램 방식) => 도착하던가 버려지던가 • 구현이 용이하다 • 주로 실시간성이 중요시되는 프로토콜 구현에 사용 => RTP
  • 8. TCP (1) • Host A는 DS1에 대한 응답(ACK)이 올때까지 다음 패킷을 보내지않음 => 수신 패킷의 순서 보장 • 정해진 시간 동안 ACK가 오지않으면 DS1 재전송(retransmission) => 전송을 보장 • 송신 데이터는 TCP 가 쪼개거나 합칠 수 있다 => 스트림 방식 • 수신 데이터는 응용프로그램이 요청하는 만큼 준다 => 스트림 방식
  • 9. TCP (2) • 양방향으로 데이터가 흘러가는 방식 • 패킷 손실이 없고 순서를 보장 • 송수신 버퍼의 크기에 따라 송수신 데이터량을 조절 • 물탱크를 가진 양방향 파이프 송신버퍼 수신버퍼 수신버퍼 송신버퍼 Host A Host B
  • 10. TCP (3) • 서버는 특정 포트를 열고 대기하다가 클라이언트의 연결 요청을 받으면 연결을 맺는다 => 연결방식 • 전송패킷에 대한 응답(ACK)을 받지 않으면 재전송하는 방식 => 전송보장, 순서 보장 • 송수신 패킷은 합쳐지거나 쪼개질 수 있다 => 스트림 방 식 • 네트웍상에 트래픽 증가(jitter 발생) • 구현이 용이하지 않음 (서버-클라이언트 방식, 수신 데이 터에 경계가 없다) • 연결을 끊을때 상대에게 알려줘야 한다
  • 11. RTSP 설명 • Real Time Streaming Protocol (RFC2326) • 실시간 데이터 전송을 제어하기 위한 응용계층 프로토콜 • RTSP 서버/클라이언트 구조 (554번 포트 사용) • Request/Response 방식 (주로 클라이언트가 request/서 버가 response)이며 text 기반 => HTTP 서버와 유사 • RTSP 서버/클라이언트는 세션별로 상태를 가짐 • 주로 video/audio 같은 미디어 스트리밍 제어에 사용 => live/vod 미디어 스트림, Video Conference • 주로 TCP 사용
  • 13. RTSP 주요 메시지 설명 1. OPTIONS – 사용 가능한 메소드를 얻는다 2. DESCRIBE – 해당 서버세션에 대한 설명을 얻는 다 (SDP – Session Description Protocol) 3. SETUP – 스트림 전송(Transport)에 관해서 서로 약속을 정한다 4. PLAY – 스트림 전송을 시작한다 5. TEARDOWN – 스트림 전송을 중단하고 세션을 종료한다.
  • 14. DESCRIBE 메시지 예제 DESCRIBE rtsp://192.168.0.79/live/main RTSP/1.0 CSeq: 2 Accept: application/sdp RTSP/1.0 200 OK CSeq: 2 Content-Base: rtsp://192.168.0.79/live/main/ Content-Type: application/sdp Content-Length: 484 v=0 o=- 1 1 IN IP4 127.0.0.1 s=Media Server a=type:broadcast t=0 0 c=IN IP4 0.0.0.0 m=video 0 RTP/AVP 96 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;profile-level-id=64001F a=control:track0 m=application 0 RTP/AVP 97 a=rtpmap:97 VND.ONVIF.METADATA/8000 a=control:track1 RTSP URI 서브세션 - 비디오 서브세션 - application
  • 15. RTP • Real-time Transport Protocol • 비디오/오디오와 같은 실시간 패킷을 전송하기 위한 응용계층 프로토콜 • TCP/UDP 모두 사용가능, UDP로 많이 사용(네트 웍 딜레이 문제) => 방화벽 관련 문제로 TCP에 서도 사용
  • 16. RTP 헤더 M – Marker bit => 프레임 경계의 끝 PT – Payload Type => 스트림 데이터의 종류 Sequence number => 전송 패킷순서, +1씩 증가 Timestamp => 해당 패킷의 인코딩(출력) 시간, 일정간격으로 증가 12 바이트 고정
  • 17. RTCP • RTP Control Protocol • RTP 전송에 관한 QoS 정보를 전송 => RTP 수신 패킷통 계, jitter 계산, 손실패킷 개수 등 • 전송자(RTSP 서버)가 RTCP 정보를 통해 네트웍 상태를 모니터링하고 Adaptive Encoding이 가능하도록 정보를 제공 • 실제로는 RTSP 클라이언트-서버 간에 KeepAlive 용도로 많이 사용
  • 18. RTSP 스트리밍 구조(1) • RTSP 는 TCP Connection 이며 연결종료시까지 유지 • Video/Audio 에 대한 RTP/RTCP 데이터는 각각 서로 다른 UDP 포트 로 전송 (RTCP 포트=RTP 포트+1) RTSP Server RTSP Client RTSP/TCP Video RTP/UDP Video RTCP/UDP Audio RTP/UDP Audio RTCP/UDP
  • 19. RTSP 스트리밍 구조(2) • TCP 연결을 통해 RTSP 세션을 맺은 뒤 Video/Audio RTP/RTCP 모든 데이터는 같은 RTSP 세션을 통해 전송 • RTPOverRTSP / RTPOverTCP / Interleaved 방식 • 네트웍 딜레이가 있지만 신뢰성있는 전송과 방화벽 문제해결 RTSP Server RTSP Client RTSP/TCP RTP/RTCP 모두 전송