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 플래그가 설정되어 있다.
같은 카테고리의 다른 글
크롬 / 비밀번호 저장 설정하는 방법

크롬 / 비밀번호 저장 설정하는 방법

구글 크롬에는 비밀번호 저장 기능이 있다. 비밀번호 저장을 하면 동기화한 모든 기기에서 저장된 암호를 사용할 수 있다. 편리하긴 하지만, 공용 PC에서는 사용에 주의를 기울여야 한다. 비밀번호 저장 기능 사용 여부는 에서 한다. 를 클릭하고... 를 클릭한다. 을 클릭한다. 비밀번호 저장 기능을 사용했다면 저장된 비밀번호 목록을 볼 수 있다. 사이트를 클릭해서 ...

당구 / 당구대 크기, 당구공 크기, 당구대 도면

당구 / 당구대 크기, 당구공 크기, 당구대 도면

당구대 크기 당구대는 정사각형 두 개를 연달아 붙여놓은 것입니다. 그래서 가로 세로 비율은 2:1입니다. 당구대는 국제식 대대, 국제식 중대, 국내식 중대로 구분되는데 각각의 크기는 다음과 같습니다. 국제식 대대 : 2844mm × 1422mm (쿠션 높이 37~38mm) 국제식 중대 : 2540mm × 1270mm (쿠션 높이 38mm) 국내식 중대 : 2448mm × 1224mm (쿠션 높이 40mm) 대한당구연맹의 경기 규칙서에는 ...

버추얼박스 / 우분투 게스트에 게스트 확장(Guest Additions) 설치하기

버추얼박스 / 우분투 게스트에 게스트 확장(Guest Additions) 설치하기

버추얼박스 가상 머신에 게스트 확장(Guest Additions)을 설치하면 몇 가지 유용한 기능을 사용할 수 있습니다. 게스트의 OS가 우분투 데스크톱일 때 게스트 확장(Guest Additions)을 설치하는 방법을 알아보겠습니다. OS는 설치된 상태에서 시작합니다. 가상 머신을 실행하고 로그인합니다. 마우스 우클릭하고 을 클릭하여 터미널을 엽니다. 다음과 같이 명령하여 몇 가지 패키지를 설치합니다. sudo apt install gcc make perl 메뉴에서 ...

TCP vs UDP

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 주요 통신 프로토콜로, 각각 다른 방식으로 데이터를 전송한다. TCP (Transmission Control Protocol) 특징 연결 지향(Connection-oriented) TCP는 통신을 시작하기 전에 연결을 설정한다. 이 연결은 3-way handshake 과정을 통해 이루어진다. 신뢰성(Reliability) 데이터 전송의 신뢰성을 보장한다. 데이터 패킷이 손실되거나 손상되면 재전송한다. 순서 보장(Ordering) 패킷이 순서대로 도착하도록 보장한다. 수신자는 전송된 데이터가 원래의 순서대로 도착하는 것을 확인할 ...

버추얼박스 / 윈도우 10에서 가상 머신 만들 때 멈추는 문제 해결하는 방법

버추얼박스 / 윈도우 10에서 가상 머신 만들 때 멈추는 문제 해결하는 방법

버추얼박스로 가상 머신을 만들 때, 환경에 따라 이런 저런 문제가 발생할 수 있습니다. 이번에 생긴 문제는 아주 근본적인 문제, 가상 머신에 OS를 설치할 수 없는 것이었습니다. 윈도우 호스트에 Ubuntu 게스트를 만들려고 했는데, 아래와 같은 화면에서 멈춰서 아무 것도 할 수 없었습니다. 원인은 윈도우에 포함된 가상화 관련 기능때문이었습니다. 안드로이드 앱 개발을 위해서 ...

Visual Studio Code (VS Code) / 소개, 장점, 단점

Visual Studio Code (VS Code) / 소개, 장점, 단점

Visual Studio Code (VS Code)는 Microsoft에서 개발한 오픈 소스 코드 편집기로, 다양한 프로그래밍 언어와 플랫폼을 지원하며 개발자들 사이에서 매우 인기가 높습니다. 이 편집기는 가벼우면서도 강력한 기능을 제공하며, 개발 생산성을 높이기 위해 설계되었습니다. 아래에서 VS Code의 상세한 소개와 장단점에 대해 자세히 살펴보겠습니다. Visual Studio Code 소개 출시 및 배경 출시일 : 2015년 4월 29일에 ...

CPU / 소켓(Socket)

CPU 소켓(CPU Socket)은 마더보드에 CPU를 장착할 수 있는 물리적 인터페이스입니다. 이는 CPU와 마더보드 간의 전기적 연결을 제공하며, CPU를 쉽게 교체하거나 업그레이드할 수 있도록 합니다. 다양한 CPU 소켓 유형이 존재하며, 특정 소켓은 특정 CPU 아키텍처 및 모델과 호환됩니다. CPU 소켓의 정의와 기능 정의 CPU 소켓은 CPU를 마더보드에 물리적으로 고정하고 전기적으로 연결하는 소켓입니다. 이는 CPU ...

엣지 / 암호 저장 설정하는 방법

엣지 / 암호 저장 설정하는 방법

마이크로소프트 엣지에는 암호 저장 기능이 있다. 상황에 따라 유용할 수도 있고 위험할 수도 있다. 암호 저장 기능의 사용 여부를 설정하는 방법은 다음과 같다. 오른쪽 위의 점 세 개 아이콘을 클릭하고 을 클릭한다. 를 클릭한다. 빨간 박스 부분에서 암호 저장 기능 사용 여부를 정할 수 있다. 기존에 저장된 암호 목록에서는 수정, 삭제 등을 할 ...

KT 기가 와이파이 공유기 / 초기 아이디와 비밀번호 그리고 초기화 방법

KT 기가 와이파이 공유기 / 초기 아이디와 비밀번호 그리고 초기화 방법

KT에서는 기가 속도를 지원하는 공유기를 임대해주고 있습니다. 예전에는 홈허브라고 했고, 요즘엔 기가 와이파이라고 합니다. KT에서 임대하는 것보다 공유기를 하나 사는 게 더 저렴하다고 생각할 수도 있는데, 약정, 장기고객 등 이런저런 할인을 받으면 거의 무료로 사용할 수 있습니다. 공유기를 신청하면 기사가 와서 설치를 해주는데, 보통 인터넷 연결 확인까지만 해줍니다. 무선 접속 비밀번호 ...

네트워크 / NAT(Network Address Translation)

NAT는 네트워크 주소 변환을 의미하며, 네트워크 트래픽의 IP 주소를 변환하는 기술입니다. 주로 사설 네트워크(Private Network)와 공인 네트워크(Public Network) 간의 통신을 가능하게 하기 위해 사용됩니다. NAT는 보안, 주소 공간 절약, 그리고 네트워크 확장을 위해 필수적인 기능으로 널리 활용됩니다. NAT의 주요 기능 IP 주소 절약: IPv4 주소의 고갈 문제를 해결하기 위해 사설 IP 주소(Private IP)와 공인 IP 주소(Public ...