전송 계층(Transport Layer)란?

전송 계층(Transport Layer)

전송 계층의 개요

전송 계층(Transport Layer)은 OSI 7계층 모델에서 네트워크 상의 단말기 간 신뢰성 있는 데이터 송수신을 제공하는 역할을 합니다. 애플리케이션 계층(Application Layer)과 네트워크 계층(Network Layer) 사이에서 데이터 전송의 신뢰성과 효율성을 보장하는 중요한 기능을 수행합니다.

특히, 전송 계층은 종단 간(End-to-End) 통신을 다루는 최하위 계층으로서, 송신측과 수신측의 프로세스를 서로 연결하여 데이터의 정확한 전송을 보장합니다. 이를 통해 애플리케이션이 데이터 송수신을 보다 안정적으로 수행할 수 있도록 지원합니다.

전송 계층의 주요 기능

전송 계층은 네트워크 상에서 신뢰성 있고 효율적인 데이터 전송을 보장하기 위해 다양한 기능을 수행합니다. 주요 기능은 다음과 같습니다.

오류 검출과 복구 (Error Detection and Recovery)

데이터 전송 과정에서 오류가 발생할 수 있기 때문에, 전송 계층은 오류를 검출하고 복구하는 기능을 수행합니다. 이를 위해 확인 응답(Acknowledgment, ACK)과 재전송(Retransmission) 메커니즘을 사용하여 손상되거나 유실된 데이터가 재전송되도록 합니다.

흐름 제어 (Flow Control)

송신측과 수신측 간의 데이터 처리 속도가 다를 경우, 과부하를 방지하기 위해 흐름 제어를 수행합니다. 송신측이 수신측의 처리 속도를 고려하여 데이터 전송 속도를 조절함으로써 데이터 손실을 방지할 수 있습니다. 대표적인 흐름 제어 기법으로는 정지-대기(Stop-and-Wait) 및 슬라이딩 윈도우(Sliding Window) 방식이 있습니다.

중복 및 누락 검사 (Duplication and Loss Detection)

전송 과정에서 동일한 데이터가 여러 번 전송되거나 일부 데이터가 유실될 수 있습니다. 전송 계층은 이러한 문제를 해결하기 위해 각 세그먼트(segment)에 고유한 시퀀스 번호(Sequence Number)를 부여하여 중복 및 누락을 감지하고 올바른 순서대로 데이터를 재조합합니다.

다중화 (Multiplexing)와 역다중화 (Demultiplexing)

하나의 네트워크 연결을 통해 여러 개의 애플리케이션이 동시에 데이터를 송수신할 수 있도록 지원하는 기능입니다. 다중화(Multiplexing)는 여러 애플리케이션의 데이터를 하나의 물리적 네트워크 연결을 통해 전송하는 기능이며, 역다중화(Demultiplexing)는 전송된 데이터를 해당하는 애플리케이션으로 분배하는 기능을 의미합니다.

세그먼트 단위 데이터 전송

전송 계층은 데이터를 작은 블록 단위인 “세그먼트(Segment)”로 나누어 전송합니다. 이렇게 분할된 세그먼트는 수신 측에서 올바르게 조립되어 원본 데이터로 복원됩니다. 세그먼트 단위 전송은 데이터 흐름을 관리하고 네트워크 효율을 높이는 데 중요한 역할을 합니다.

전송 계층의 주요 프로토콜

전송 계층에서 사용되는 대표적인 프로토콜로는 **TCP(Transmission Control Protocol)**와 **UDP(User Datagram Protocol)**가 있습니다. 두 프로토콜은 각각 다른 방식으로 데이터 전송을 수행하며, 사용 목적에 따라 선택됩니다.

TCP (Transmission Control Protocol)

TCP는 신뢰성 있는 데이터 전송을 제공하는 프로토콜로, 다음과 같은 특징을 가집니다:

  • 연결 지향(Connection-Oriented) 프로토콜: 송신측과 수신측 간에 연결을 설정한 후 데이터를 전송하며, 전송이 끝나면 연결을 해제합니다.

  • 오류 검출 및 복구 지원: 데이터 손실이나 오류 발생 시 재전송을 통해 신뢰성을 보장합니다.

  • 흐름 제어 및 혼잡 제어 기능 포함: 네트워크 과부하를 방지하고 안정적인 데이터 전송을 지원합니다.

  • 데이터 순서 보장: 수신측에서 데이터를 올바른 순서로 정렬하여 제공함으로써 신뢰성 높은 데이터 전송을 수행합니다.

TCP는 파일 다운로드, 웹 브라우징(HTTP, HTTPS), 이메일 전송(SMTP, IMAP, POP3) 등 데이터 신뢰성이 중요한 애플리케이션에서 주로 사용됩니다.

UDP (User Datagram Protocol)

UDP는 TCP와 달리 신뢰성보다는 속도와 효율성을 중시하는 프로토콜입니다. 주요 특징은 다음과 같습니다:

  • 비연결형(Connectionless) 프로토콜: 송신측과 수신측 간의 연결을 설정하지 않고 데이터를 전송합니다.

  • 오류 검출은 가능하지만 복구 기능 없음: 데이터가 손실되더라도 재전송을 수행하지 않습니다.

  • 흐름 제어 및 혼잡 제어 없음: 데이터를 빠르게 전송하지만 신뢰성이 보장되지 않습니다.

  • 데이터 순서를 보장하지 않음: 패킷이 순서대로 도착하지 않을 수 있습니다.

UDP는 신뢰성보다는 실시간성이 중요한 애플리케이션에서 사용됩니다. 예를 들어, 온라인 게임, VoIP(인터넷 전화), 실시간 스트리밍, DNS 조회 등에 활용됩니다.

전송 계층의 역할과 중요성

전송 계층은 애플리케이션이 네트워크를 통해 안정적이고 효율적으로 데이터를 주고받을 수 있도록 하는 중요한 계층입니다. 신뢰성이 필요한 경우 TCP를 사용하고, 실시간성이 중요한 경우 UDP를 선택하는 등, 사용자의 필요에 맞는 데이터 전송 방식을 결정할 수 있습니다.

이처럼 전송 계층은 네트워크 상에서 안정적인 통신을 보장하며, 데이터 전송의 정확성을 유지하는 핵심 역할을 수행합니다. 이를 바탕으로 다양한 인터넷 서비스와 애플리케이션이 원활하게 동작할 수 있도록 지원하고 있습니다.

Hadoop 대규모 데이터 처리 프레임워크의 핵심 이해

1 thought on “전송 계층(Transport Layer)란?”

Leave a Comment