루핑이 생기는 이유

상황

  • 스위치 A, B, C가 있고,
  • A, B 두 스위치가 “하나의 케이블” 이 아닌 “두 개의 케이블”로 연결되어 있다
  • (그림에는 없지만) 스위치 A는 컴퓨터 A와, 스위치 B는 컴퓨터 B, 스위치 C는 컴퓨터 C와 연결되어 있다

원하는 결과

  • 컴퓨터 A에서 데이터를 보내서 스위치 A → B → C 로 타고 컴퓨터 C로 보내고싶음

그러나 실제 일어나는 일

  • A 컴퓨터는 C 컴퓨터의 주소를 모름 (이웃이 아님)

  • 그래서 A 컴퓨터는 ARP를 돌리기 위해 A 스위치에 브로드캐스트 패킷을 보냄

  • 스위치가 브로드캐스트 패킷을 받은 경우 보낸 쪽 포트를 제외하고 나머지 포트에 똑같이 브로드캐스트 패킷을 보냄
  • 위 그림에서, 스위치 A와 B는 각각 1번 2번 포트에 연결되어있음

  • A 스위치가 B 스위치한테 1번 포트로 브로드캐스트를 보냄

  • B 스위치는 1번 포트를 제외한 나머지 포트한테 브로드캐스트를 보냄

  • 근데 그러면 2번 포트도 포함됨

  • 그럼 B 스위치는 2, 3, 4 포트로 브로드캐스트를 보냄
  • A 스위치는 이번에는 2번 포트로 브로드캐스트를 받아서 1번 포트로 브로드캐스트를 또 보냄
  • 무한 반복
  • = 루핑

나타나는 결과

  • CPU 점유율 어마무시하게 올라가고 다른 패킷 처리를 못함
  • 근데 안정성이나 그런 이유들 때문에 이중화를 하는 경우가 있는데 그럼 어떻게 해결해야 할까?
  • ⇒ 스패닝 트리 프로토콜 (STP)