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

모니터 / 캘리브레이션(Calibration)

모니터 캘리브레이션은 모니터의 색상, 밝기, 대비 등을 정확하게 조정하여 실제 환경에서 일관되고 정확한 색상을 표현할 수 있도록 하는 과정입니다. 캘리브레이션은 사진 편집, 그래픽 디자인, 비디오 편집 등 색상 정확도가 중요한 작업에서 특히 중요합니다. 모니터 캘리브레이션의 필요성 정확한 색상 표현 각 모니터는 제조 과정에서 약간의 색상 차이가 발생할 수 있습니다. 캘리브레이션을 통해 모니터가 정확한 ...

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

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

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

Ubuntu / 특정 패키지만 업그레이드 하기, 보안 업데이트만 업그레이드 하기

우분투 서버에 접속하면 업데이트가 필요한 패키지가 있는지 알려줍니다. 두 가지 분류로 알려주는데, 하나는 패키지 업데이트, 또 하나는 보안 업데이트입니다. 소프트웨어는 보통 최신 버전을 유지하는 것이 좋지만, 업그레이드했을 때 문제가 없는지 충분히 확인을 해야 합니다. 따라서 특정 패키지만 업그레이드를 하거나, 보안 업데이트만 해야 하는 경우가 발생하는데, 어떻게 그런 작업을 하는지 알아보겠습니다. 특정 ...

엣지 / 스크롤 캡처

엣지 / 스크롤 캡처

활성화된 창을 캡처하는 것은 쉽다. 많은 캡처 프로그램이 창 캡처를 지원한다. 그런데, 화면에 보이지 않는 곳까지 캡처할 수 있는 프로그램은 많지 않고, OS 버전이나 캡처 대상이 되는 프로그램에 따라 잘 작동하지 않는 경우가 많다. 만약 웹페이지 전체를 캡처하고 싶다면 웹브라우저에 그런 기능이 있나 살펴보자. 쉽고 빠르게 캡처할 수 있다. 마이크로소프트 엣지는 웹 ...

안드로이드 / 앱 / 카카오톡 / 대화 내용 캡쳐하는 방법

안드로이드 / 앱 / 카카오톡 / 대화 내용 캡쳐하는 방법

스마트폰의 캡쳐 기능을 이용하면 화면을 이미지로 저장할 수 있다. 그런데 화면에 보이는 부분만 가능하다. 만약 특정 부분만 캡쳐하거나 화면을 벗어나는 부분도 캡쳐하고 싶다면 앱이 제공하는 기능을 사용한다. 카카오톡에도 캡쳐 기능이 있는데, 이를 이용하면 원하는 대화 내용을 캡쳐할 수 있고, 화면을 벗어나는 긴 대화도 캡쳐 가능하다. 대화방에서 + 아이콘을 누른다. 를 누른다. 화면이 어두워지는데... 캡쳐하려는 첫번째 ...

아이피타임(ipTIME) 공유기 / 펌웨어 업데이트하는 방법

아이피타임(ipTIME) 공유기 / 펌웨어 업데이트하는 방법

ipTIME 공유기 관리자 페이지에 접속하여 펌웨어를 최신 버전으로 업그레이드하는 방법을 설명합니다. 자동 업그레이드와 수동 업그레이드 방법, 업그레이드 시 주의사항까지 정리했습니다.

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9에 Apache, PHP, MariaDB를 설치하는 방법을 정리합니다.

위키(Wiki) / 위키 만드는 소프트웨어 / XWiki

XWiki는 강력하고 유연한 오픈 소스 위키 소프트웨어로, 기업 환경에서의 문서 관리, 지식 공유, 협업을 위해 설계되었습니다. XWiki는 Java로 작성되었으며, 다양한 기능과 확장성을 제공하여 복잡한 웹 애플리케이션을 구축할 수 있습니다. 역사 XWiki는 2003년에 루도빅 두모니에(Ludovic Dubost)에 의해 처음 개발되었습니다. 초기에는 기업의 지식 관리 시스템으로 시작되었으며, 이후 커뮤니티와의 협력을 통해 발전해왔습니다. 현재 XWiki는 XWiki ...

워드프레스 / 샘플 데이터 만드는 방법

워드프레스 / 샘플 데이터 만드는 방법

워드프레스를 공부하거나, 테마를 만들 때 글, 페이지, 이미지, 댓글 등이 필요하다. 이러한 샘플 데이터를 만드는 방법 중의 하나는 플러그인을 사용하는 것이다. 플러그인 추가 페이지에서 dummy로 검색하면 꽤 많은 결과가 나온다. 하지만, 개인적으로 애용하는 건 Theme Unit Test이다. 다양한 형식의 글과 페이지들을 포함하고 있기 때문이다. 사용하는 방법은... XML 파일 다운로드 Theme Unit Test 사이트에 ...

당구 / 메모

당구 / 메모

임계각 파란색을 따라 치면 회전을 더 주든 덜 주든 3쿠션 지점이 비슷하다. ①번처럼 파란색보다 큰 각인 경우 회전을 많이 줄수록 3쿠션 지점이 길어진다. ②번처럼 파란색보다 작은 각인 경우 회전을 덜 줄수록 3쿠션 지점이 길어진다.