Switch:
스위치는 링크 계층의 디바이스이며 ethernet frame을 저장하고 포워딩하는 역할을 한다.
(incoming frame의 MAC 주소를 확인하고 outgoing link를 찾아 CSMA/CD를 이용해 내보낸다.)
호스트는 switch의 존재를 모른다.
switch는 plug-and-play방식이고 self-learning하기 때문에 따로 정의할 필요는 없다.
스위치의 각각의 incoming link에는 ethernet protocol이 사용되어 충돌이 발생하지 않고 전이중 통신을 구현할 수 있다.
(같은 destination으로는 불가능하다)
Self-learning:
스위치는 어느 인터페이스를 통해 어느 호스트로 도달할 수 있는지 학습한다.
예시: A에서 A'로 패킷을 전송하는 경우
우선 incoming LAN segment로 패킷을 보낸 호스트의 interface를 기록한다. (sender-location pair)
Destination interface의 정보가 switch table에 있는 경우:
패킷의 전송은 자신에게 보내는 경우와 남에게 보내는 경우가 있다.
- 자신인 경우: switch는 패킷을 drop한다.
- 남인 경우: 맞는 interface로 forwarding한다.
Destination interface의 정보가 switch table에 없는 경우:
- 모든 interface로 flood한다. (broadcast)
A'는 패킷을 받아서 ACK를 보낸다.
이때 A'의 interface가 switch table에 기록된다.
실습을 해보자~

A에서 G로 패킷을 보내는 경우 switch table들은 어떻게 기록될까?
A->G로 갈 때, 각각의 switch에는 G에 대한 정보가 없기 때문에 전부 flood한다.
S1 | S2 | S3 | S4 |
A, 2, TTL | A, 1, TTL | A, 1, TTL | A, 1, TTL |
가는 동안 테이블은 다음과 같이 기록된다.
G는 flood된 패킷을 받고 A에게 ACK를 보낸다.
각각의 스위치 테이블은 A의 interface를 알고 있기 때문에 Unicast로 패킷을 전송한다.
S1 | S2 | S3 | S4 |
A, 2, TTL | A, 1, TTL | A, 1, TTL | A, 1, TTL |
G, 1, TTL | G, 2, TTL | G, 3, TTL |
가는 동안 테이블은 다음과 같이 기록된다.
S2스위치는 G->A 과정에서 거칠 필요가 없기 때문에 interface가 기록되지 않는다. (Unicast)
Switch vs Router
전부 Store-and-Forward 방식으로 Forwarding Table을 가지고 있다.
- Router: Network Layer) 라우팅 알고리즘으로 table을 계산하고 IP주소를 사용한다.
- Switch: Link Layer) flooding, self learning으로 table을 기록하고 MAC주소를 기록한다.
*위 사진에서 각 기기가 패킷의 몇번째 layer까지 뜯어보고 수정하는지 확인하자.
switch는 투명하다:
host는 switch의 존재를 모르고 switch는 맞는 interface로 forwarding하는 역할만 한다.
host는 destination Host로 패킷을 보낼 때 next-hop 라우터의 MAC주소를 명시하고,
라우터를 거치며 frame의 목적지 MAC주소는 계속 바뀐다.
VLAN(Virtual Local Area Network)
왜 생겼나?
앞서 알아보았던 ARP나 DHCP 프로토콜은 브로드캐스트 메시지가 빈번히 발생한다.
만약 LAN 환경이 커지면 broadcast시 수 많은 컴퓨터에게 불필요한 메시지를 전송하게 되고,
그에따라 오버헤드가 크게 발생하고, 성능 측면에서 비효율적이고, 보안문제 역시 발생할 수 있다.
따라서 LAN 환경을 분할하여 여러 개의 브로드캐스트 도메인을 만들고자 하는 필요성이 생겼다.
Port-based VLAN:
하나의 스위치에서 port번호로 그룹을 나눈다. (독립적인 두개의 switch처럼 기능한다.)
이런 방식으로 스위치를 나누면 트래픽을 분할 할 수 있어 브로드캐스트 등에 유리하다.
dynamic membership: VLAN 간에 동적인 포트 할당 이 가능해진다
*두개의 VLAN은 라우터를 거쳐 패킷을 주고 받는다.
그리고 각각의 VLAN 상에는 trunk port 라는 특별한 포트가 있는데, 이 포트는 다른 VLAN 간에 오가는 frame을 carry 한다.
Trunk Port: 여러개의 물리적인 switch간 정의된 VLAN끼리 frame을 주고 받을 수 있게 한다.
802.1.q 프로토콜을 사용한다.
type부분에서 0x8100일 경우 VLAN인것을 알 수 있다.
*이더넷에서 type필드 뒤에 12비트의 VLAN ID 필드가 추가된다
'교내 강의 > 컴퓨터 네트워크' 카테고리의 다른 글
14주차: Link) MPLS, DataCenter (2) | 2024.06.08 |
---|---|
네트워크 13주차: Link) ARP, ethernet (2) | 2024.06.03 |
12주차: Link) MAP (1) | 2024.05.30 |
12주차: Link) EDC(Error Dectection, Correction) (0) | 2024.05.25 |
11주차: NET) AS SDN (0) | 2024.05.22 |