Stream Socket & Datagram Socket

SEUNGJUN·2024년 5월 18일
0
post-thumbnail

Stream & Datagram

Stream은 연속적인 데이터 흐름을 의미한다. 컴퓨터 네트워크에서 Stream은 데이터가 일정한 순서로 연속적으로 전송되는 방식을 나타낸다.

Stream의 개념

  • 연속적인 데이터 흐름: Stream 통신에서는 데이터가 연속적인 바이트의 흐름으로 전송된다. 이는 마치 파이프를 통해 물이 흐르는 것과 유사하게, 데이터가 끊임없이 흐르는 방식이다.

  • 바이트 스트림: Stream은 바이트 단위로 데이터를 전송한다. 즉, 송신자는 바이트의 연속으로 데이터를 보내고, 수진자는 이 바이트를 순서대로 받는다.

  • 연결 지향: Stream 통신은 두 호스트 간에 연결을 설정한 후 데이터를 전송한다. 이는 송신자와 수신자 간의 안정적인 연결을 필요로 한다.

Datagram은 독립적인 데이터 패킷을 의미한다.

Datagram의 개념

  • 독립적인 데이터 패킷: Datagram은 독립적인 데이터 패킷으로, 각 패킷은 독립적으로 전송되고 처리된다. 하나의 데이터그램이 손실되더라도 다른 데이터그램의 전송에는 영향을 미치지 않는다.

  • 비연결 지향: Datagram 통신은 데이터 전송 전에 연결을 설정하지 않는다. 송신자 간에 별도의 연결 설정 과정이 없으므로 전송이 빠르다.

  • 비신뢰서: UDP는 데이터의 순서와 무결성을 보장하지 않는다. 데이터그램이 손실되거나 순서가 뒤바뀔 수 있으며, 이러한 오류를 처리하기 위한 매커니즘이 없다.

Stream Socket과 Datagram Socket은 네트워크 통신에서 사용되는 두 가지 주요 유형의 소켓이다.

Stream Socket & Datagram Socket

Stream Socket

특징

  • 연결 지향(Connection-oriented): Stream Socket은 통신을 시작하기 전에 두 호스트 간에 연결을 설정한다. 연결이 설전된 후에 데이터 전송이 가능하다.

  • 신뢰성(Reliability): 데이터가 전송되는 동안 손실되거나 손상된 데이터는 자동으로 감지되고 재 전송된다. 따라서, 데이터의 순서와 무결성을 보장한다.

  • 프로토콜: 주로 TCP(Transmission Control Protocol)를 사용한다.

  • 애플리케이션 예시: 웹 브라우저, 이메일 클라이언트, 파일 전송 프로그램 등

장점

  • 데이터의 순서 보장

  • 데이터 전송의 신뢰성

단점

  • 초기 연결 설정에 시간 소요

  • 데이터 전송 중 오버헤드 증가 (신뢰성을 위한 추가 제어 정보)

Datagram Socket

특징

  • 비연결 지향(Connectionless): Datagram Socket은 데이터를 전송하기 전에 연결을 설정하지 않는다. 데이터를 보내기만 하면 되고, 상대방이 이를 받을지 여부는 보장되지 않는다.

  • 비신뢰성(Unreliability): 데이터가 손실되거나 손상될 수 있으며, 순서가 뒤바뀔 수 있다. 데이터의 무결성이나 순서를 보장하지 않는다.

  • 프로토콜: 주로 UDP(User Datagram Protocol)를 사용한다.

  • 메시지 전송: 데이터를 고정된 크기의 독립된 메시지(데이터그램)로 전송한다.

  • 애플리케이션 예: 스트리밍 서비스, 온라인 게임, VoIP 등

장점

  • 연결 설정 과정이 없어 빠른 전송 가능

  • 오버헤드가 적어 효율적

단점

  • 데이터 전송의 신뢰성 부족

  • 데이터의 순서 보장 안됨

비교 요약

특징Stream Socket(TCP)Datagram Socket (UDP)
연결방식연결 지향 (Connection-oriented)비연결 지향 (Connectionless)
신뢰성신뢰성 있음 (Reliable)비신뢰성(Unreliable)
데이터 전송 방식바이트 스트림 (Byte stream)데이터그램 (Datagram)
전송 순서 보장순서 보장순서 보장 안됨
전송 효율성오버헤드 큼오버헤드 적음
주요 프로토콜TCPUDP
사용 예웹 브라우징, 이메일, 파일 전송스트리밍, 온라인 게임, VoIP
profile
RECORD DEVELOPER

0개의 댓글