루핑(Looping) 이란?
네트워크 상에서 목적지까지 가지못하고 무한정으로 뱅뱅 돌아 데이터를 전송할 수 없는 상태 입니다.
루핑(Looping) 발생하는 이유
해당 호스트 사이에 스위치 또는 브리지가 2개 있다면 하나의 호스트에서 가는 경로가 2개 이상 만들어지는것과 같다.
왼쪽 브리지를 통해 가는길과 오른쪽 브리지를 통해 가는 길 하나가 보이며 이렇게 구성하는 이유는 하나의 경로가 끊어지게 될 경우 다른 경로를 쓰기 때문이다.
하지만 이렇게 구성이 된다면 루핑(Looping) 발생하게 됨
해당 루핑부분을 더 자세하게 설명을 하자면 만약 호스트A가 브로드캐스트 패킷(Broadcast packet)을 보내게 된다면 이더넷의 특성에 따라
같은 세그먼트에 있는 모든 네트워크 장비에 브로드 캐스팅하며 양쪽 브리지로 전달하게 된다.
그 후 브리지는 전달된 패킷을 분석하고 이 패킷(데이터단위)이 브로드캐스트 패킷이라는 것을 알게된 브리지는 Flooding(플로딩)을 하게 된다.
목적지 맥 주소를 보고 그 맥 주소가 자신의 브리지 테이블에 없거나, 멀티캐스트 주소이거나 브로드캐스트 주소인 경우에는 들어온 포트를 제외한 모든 경로에 뿌려지게 된다.
그렇게 되면 상대방 쪽 세그먼트로도 브로드캐스팅 패킷이 보내질 것이고 양쪽 브리지를 통해 네트워크가 계속 빙빙 도는 루핑이 발생하게 된다.
⭐ 브로드캐스트(Broadcast) : 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식
⭐ Flooding(플로딩) : 모든 들어오는 패킷이 도착한 링크를 제외한 모든 나가는 링크를 통해 전송되는 네트워크
루핑(Looping) 해결 방법은?
- 자동으로 루핑을 막아주는 스패닝 트리 알고리즘이 필요하다.
- 루프가 발생 할 수 있는 경로를 논리적으로 차단함으로 인해 목적지까지 가는 경로를 하나로 만들어주는 STP가 필요하다.