jyamethyst21 님의 블로그
네트워크 보안 본문
ICMP
1. 정의
: ICMP는 IP 네트워크에서 오류 보고와 진단을 위해 사용하는 제어 메시지 프로토콜
데이터를 실어 나르는 목적이 아니라, 전송 중 발생한 문제를 알리거나(오류 보고), 경로/상태를 점검(진단) 하기 위해 사용됨
2. 역할
1) 오류 보고 (Error Reporting)
- 패킷이 라우터/호스트에서 처리되지 못하고 드롭될 때 왜 버려졌는지 알려줌
2) 진단/제어 (Diagnostics & Control)
- 네트워크가 살아있는지, 경로가 어떻게 되는지 확인 가능
3. ICMP 메시지 종류
1) Echo (Ping)
- Type 8: Echo Request
- Type 0: Echo Reply
용도: 목적지까지 왕복 응답이 되는지 확인(RTT 측정)
2) Destination Unreachable (목적지 도달 불가)
- Type 3
- Code 예시:
- Code 0: 네트워크 도달 불가
- Code 1: 호스트 도달 불가
- Code 3: 포트 도달 불가(UDP에서 흔히 봄)
- Code 4: Fragmentation needed(DF set) → 경로 MTU 이슈
3) Time Exceeded (시간 초과)
- Type 11
- Code 예시:
- Code 0: TTL 초과(라우터에서 TTL 0 됨)
- Code 1: Fragment reassembly time exceeded
용도: traceroute의 핵심
4) Redirect (경로 리다이렉트)
- Type 5
라우터가 “더 나은 게이트웨이로 보내라”를 알려주는 용도(현대 환경에선 보안상 꺼두는 경우 많음)
ARP
1. 정의
: IPv4 네트워크에서 ‘IP 주소 → MAC 주소’를 알아내는 프로토콜
LAN에서 실제 프레임 전달은 MAC 기반이므로, IP로 목적지를 알더라도 목적지의 MAC을 모르면 Ethernet 프레임을 만들 수 없음, 그때 ARP를 사용
2. 동작 흐름(요약)
- 호스트가 목적지 IP로 보내야 하는데 MAC을 모름
- ARP Request(브로드캐스트)로 '이 IP 가진 사람 MAC 알려줘'라고 날림
- 해당 IP를 가진 장비가 ARP Reply(유니캐스트)로 '내 MAC은 이거야'라고 알림
- 송신자는 ARP 캐시에 저장 후 통신 진행
3. ARP Request/Reply 예시
1) Request
- '대상 IP가 192.168.0.10인 장비 누구야? MAC 알려줘'
- 대상 MAC은 비어있음
- Ethernet 목적지 MAC은 FF:FF:FF:FF:FF:FF(브로드캐스트)
2) Reply
- '192.168.0.10은 나고, 내 MAC은 AA:BB:CC:DD:EE:FF'
- Ethernet 목적지 MAC은 요청자 MAC(유니캐스트)
CSMA/CD
1. 정의
: CSMA/CD는 하나의 전송 경로를 여러 장치가 같이 쓰는 반이중 이더넷 환경에서 충돌을 제어하기 위한 매체 접근 방식
- CS: Carrier Sense (신호 감지)
- MA: Multiple Access (여러 장치가 접근)
- CD: Collision Detection (충돌 감지)
2. 필요한 이유
: 옛날 허브 기반 이더넷이나 동축 케이블 이더넷은 한 매체를 여러 장치가 공유했음
- 동시에 두 장치가 보내면 신호가 섞여 충돌이 발생함
- 충돌 난 프레임은 손상되므로 재전송이 필요
→ 충돌을 감지하고 효율적으로 재시도 하도록 만든 규칙이 CSMA/CD
3. 동작 단계
1) Carrier Sense (매체 감지)
- 송신 전 먼저 회선을 들어서 누가 보내고 있는지 확인
- 매체가 바쁘면 대기
2) Multiple Access (전송 시도)
- 매체가 비어 있으면 전송 시작
3) Collision Detection (충돌 감지)
- 전송하는 동안에도 계속 회선을 모니터링
- 내가 낸 신호와 회선에서 감지되는 신호가 다르면 충돌로 판단
4) Jam Signal (잼 신호 송출)
- 충돌을 감지하면 즉시 전송 중단
- 그리고 Jam 신호를 보내서 충돌이 났다는 사실을 모든 노드가 확실히 알도록 함
(충돌이 났는데 어떤 노드는 못 알아차리면 더 큰 혼란 발생)
5) Binary Exponential Backoff (이진 지수 백오프)
- 충돌 후 바로 재전송하면 또 충돌하기 쉬움
- 그래서 랜덤 대기 후 재시도
- n번째 충돌 시 대기 슬롯 범위를 키
