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

Beyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and Development
Beyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and DevelopmentBeyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and Development
Beyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and DevelopmentZach Pfeffer
 
Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2YEONG-CHEON YOU
 
Iot protocols tr 069
Iot protocols  tr 069Iot protocols  tr 069
Iot protocols tr 069adorable73
 
Web Security Deployment
Web Security DeploymentWeb Security Deployment
Web Security DeploymentCisco Canada
 
Introduction to QUIC
Introduction to QUICIntroduction to QUIC
Introduction to QUICShuya Osaki
 
Setting up Cisco WSA Proxy in Transparent and Explicit Mode
Setting up Cisco WSA Proxy in Transparent and Explicit ModeSetting up Cisco WSA Proxy in Transparent and Explicit Mode
Setting up Cisco WSA Proxy in Transparent and Explicit ModeDhruv Sharma
 
Application Layer and Protocols
Application Layer and ProtocolsApplication Layer and Protocols
Application Layer and ProtocolsRubal Sagwal
 
Arm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefingArm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefingMerck Hung
 
Chap2. ipv4-arp-icmp
Chap2. ipv4-arp-icmpChap2. ipv4-arp-icmp
Chap2. ipv4-arp-icmp東原 李
 
Raisecom GPON Solution Training - Chapter 4 NView_V2.pptx
Raisecom GPON Solution Training - Chapter 4 NView_V2.pptxRaisecom GPON Solution Training - Chapter 4 NView_V2.pptx
Raisecom GPON Solution Training - Chapter 4 NView_V2.pptxJean Carlos Cruz
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수Yeon Soo Kim
 
Driving containerd operations with gRPC
Driving containerd operations with gRPCDriving containerd operations with gRPC
Driving containerd operations with gRPCDocker, Inc.
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureChris Changmo Yoo
 
Compromising Linux Virtual Machines with Debugging Mechanisms
Compromising Linux Virtual Machines with Debugging MechanismsCompromising Linux Virtual Machines with Debugging Mechanisms
Compromising Linux Virtual Machines with Debugging MechanismsRussell Sanford
 
14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) conceptMostafa El Lathy
 
Introduction MQTT in English
Introduction MQTT in EnglishIntroduction MQTT in English
Introduction MQTT in EnglishEric Xiao
 

What's hot (20)

Beyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and Development
Beyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and DevelopmentBeyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and Development
Beyond printk: Efficient Zynq UltraScale+ MPSoC Linux Debugging and Development
 
Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2
 
Iot protocols tr 069
Iot protocols  tr 069Iot protocols  tr 069
Iot protocols tr 069
 
Web Security Deployment
Web Security DeploymentWeb Security Deployment
Web Security Deployment
 
Introduction to QUIC
Introduction to QUICIntroduction to QUIC
Introduction to QUIC
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Setting up Cisco WSA Proxy in Transparent and Explicit Mode
Setting up Cisco WSA Proxy in Transparent and Explicit ModeSetting up Cisco WSA Proxy in Transparent and Explicit Mode
Setting up Cisco WSA Proxy in Transparent and Explicit Mode
 
Userspace networking
Userspace networkingUserspace networking
Userspace networking
 
Application Layer and Protocols
Application Layer and ProtocolsApplication Layer and Protocols
Application Layer and Protocols
 
Arm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefingArm v8 instruction overview android 64 bit briefing
Arm v8 instruction overview android 64 bit briefing
 
Chap2. ipv4-arp-icmp
Chap2. ipv4-arp-icmpChap2. ipv4-arp-icmp
Chap2. ipv4-arp-icmp
 
RxSwift to Combine
RxSwift to CombineRxSwift to Combine
RxSwift to Combine
 
Raisecom GPON Solution Training - Chapter 4 NView_V2.pptx
Raisecom GPON Solution Training - Chapter 4 NView_V2.pptxRaisecom GPON Solution Training - Chapter 4 NView_V2.pptx
Raisecom GPON Solution Training - Chapter 4 NView_V2.pptx
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수
 
Driving containerd operations with gRPC
Driving containerd operations with gRPCDriving containerd operations with gRPC
Driving containerd operations with gRPC
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW Architecture
 
Compromising Linux Virtual Machines with Debugging Mechanisms
Compromising Linux Virtual Machines with Debugging MechanismsCompromising Linux Virtual Machines with Debugging Mechanisms
Compromising Linux Virtual Machines with Debugging Mechanisms
 
14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept14 palo alto quality of service(qos) concept
14 palo alto quality of service(qos) concept
 
Introduction MQTT in English
Introduction MQTT in EnglishIntroduction MQTT in English
Introduction MQTT in English
 
UML+Python
UML+PythonUML+Python
UML+Python
 

Similar to 스트리밍 프로토콜

[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?용민 박
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSChris Changmo Yoo
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직Hyunjik Bae
 
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
 
[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
 

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

[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoS
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
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
 
[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가 실패하는 상황들
 

Recently uploaded

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Recently uploaded (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

스트리밍 프로토콜

  • 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 모두 전송