패킷(Packet)
네트워크를 통해 전송되는 데이터의 조각
데이터를 네트워크를 통해 효율적으로 전송하기 위해, 큰 데이터 블록을 작은 사이즈의 패킷으로 분할
페이로드(실제 전송할 데이터), 출발지 및 목적지 주소, 순서 번호 등의 제어 정보가 포함
이 정보는 네트워크 장비가 패킷을 올바르게 라우팅하고, 받는 쪽에서는 원본 데이터를 재조립하는 데 사용
TCP(Transmission Control Protocol)와 같은 프로토콜에서 이를 볼 수 있다.
TCP는 패킷 전송 시 순서 보장, 데이터 무결성 확인, 오류 검출 및 재전송 등의 기능을 제공
데이터그램(Datagram)
데이터그램은 독립적으로 전송되는 패킷의 한 형태
TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷 프로토콜 스위트의 핵심 요소로, 애플리케이션 간 데이터를 교환하는 방법을 정의합니다. 이 두 프로토콜은 서로 다른 특성과 사용 사례를 가지고 있으며, 특정 네트워크 서비스의 요구 사항에 따라 선택됩니다.
TCP는 신뢰성 있는 연결 지향적 서비스를 제공합니다. 연결 지향적이란 통신을 시작하기 전에 통신할 양쪽 당사자 간에 미리 연결을 설정해야 함을 의미합니다. TCP의 주요 특징은 다음과 같습니다:
TCP는 이메일 전송, 웹 페이지 로딩과 같이 신뢰성 있는 데이터 전송이 중요한 애플리케이션에 주로 사용됩니다.
UDP는 비연결형 서비스를 제공하며, TCP보다 단순하고 빠릅니다. 비연결형이란 데이터를 전송하기 전에 사전에 연결을 설정할 필요가 없다는 것을 의미합니다. UDP의 주요 특징은 다음과 같습니다:
UDP는 실시간 스트리밍, 온라인 게임, VoIP(음성 통신)와 같이 고속 전송이 중요하고, 일부 패킷 손실이 허용되는 애플리케이션에 주로 사용됩니다.
스트림 소켓 (Stream Socket): TCP(Transmission Control Protocol)를 사용하는 연결 지향적 소켓입니다. 스트림 소켓은 두 통신 당사자 간에 신뢰성 있는 양방향 통신 채널을 제공합니다. 데이터는 바이트 스트림으로 전송되며, 데이터의 경계가 없습니다(즉, 연속적입니다).
데이터그램 소켓 (Datagram Socket): UDP(User Datagram Protocol)를 사용하는 비연결형 소켓입니다. 데이터그램 소켓은 데이터를 독립된 메시지 형태의 패킷으로 전송합니다. 각 패킷은 다른 패킷과 독립적이며, 네트워크를 통해 개별적으로 전송됩니다. 데이터그램 소켓은 신뢰성보다는 빠른 데이터 전송을 중시합니다.