1. 스위치는 몇 계층인가?
스위치 = 데이터 링크 계층(2계층) 장비, 랜의 핵심 장비
- 2계층에서 사용한다 하여 L2 스위치(L2 switch)
- 스위치의 여러 포트는 호스트를 연결(허브와 유사)
2. 스위치가 필요한 이유
허브는
- 모든 포트로 전달
- 반이중 통신
- 충돌 발생
이라는 문제가 있다.
스위치는 이를 근본적으로 개선한다.
스위치는
MAC 주소를 확인해서 필요한 포트로만 프레임을 전달
한다.
또한 포트별로 콜리전 도메인이 나눠지고, 전이중 모드를 지원하기 때문에 충돌 가능성이 크게 줄어들고 CSMA/CD가 필요하지 않다.
CSMA/CD 프로토콜의 대기 시간이 없으므로 성능상으로도 이점이 있다.
스위치는 허브와는 달리 MAC 주소를 학습해 특정 MAC 주소를 가진 호스트에만 프레임을 전달할 수 있다.
- 가정용 - 8포트, 기업용 - 24 혹은 48 포트
- 포트 혹은 인터페이스
3. 스위치의 기본 특징
허브와의 차이
허브 스위치
| 1계층 | 2계층 |
| 주소를 보고 판단하지 않음 | MAC 주소를 활용 |
| 모든 포트로 전달 | 필요한 포트로 전달 |
| 반이중 중심 | 전이중 가능 |
| 충돌 가능성이 큼 | 충돌 문제를 크게 줄임 |
| CSMA/CD 필요 | 일반적인 전이중에서는 불필요 |
이 표는 시험에서 매우 중요하다.
4. MAC 주소 테이블
스위치는
포트 번호와 해당 포트에 연결된 호스트의 MAC 주소의 연관 관계를 나타내는 정보
를 기억한다.
이것을
MAC 주소 테이블(MAC Address Table)
이라고 한다.
예:
포트 MAC
| 1 | AA |
| 2 | BB |
| 3 | CC |
| 4 | DD |
와 같은 형태다.
- MAC 주소 학습을 위해 포트와 연결된 호스트의 MAC 주소 간의 연관 관계를 메모리에 표 형태로 기억한다.
- MAC 주소 테이블은 메모리에 들어있다. 그래서 전원을 껐다 키면 처음부터 새로 학습을 해야 한다 그래서 재부팅 후 잠시 느릴 수 있다.
- 일정 시간(Aging Time, 예를 들어 5분)동안 사용이 되지 않으면 테이블에서 삭제한다. (메모리는 비싼 자원이므로 효율적으로 쓰기 위해)
- 해당 프레임이 올바른 장치로 전달이 되도록 한다.
- 포트에 연결된 PC들의 MAC주소를 스위치는 알고 있다.
5. 스위치의 MAC 주소 학습
- 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소와의 관계를 기억
- 원하는 호스트에만 프레임을 전달
스위치가 처음 켜졌을 때는 모든 장치가 어느 포트에 연결되어 있는지 모른다.
스위치는 프레임을 받으면
송신지 MAC 주소를 확인하여 학습
한다.
- 프레임이 포트로 들어오면 출발지 MAC 주소 확인
- MAC 주소와 포트 번호를 테이블에 기록
- 출발지 MAC 주소만 학습(목적지 학습 X)
- 일정 시간동안 사용되지 않으면 테이블에서 삭제
- 도착지(수신지)는 신빙성의 문제로 학습하지 않는다.
예시
A가 포트 1에 연결되어 있고 C가 포트 3에 연결되어 있다고 하자.
A가 C에게 프레임을 전송한다.
첫 번째 단계
프레임이 포트 1로 들어온다.
스위치는 프레임의
송신지 MAC = A
를 확인한다.
그리고
A MAC → 포트 1
을 테이블에 기록한다.
중요한 점은
송신지 MAC 주소를 학습한다.
는 것이다.
6. 플러딩(Flooding)
그런데 스위치는 아직 C가 어느 포트에 있는지 모른다.
이때 스위치는 마치 허브처럼
송신지 포트를 제외한 나머지 모든 포트로 프레임을 전송
한다.
이것이
플러딩(Flooding)
이다.
허브와 비슷해 보이는 이유가 바로 이것이다.
B와 D는 프레임을 받지만 자신에게 온 것이 아니므로 폐기한다.
C는 프레임을 받는다.
- 스위치 장비를 껐다가 키면(파워를 뽑는 식으로) MAC 테이블이 비어있다.
- 목적지 MAC 주소를 모를 때 모든 포트로 프레임을 전송하는 동작
- 허브처럼 모든 포트로 보낸다. 내가 모르지만 어딘가에 해당 장비가 있을 것이라 판단한다.
- 브로드캐스트 프레임을 수신
7. C의 응답
C가 A에게 응답하면 이번에는 프레임의 송신지 MAC이 C다.
스위치는 이 프레임을 받아
C MAC → C가 연결된 포트
를 학습한다.
이제 스위치는
- A → 포트 1
- C → 포트 3
을 모두 알고 있다.
따라서 다음부터 A가 C에게 보낼 때는
3번 포트로만 전달
하면 된다.
즉, 호스트 A가 호스트 C에게 프레임을 전송하면 스위치는 호스트 B, D가 연결된 포트로는 내보내지 않도록 필터링하고, 호스트 C가 연결된 포트로 프레임을 포워딩
8. 필터링(Filtering)
스위치가 목적지와 관련 없는 포트로 프레임을 보내지 않는 것을
필터링(Filtering)
이라고 한다.
예를 들어 A → C 프레임이 들어왔고 C가 3번 포트에 연결되어 있다는 것을 이미 알고 있다면
- 2번 포트 X
- 4번 포트 X
- 3번 포트 O
가 된다.
즉,
필요 없는 포트로는 프레임을 보내지 않는다.
9. 포워딩(Forwarding)
필터링과 함께 이해해야 한다.
목적지 MAC에 해당하는 포트로 프레임을 전달하는 것
이 포워딩이다.
즉,
- 불필요한 포트에는 보내지 않음 = 필터링
- 필요한 목적지 포트로 보냄 = 포워딩
이다.
10. 에이징(Aging)
MAC 주소 테이블에 있는 정보가 영원히 유지되지는 않는다.
MAC 주소 테이블에 등록된 특정 포트에서 일정 시간 동안 프레임을 전송받지 못했다면
그 항목을 삭제
한다.
이를
에이징(Aging)
이라고 한다.
예를 들어 일정 시간 동안 ‘송신지 MAC 주소’가 ab:cd:ab:cd:00:01인 프레임을 1번 포트에서 전송받지 못했다면 이 항목은 삭제한다.
11. 스위치의 세 가지 핵심 동작
스위치의 MAC 학습 과정을 세 가지로 정리하면
① MAC 주소 학습
송신지 MAC 주소와 포트를 기록
② 포워딩 / 필터링
목적지 MAC이 알려져 있으면 목적지 포트로만 전달
③ 플러딩
목적지 MAC을 모르면 여러 포트로 전달
여기에 일정 시간이 지나면 테이블에서 지우는 에이징을 추가로 기억한다.
12. MAC 주소 테이블과 메모리
스위치의 MAC 주소 테이블은 장비 내부 메모리에 저장된다.
따라서 장비를 완전히 재부팅하면 동적으로 학습된 테이블이 비워질 수 있다.
그 결과 재부팅 직후에는 다시 MAC 주소를 학습하는 과정이 필요하다.
필기에서는
재부팅 후 잠시 느릴 수 있다.
고 정리했다.
단, 실제 장비의 동작과 설정에 따라 차이가 있을 수 있다.
또한 일정 시간 동안 사용되지 않는 항목을 삭제하는 이유 중 하나는
메모리 자원을 효율적으로 사용하기 위해서
이다.
13. 플러딩이 발생하는 경우
대표적인 상황은
① 목적지 MAC을 모르는 경우
스위치가 어느 포트에 있는지 모르면 일단 여러 포트로 전달한다.
② 브로드캐스트 프레임
브로드캐스트는 원래 여러 호스트에게 전달되어야 하므로 스위치는 해당 프레임을 여러 포트로 전달한다.
14. 스위치와 허브의 본질적인 차이
허브
“나는 목적지를 모르니까 일단 모두에게 보낸다.”
스위치
“MAC 주소 테이블을 보고 목적지 포트에만 보낸다.”
단, 스위치도 목적지 MAC을 모르면 플러딩하기 때문에 “스위치는 절대 모두에게 보내지 않는다”라고 외우면 안 된다.
15. 브리지(Bridge)
브리지는 데이터 링크 계층의 장비다.
스위치와 유사한 기능을 수행하며
- 네트워크 영역을 구획하여 콜리전 도메인을 나누거나 네트워크를 확장
- 앞서 설명한 스위치의 기능들(MAC 주소 학습, 포워딩, 필터링)도 제공
할 수 있다.
현대적인 네트워크에서는 일반적으로 스위치가 브리지의 역할을 크게 확장한 형태로 이해하면 편하다.
16. 포트 = 인터페이스
네트워크 장비의
포트(port)
는 장비를 다른 장비와 연결하는 접점이다.
넓은 의미에서 네트워크 인터페이스라는 표현도 사용할 수 있다.
스위치에는 보통
- 가정용 8포트
- 기업용 24포트
- 기업용 48포트
등의 제품이 많이 사용된다.
17. 이더넷 프레임 ( = 맥 프레임 )
- 프리앰블 7바이트
- 도착지, 출발지 6바이트 → 맥주소 크기
- 프리앰블
- 이더넷 헤더 맨앞
- 7바이트
- 01010101…101010111 → 이게 7바이트가 나오고, SFD가 나오면 그 이후에 나오는 것이 주소값이구나를 인식한다.
- 11로 끝나는 것은 SFD
- 동기화비트
- 동기화비트까지 읽고 그 이후부터 이더넷 헤더구나를 인식할 수 있다. (동기회체크)
- 맥헤더/프레임 헤더 → 이더넷 헤더 + 데이터 + FCS
- 이더넷 헤더 14바이트
- 최소 프레임의 크기는 64바이트
- 데이터(페이로드)가 최대 1500바이트
- MTU - 네트워크에서 한번에 전송할 수 있는 크기, 기본값이 1500바이트이다.
- 1500바이트는 기본적으로 넘어갈 수없고, 넘어가는 것은 쪼개서 보낸다.
- MTU 사이즈를 수정할 수 있다.
- 1500 바이트 이상으로 MTU를 바꾼다고 하여도 데이터가 공유기를 통해 인터넷으로 나가는 순간 1500바이트로 자동으로 바뀐다. 그 이유는 1500바이트가 표준이고 ISP가 관리하기 때문이다.
- LAN 단위에서 같은 MTU 사이즈의 장비들끼리는 1500바이트가 넘는 MTU 값으로 설정하여도 통신이 가능하다.
- 프레임 페이로드는 1500 바이트이고, 그 중에 IP 헤더의 크기가 20 바이트이고 1480 바이트가 실질적인 데이터 크기이다.
- 점보 프레임 - 점보 프레임(Jumbo Frame)은 이더넷 네트워크에서 한 번에 전송하는 데이터 단위인 MTU(Maximum Transmission Unit)의 크기를 표준인 1,500바이트보다 훨씬 크게(통상 최대 9,000바이트까지) 늘려 전송하는 기술입니다. 이것을 적용하려면 전세계적인 업데이트가 필요하다.
18. Virtual
- 컴퓨터 한대를 가지고 나눠서 쓰는 기술
- 컴퓨터 한대의 구역을 분리해서 쓰는 것이다.
- 하드웨어
- 손으로 만질 수 있는 물리적인 대상, Pysical
- 2계층 → 이더넷, NIC → MAC 주소
- 소프트웨어
- 데이터를 처리하고 제어하기 위해 컴퓨터에서 처리하는 명령어 집합
- 코드 덩어리, 손으로 만질 수 없다.
- Logical, Virtual
- 예) 카카오톡, 엑셀, 슬랙…
- 논리적 - 3계층(예. IP주소), 4계층(예. TCP/UDP)
19. VLAN
이제 스위치의 중요한 고급 기능을 배운다.
VLAN:
Virtual LAN
즉,
한 대의 물리적 스위치로 여러 개의 논리적인 LAN을 만드는 기술(가상의 LAN을 만드는 방법)
이다.
20. VLAN의 핵심 아이디어
하나의 스위치에 여러 대의 호스트가 연결되어 있어도
논리적으로 서로 다른 LAN에 속한 것처럼(여러 대의 스위치가 있는 것처럼) 분리
할 수 있다.
논리적인 단위로 LAN을 구획한다.
예를 들어 한 스위치 안에서
- VLAN 10
- VLAN 20
- VLAN 30
등을 만들 수 있다.
- 가상의 로컬 네트워크를 논리적으로 분리해서 사용하는 것
- 브로드캐스트 도메인을 나눠서 쓰고 싶은 것이다.
- 버츄얼 박스, 버츄얼 머신 → ‘가상의’
- 논리적으로 LAN을 구현, 논리적으로 물리적인 것을 구현
- 예) VLAN 1번, VLAN 2번
21. VLAN과 브로드캐스트 도메인
VLAN이 달라지면 브로드캐스트 도메인도 달라진다.
예를 들어 VLAN 10의 호스트가 브로드캐스트를 발생시키면
VLAN 20이나 VLAN 30에 속한 호스트에게까지 브로드캐스트가 전달되지 않는다.
한 VLAN에 속한 호스트가 브로드캐스트를 하게 되면 다른 VLAN에 속한 호스트에게까지는 서로 다른 네트워크로 간주되어 전달되지 않는다.
따라서 VLAN은
논리적으로 네트워크를 분리
하는 역할을 한다.
22. 포트 기반 VLAN(Port-based VLAN)
스위치의 포트가 VLAN을 결정하는 방식
사전에 특정 포트에 VLAN을 할당하고, 해당 포트에 호스트를 연결함으로써 VLAN에 포함시킬 수 있다.
예를 들어
- 1번 포트 → VLAN 2
- 2번 포트 → VLAN 2
- 3번 포트 → VLAN 3
으로 설정하면
- A가 1번
- B가 2번
- C가 3번
에 연결되어 있을 때
A와 B는 같은 VLAN, C는 다른 VLAN에 속한다.
22. 여러 스위치에서 VLAN을 확장할 때의 문제
포트 기반 VLAN을 하나의 스위치에서만 구성하면 포트 수가 부족할 수 있다.
예를 들어
- VLAN 1 → 4개 호스트
- VLAN 2 → 3개
- VLAN 3 → 3개
총 10개가 필요한데 스위치 포트가 8개밖에 없다면 문제가 발생한다.
VLAN 스위치 여러 대를 구비해 같은 VLAN 포트끼리 연결하여 VLAN을 확장할 수 있다. 이 경우 포트의 낭비가 발생한다.
23. VLAN 트렁킹(VLAN Trunking)
두 대 이상의 VLAN 스위치를 효율적으로 연결하여 확장할 수 있다.
스위치 간의 통신을 위한 특별한 포트인 트렁크 포트(trunk port)에 VLAN 스위치를 서로 연결한다.
트렁크 포트는 여러 VLAN의 트래픽을 하나의 링크를 통해 전달할 수 있게 한다.
예를 들어
스위치 A ↔ 트렁크 링크 ↔ 스위치 B
처럼 연결한다.
24. 트렁크 포트의 문제
스위치 A에서 프레임이 트렁크 포트를 타고 스위치 B로 넘어왔다고 하자.
- 스위치 B는 트렁크 포트로 전달받은 프레임이 어떤 VLAN에 속하는지 어떻게 알 수 있을까?
- 스위치가 아직 학습되지 않은 MAC 주소를 포함하고 있을 경우 일반적인 이더넷 프레임만으로는 알 수 없다.
25. 802.1Q 프레임
이 문제를 해결하기 위해 사용하는 대표적인 방식이
IEEE 802.1Q
다.
어떤 VLAN에 속하는지 식별 정보까지 추가된 확장된 이더넷 프레임을 사용한다.
기존 Ethernet 프레임 사이에
32비트 크기의 VLAN 태그
정보를 추가한다.
이 VLAN 태그에
어떤 VLAN에 속한 프레임인지 식별할 수 있는 정보
가 포함된다.
즉,
이더넷 프레임 + VLAN 식별 정보
를 만들어 스위치 간에 전달한다.
26. MAC 기반 VLAN (MAC based VLAN)
포트 기반 VLAN과는 다른 방식이다.
사전에 설정된 MAC 주소에 따라 어떤 VLAN에 속할지를 결정한다.
즉, 포트가 VLAN을 결정하는 것이 아니라 송수신하는 프레임 속 MAC 주소가 호스트가 속할 VLAN을 결정하는 방식이다.
27. 브로드캐스트 스톰
스위치를 여러 개 연결할 때 네트워크에 **루프(loop)**가 생기면 문제가 발생할 수 있다.
예를 들어 스위치를 삼각형으로 연결하면
A → B → C → A
처럼 프레임이 계속 순환할 수 있다.
특히 브로드캐스트 프레임은 특정 한 장치에서 끝나는 것이 아니라 여러 포트로 전달되기 때문에 이런 루프와 결합하면
브로드캐스트가 네트워크를 계속 순환하면서 네트워크를 마비시키고 장비가 고장이 난다.
이것을 브로드캐스트 스톰이라고 부른다.
고장을 대비하여 라우터, 스위치를 이중화하는 과정에서 이러한 루프가 발생할 수 있다.
28. STP
이러한 스위치 간 루프를 방지하기 위해 사용하는 대표적인 기술이
STP(Spanning Tree Protocol)
다.
핵심 아이디어는
물리적으로 연결은 여러 개 해두되, 논리적으로 일부 경로를 차단하여 루프가 생기지 않게 만드는 것
이다.
스위치를 안전을 위해 이중으로 연결한 뒤 STP가 하나의 경로를 블로킹한다.
중요한 것은
케이블을 실제로 잘라 버리는 것이 아니라 논리적으로 특정 포트를 차단
한다는 점이다.
29. 왜 일부러 경로를 차단하는가?
처음 보면 비효율적으로 보인다.
“경로가 여러 개면 좋은 것 아닌가?”
하지만 스위치 네트워크에서는 루프가 생기는 것이 더 큰 문제다.
그래서
- 평소에는 하나의 경로를 사용하고
- 다른 경로는 대기 상태로 두고
- 주 경로에 문제가 생기면 다른 경로를 활성화
하는 방식으로 안정성과 장애 대응 능력을 확보할 수 있다.
즉,
이중화 + 루프 방지
를 함께 얻는 것이다.
'네트워크' 카테고리의 다른 글
| [혼공네] 02-1. 이더넷(Ethernet) (0) | 2026.09.21 |
|---|---|
| [혼공네] 01-2. 네트워크 거시적으로 살펴보기 (0) | 2026.09.20 |
| [혼공네] 01-1. 컴퓨터 네트워크를 알아야 하는 이유 (0) | 2026.09.20 |
| [Docker] 도커 기본 개념 정리 (0) | 2024.02.29 |
| AWS로 https 배포하기 (feat. S3, Route 53, Certificate Manager, CloudFront) (0) | 2023.05.04 |