inblog logo
|
DailyCoding
    Network & Socket

    5. 캐스트

    박은서's avatar
    박은서
    Feb 09, 2026
    5. 캐스트
    Contents
    1. 유니캐스트 (Unicast)1️⃣ 개념2️⃣ 특징3️⃣ 예시4️⃣ 필기2. 브로드캐스트 (Broadcast)1️⃣ 개념2️⃣ 특징3️⃣ 예시4️⃣ 필기5️⃣ 실습3. 멀티 캐스트 (Multicast)1️⃣ 개념2️⃣ 특징3️⃣ 예시4️⃣ 필기4. 비교표
    💡
    하나의 송신자가 데이터를 누구에게 보내는가에 따라 구분되는 전송 방식
    notion image

    1. 유니캐스트 (Unicast)

    1️⃣ 개념

    • 1 : 1 통신
    • 한 송신자가 특정한 하나의 수신자에게만 데이터를 전송

    2️⃣ 특징

    • 가장 기본적인 통신 방식
    • 목적지 IP 주소가 단일 호스트
    • 다른 호스트는 데이터 수신 불가
    • 트래픽 제어와 보안에 유리

    3️⃣ 예시

    • 웹 브라우징 (클라이언트 ↔ 웹 서버)
    • SSH, FTP
    • 이메일 전송
    • 대부분의 TCP 통신

    4️⃣ 필기

    notion image

    2. 브로드캐스트 (Broadcast)

    1️⃣ 개념

    • 1 : N 통신
    • 한 송신자가 같은 네트워크에 있는 모든 호스트에게 데이터 전송
      • 대상이 정해져 있지 않고 모든 호스트에게 데이터 전송. 호스트 측에서 필터링 가능

    2️⃣ 특징

    • 목적지 주소: 브로드캐스트 주소
      • IPv4 예: 255.255.255.255
    • 네트워크 전체에 패킷 확산
    • 트래픽 과다 및 보안 이슈 발생 가능
    • 라우터를 넘어가지 않음 (로컬 네트워크 한정)

    3️⃣ 예시

    • ARP 요청
      • → “이 IP 주소 누구야?”
    • DHCP Discover
      • → “IP 주소 줄 수 있는 서버 있어?”
    • 네트워크 장비 탐색

    4️⃣ 필기

    notion image

    5️⃣ 실습

    1) Server

    package com.mtcoding.ex09; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.concurrent.CopyOnWriteArrayList; class ClientThread implements Runnable{ Socket socket; PrintWriter sender; Scanner receiver; public ClientThread(Socket socket, PrintWriter sender, Scanner receiver) { this.socket = socket; this.sender = sender; this.receiver = receiver; } @Override public void run() { // 새로운 스레드 대기중 while(true){ System.out.println("[server] 새로운 메시지 수신 대기중----------------"); String msg = receiver.nextLine(); for (ClientThread t : ChatServer.boxes){ t.sender.println(msg); System.out.println("[server] 새로운 메시지 전체 브로드캐스팅----------------"); } } } } public class ChatServer { static List<ClientThread> boxes = new CopyOnWriteArrayList<>(); public static void main(String[] args) { try { // 1. 초기화 ServerSocket ss = new ServerSocket(10000); while(true){ Socket socket = ss.accept(); // main 스레드 대기 System.out.println("[server] 클라이언트연결됨--------"); PrintWriter sender = new PrintWriter(socket.getOutputStream(), true); Scanner receiver = new Scanner(socket.getInputStream()); ClientThread t1 = new ClientThread(socket, sender, receiver); boxes.add(t1); new Thread(t1).start(); System.out.println("[server] 클라이언트 Socket, Buffer 2개, Thread 생성되서 Box 담김-------"); } } catch (Exception e) { System.out.println("서버 오류 : "+e.getMessage()); } } }

    2) Client

    package com.mtcoding.ex09; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; public class ChatClient { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 10000); System.out.println("[client] 서버와 소켓이 연결되었음 -----------------"); Scanner keyboard = new Scanner(System.in); Scanner receiver = new Scanner(socket.getInputStream()); PrintWriter sender = new PrintWriter(socket.getOutputStream(), true); // 1. 송신 스레드 new Thread(() -> { while(true){ System.out.println("[client] 쓰기 스레드 키보드 입력 대기중--------"); String msg = keyboard.nextLine(); sender.println(msg); } }).start(); // 2. 읽기 스레드 new Thread(() -> { while(true){ System.out.println("[client] 읽기 스레드 다른 사람 메시지 수신 대기중--------"); String msg = receiver.nextLine(); System.out.println(msg); } }).start(); } catch (Exception e) { System.out.println("클라이언트 오류 : "+e.getMessage()); } } }

    3) Server 결과

    notion image

    4) Client1 결과

    notion image

    5) Client2 결과

    notion image

    3. 멀티 캐스트 (Multicast)

    1️⃣ 개념

    • 1 : 그룹 통신
    • 한 송신자가 특정 그룹에 속한 호스트들에게만 데이터 전송

    2️⃣ 특징

    • 수신자는 멀티캐스트 그룹에 가입해야 수신 가능
    • 필요 없는 호스트는 트래픽을 받지 않음
    • 브로드캐스트보다 효율적
    • 주로 UDP 기반
    • IPv4 멀티캐스트 주소 범위
      • → 224.0.0.0 ~ 239.255.255.255

    3️⃣ 예시

    • IPTV, 실시간 스트리밍
    • 온라인 강의 생중계
    • 화상 회의
    • 주식 시세 실시간 전송

    4️⃣ 필기

    notion image

    4. 비교표

    구분
    유니캐스트
    브로드캐스트
    멀티캐스트
    통신 방식
    1 : 1
    1 : 전체
    1 : 그룹
    수신 대상
    특정 호스트
    동일 네트워크 전체
    그룹에 가입한 호스트
    트래픽 효율
    중
    낮음
    높음
    라우터 통과
    가능
    불가
    가능(설정 필요)
    대표 예
    웹, 이메일
    ARP, DHCP
    IPTV, 스트리밍
    Share article
    Contents
    1. 유니캐스트 (Unicast)1️⃣ 개념2️⃣ 특징3️⃣ 예시4️⃣ 필기2. 브로드캐스트 (Broadcast)1️⃣ 개념2️⃣ 특징3️⃣ 예시4️⃣ 필기5️⃣ 실습3. 멀티 캐스트 (Multicast)1️⃣ 개념2️⃣ 특징3️⃣ 예시4️⃣ 필기4. 비교표

    DailyCoding

    RSS·Powered by Inblog