2022. 11. 17. 23:16ㆍWeb/Network
UDP
- 비연결형 서비스를 제공
- 헤더와 전송 데이터에 대한 체크썸 기능을 제공
- Best Effort 전달 방식을 지원
UDP헤더
- Source Port / Destinaion Port ; 송수신 프로세스에 할당된 네트워크 포트 번호
- Length : 헤더를 포함한 UDP 데이터그램의 크기
- Checksum : 헤더와 데이터에 대한 체크썸
UDP의 데이터 전송
비연결형 서비스
- 각 데이터그램이 독립적으로 전송되고, 독립적으로 중개
- 흐름 제어가 없으므로 버퍼 부족으로 인한 데이터 분실 가능성 -> 응용에서 처리 필요
- 응용헤서 순서 번호와 유사한 기능을 구현해야 할 필요성
RTP
실시간 서비스
- 멀티미디어 서비스 환경의 변화
- 실시간 스트리밍 서비스 등장
- 데이터 변형/분실 오류를 복구하는 기능이 상대적으로 덜 중요
- 도착 순서, 패킷의 지연 간격, 데이터 압축 등이 중요
- TCP : 패킷의 순서와 신뢰성이 지나치게 강조
- UDP : 기능이 단순하여 빠른 전송 가능, 순서 보장 못함
- 가장 현실적인 대안은 UDP에 순서번호 기능을 추가하는 것(RTP)
RTP의 특징
- IETF의 오디오, 비디오 트랜스포트 작업반에서 작업
- 데이터 순서 정렬을 위해 타임스탬프 방식 사용
- ALF 사용으로 응용마다 별도로 버퍼 크기 조절 및 관리 가능
- (제한적)실시간 응용 서비스에 유용
실시간 요구사항
- 일반 데이터 서비스 환경 : 파일 전송, 전자 메일 등 신뢰성이 중요, 성능과 지연 문제는 덜 중요
- 실시간 데이터 서비스 환경 : 정해진 시간 내에 도착하는지의 여부가 중요, 신뢰성은 덜 중요
버퍼 : 시간 간격이 가변적인 데이터를 즉시 전송하지 않고 지연 버퍼를 사용하여 간격을 일정하게 보정
지터 : 도착 시간이 일정하지 않고 불규칙적으로 도착하는 정도
RTP의 데이터 전송
- 작고 빠른 전송 기능을 지원하는 UDP 프로토콜 위에서 구현
- 데이터그램 분실이나 도착 순서 변경 등의 오류는 RTP에서 해결
- 포트 주소 기능을 이용하여 송수신 프로세스간 연결 관리
- 프로그램 하나를 단위로 하지 않고, 일부 기능이 개별적으로 구현됨
- 다수의 사용자가 하나의 세션을 사용하여 실시간 데이터 전송 가능
- 릴레이 : 데이터 전송 과정에서 송수신 프로세스가 직접 데이터를 전송할 수 없는 상황에서 데이터를 중개하는 기능
- 믹서 : 여러 송신 프로세스의 데이터그램을 적절히 조합하여 새로운 데이터그램 생성
- 트랜슬레이터 : 입력된 각 RTP 데이터그램을 하나 이상의 출력용 데이터그램으로 만들어줌
RTP 헤더
- 응용 환경과 관련된 가변 크기의 헤더 추가 가능
- 처음 12바이트는 모든 RTP 패킷에 존재
- CSRC 구분자는 믹서에 의해 추가된 경우 사용
- 음성이나 영상 데이터의 동기에 필요한 시간 정보, 데이터그램 분실이나 도착순서 변경 오류를 검출하는 기능 제공
- 멀티캐스트 전송도 지원
RTP 제어 프로토콜 RTCP(RTP Control Protocol)
- 제어와 관련된 기능 수행
- UDP를 하부 계층으로 사용
- 세션 참가자는 다른 멤버에게 RTCP 패킷을 주기적으로 전송
- Qos와 혼잡 제어
- Identification
- 세션 크기
- 세션 제어 : 최소한의 세션 제어 정보를 옵션으로 제공
- RTCP 데이터그램 종류 : SR, RR, SDES, BYE. Application Defined Packet
OSI TP
서비스 클래스
- 클래스 0: 기본 기능
- 클래스 1: 기본 오류 복구 기능
- 클래스 2: 멀티플렉싱
- 클래스 3: 오류 복구, 멀티플렉싱
- 클래스 4: 오류 검출, 오류 복구, 멀티플렉싱
OSI TP 서비스 프리미티브
연결설정
- T-CONNECT.request
- T-CONNECT.indication
- T-CONNECT.response
- T-CONNECT.confirm
연결 해제
- T-DISCONNECT.request
- T-DISCONNECT.indication
데이터 전송
- T-DATA.request
- T-DATA.indication
긴급 데이터 전송
- T-EXPEDITED-DATA.request
- T-EXPEDITED-DATA.indication
비연결형 데이터 전송
- T-UNITDATA.request
- T-UNITDATA.indication
그외 전송계층 프로토콜
SCTP(Stream Control Transmission Protocol)
- 차세대 전송계층 프로토콜 중 하나
- 기존 TCP 및 UDP의 단점 극복을 목표
- UDP의 메시지 지향 특성 + TCP의 연결형 신뢰성 제공 특성
- Multi-streaming 특성 제공
- Multi-homing 특성 제공
- SCTP Peer간 응용 데이터를 API로 전달받아 IP 망을 통해
전송하는 기능 수행
- SCTP 단말은 하나의 SCTP 세션에서 여러 개의 IP 주소를 사용
- 다중 스트리밍, 다중 경로 기능 사용
MPTCP(Multipath TCP)
- IETF에 의해 2013년 표준화
- TCP 프로토콜을 확장하여 단말과 TCP 서버 간에 다수의 TCP 경로를 구성하고 다수의 경로로 동시에 데이터를 송수신
* 쉽게 배우는 데이터 통신과 네트워크(3판) 책을 바탕으로 작성하였습니다.
'Web > Network' 카테고리의 다른 글
12. 네트워크 프로그래밍 (0) | 2022.12.20 |
---|---|
11. 상위 계층 (0) | 2022.11.26 |
9. TCP 프로토콜(2) (0) | 2022.11.17 |
9. TCP 프로토콜(1) (0) | 2022.11.17 |
8. 네트워크 계층(3) (0) | 2022.11.15 |