Looping란?
루핑은 프레임이 네티워크상에서 무한정으로 뱅뱅 돌기 때문에 이더넷의 특성상 네트워크가 조용해야 데이터를 전송할 수 잇는 다른 녀석들이 잇는 다른 녀석들이 계속 네트워크가 조용해지기를 기다리기만 하 뿐 데이터 전송은 불가능해지는 상태를 말하는데, 브리지나 스위치의 디자인에서 는 가장 주의해야 할 사항입니다
두 호스트 사이에 스위치 또는 브리지가 두 개 있다고 가정해 보겠습니다 즉 하나의 호스트에서 다른 호스트로 가는 경로가 두 개 이 상 만들어진다는 겁니다. 여기서 브리 대신 스위치라도 상황은 마찬가지입니다 보통 이렇게 구성을 하게 되면 가장 큰 문제, 즉 루핑이 발생하게 됩니다
자 그럼 다음과 같이 가정 하자면
호스트 A가 브로드캐스트 패킷 을 보냅니다 그럼 양쪽 브리지 로 전달되겠죠?
그다음에 그 두개의 브리지는 이 패킷을 분석합니다 . 이 패킷이 브로드캐스트 패킷 이란 걸 알아낸 브리지는 어떻게 할까요? Flooding 을 하게 됩니다 브리지는 목적지 주소를 보고 그 주소가 자신의 브리지 테이블에 없거나, 멀티캐스트 주소이거나,브로드 캐스트 주소인 경우에는 들어온 포트를 제외한 나머지 모든 포트로 뿌려주는 Flooding을 하게 됩니다
그럼 상대방쪽 세그먼트로 브로드캐스트 패킷이 보내집니다 즉 양쪽 브리지에서 모두 패킷이 다리를 건너게 됩니다. 그다음에 반대쪽으로 건너간 브로드캐스트 패킷은 다시 양쪽 브리지의 아래쪽 포트로 전달되고, 이 패킷 역시 브리지 특성에 다라 다시 위로 전달됩니다
이런 과정이 반복되게 되면 한 번 발생한 브로드캐스트 패킷이 양족 브리지를 통해 네트워크를 계속 뱅뱅 돌게 되는 루핑이 발생하게 됩니다 이와 같이 루핑이 발생되면 물론 다른 데이터를 전송 할 수 없습니다. CSMA/CD의 특성 즉 한 세그먼트 안에서 어느 한 순간에는 오직 한 녀석만이 통신을 할 수 있다는 규칙 때문에 .따라서 네트워크가 무용지물 상태로 빠지 게 됩니다
물론 사람이 네트워크 구성하면서 모든 목적지의 경로를 하나만 있도록 만들어주면 아예 루핑은 생기지 않을 겁니다.하지만 늘 사람이 해줄수가 없어서 또 일부러 연결을 이중으로 하는 경우도 있어 무조건 못하게 하는 것도 문제가 있습니다 그래서 자동으로 루핑을 막아주는 알고리즘이 필요한데, 이 알고리짐을 '스패닝 트리 알고리즘 이라고 합니다 여기서는 브리지나 스위치에 목적지까지의 경로가 두 개 이상 존재하면 반드시 루핑이 발생하고, 이를 막는 것이 스패닝 트리 알고리즘이라는 것까지만 알면 됩니다