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 ...

DNS / DMARC 레코드의 용도와 설정하는 방법

DNS / DMARC 레코드의 용도와 설정하는 방법

DMARC란? DMARC는 Domain-based Message Authentication Reporting and Conformance의 약자이다. DNS 레코드를 이용하여 메일이 해당 도메인에서 정상적으로 발송되었음을 증명하는 방법에는 SPF, DKIM이 있다. SPF와 DKIM 테스트를 통과하지 못한 메일에 대해서 어떻게 처리했으면 하는지를 DMARC 레코드로 수신 메일 서버에 알려준다. DMARC 레코드에 대한 자세한 내용은 RFC 7489 문서에 있다. DMARC 레코드 설정하는 방법 DMARC 레코드는 TXT 레코드로, 호스트는 ...

인터넷 속도 단위 Mbps와 MB와의 관계

인터넷 속도 단위인 Mbps는 Mega Bits Per Second의 약자로, 1초당 전송하는 Mega Bit의 양입니다. 예를 들어 인터넷 속도가 100Mbps라고 하면 1초당 100 Mega Bits를 전송한다는 뜻입니다. 그런데 파일의 크기는 Byte를 단위로 사용합니다. 예를 들어 3MB 크기의 파일이라고 하면 3 Mega Bytes를 의미합니다.

DLP와 DRM 차이

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

SFTP와 SCP 소개 및 비교

SFTP와 SCP는 모두 SSH를 통해 보안 파일 전송을 지원하는 프로토콜이지만, 이 둘 사이에는 몇 가지 중요한 차이점이 있습니다. SFTP (Secure File Transfer Protocol) 개요 SFTP는 SSH-2 프로토콜의 확장으로, 안전한 파일 전송을 제공하는 프로토콜입니다. SFTP는 파일 전송뿐만 아니라 원격 파일 시스템 관리 기능도 제공합니다. 작동 방식 세션 기반: SFTP는 SSH 연결을 통해 세션을 설정하고, 이를 통해 ...

국세청 홈택스 / 지급명세서 조회하는 방법

국세청 홈택스 / 지급명세서 조회하는 방법

종합소득세 신고를 해야하는 5월이 되었습니다. 종합소득세 신고를 위해 제일 먼저 해야할 것은 총 수입을 계산하는 것이죠. 원천징수를 한 소득이라면 국세청 홈택스에서 쉽게 확인할 수 있습니다. 근로소득만 있다면 에서 받은 금액과 원천징수한 금액을 확인할 수 있습니다. 근로소득 외에 다른 소득도 있다면 로 가세요. 을 클릭하면... 원천징수를 당한 모든 소득에 ...

Azure Information Protection와 Windows Information Protection

Azure Information Protection(AIP) 개요 AIP는 Microsoft Azure의 클라우드 기반 서비스로, 데이터의 분류, 라벨링, 보호를 목적으로 하는 솔루션입니다. 조직의 중요한 문서와 이메일을 암호화하고, 누가 어떤 데이터를 보고 조작할 수 있는지를 제어할 수 있습니다. 주요 기능 데이터 분류 및 라벨링: 민감한 정보를 자동으로 탐지하고, 문서 및 이메일에 보안 라벨을 적용하여 관리합니다. 라벨링은 수동 또는 규칙 기반으로 ...

유닉스(UNIX)와 리눅스(Linux)

유닉스(UNIX)와 리눅스(Linux)는 모두 컴퓨터 운영체제(Operating System)로, 주로 서버, 워크스테이션, 네트워크 장비 및 임베디드 시스템에서 사용됩니다. 두 운영체제는 관련성이 있지만, 역사와 구조, 철학에서 차이가 있습니다. 유닉스(UNIX) 역사 1969년, 벨 연구소(Bell Labs)에서 Ken Thompson, Dennis Ritchie, 그리고 다른 연구자들에 의해 개발. 초기에는 미니 컴퓨터 환경에서 간단하고 효율적인 운영체제를 제공하는 것을 목표로 설계. UNIX는 C 언어로 작성되어 이식성이 ...

FTP, SFTP, SCP, WebDAV

FTP (File Transfer Protocol) 개요 FTP는 인터넷을 통해 파일을 전송하기 위해 사용되는 표준 네트워크 프로토콜입니다. 1971년 개발된 이후로, FTP는 파일 전송의 표준 방식으로 자리 잡았습니다. 기본적으로 클라이언트와 서버 간의 통신을 통해 작동하며, FTP 클라이언트는 서버에 연결하여 파일을 업로드하거나 다운로드할 수 있습니다. 작동 방식 FTP는 두 개의 채널을 사용합니다: 명령 채널과 데이터 채널. 명령 채널은 ...

Creative Cloud / 파일 동기화 / 중지하는 방법

Creative Cloud / 파일 동기화 / 중지하는 방법

Adobe CC를 설치하면 파일 탐색기에 Creative Cloud Files라는 폴더가 생깁니다. 그리고 클라우드에 있는 파일을 동기화하면서 파일들을 다운로드합니다. 그런데 동기화하는 동안은 PC의 자원을 많이 사용해서 다른 작업을 하는 게 힘듭니다. 그런 경우 동기화를 중지하세요. 그리고 한가한 시간에 다시 동기화를 시작하세요. 동기화를 중지하려면 Creative Cloud Desktop을 엽니다. 그리고 을 클릭합니다. 을 클릭한 후... 을 ...