Study/Network

[네트워크] 전송 계층

ChoiSenn 2022. 6. 4. 19:13

 

 

 

 

UDP 프로토콜

 

UDP (User Datagram Protocol)

- 프로토콜 중 구조가 가장 간단

- 비연결형 서비스를 제공

- 헤더와 전송 데이터에 대한 체크섬 기능을 제공

- Best Effort 전달 방식을 지원

- TCP보다는 신뢰성이 떨어짐

- 하지만 프로토콜을 처리하는 기능이 작아 TCP보다 데이터 처리가 빠르므로 데이터 전송 시간에 민감한 응용 환경에서는 UDP를 사용하는 것이 유리

 

UDP 헤더 구조

- TCP보다 단순하고, 프로토콜에서 수행하는 기능이 간단해 프로토콜의 오버헤드가 작은 편

- Source Port / Destination Port (송신 포트 / 수신 포트) : 송수신 프로세스에 할당된 네트워크 포트 번호

- Length (길이) : 프로토콜 헤더를 포함한 UDP 데이터그램의 전체 크기

- Checksum (체크섬) : 프로토콜 헤더와 데이터에 대한 체크섬 값을 제공

 

UDP의 데이터그램 전송

- 비연결형 서비스를 이용하여 데이터그램을 전송

- 반드시 목적지에 도착하는 것을 보장하지 않음

- 흐름 제어 기능도 제공하지 않아, 버퍼 오버플로에 의한 데이터 분실 오류 발생 가능

- 데이터가 목적지에 도착하지 못하는 데이터그램 분실과 데이터그램의 도착 순서가 바뀌는 도착 순서 변경 오류 발생 가능

- UDP에서의 데이터그램 분실 : 데이터의 순서 번호 기능을 제공하지 않으므로 데이터그램 분실 여부 확인 불가

- UDP에서의 데이터그램 도착 순서 변경 : 마찬가지로 데이터의 순서 번호 기능이 없기 때문에 도착 순서 변경 오류 해결 불가

 

 

 

RTP 프로토콜

 

RTP (Real Time Protocol)

- 실시간 멀티미디어 데이터의 전송을 지원

- 유니캐스팅 뿐만 아니라 멀티캐스팅도 지원

- 불규칙하게 수신되는 데이터의 순서를 정렬하기 위해 타임스탬프 방식을 사용

- 프로토콜의 동작이 응용 프로그램의 라이브러리 형태로 구현되는 ALF 방식을 사용하기 때문에, 응용 환경이 요구하는 알고리즘에 따라 버퍼 크기를 개별적으로 조절 가능

 

실시간 요구 사항

- 데이터 변형/분실 오류를 복구하는 기능이 상대적으로 덜 중요

- 도착 순서, 패킷의 지연 간격, 데이터 압축 등이 중요

- 버퍼 : 데이터는 네트워크를 통해 전송되면서 시간 간격이 불규칙하게 변한다. 수신 프로세스에서는 지연 버퍼를 사용해 데이터의 시간 간격을 일정하게 보정한다.

- 지터 : 클럭 하나 만큼 이동한 단위.(1 UI) 보통 지연 차를 얼마나 견딜 수 있느냐를 의미. 지터 분포는 데이터그램의 도착 시간을 특정하였을 때 각 데이터그램의 도착 시간이 일정하지 않고 불규칙적으로 도착하는 정도를 나타낸다.

- Clock : 반복되는 펄스. 장시간에 걸쳐 약간씩 주기가 변함.

- Data : 클록 주기에 따라 high, low일 수 있음

 

RTP의 데이터 전송

- RTP는 실시간 서비스를 제공하기 위해 작고 빠른 전송 기능을 제공하는 UDP 위에서 구현

- 데이터그램 분실이나 도착 순서 변경과 같은 전송 오류는 RTP 자체에서 해결

- 송수신 프로세스 간의 연결을 관리

- 하나의 완전한 프로그램 단위로 구현되지 않고, 기능별로 개별적으로 구현

- 다수의 사용자가 하나의 세션에 참여해 서로 실시간 데이터를 전송하도록 지원

- 믹서와 트랜슬레이터라는 두 종류의 RTP 릴레이를 지원

- 릴레이 : 데이터 전송 과정에서 송수신 프로세스가 데이터를 직접 전송할 수 없는 상황이 발생했을 때, 데이터를 중개하는 기능. ex) 방화벽이 설치되거나 데이터 형식이 다를 경우 데이터 전송이 가능하도록 수행

- 믹서 : RTP 데이터그램 스트림을 받아 이들을 적절히 조합하여 새로운 데이터그램 스트림을 생성

- 트랜슬레이터 : 입력된 각 RTP 데이터그램을 하나 이상의 출력용 RTP 데이터그램으로 만들어주는 장치

 

RTP 헤더 구조

- 응용 환경과 관련된 가변 크기의 헤더를 추가할 수 있음

- CSRC 구분자 목록은 믹서에 의해 추가되는 경우 사용

- RTP는 멀티캐스트 전송도 가능. 이를 위해 RTP 데이터 형식에는 송신 구분자 필드와 Timestamp 필드가 지원

- Version : 버전 번호. 현재는 2로 지정

- Padding : RTP 페이로드의 마지막에 패딩 데이터가 존재하는지 여부

- Extension : 고정 헤더 마지막에 확장 헤더가 하나 더 이어지는지 여부

- CSRC Count : CSRC 구분자의 개수 표시

- Marker : 임의의 표식, 페이로드 유형에 따라 값의 의미가 결정. 보통 데이터스트림의 경계점을 표시하는 데 사용

- Payload Type : 헤더 다음에 이어지는 RTP 페이로드의 유형을 나타냄

- Sequence Number : Timestamp 필드 값이 동일한 페이로드에 대해 패킷 손실이나 순서 변경과 같은 오류를 검출할 수 있도록 함

- Timestamp : RTP 페이로드에 포함된 데이터의 생성 시기를 나타냄

- SSRC Identifier : 임의의 세션 내에서 RTP 페이로드의 발신지가 어디인지를 구분하는 고유 번호

 

RTP 제어 프로토콜

- QoS와 혼잡 제어 : 데이터 분배 과정에서 발생하는 서비스 품질에 관한 피드백 기능을 지원

- Identificatio : RTCP 송신 프로세스에 관한 구분자 정보가 포함. 서로 다른 세션에서 발신된 스트림 정보들을 서로 연관시키는 근거를 제공

- 세션 크기 : 전체 세션 트래픽의 5% 이내로 유지되도록 알고리즘이 동작

 

 

 

OSI TP 프로토콜

 

OSI TP (Transport Protocol)

- 다섯 개의 클래스로 서비스를 분류하여 지원

- 클래스 0이 구조가 가장 단순하고, 클래스 번호가 커질수록 기능이 추가

 

OSI TP의 서비스 프리미티브

- 연결형 서비스 : 연결 설정, 연결 해제, 일반 데이터, 긴급 데이터

- 비연결형 서비스 : 연결 설정과 해제 과정이 불필요하므로 데이터 전송을 위한 T-UNITDATA 프리미티브만 존재

 

OSI TP의 데이터 전송

- T-DISCONNECT를 이용하여 한 쪽의 요구에 의해 연결이 해제

- 양쪽에서 동시에 연결 해제를 요구하는 경우에도 연결이 해제

- 네트워크 내부에 특별한 상황(ex) 네트워크의 특정 부분에 혼잡이 발생한 경우)이 발생하여 연결 해제 요구가 발생할 수도 있음