전송 계층

허선준·2024년 9월 12일

본캠프

목록 보기
16/25

전송 계층(Transport Layer)은 OSI 7계층 모델에서 네트워크 통신의 4번째 계층으로, 데이터의 종단 간 전송을 담당합니다. 이 계층에서는 데이터 전송이 신뢰할 수 있도록 조정하며, 이를 위해 TCP와 UDP와 같은 프로토콜이 사용됩니다.

TCP와 UDP의 기본 개념

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 데이터를 전송하는 방식에 있어 근본적인 차이를 가지고 있습니다. TCP는 연결 지향적 프로토콜로, 데이터 전송 전에 먼저 연결을 설정하고 데이터 전송이 완료된 후에 연결을 종료하는 방식을 취합니다. 이는 데이터의 순서 보장과 신뢰성 있는 전송을 가능하게 합니다.

반면, UDP는 비연결 지향적 프로토콜로, 연결 설정 없이 데이터를 전송합니다. 이는 TCP보다 빠른 전송을 가능하게 하지만, 데이터의 순서나 신뢰성을 보장하지 않습니다. 왜냐하면 UDP는 연결을 맺고 끊는 과정이 없기 때문입니다.

TCP와 UDP의 선택 기준

애플리케이션 개발자는 TCP와 UDP 중 어떤 프로토콜을 사용할지 결정해야 합니다. 이 결정은 애플리케이션의 요구 사항에 따라 달라집니다. 예를 들어, 데이터의 순서와 신뢰성이 중요한 금융 거래 시스템이나 데이터베이스 관리 시스템에서는 TCP가 적합합니다.

반면, 실시간 비디오 스트리밍이나 온라인 게임과 같이 지연 시간을 최소화해야 하는 경우 UDP가 더 적합할 수 있습니다. 왜냐하면 UDP는 연결 설정과 해제 과정이 없어 데이터 전송 속도가 빠르기 때문입니다.

TCP의 신뢰성 있는 데이터 전송

TCP는 데이터의 순서와 신뢰성을 보장하기 위해 3-way handshake와 같은 연결 설정 과정을 거칩니다. 이 과정을 통해 데이터가 전송되기 전에 송수신자 간의 연결이 확립되며, 데이터 전송 후에는 4-way handshake를 통해 연결을 종료합니다. 이러한 과정은 데이터의 순서대로 도착하고 정보가 유실되지 않도록 보장합니다.

또한, TCP는 데이터 전송 중 오류가 발생했을 때 재전송을 요청할 수 있습니다. 이는 데이터 패킷의 유실이나 순서가 뒤바뀌는 문제를 해결하기 위한 것입니다. 왜냐하면 TCP는 데이터의 무결성과 신뢰성을 중요시하기 때문입니다.

UDP의 빠른 데이터 전송

UDP는 연결 설정 과정이 없기 때문에 TCP보다 빠른 데이터 전송이 가능합니다. 이는 실시간 통신이나 스트리밍 서비스와 같이 지연 시간이 중요한 애플리케이션에서 유리합니다. 하지만 UDP는 데이터의 순서나 신뢰성을 보장하지 않기 때문에, 전송된 데이터에 오류가 있거나 순서가 뒤바뀌었을 경우 애플리케이션 단에서 이를 처리해야 합니다.

UDP의 이러한 특성은 실시간 비디오 스트리밍이나 온라인 게임과 같은 분야에서 매우 유용하게 활용됩니다. 왜냐하면 이러한 애플리케이션들은 신속한 데이터 전송을 요구하며, 일부 데이터 패킷의 손실이 큰 문제를 일으키지 않기 때문입니다.

포트 (Port)

  • 포트는 하나의 IP 주소에서 여러 애플리케이션이 데이터를 주고받기 위해 사용하는 논리적인 통신 채널입니다.
  • 포트 번호는 0번부터 65535번까지 있으며, 0~1023번은 well-known ports로 주요 프로토콜이나 서비스에 할당되어 있습니다. 예를 들어, HTTP는 80번, HTTPS는 443번 포트를 사용합니다.
  • 전송 계층에서 포트 번호를 통해 애플리케이션이 데이터를 수신하도록 지정할 수 있습니다. TCP와 UDP는 각각 독립적인 포트 번호 체계를 사용합니다.

전송 계층의 주요 기능

데이터 분할 및 재조립: 데이터를 작은 패킷으로 분할하여 전송한 후, 수신 측에서 다시 조립합니다.

오류 검출 및 수정: 데이터가 손상되었는지 확인하고 필요시 재전송을 요청합니다.
흐름 제어: 송신자가 수신자의 처리 능력 이상으로 데이터를 보내지 않도록 조정합니다.

profile
코딩 초보

0개의 댓글