전공공부/컴퓨터망 (Computer Network)

[컴퓨터망] Link Layer (5) - Ethernet Switch

jooona 2021. 1. 25. 00:25
반응형

현재의 이더넷은 스타형 토폴로지를 사용하기 때문에 스위치나 허브의 도움이 필요합니다. 여기서 스위치와 허브의 차이점을 잠깐 짚고 넘어가자면, 허브는 각 노드들이 어디에 위치하고 있는지 MAC 주소에 대한 정보를 저장하지 않기 때문에, 허브가 수신자로부터 데이터를 받으면 자신에게 연결된 모든 노드에 데이터를 뿌려줍니다. 목적지 주소와 맞는 노드만 해당 데이터를 사용하는 방식입니다.

 

반면에 스위치는 스위치 테이블을 가지고 있어서 목적지 노드에만 데이터를 보내줍니다. 이번 글에서는 이 스위치 테이블에 대해 공부해보도록 하겠습니다.

 

1. Switch Forwarding Table

포워딩(Forwarding)이란 목적지에 맞게 데이터를 전달해주는 것을 뜻합니다. 즉 스위치 포워딩 테이블은 스위치가 데이터를 어디로 보내줘야 할지를 알려주는 테이블이라고 정의할 수 있습니다. 

 

스위치는 Self-learning이라는 특성을 가지고 있습니다. 말 그대로 테이블을 사용자가 만들어주는 것이 아니라, 스위치가 스스로 채워나간다는 뜻입니다.

 

처음에 테이블은 당연히 완전히 비어있습니다. 이때 A라는 컴퓨터에서 D라는 컴퓨터로 데이터를 송신하여, 스위치에 다다르면, 스위치는 프레임 내부의 source address, 즉 송신자의 주소를 확인하고 그 주소를 위의 그림과 같이 테이블에 기록해줍니다. 이렇게 송신자의 주소 정보를 테이블에 채워 넣는 식으로 테이블을 완성해 나갑니다. 네트워크 내부의 모든 노드가 데이터를 한 번 이상 보내면, 테이블은 완성되게 됩니다.

 

테이블에 기록되어 있는 목적지로 데이터를 보낼 때야 그냥 테이블에 따라 보내면 되지만, 테이블에 저장되어 있지 않은 목적지로 데이터를 보내주어야 한다면 어떻게 할까요? 당연히 송신자를 제외한 모든 노드에게로 데이터를 보내줍니다. 그럼 모든 노드가 데이터를 수신하지만, 자신의 주소와 목적지 주소가 같은 노드만 해당 데이터를 이용하면 됩니다. 이 데이터를 뿌려주는 과정을 flooding이라고 합니다. 허브와 다른 점은 허브는 테이블 자체가 존재하지 않아 항상 모든 노드에게로 데이터를 뿌려준다는 점입니다.

 

 2. Interconnecting Switchs

 

스위치들은 스위치를 통해 상호 연결될 수 있습니다. 위의 그림의 A라는 컴퓨터가 B라는 컴퓨터에 데이터를 보내는 것 역시 가능합니다. 이 과정도 위에서 공부한 self-learning과 똑같은 방식으로 구현됩니다.

 

3. Switches vs. Routers

이번에는 스위치와 라우터의 차이에 대해 알아보겠습니다. 두 기기 모두 데이터를 받아서 목적지로 보내주는 역할을 합니다. 하지만 스위치는 데이터 링크 계층 수준에서의 기기이고, 라우터는 네트워크 계층 수준의 기기입니다. 그래서 스위치는 프레임의 헤더만 열어서 확인하고, 라우터는 네트워크 계층의 헤더를 열어서 확인합니다. 

 

공통점으로는 둘 다 테이블을 가지고 있어서 정확한 위치로 데이터를 전달해준다는 점입니다. 라우터는 라우팅 알고리즘들과 IP 주소를 이용해 포워딩을 해주고, 스위치는 flooding과 learning을 통해 완성한 테이블을 이용해 포워딩을 해줍니다. 라우터에 대해서는 뒤에 네트워크 계층을 공부할 때 더 자세히 알아보도록 하겠습니다.

 

 

반응형