
안녕하세요, 성조입니다.
최근에 간략하게 공부했던 내용을 기록하면서 복습하는 시간을 가져보려 해요.
캐스트(cast)의 개념
영어 동사 'to cast'에서 유래했으며, '던지다', '뿌리다'라는 뜻을 가지고 있다. 컴퓨터 사이언스에서 네트워크는 '패킷을 던지듯 보내다. 배포하다'라는 의미로 사용된다.
즉, 이번 포스트에서 어떤 접두사가 붙는지에 따라 어떤 방식으로, 누구에게 패킷을 던지듯 보내는 것인지가 정해지는 것이다.
1) 유니캐스트 -> Uni(한 명에게)
2) 멀티캐스트 -> Multi(그룹, 다중에게)
3) 브로드캐스트 -> Broad(전체 모든 그룹)
4) 애니캐스트 -> Any(여러 노드 중 가장 가까운 것 또는 정책상 우선순위가 높은 한 노드에게)
다음은 보다 조금 더 상세한 개념을 정리한다.
1-1) 유니캐스트 (Unicast)
1) 정의
- 정의 하나의 송신자 <-> 하나의 수신자 간 1:1 통신 방식
2) 특징
- IP 패킷이 목적지 주소 하나만 가리키는 것
- TCP/UDP 모든 일반 통신(HTTP, SSH, FTP 등)이 유니캐스트
3) 장점
- 목적지를 명확히 지정 -> 안정적, 보안 제어에 용이한 것
- 흐름 제어 및 혼잡 제어(TCP) 지원된다.
4) 단점
- 다수에게 동일 콘텐츠 전송 시 비효율(1:N일 때 패킷 복제가 필요해진다.)
-> TCP 구조의 경우 유저 할당 되는 문제가 있다.
1-2) IP 패킷의 흐름 개념 (유니캐스트)
1) 주소 해석(ARP) 단계
- 출발지가 동일 서브넷 내 목적지 IP의 MAC 주소를 모를 때,
- 출발지 -> 브로드캐스트 ARP 방향으로 요청을 보내고 응답으로 APR Reply 수신 후 MAC 캐시에 저장하는 구조를 가진다.
2) 라우팅 단계
- 목적지가 로컬 네트워크가 아닐 때, 라우터 MAC으로 이더넷 캡슐화 -> 라우터로 전달한다.
- 라우터는 자신의 라우팅 테이블에서 최적 경로(제일 낮은 메트릭) 선택 후 다음 홉으로 전달해 준다.
- TTL 필드마다 -1 -> TTL=0이 되면 ICMP Time Exceeded를 반환한다.
3) TCP 통신(해당 개념을 상세히 다루지 않기에 간략 작성)
(3-way handshake)
SYN -> SYN + ACK -> ACK 이후 데이터 교환, 종료 시. 종료 FIN 교환
2-1) 멀티캐스트 (Multicast)
1) 정의
하나의 송신자 -> 복수(Multi) 수신자(그룹)에게 1:다 통신을 진행하는 캐스트(패킷 전달) 구조
2) 특징
- 수신자는 "멀티캐스트 그룹" (IP 224.0.0.0/4) 가입(IGMP 프로토콜)
- 라우터가 트리 형태로 패킷 복제, 분배
3) 장점
- 네트워크 자원 절약(동일 콘텐츠를 한 번만 전송하는 방법)
- 실시간 분배에 최적화된 방법 (1:n 구조를 가져가기 때문)
4) 단점
- 라우터, 스위치 설정 필요 -> 복잡도 상승 문제
- 신뢰성(손실 복구)은 애플리케이션이니 직접 처리해야 됨(UDP 구조를 가져감.)
2-2) 프로토콜 흐름 개념(멀티캐스트)
[IGMP의 순서 구조]
1) IGMP Query (Rotuer -> All Hosts)
- 멀티캐스트 그룹 가입 여부 확인
2) IGMP Report ( Host -> Router)
- "저는 224.0.0X 그룹에 가입했어요"는 요청
3) IGMP Leave (Host -> Router)
- "그룹을 사용하지 않기 때문에 더 이상필요 없다."는 요청
4) 쿼리 주기: 기본 n초마다.
[PIM의 순서 구조 (개념만)]
1) PIM-Sparse Mode
- 중앙 RP(Rendezvous Point)를 통해 Join/Prune를 관리
- (*, G) 메시지로 RP 경유, 이후 (S, G) 형태로 최적 트리 구축하는 방향
2) PIM-Dense Mode
- 브로드캐스트 방식으로 트리 확장되며 수신이 없으면 prune
3-1) 브로드캐스트 (Broadcast)
1) 정의
- 하나의 송신자가 네트워크 내 모든 호스트에게 1: 전역(다수가 아닌 전역 구조) 통신
2) 특징
- IP 브로드캐스트: IPv4 한정 ( 255.255.255.255 또는 서브넷 브로드캐스트 주소)
- 스위치가 학습 테이블 무시하고 모든 포트로 전송
3) 장점
- 구성원 전체에게 동시에 정보 전달에 간편한 구조를 가져간다. (그룹 또는 지역구에게 한 번에 통신하는 것에 유용한 구조)
4) 단점
- 불필요한 트래픽 증가 -> 브로드캐스트 폭풍 위험
- IPv6에서는 브로드캐스트 대신 멀티캐스트로 대체가 가능한 지점.
3-2) 브로드캐스트 다음 개념
1) 이더넷 브로드캐스트 동작
- 'MAC dst=FF:FF:FF:FF:FF:FF' 스위치는 해당 프레임을 모든 포트로 전달한다는 의미
즉, 이더넷 프레임을 네트워크에 연결된 모든 장치로 보내달라는 얘기이다.
아파트 방송 통신하는 것처럼 다수의 방향으로 뿌려지는데 너무 자주 전부에게 뿌리게 되면 노이즈가 생기는 것처럼 문제가 된다.
2) 사용되는 프로토콜 작은 예시
- APR은 IP->MAC 매핑
- DHCP DISCOVER은 클라이언트 -> ex) 255.255.255.255:67
- NetBIOS Name Service 등의 예시가 존재
3) 폭풍 제어 기법은 크게 두 가지 있는 편이다.
- Storm Control (Cisco)
- BPDU Guard, Root Guard 등으로 루핑 방지
4. 애니캐스트 (Anycast)
1) 정의
- 다수의 노드(서버)가 동일한 IP 주소로 공유 -> 가장 '가까운'(라우팅 기준) 노드로 1:1 통신을 진행하거나, 우선순위로 등록해 놓은 경우
2) 특징
- 글로벌 분산 서비스(IPv6에서 본격 지원)
- 라우팅 프로토콜(OSPF, BGP 등) 거리, 정책에 따라 경로 결정되는 구조
3) 장점
- 지연(latency) 최소화 -> 사용자 경험 개선
- 특정 노드 장애 시 자동 우회(높은 가용성)
4) 단점
- 세션 지속성(Session affinity) 보장이 어려운 문제와 상태 동기화가 필요하다는 문제가 존재
- 라우터 정책의 우선순위 배정에 의존 -> 복잡한 네트워크 설계가 필요함.
4-2 애니캐스트 개념 작은 스푼
1) BGP를 이용한 Anycast
- 같은 IP 프리픽스(ex: 203.0.113.0/24)를 전 세계 여러 POP에 광고하는 방법인데 여기서 'BGP 광고'란 '이 대역(x)은 우리에게 연결되어 있으니, 이 경로를 사용하세요'라고 자동으로 알리는 행위를 'BGP 광고'라고 정의한다. 즉 메시지 포맷이나, 경로 선택에 대한 내용을 조금 더 구체적으로 전달하기 위한 것이다.
- BGP 경로 선택
- Local Perference (높을수록 우선)
- AS Path 길이 (짧을수록 우선)
- Origin Type, MED, eBGP > iBGP를 갖는다.
즉 Origin Type, MED, eBGP가 iBGP 보다 큰 우선순위를 갖고 간다는 의미이다.
2) 특정 캐스트가 고정되는 것이 아니라 영역에 맞는 패킷 전송이 이뤄질 수 있기 때문에 다음의 주의사항이 필요하다.
- 세션 지속성
사용자 세션이 다른 노드의 세션으로 연동될 수 있기 때문에 HTTP 세션스틱니스나 상태 동기화가 필요하다. (본인은 A 와이파이 잡고 있는데 다른 B 와이파이로 자동 설정이 되지 않도록 설정 값 반영과 같은 개념으로 이해했다.)
- 상태체크 -> BGP MED 또는 communities를 이용해 장애 노드를 우회하는 방법을 얘기한다.
실무를 보내면서 네트워크 통신을 자주 사용하고 있는데 꾸준히 정리해 나아가봐야겠습니다.
오타나 잘못 전달된 개념이 있는 경우 공유해 주시면 감사드리겠습니다.
다음 포스트에서 또 뵙겠습니다.
'Network' 카테고리의 다른 글
| [네트워크 기초] 자취방, 아파트, 회사 네트워크 구축 차이점 (4) | 2024.11.10 |
|---|---|
| [Network] TCP/IP 프로토콜 가볍게 정리 및 이해하기 (1) | 2024.09.20 |
| [Network] URI, URL, URN이란? (a little deep dive) (0) | 2023.05.19 |
| [Network]브라우저 렌더링 원리 (0) | 2023.04.03 |
| [Network] 브라우저 요청/응답 원리 (0) | 2023.01.18 |