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 플래그가 설정되어 있다.
같은 카테고리의 다른 글
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 ...

크롬 / 맞춤법 검사 해제하는 방법

크롬 / 맞춤법 검사 해제하는 방법

크롬 웹브라우저에는 맞춤법 검사 기능이 있습니다. 폼에 텍스트를 입력하면 맞춤법 검사를 하고, 맞춤법에 맞지 않으면 빨간 밑줄을 칩니다. 유용한 기능이기는 하지만, 굳지 필요하지 않을 수도 있습니다. 글 주제에 따라 빨간 줄이 너무 많이 나올 수도 있기 때문입니다. 맞춤법 검사는 크롬 설정에서 해제할 수 있습니다. 오른쪽 위의 점 세 개 아이콘을 클릭한 후 ...

버추얼박스 / CentOS 8 게스트에 게스트 확장(Guest Additions) 설치하기

버추얼박스 / CentOS 8 게스트에 게스트 확장(Guest Additions) 설치하기

VirtualBox에 CentOS 8을 GUI 모드로 사용하고 싶다면 게스트 확장(Guest Additions)을 설치하는 것이 좋습니다. 그래야 호스트와 게스트 간 마우스 이동이 편리하고, 클립보드 공유나 드래그 앤 드롭이 가능해집니다. 패키지 설치하기 게스트 확장을 설치하려면 몇 가지 패키지를 설치해야 합니다. root 계정으로 로그인한 상태에서 진행하겠습니다. Activities를 클릭하고 터미널을 클릭합니다. 다음과 같이 명령하여 EPEL(Extra Packages for Enterprise Linux) 저장소를 ...

안드로이드 / 앱 / 카카오뱅크 / ATM 이체한도, 출금한도 변경하는 방법

안드로이드 / 앱 / 카카오뱅크 / ATM 이체한도, 출금한도 변경하는 방법

카카오뱅크의 한도는 카카오뱅크 앱에서 이체할 수 있는 한도와 ATM 기기에서 이체/출금할 수 있는 한도로 구분할 수 있습니다. ATM 기기 이체/출금 한도는 기본적으로 적게 설정되어 있으므로, 큰 금액 거래를 ATM에서 하려면 한도 변경을 해야 합니다. 이체는 보통 앱에서 할 것이므로, 출금 한도를 주로 변경하게 되겠죠. ATM 이체/출금 한도를 변경하려면... 카카오뱅크 앱을 실행하고 메뉴를 엽니다. 로 ...

OBS Studio / 설치하는 방법

OBS Studio / 설치하는 방법

OBS Studio는 영상 녹화 또는 방송을 할 수 있게 해주는 오픈소스 프로그램입니다. 주요 영상 플랫폼을 지원하고, 고화질의 녹화가 가능합니다. OBS Studio를 설치하고 기본 설정하는 방법을 알아보겠습니다. 다운로드 https://obsproject.com/ko에서 다운로드합니다. 윈도우, 맥, 리눅스를 지원합니다. 자신의 환경에 맞는 걸 다운로드하세요. 여기서는 윈도우용을 다운로드하겠습니다. 설치 다운로드한 파일을 실행하면 설치가 시작됩니다. 를 클릭합니다. 라이선스에 동의하면 를 클릭합니다. 클릭하지 않으면 진행되지 ...

엣지 / 즐겨찾기 내보내기, 즐겨찾기 가져오기

엣지 / 즐겨찾기 내보내기, 즐겨찾기 가져오기

마이크로소프트 엣지에서 즐겨찾기를 내보내고 가져오는 방법은 다음과 같다. 내보내기 오른쪽 위의 점 세 개 아이콘을 클릭하고 를 클릭한다. 검색 폼 옆에 있는 즐겨찾기 아이콘을 클릭해도 된다. 점 세 개 아이콘을 클릭한다. 를 클릭하면... HTML 형식으로 즐겨찾기를 내보낸다. 가져오기 를 클릭한다. 을 클릭한다. 선택 목록에서 [즐겨찾기 ...

M.2 SSD 과열 시 증상과 온도 측정 방법

M.2 SSD 과열 시 증상과 온도 측정 방법

M.2 SSD 과열 시 나타나는 속도 저하, 게임 로딩 지연, 시스템 멈춤 증상과 CrystalDiskInfo, 삼성 매지션를 활용한 SSD 온도 측정 방법을 알아봅니다.

하이패스 사용 내역 확인하고 출력하는 방법

하이패스 사용 내역 확인하고 출력하는 방법

현대카드의 하이패스를 사용하고 있는데 카드 명세서에는 금액만 찍힌다. 그래서 언제 어디에서 사용한 것인지 알 수가 없다. 정확히 언제 어디서 사용한 것인지 알아야 한다면, 그리고 건별 영수증이 필요하다면 고속도로 통행료 홈페이지로 가자. 원하는 정보를 얻을 수 있다. 회원 가입을 하고... 카드 등록을 한다. 에서... 조건을 지정하여 내역을 조회할 수 있다. 영수증이 필요하면 선택을 한 후 ...

KT 공유기 / GiGA WiFi Wave 2 / 브릿지 모드로 설정하는 방법

KT 공유기 / GiGA WiFi Wave 2 / 브릿지 모드로 설정하는 방법

KT 인터넷을 사용하고, 공유기는 ipTIME 거 하나, KT 거 하나 있습니다. KT 공유기가 생기기 전에는 인터넷 라인을 ipTIME 공유기에 연결하고, 그 공유기와 PC, 스마트폰 등을 연결했습니다. 그런데 무선이 집 전체를 커버하지 못하네요. 그래서 KT 공유기가 생겼을 때 두 개의 공유기를 같이 쓰기로 했습니다. 즉, 아래와 같은 구성에서... 아래와 같은 구성으로 바꾸는 ...

Brackets / 언어 변경하는 방법

Brackets / 언어 변경하는 방법

Brackets는 다국어를 지원합니다. 원하는 언어로 사용할 수 있습니다. 언어 변경은 다음 순서로 합니다. 상단 메뉴에서 디버그(Debug)를 클릭하고 언어 변경(Switch Language)을 클릭합니다. 언어를 선택하고 Brackets 재시작(Reload Brackets)를 클릭합니다. 브라켓이 재시작 되면서 언어가 변경됩니다.