[네트워크기초이론]#28. Unicast, Broadcast, Multicast
Unicast
- NAT: Network Address Translation (공유기)
- 라우터 역할 = Gateway
- 이 네트워크 주소 대역 = 192.168.0.대
- 소켓 프로그래밍을 한다고 가정
- PC1 ~ 24: Network ID는 같고 Host ID만 다름
- PC1과 PC24가 통신을 하면 이것이 Unicast
- 통신 주체 둘끼리만 정보가 왔다갔다
- L2 스위치 기준으로 그 안에서 스위칭이 끝남
Broadcast
- HOST ID를 2진수로 봤을 때 전부 1로 되어 있으면 브로드캐스트
- 16진수로 보면 0xFF
- MAC address는 48bit → FFFFFFFFFFFF
- 192.168.0.11 이 192.168.0.255에게 무언가를 전달
- 그 트래픽이 모든 PC로 간다 (말 그대로 방송을 해버림)
문제
- Ethernet이 CSMA/CD방식
CSMA/CD는 네트워크 통신에 관한 프로토콜 중 하나입니다. 이것을 설명하기 위해 간단한 비유를 사용해보겠습니다.
비유:
상상해보세요. 여러분이 큰 회의실 안에 있고, 각자 차례로 말하려고 합니다. 그런데 회의 참석자 모두가 동시에 말하려고 하면 어떻게 될까요? 아마 대화의 내용이 뒤섞여서 제대로 된 대화를 나누기 힘들 것입니다. 이 문제를 해결하기 위해 회의 참석자들간에 규칙을 만들어야 합니다.
CSMA/CD는 이러한 "규칙"을 이용해 컴퓨터들이 데이터를 네트워크 상에 전송할 때 서로 충돌하지 않게 하는 방법입니다.
CSMA/CD의 간단한 원리:
- 감지 (Carrier Sense): 컴퓨터는 먼저 네트워크 상에서 다른 컴퓨터가 데이터를 전송하고 있는지 "듣기" 시작합니다. 회의에서 누군가 말하고 있는지 확인하는 것과 비슷합니다.
- 다중 접근 (Multiple Access): 여러 컴퓨터들이 동시에 네트워크에 접근할 수 있습니다. 회의실에서 여러 참석자들이 말하려고 기다리는 것과 비슷합니다.
- 충돌 감지 (Collision Detection): 컴퓨터가 데이터를 전송할 때 다른 컴퓨터도 동시에 데이터를 전송하려고 하면 "충돌"이 발생합니다. 만약 충돌이 발생하면, 컴퓨터는 잠시 기다린 후 다시 데이터를 전송하려고 시도합니다.
이러한 방식을 통해, CSMA/CD는 여러 컴퓨터가 한 네트워크에 접속해 있을 때 데이터의 전송이 원활하게 이루어지도록 도와줍니다.
- LAN 케이블 (보통 초록) 주황불이 들어왔을 때
- NIC을 탐지하여 신호가 없다면 보냄, 신호가 오고 있으면 보내면 안돼
- 그래서 Broadcast가 문제!
- 네트워크 효율을 떨어트림
- 브로드캐스트를 최소화 해야해
- 예를 들어 아파트 같은 공동주거시설에서 거주하고 있는데 관리사무소 등에서 너무 자주 방송을 하면 일상 생활에 방해
- 꼭 필요한 경우 아니면 하지마
- 방송주소에 대고 시그널을 보내버리면 그 네트워크 세그먼트 전체에 다 전달됨
- 방송용으로 정보가 날라가고 있는 그 순간만큼은(정말 짧은 시간이지만)
이 네트워크를 이루고 있는 호스트 엔드포인트 중에 그 어느 누구도 신호를 쏠 수 없다
- 이런 것이 잦아질 수록 충동 가능성 증가
Broadcast와 Multicast
- Broadcast의 장점: 송신자가 한 번만 보내도 된다
- IPTV: 동시 시청자가 2,000명이라면 1번만 송신해도 2,000명이 볼 수 있다
- IGMP를 통해 그룹에 등록된 (관심 있는 시청자 그룹)에게만 Multicast, 나머지는 받자 마자 무시
Multicast
- IPTV의 IGMP (그룹핑 프로토콜)
- L2 수준에서는 Broadcast이다. (이후 원하는 사람들만 받는 구조?)
- 이 문제를 해결하기 위해 등장한 게 SDN(Software Difine Networking)
SDN(Software Defined Networking)을 설명하기 전에, 기존의 네트워크 구조를 생각해봅시다.
일반적인 네트워크 장비(예: 스위치, 라우터)는 '무엇을' 해야하는지(데이터를 어디로 보낼 것인지)와 '어떻게' 그것을 할 것인지(데이터를 전송하는 방법)를 모두 결정합니다. 이 두 가지 기능은 하나의 장비에 밀접하게 연결되어 있어서, 설정 변경이나 확장성에 제한이 있을 수 있습니다.
이제 SDN을 상상해봅시다.
SDN은 네트워크의 "무엇을"과 "어떻게"를 분리하는 방식입니다. 이렇게 하면 네트워크 구성과 관리가 훨씬 유연해집니다.
비유:
상상해보세요, 기존의 네트워크는 집에서 요리를 하기 위해 레시피와 요리를 동시에 하는 것과 같습니다. 레시피를 바꾸려면 새로운 요리 기법을 배워야 하며, 요리 기법을 바꾸려면 레시피를 바꿔야 할 수도 있습니다.
SDN은 마치 레시피(무엇을 할 것인지)와 요리 방법(어떻게 할 것인지)을 분리한 것과 같습니다. 이제 레시피를 바꾸려면 요리 방법을 건드릴 필요가 없고, 반대로 요리 방법을 바꾸려면 레시피를 바꿀 필요가 없습니다.
실제 SDN의 작동:
- Control Plane (레시피): 네트워크가 어떻게 동작해야 하는지를 정의합니다. 어떤 데이터가 어디로 흘러야 하는지를 결정합니다.
- Data Plane (요리 방법): 실제로 데이터를 해당 위치로 전송하는 작업을 수행합니다.
이 분리로 인해, 네트워크 관리자는 중앙에서 네트워크의 흐름을 쉽게 제어하고 관리할 수 있게 되었습니다. 이는 더 빠른 네트워크 변경, 에러 수정, 그리고 새로운 기능 추가 등의 이점을 가져다 줍니다.
- 클라우드 환경이 늘어나면서 SDN이 중요해짐
클라우드 시스템의 구조와 원리:
비유: 상상해보세요, 당신의 집에는 여러 가지 가전제품이 있습니다. 이제 이 가전제품들을 모두 집에서 내보내고, 전기 소비량만큼 비용을 지불하여 언제든 원할 때 사용할 수 있는 곳이 있다고 생각해보세요. 이곳이 클라우드와 유사합니다.
클라우드는 기본적으로 컴퓨터, 스토리지, 네트워크 자원 등을 원격에서 제공하는 서비스입니다. 사용자는 자신의 기기에서 직접적으로 이러한 자원들을 운영할 필요 없이, 원격에서 접근하여 이용할 수 있습니다. 클라우드는 여러 사용자에게 이러한 자원을 '대여'해주는 역할을 합니다.
클라우드와 SDN의 관계:
클라우드 서비스는 수많은 사용자에게 자원을 제공하게 됩니다. 이때 네트워크 자원을 효율적으로 관리하고, 빠르게 확장하거나 변경할 수 있어야 합니다. 바로 여기서 SDN이 큰 역할을 합니다.
- 유연성: SDN은 네트워크의 흐름과 구성을 소프트웨어적으로 제어할 수 있습니다. 이를 통해 클라우드 서비스 제공자는 네트워크 자원을 사용자의 요구에 따라 빠르게 재배포하거나 조정할 수 있습니다.
- 중앙화된 관리: SDN은 네트워크의 중앙화된 관리를 가능하게 합니다. 이를 통해 클라우드 제공자는 수천, 혹은 수만 개의 서버와 네트워크 스위치를 한 곳에서 효과적으로 관리할 수 있습니다.
- 자동화와 최적화: 클라우드 환경에서 자동화는 필수입니다. SDN을 활용하면 네트워크 자원의 할당, 조정, 모니터링을 자동화할 수 있습니다. 이는 클라우드 환경에서 리소스를 최적화하고, 사용자에게 빠르고 안정적인 서비스를 제공하는데 중요한 역할을 합니다.
결론적으로, 클라우드는 사용자에게 컴퓨팅 자원을 원격에서 제공하는 시스템이며, SDN은 이러한 클라우드 시스템에서 네트워크 자원을 유연하게, 효과적으로 관리하는 기술입니다.
정리
네트워크로 정보를 전달하는 방식은 3가지가 있다
- Unicast는 한 번에 한 명에게만 보내는 것
- Broadcast는 연결된 특정 세그먼트한테 다 보내는 것
- 효율을 떨어트린다 - 최소화시켜라
- 끝자리가 모두 1이다
- Multicast는Broadcast와 유사하지만 전체한테 뿌리는 것이 아니라 등록된 애 한테만 정보가 가게 하며 이 때 나온 것이 IGMP
출처: https://youtu.be/5D9qz2CEIus?si=6o0LZ3KJTYVJski1