devkty 2025. 5. 6. 10:36
728x90

TCP / UDP

TCP

TCP는 연결 지향적 프로토콜로, 안정적인 통신을 보장합니다.
이를 위해 헤더가 매우 복잡하며 다양한 제어 정보를 포함합니다.

특성

  • 접속형: 3-way Handshake를 통한 연결 설정 후 데이터 교환
  • 패킷 순서 보장 및 중복 제거
  • 신뢰성: 수신 확인(Acknowledgement) 방식으로 신뢰성 확보
  • 흐름 제어: 각 TCP 접속의 종단에 일정 크기의 버퍼 공간을 갖고, 송신하는 TCP 수신 측이 갖고 있는 버퍼 크기만큼 데이터를 보내도록 제어하여, 처리 속도가 느린 수신 측 호스트의 버퍼 크기를 넘치게 하는 것을 방지
  • 혼잡 제어: 네트워크 내에 존재하는 패킷의 수가 과도하게 증가되는 현상을 방지함.
  • 사용 예: 웹(HTTP/HTTPS), 이메일(SMTP / IMAP), 파일 전송(FTP)

헤더 내용

  • 포트 번호: 송수신 애플리케이션 식별
  • 순서 번호(Sequence Number): 패킷의 순서를 지정
  • 확인 응답 번호(Ack Number): 수신된 패킷의 응답
  • 제어 플래그(SYN, ACK, FIN 등): 연결 설정 및 종료 제어
  • 윈도우 크기: 수신 가능한 데이터의 크기 지정
  • 체크섬: 오류 검출용

오류 처리

TCP는 오류를 발견할 뿐만 아니라, 패킷이 유실되었을 경우 재전송, 순서 재조정, 흐름 제어, 혼잡 제어까지 수행합니다. 이로 인해 신뢰성 있는 통신이 이뤄집니다.

3 - Way Handshake, 4 - Way Handshake 과정

다음과 같이 TCP는 접속과 종료시에 핸드셰이크 과정으로 진행합니다.

접속 시: SYN → SYN-ACK → ACK
종료 시: FIN → ACK → 지연 → FIN → ACK

순으로 세션이 전개됩니다.


UDP

UDP는 비연결형 프로토콜로, 단순하고 빠른 전송이 목표입니다.
헤더도 단순하게 구성되어 있으며 다음 정보만 포함됩니다.
오버헤드가 작고 전송 속도가 빠르지만, 신뢰성은 보장하지 않습니다.

특성

  • 비연결형: 연결 설정 없이 전송 시작
  • 비 상태정보: 순서 보장 없음, 재전송 없음, 연결 정보나 상태 정보를 저장하지 않음.
  • 경량의 오버헤드: UDP는 경량의 8바이트 헤드
  • 비정규적인 송신률: 일부 패킷 손실이 생기더라도 최소 전송률을 요구하는 실시간 전송의 경우 비정규적 송신률 이용
  • 최선의 서비스: 빠른 속도와 낮은 지연 시간 제공.
  • 사용 예: 실시간 스트리밍, VoIP, 온라인 게임, DNS 요청 등

헤더 내용

  • 포트 번호
  • 패킷 길이
  • 체크섬

오류 처리

UDP는 체크섬으로 오류 감지만 하고, 유실된 데이터에 대한 재전송은 하지 않습니다. 수신자는 어떤 데이터가 유실 되었는지 알 수 없습니다.

728x90