10. 전송 계층

2022. 11. 17. 23:16Web/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판) 책을 바탕으로 작성하였습니다.

https://product.kyobobook.co.kr/detail/S000061352064

'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