TCP vs UDP

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 주요 통신 프로토콜로, 각각 다른 방식으로 데이터를 전송한다.

TCP (Transmission Control Protocol)

특징

  • 연결 지향(Connection-oriented)
    TCP는 통신을 시작하기 전에 연결을 설정한다. 이 연결은 3-way handshake 과정을 통해 이루어진다.
  • 신뢰성(Reliability)
    데이터 전송의 신뢰성을 보장한다. 데이터 패킷이 손실되거나 손상되면 재전송한다.
  • 순서 보장(Ordering)
    패킷이 순서대로 도착하도록 보장한다. 수신자는 전송된 데이터가 원래의 순서대로 도착하는 것을 확인할 수 있다.
  • 흐름 제어(Flow control)
    송신자와 수신자 간의 데이터 전송 속도를 조절하여 수신자가 데이터를 처리할 수 있도록 한다.
  • 혼잡 제어(Congestion control)
    네트워크 혼잡을 피하기 위해 송신 속도를 조절한다.

용도

  • 웹 브라우징(HTTP/HTTPS)
  • 이메일(SMTP, IMAP, POP3)
  • 파일 전송(FTP)
  • 원격 서버 접속(SSH, Telnet)

UDP (User Datagram Protocol)

특징

  1. 비연결 지향(Connectionless)
    UDP는 연결 설정 없이 데이터를 전송한다.
  2. 비신뢰성(Unreliable)
    데이터 전송의 신뢰성을 보장하지 않는다. 데이터 패킷이 손실되거나 손상되어도 재전송하지 않는다.
  3. 순서 미보장(No ordering)
    패킷의 순서를 보장하지 않는다. 수신자는 패킷이 순서대로 도착하지 않을 수 있다.
  4. 단순한 헤더 구조(Simple header)
    TCP에 비해 UDP의 헤더 구조가 단순하여 오버헤드가 적다.
  5. 빠른 속도(Low latency)
    TCP보다 전송 속도가 빠르고 지연 시간이 적다.

용도

  • 실시간 스트리밍(Media streaming)
  • 온라인 게임
  • VoIP(Voice over IP)
  • 방송(Broadcast)
  • DNS(Domain Name System) 조회

3-way Handshake는 TCP(Transmission Control Protocol)에서 연결을 설정하기 위해 사용하는 절차이다. 이 과정은 세 개의 단계로 이루어지며, 클라이언트와 서버 간의 신뢰할 수 있는 통신을 보장하기 위한 중요한 메커니즘이다. 3-way Handshake 과정은 다음과 같다.

  1. SYN (Synchronize)
    클라이언트가 서버에 연결 요청을 보낸다.
    이 요청에는 클라이언트의 초기 시퀀스 번호(ISN, Initial Sequence Number)가 포함된다.
    패킷의 플래그 필드에 SYN(Synchronize) 플래그가 설정되어 있다.
  2. SYN-ACK (Synchronize-Acknowledge)
    서버는 클라이언트의 SYN 요청을 수신하고, 이를 확인하는 응답을 보낸다.
    응답에는 서버의 초기 시퀀스 번호(ISN, Initial Sequence Number)와 클라이언트의 시퀀스 번호에 대한 확인 응답(ACK, Acknowledgment)이 포함된다.
    패킷의 플래그 필드에 SYN 및 ACK 플래그가 설정되어 있다.
  3. ACK (Acknowledge)
    클라이언트는 서버의 SYN-ACK 응답을 수신하고, 이를 확인하는 응답을 보낸다.
    이 응답에는 클라이언트의 시퀀스 번호와 서버의 시퀀스 번호에 대한 확인 응답(ACK, Acknowledgment)이 포함된다.
    패킷의 플래그 필드에 ACK 플래그가 설정되어 있다.
같은 카테고리의 다른 글

보안 / 방화벽

방화벽의 정의 방화벽(Firewall)은 컴퓨터 네트워크 보안 시스템으로, 네트워크 트래픽을 모니터링하고 제어하여 신뢰할 수 없는 네트워크(일반적으로 인터넷)와 신뢰할 수 있는 내부 네트워크 간의 장벽을 형성합니다. 방화벽은 승인된 트래픽은 통과시키고, 비승인된 트래픽은 차단함으로써 네트워크 보안을 강화합니다.  방화벽의 주요 기능 트래픽 필터링 방화벽은 패킷 필터링 기술을 사용하여 네트워크 트래픽을 검사하고, 사전 정의된 보안 규칙에 따라 트래픽을 허용하거나 ...

네트워크 / 네임서버

네임서버(Name Server)는 도메인 네임 시스템(DNS, Domain Name System)의 핵심 구성 요소로, 도메인 이름과 IP 주소를 연결해주는 역할을 합니다. 네임서버는 인터넷이 현재와 같은 방식으로 작동할 수 있도록 하는 중요한 인프라 중 하나로, 사용자가 웹사이트에 접속할 때 웹 브라우저가 도메인 이름을 입력하면 해당 도메인 이름을 IP 주소로 변환해주는 기능을 수행합니다. 도메인 네임 시스템(DNS)의 ...

DLP와 DRM 차이

DLP(Data Loss Prevention)와 DRM(Digital Rights Management)은 모두 데이터 및 디지털 콘텐츠의 보호를 목적으로 하지만, 그 목표와 작동 방식에서 차이점이 있습니다. DLP는 주로 기업 내부의 데이터 보안을 강화하기 위한 솔루션이며, DRM은 디지털 콘텐츠의 저작권을 보호하고 불법 복제를 방지하는 데 사용됩니다. 두 기술은 각기 다른 목적과 적용 범위를 가지고 있지만, 모두 중요한 ...

네트워크 / 잘 알려진 포트, 등록된 포트, 동적 포트

포트 번호는 0~65535까지 사용 가능합니다. 이를 용도에 따라 잘 알려진 포트, 등록된 포트, 동적 포트 세 가지로 분류합니다. 관리는 IANA(Internet Assigned Numbers Authority)에서 합니다.

FTP와 SFTP 소개 및 비교

FTP(파일 전송 프로토콜)와 SFTP(SSH 파일 전송 프로토콜)는 네트워크를 통해 파일을 전송하는 두 가지 방법입니다. 이 두 프로토콜은 파일 전송을 위해 사용되지만, 보안, 인증 및 전송 방식에 있어서 차이점이 있습니다. FTP (File Transfer Protocol) FTP는 네트워크를 통해 파일을 전송하기 위해 사용되는 표준 프로토콜입니다. 클라이언트-서버 모델을 기반으로 하며, 주로 인터넷을 통해 파일을 업로드하거나 다운로드하는 ...

MariaDB / 데이터베이스 이름에 하이픈(-) 또는 점(.) 포함하는 방법

MariaDB / 데이터베이스 이름에 하이픈(-) 또는 점(.) 포함하는 방법

MariaDB에 하이픈(-)이나 점(.)을 포함한 이름으로 데이터베이스를 만들면 에러가 납니다. 예를 들어 create database test-test; 라고 하면 다음과 같은 에러 메시지를 출력하면서 데이터베이스를 생성하지 못합니다. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-test' at ...

DNS 레코드 조회하는 사이트

DNS 레코드 조회하는 사이트

DNS 레코드를 조회하는 방법은 여러 가지가 있습니다. 예를 들어 OS가 윈도우라면 nslookup 명령어로 조회할 수 있습니다. 명령어를 사용하는 게 불편하다면 DNS 레코드를 조회해주는 사이트를 이용하는 게 편합니다.

SSH(Secure Shell) 소개

SSH(보안 셸, Secure Shell는 네트워크를 통해 다른 컴퓨터에 안전하게 접속하고 명령을 실행할 수 있도록 설계된 프로토콜입니다. SSH는 특히 원격 로그인 및 기타 네트워크 서비스를 안전하게 제공하기 위해 사용되며, 데이터를 암호화하여 전송하므로 도청과 중간자 공격을 방지할 수 있습니다. 주요 특징 암호화 SSH는 데이터를 암호화하여 전송합니다. 이를 통해 전송 중인 데이터가 도청되거나 변경되는 것을 방지할 ...

신용카드 / 결제일별 카드 사용 기간

신용카드 / 결제일별 카드 사용 기간

신용카드는 한 달 동안 사용한 금액을 12일에서 15일 뒤에 납부한다. 따라서 그 한 달을 어떻게 정하냐에 따라 결제일이 달라진다. 반대로, 결제일을 정하면 언제 사용한 것을 내는지 정해진다. 신용카드의 결제일별 사용 기간은 거의 비슷하나 같지는 않다. 개인적으로 전월 1일부터 전월 말일까지 사용한 것을 결제하는 걸 좋아하는데, 대부분 14일이나 현대카드는 12일이다. 국민카드 결제일 사용 기간 1 전전월 18일 ...

현대자동차 / 스마트키 / 배터리 교체하는 방법

현대자동차 / 스마트키 / 배터리 교체하는 방법

차 시동을 끄는데 메시지가 하나 떴어요. 자동차 스마트키 배터리 전압이 낮다는.. 그래서 그 키는 두고 다른 키를 사용했는데, 그것도 전압이 낮다고 나왔어요. 어쩔 수 없이 배터리를 교체했습니다. 차량 설명서에는 설명이 너무 간단하게 나왔어요. 일자 드라이버로 분해하고, 건전지 교체하고, 다시 조립하라고... 뭐, 틀린 말은 아닌데, 사진 같은 것도 없어서 좀 오래 걸렸네요. 제일 ...