본문 바로가기

컴퓨터 과학

네트워크와 프로토콜 (3)

전송계층에는 3개의 프로토콜이 있는데 TCP와 UDP 그리고 RTP가 있다.

TCP는 전송을 제어하는 프로토콜인데 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이라 할 수 있다.



TCP의 특징으로는 다음과 같은 특징이 있다.

- 흐름 제어 및 혼잡 제어

- 높은 신뢰성을 보장

- UDP보다 속도는 느리다.

- 전이중, 점대점 방식

- 3 way handshaking 과정을 통해 연결하고 4 way handshaking을 통해 해제한다.



위 특성 중에 3 way handshaking 과정이 있다는 것과 TCP가 연결 지향 방식이라는 것은 논리적 경로를 설정하고 데이터를 보낼 목적지를 정확히 설정하여 확실한 전송을 보장하기 위한 특성이기도 하다. 이러한 특성을 가지는 이유는 TCP는 신뢰성 있는 서비스를 보장하기 위함이다. 그 중간 과정에서 흐름 제어와 오류 제어 과정을 거치기도 하는 것이며 3 way handshaking 과정을 통해 연결 과정을 거치는 것이다. 하지만 이렇게 과정이 복잡하면 속도는 어떻게 될까?

당연히 과정이 많아질수록 전송되는 속도는 느려지게 된다. 그래서 TCP는 연속적으로 데이터를 잃게 되거나 오류가 생겨도 되는 데이터를 전송하는 것보다는 신뢰성 있는 데이터 전송이 필요할 때 사용되는데 예를 들면 은행 관련 업무나 개인 정보에 관한 데이터를 주고받아야 할 때는 TCP 방식을 이용한다.



UDP는 데이터를 데이터 그램 단위로 처리하는 프로토콜이다.

데이터 그램이란 독립적인 관계를 지니는 패킷이라는 뜻이다.

TCP와 UDP는 반대되는 특성을 가지고 있는데, TCP가 연결형 서비스라면 UDP는 비 연결형 서비스이다.

UDP는 그래서 논리적인 경로를 설정하지 않기에 패킷이 각각 다른 경로로 전송될 수도 있고 마지막에 다시 모든 데이터를 수신하는 특성을 가진다.



UDP의 특징으로는 다음과 같은 특징이 있다. TCP와 반대로 생각하면 된다.

- TCP보다 속도가 빠르다

- 신뢰성이 낮다.

- 정보를 주고받을 때 정보를 보내고 있거나 받는다는 신호 절차를 거치지 않는다.

- 비 연결형 서비스로 데이터 그램 방식을 제공한다.



UDP는 비 연결형 서비스이므로 TCP처럼 연결을 설정하고 해제하는 과정이 존재하지 않는다. 또한 한가지의 논리적인 경로를 설정해서 데이터를 보내지 않고 서로 다른 경로로 독립적으로 처리를 하고 흐름 제어와 혼잡 제어 같은 과정도 거치지 않기 때문에 단순함으로 인해 TCP보다 처리 속도가 빠르다. 하지만 이러한 검수 과정이 없으면 데이터가 중간에 손실되거나 잘못된 데이터가 수신되거나 하는 경우가 있는데 UDP는 이를 걸러내지 않는다. 그래서 UDP는 데이터 처리 속도가 빠르지만 신뢰성 있는 데이터 전송은 할 수 없다.

UDP 같은 경우엔 그래서 신뢰성은 중요하지 않고 데이터를 보내는 속도나 연속적으로 빠르게 전송해야 하는 서비스 같은 곳에 사용되는데 예를 들어 많이 쓰이는 곳은 우리가 인터넷을 통해 축구 경기를 보거나 실시간 뉴스를 보는 스트리밍 서비스를 이용할 때 이와 같은 UDP 방식이 사용된다.



RTP는 UDP에 순서번호 기능을 추가하여 순서대로 전송하는 프로토콜이다. 실시간 데이터 전송을 위한 규약으로 오디오, 비디오 등 실시간 데이터를 멀티캐스트나 유니캐스트로 전송하기 적합한 기능을 제공한다. RTP는 RTCP와 함께 쓰인다.

RTP는 TCP와 UDP의 기능을 섞인 것처럼 동작하기도 한다. RTP는 UDP 기반인데 수신 측에서 데이터를 순서대로 정렬해야 한다.



RTP의 특징으로는 다음과 같은 특징이 있다.

- RTP는 응용계층에서 RTP 패킷 순서번호, 타임스탬프 등을 이용하여 실시간 정보를 신뢰성 있게 제공한다.

- RTP는 하위 프로토콜에 독립적이어서 이더넷, ATM 등 다양한 망에 적용할 수 있다.

- UDP 상에서 동작하는 프로토콜은 전송 시 발생한 패킷 손실, 패킷 지연, 뒤바꾼 순서 등의 기능을 제공하지 못한다.



RTCP는 RTP 제어 프로토콜로 주로 멀티미디어 환경에서 사용된다. 수신자에 대한 정보수집 및 수신 측 전송률을 계산하며 세션 안의 모든 참여자에게 주기적인 제어 패킷을 전송하여 귀환하는 데이터로부터 QoS 모니터링을 수행한다.



전송계층은 데이터링크 계층과 유사한데 전송 계층은 논리적인 경로를 설정하고 그 경로를 통해 데이터를 주고받고,

데이터 링크 계층은 물리적인 선로를 이용한 물리적 호스트 사이의 데이터 전송을 담당한다.



전송계층의 기능은 크게 4가지가 있다

- 오류 제어

- 흐름 제어

- 분할과 병합

- 전송 서비스 프리미티브



오류 제어기능은 전송 계층에서 발생하는 오류는 대부분 논리적으로 구축된 각 계층의 소프트웨어가 동작하는 과정에서 데이터를 분실하는 경우가 대부분이다.

데이터 변형, 데이터 분실로 인해 일어나는 전송 오류가 발생하면 데이터 재전송에 의한 오류 제어 기능에 의해 복구가 실행된다.

흐름 제어 기능은 이론적으로 송신 프로세스가 보낼 수 있는 패킷의 한계를 지정하는 방법으로 문제를 해결한다.

전송 계층의 서비스를 이용해 연결 설정 시, 양 끝단의 송수신 호스트의 전송 시 속도 제어를 한다.

전송 서비스 프리미티브는 전송 계층 사용자가 전송 계층 서비스를 이용하기 위한 인터페이스이다. 일반적으로 네트워크에서는 비 신뢰성을 바탕으로 한 비 연결형 서비스 프리미티브가 정의되지만, 전송 계층에서는 연결형 서비스도 제공된다.

전송계층에서는 상위 계층에서 요구한 데이터의 크기에 맞춰 전송 계층에서 데이터를 쪼개고 모으는 과정인 분할과 병합 기능도 한다.







반응형

'컴퓨터 과학' 카테고리의 다른 글

OSI 7계층 (데이터 링크계층)  (0) 2024.01.25
OSI 7계층 (물리계층)  (0) 2024.01.24
네트워크와 프로토콜 (2)  (1) 2024.01.23
네트워크와 프로토콜 (1)  (0) 2024.01.22
소프트웨어 공학  (0) 2024.01.18