커넥션형 통신의 구조

커넥션형 통신은 데이터를 주고받기 전에 먼저 연결을 설정하고, 데이터 전송이 끝나면 연결을 종료하는 방식입니다. 이 방식은 마치 전화 통화와 비슷합니다.

전화 통화로 이해하기

  1. 연결 설정: 전화를 걸어 상대방이 받을 때까지 기다립니다.
  2. 데이터 전송: 상대방이 전화를 받으면 대화를 주고받습니다.
  3. 연결 종료: 대화가 끝나면 "안녕"하고 전화를 끊습니다.

커넥션형 통신에서는 데이터를 보내기 전에 양쪽 컴퓨터가 서로 "준비됐어?"라고 확인하는 과정을 거칩니다. 이를 '핸드셰이크(handshake)'라고 부릅니다. 그 후 안정적인 통신 경로가 설정되면 데이터를 주고받고, 모든 통신이 끝나면 연결을 종료합니다.

연결형 통신의 대표 프로토콜: TCP

TCP(Transmission Control Protocol)는 커넥션형 통신의 대표적인 프로토콜입니다. 인터넷에서 가장 널리 사용되며, 다음과 같은 특징이 있습니다:

  1. 신뢰성 보장: 데이터가 손실되면 재전송합니다.
  2. 순서 보장: 보낸 순서대로 데이터가 도착합니다.
  3. 흐름 제어: 수신자가 처리할 수 있는 속도로 데이터를 전송합니다.
  4. 혼잡 제어: 네트워크 상황에 따라 전송 속도를 조절합니다.

TCP 연결 과정

TCP는 '3-way handshake'라는 과정을 통해 연결을 설정합니다:

  1. SYN: 클라이언트가 서버에 연결 요청(SYN)을 보냅니다.
  2. SYN-ACK: 서버가 요청을 수락하고 응답(SYN-ACK)을 보냅니다.
  3. ACK: 클라이언트가 응답을 확인(ACK)하고 연결이 완료됩니다.

실생활 예시: 택배 서비스

TCP는 마치 등기 택배 서비스와 같습니다. 택배를 보내기 전에 배송지 확인 전화가 오고(연결 설정), 택배가 잘 도착했는지 확인 서명을 받으며(데이터 확인), 문제가 있으면 다시 배송합니다(재전송). 배송이 완료되면 서비스가 종료됩니다(연결 종료).

 


커넥션리스형 통신의 구조(데이터그램 방식)

커넥션리스형 통신은 사전 연결 설정 없이 바로 데이터를 전송하는 방식입니다. 각 데이터 패킷은 독립적으로 전송되며, 이를 '데이터그램' 방식이라고도 합니다.

편지로 이해하기

이 방식은 마치 편지를 보내는 것과 비슷합니다:

  1. 편지를 쓰고 봉투에 주소를 적습니다.
  2. 우체통에 넣기만 하면 됩니다(사전 연결 불필요).
  3. 각 편지는 독립적으로 배달됩니다.
  4. 상대방이 받았는지 확인하기 어렵습니다.

커넥션리스형 통신에서는 각 데이터 패킷에 목적지 주소를 붙여서 네트워크에 던져 넣습니다. 목적지까지 어떤 경로로 갈지, 제대로 도착할지 보장하지 않습니다.

비연결형 통신의 대표 프로토콜: UDP

UDP(User Datagram Protocol)는 커넥션리스형 통신의 대표적인 프로토콜입니다. 다음과 같은 특징이 있습니다:

  1. 연결 설정 없음: 바로 데이터를 전송합니다.
  2. 비신뢰성: 데이터 손실을 확인하거나 복구하지 않습니다.
  3. 순서 보장 없음: 데이터가 보낸 순서와 다르게 도착할 수 있습니다.
  4. 가벼움: 오버헤드가 적어 빠른 전송이 가능합니다.

UDP 통신 과정

UDP는 매우 단순한 구조를 가지고 있습니다:

  1. 데이터를 패킷으로 나누고 목적지 주소를 붙입니다.
  2. 네트워크에 패킷을 바로 전송합니다.
  3. 수신자는 도착한 패킷을 처리합니다.
  4. 확인이나 재전송 과정이 없습니다.

실생활 예시: 일반 우편

UDP는 마치 일반 우편과 같습니다. 편지를 우체통에 넣기만 하면 됩니다(연결 설정 없음). 편지가 잘 도착했는지 확인할 수 없고(비신뢰성), 같은 날 보낸 여러 편지가 다른 날에 도착할 수 있습니다(순서 보장 없음). 하지만 빠르고 간단하게 전송할 수 있습니다.

 


 

각 통신 방법의 장점/단점

커넥션형(TCP) 통신

장점:

  • 신뢰성: 데이터 손실이 거의 없습니다.
  • 순서 보장: 데이터가 보낸 순서대로 도착합니다.
  • 오류 제어: 손상된 데이터를 감지하고 복구합니다.

단점:

  • 오버헤드: 연결 설정, 확인, 재전송 등으로 인해 추가 부담이 있습니다.
  • 지연: 신뢰성을 보장하기 위한 절차로 인해 전송 속도가 느려질 수 있습니다.
  • 리소스 사용: 연결 상태를 유지하기 위해 메모리와 CPU 자원을 사용합니다.

 

커넥션리스형(UDP) 통신

장점:

  • 속도: 연결 설정이나 확인 과정이 없어 빠릅니다.
  • 단순성: 프로토콜 구조가 간단합니다.
  • 효율성: 오버헤드가 적어 네트워크 자원을 효율적으로 사용합니다.

단점:

  • 비신뢰성: 데이터 손실이 발생할 수 있습니다.
  • 순서 보장 없음: 데이터가 다른 순서로 도착할 수 있습니다.
  • 오류 제어 없음: 손상된 데이터를 감지하지 못할 수 있습니다.

 

어떤 통신 방식을 언제 사용할까?

TCP(커넥션형)가 적합한 경우:

  • 웹 브라우징(HTTP/HTTPS): 웹페이지의 모든 내용이 정확히, 순서대로 로드되어야 합니다.
  • 이메일(SMTP): 메일 내용이 손실 없이 전달되어야 합니다.
  • 파일 전송(FTP): 파일의 모든 부분이 정확히 전송되어야 합니다.
  • 데이터베이스 쿼리: 중요한 정보가 손실되면 안 됩니다.

UDP(커넥션리스형)가 적합한 경우:

  • 실시간 스트리밍(비디오/오디오): 약간의 데이터 손실은 허용되지만, 지연이 적어야 합니다.
  • 온라인 게임: 빠른 업데이트가 중요하며, 일부 패킷 손실은 게임 경험에 큰 영향을 주지 않습니다.
  • DNS 조회: 빠른 응답이 중요합니다.
  • IoT 장치: 제한된 자원으로 간단한 통신이 필요한 경우가 많습니다.

 

결론

커넥션형 통신(TCP)과 커넥션리스형 통신(UDP)은 각각 다른 상황에 적합한 특성을 가지고 있습니다. 어떤 것이 "더 좋다"라고 단정할 수 없으며, 응용 프로그램의 요구사항에 따라 적절한 프로토콜을 선택해야 합니다.

  • 정확성과 완전성이 중요하다면 → TCP
  • 속도와 효율성이 중요하다면 → UDP
728x90

'1일 1네트워크 > 제 5장: 트랜스포트층의 프로토콜' 카테고리의 다른 글

포트 번호란?  (0) 2025.03.20
TCP와 UDP란?  (0) 2025.03.19

+ Recent posts