이번에는 조금 더 깊게 스위치의 기능을 알아보겠습니다. 스위치는 아래 5가지의 일을 합니다.
1. 러닝(Learning) : 배운다
2. 플러딩(Flooding) : 들어온 포트를 제외한 모든 포트로 뿌려준다 .
3. 포워딩(Forwarding) : 해당 포트로 건네준다.
4. 필터링(Filtering) : 다른 포트로는 못가게 막아준다.
5. 에이징(Aging) : 나이를 먹는다.
지금부터 위의 5가지 기능을 하나씩 알아보도록 하겠습니다.
1. 러닝(Learning)
먼저 러닝(Learning) 입니다. Learning은 여러분도 아시다시피 '배운다'라는 뜻을 가지고 있습니다. 스위치는 허브보다 똑똑한 녀석이기 때문에 학습을 할 수 있습니다. 어떤 것을? 출발지의 맥주소(MAC Address)를 말이죠.
즉, 스위치는 자신의 포트에 연결된 'A'라는 PC가 통신을 위해서 프레임을 내보내면 A의 맥주소를 읽어서 자신의 맥주소 테이블(MAC Address Table)에 저장해 놓습니다. 맥주소 테이블은 '브리지 테이블(Bridge Table)'이라고도 불립니다.
그리고 나중에 다른 PC가 A에 데이터를 보낼 때 자신의 맥주소 테이블을 참고해서 다리를 건너게 할 것인지 아닌지를 결정하게 됩니다.
[그림 1]을 보면 중간에 스위치가 있고 세그먼트 E0과 E1에 PC들이 연결되어 있습니다. 여기서 세그먼트 E0에 있는 1111.1111.1111.11111의 맥주소를 가지는 PC(이하 A)가 통신한다고 가정해 보겠습니다. 위 가정에서 이더넷의 기본 성질에 따라 세그먼트 E0에 연결된 모든 장비는 A의 프레임을 받습니다. 이때 스위치는 이 프레임을 받아서 이것이 어디서 출발한 것인지를 확인합니다. 즉 출발지의 맥주소를 확인하는 것입니다. 그리고 스위치가 관리하는 맥 테이블에 이 정보를 써놓습니다. 이것이 스위치의 첫 번째 기능 러닝(Learning)입니다.
2. 플러딩(Flooding)
그 다음은 플러딩(Flooding)입니다. 플러딩은 단순합니다. 그냥 데이터가 들어온 포트를 제외한 나머지 모든 포트로 정보를 뿌리는 것을 의미합니다. 위에서 설명했듯 스위치는 어떤 데이터에 대해서 다리를 건너게 해줄지 말지를 맥 테이블을 보고 결정합니다. 그런데 들어온 데이터의 목적지 주소가 맥 테이블에 없다면 어떻게 될까요? 이때 사용되는 것이 바로 플러딩(Flooding)입니다. 어디로 보내야 하는지 모르니까 들어온 포트를 제외한 나머지 포트로 다 뿌려버리는 것이죠. 플러딩은 브로드캐스트나 멀티캐스트의 경우에도 발생하게 됩니다.
[그림 2]에서 1111.1111.1111.1111의 맥주소를 가지는 PC(이하 A)가 5555.5555.5555.5555의 맥주소를 가지는 PC(이하 B)와 통신을 하려고 한다고 가정해 보겠습니다. 스위치는 이 프레임을 받고 목적지 주소를 자기 맥 테이블에서 찾아보지만 찾지 못할 겁니다. B와는 지금까지 한 번도 통신하지 않아서 스위치가 주소를 학습하지 못했기 때문입니다. 따라서 스위치는 이 프레임을 자신의 모든 포트로 뿌려버립니다. (프레임이 들어온 포트는 당연히 제외)
3. 포워딩(Forwarding)
[그림 3]의 경우에는 스위치가 5555.5555.5555.5555의 맥주소를 가지는 PC(이하 B)가 어디 있는지 알고 있습니다. 이때 세그먼트 E0에 있는 1111.1111.1111.1111의 맥주소를 가지는 PC(이하 A)가 B와 통신을 한다고 가정해 봅시다. 그러면 이 프레임을 받은 스위치는 자기 맥 테이블을 보게 되고 목적지 5555.5555.5555.5555쪽은 세그먼트 E2라는 것을 알게 되고 E2에 프레임을 보내게 됩니다. 이렇게 스위치가 맥 테이블을 참조해 목적지 주소 쪽으로 프레임을 전달하는 것을 포워딩(Forwrding)이라고 합니다.
4. 필터링(Filtering)
다음은 필터링입니다. 필터링(Filtering)은 여러분이 아시는 것처럼 무언가를 거르거나 여과한다는 뜻입니다. 그러면 스위치에서의 필터링은 무엇일까요? 필터링은 데이터가 다른 세그먼트로 못 넘어가게 막는 것을 뜻합니다. 필터링은 스위치가 목적지의 맥주소를 알고 있고, 출발지와 목적지가 같은 세그먼트에 있는 경우에 발생합니다. 이 경우에는 데이터가 스위치를 건너 다른 세그먼트로 넘어가지 않아도 통신이 가능하니까요. 이 필터링(Filtering)으로 인해 스위치가 허브와 달리 콜리전 도메인(Collision Domain)을 나누어줄 수 있는 것입니다.
[그림 4]에서 세그먼트 E0에 있는 1111.1111.1111.1111(이하 A)가 2222.2222.2222.222(이하 B)2에 데이터를 보내려고 합니다. 이더넷의 특성상 이 프레임을 B와 스위치 모두에게 전달됩니다. 그러면 스위치는 목적지 주소가 자기 맥 테이블에 있는지 살펴보겠죠? 맥 테이블을 살펴본 스위치는 A와 B가 같은 세그먼트에 있다는 것을 알고 필터링을 적용하게 됩니다. 따라서 이 경우에 만약 세그먼트 E1에 있는 3333이 4444와 통신을 한다고 해도 이 프레임은 필터링이 걸리기 때문에 세그먼트 E0에서 통신이 일어나는 중에도 세그먼트 E1에서 통신이 일어날 수 있는 것입니다. 앞서 말한 것처럼 스위치의 필터링이 콜리전 도메인을 나눠주는 역할을 합니다.
[그림 4]
5. 에이징(Aging)
마지막 5번째 에이징(Aging)입니다. 마지막은 아마 쉽사리 유추가 어려우실 겁니다. 에이징(Aging)이란, 말 그대로 나이를 먹는다는 것입니다. 지금까지 배운 대로 스위치는 학습 능력이 있습니다. 스위치는 출발지의 맥주소를 학습한 후 이것을 맥 테이블에 저장한다고 했습니다. 그렇다면 얼마 동안 저장될까요? 일주일? 아니면 하루? 맥 테이블은 메모리라는 물리적 한계를 가지고 있기 때문에 평생 저장하는 것은 불가능합니다. 만약 한 번 배운 맥주소를 평생 저장한다면 맥 테이블은 금방 차버릴 것이고, 그다음에는 배워도 저장할 공간이 없어서 기억 못하게 될 겁니다. 따라서 맥 테이블도 우리의 두뇌처럼 일정 시간이 지나고 나면 맥주소를 테이블에서 지우게 됩니다. 그 시간은 기본적으로 300초, 즉 5분입니다. (물론 이 시간은 조정이 가능합니다) 에이징(Aging)이란 바로 이것에 관련된 타이머입니다.
어떤 주소를 맥 테이블에 저장하고 그때부터 Aging(타이머)이 가동되어 300초가 지나도록 해당 출발지 주소를 가진 프레임이 들어오지 않으면 맥 테이블에서 그 주소를 삭제시킵니다.
'Network' 카테고리의 다른 글
Switch3 - 루핑(Looping)이란? (0) | 2024.01.04 |
---|---|
Switch 1 - 스위치(Switch)란 무엇일까? (0) | 2023.10.15 |
Hub 2 - 허브의 한계, 종류 (0) | 2023.10.15 |
Hub 1 - 허브(Hub)란 무엇일까? (0) | 2023.10.15 |
메시지 전송방식(유니캐스트, 멀티캐스트, 브로드캐스트) (0) | 2023.10.15 |