[Network] #8 허브와 스위치
[혼자 공부하는 네트워크↗️], 컴퓨터 네트워킹: 하향식 접근 (제8판)을 바탕으로 정리한 글입니다.
1. 물리계층과 데이터 링크 계층의 장비
1.1 허브 vs 스위치
허브와 스위치는 각각 물리 계층, 데이터 링크 계층의 대표적인 네트워크 장비이다.
- 허브와 스위치는 대비되는 특성을 갖고있다.
- 허브는 반이중 통신, 스위치는 전이중 통신 방식 으로 통신을 한다.
- 허브는 스위치와 달리 충돌이라고 하는 문제를 완화하기 위한 방식이 필요한데 이 방법으로
CSMA/CD
라고 하는 방식을 사용한다.
- 오늘날에는 대부분 스위치를 사용한다.
1.2 리피터
허브 외에 물리계층의 대표적인 장비로써 리피터(repeater)가 존재한다.
- 전기 신호가 감소하거나 왜곡되는 것을 방지하기 위해 전기 신호를 증폭시켜주는 장비이다.
- 리피터는 물리 계층의 장비이므로 주소 개념이 없어 신호에 대한 어떤 판단이나 조작을 하지 않고, 그저 신호를 증폭시키기만 한다.
- 허브는 리피터의 기능을 포함하는 경우가 많다.
우선 물리 계층의 네트워크 장비와 데이터 링크 계층의 네트워크 장비가 어떤 차이점이 있는지 알아보자.
1.3 물리 계층과 데이터 링크 계층의 장비
물리 계층에는 주소 개념이 없다.
- 단지 호스트와 통신 매체 간의 연결과 통신 매체상의 송수신이 이루어 질 뿐,
- 물리 계층 장비는 송수신 되는 정보에 대한 어떠한 조작(송수신 내용 변경)이나 판단도 하지 않는다.
반면, 데이터링크 계층에는 주소 개념이 있다.
- MAC 주소
- 데이터 링크 계층 이상 장비들은 송수신지 특정이 가능하며, 송수신 정보에 대한 조작이 가능하다.
2. 허브(hub)
2.1 허브란?
허브란, 여러 대의 호스트를 연결할 수 있는 물리 계층의 대표적인 장비를 의미한다.
- 리피터 허브(repeater hub) 혹은 이더넷 허브(Ethernet hub)라고도 불린다.
- 포트(port): 물리적인 연결 지점으로, 이더넷 케이블을 연결하는 곳 (!= 네트워크 포트)
2.2 허브의 특징
하나의 포트에서 데이터를 수신하며, 받은 정보는 모든 포트로 내보낸다.
① 받은 정보는 모든 포트로 내보낸다.
- 정보에 대한 어떤 조작도 판단도 하지 않는다. (주소 개념이 없는 물리 계층 장비이기 때문)
- 전달받은 신호를 다른 포트로 그대로 다시 내보낸다.
- 이때, 데이터 링크 계층에서 패킷의 MAC 주소를 확인하고 자신과 관련없는 주소는 폐기한다.
- 따라서 불필요한 트래픽이 많아진다는 문제가 있다.
- e.g., 컴퓨터 A가 보내는 데이터가 허브 포트 1을 통해 들어오면, 그 데이터는 허브의 다른 포트(포트 2, 3 등)로 모두 전달.
② 반이중 모드로 통신한다.
- 반이중(half duplex) 모드
- 송수신을 번갈아 가면서 하는 통신 방식
- e.g., 1차선 도로, 무전기
- 전이중(full duplex) 모드
- 송수신을 동시에 양방향으로 할 수 있는 통신 방식
- e.g, 일반적인 전화 통화
- 💡 즉, 장치 A가 송신하고, 장치 B가 수신을 완료한 후에야 장치 A가 다시 송신이 가능하다.
- 만약 A와 동시에 장치 B도 데이터를 송신하려고 하면, 장치 A의 데이터와 장치 B의 데이터가 허브에 도달하기 전에 충돌을 일으키게 된다.
- 허브는 충돌을 감지하고, 충돌이 발생한 데이터를 버린 후 재전송을 요청한다. (아래서 설명)
2.3 허브와 충돌(collision)
허브는 위와 같은 특징때문에 두 대의 호스트가 동시에 신호를 전송할 수 없지만, 만약 동시에 허브에 신호를 송신하면 충돌(collision, 콜리전)이 발생한다.
허브에 호스트가 많이 연결되어 있을수록 충돌 발생 가능성이 높다.
콜리전 도메인(collision domain)
- 콜리전 도메인이란 충돌이 발생할 수 있는 영역을 의미하며, 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속한다.
- 즉, 충돌을 피하기 위해 콜리전 도메인은 작아야 한다.
넓은 콜리전 도메인으로 인한 충돌을 해결할 수 있는 방안으로는 대표적으로 두 가지가 존재한다.
CSMA/CD
사용- 다른 장비(스위치) 사용
즉, CSMA/CD
을 사용하면 다른 장비를 사용하지 않고 허브를 이용해 충돌을 완화할 수 있는 것이다.
2.4 CSMA/CD 프로토콜
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)는 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜이다.
- 사실상 반이중 이더넷을 대표하는 송수신 방법이다.
- 데이터를 보내기 전 채널이 비었는지 확인하고, 충돌이 발생하면 즉시 중단한 뒤 랜덤 시간 후 재전송하는 방식이다. (랜덤 접속 프로토콜)
CSMA/CD의 단계
① 캐리어 감지
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection)
- 통신 매체의 현재 사용 가능 여부 검사: 메시지를 보내기 전 현재 전송중이 있는 것이 있는지 먼저 확인한다.
② 다중 접근
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection)
- 복수의 호스트가 부득이 동시에 네트워크에 접근할 때 충돌이 발생한다.
③ 충돌 검출
- CSMA/MACD</span>(Carrier Sense Multiple Access with MACollision Detection</span>)
- 전송 중단, 충돌 발생을 알리는 잼 신호(jam signal)를 보낸다.
- 그리고 랜덤한 시간 동안 기다린 뒤에 재전송 한다. -> 랜덤 접속 프로토콜
3. 스위치
3.1 스위치란?
스위치란, 허브의 충돌 문제를 해결할 수 있는 데이터 링크 계층의 대표적인 장비를 의미한다. 오늘날 굉장히 많이 사용되는 네트워크 장비이며, 2계층에서 사용한다 하여 L2스위치라고도 지칭한다.
- 전달받은 신호를 수신지 호스트가 연결된 포트로만 내보내고, 전이중 모드로 통신하여 충돌 문제를 해결한다.
- 허브와는 달리 특정 MAC 주소를 가진 호스트에만 프레임 전달이 가능하기 때문에 콜리전 도메인은 허브보다 줄어든다.
- 전이중 모드 통신을 지원하기 때문에,
CSMA/CD
프로토콜이 필요하지 않다. - 스위치는 링크 계층에서 동작하기 때문에 네트워크 계층의 IP 주소가 아닌 링크 계층 주소의 MAC 주소를 사용한다.
- (IP 주소가 마치 우편번호 처럼 쓰였다면 MAC주소는 주민등록번호처럼 사용된다.)
- (IP 주소가 마치 우편번호 처럼 쓰였다면 MAC주소는 주민등록번호처럼 사용된다.)
3.2 MAC 주소 학습 기능
스위치의 주요 기능은 MAC주소 학습 기능, VLAN 기능이 존재한다. 먼저 MAC주소 학습 기능에 대해 알아보자.
3.2.1 MAC 주소 학습 기능이란?
스위치가 각 포트에 연결된 호스트의 MAC 주소를 학습하고 이를 기억하여, 필요한 데이터 프레임을 정확한 포트로 전송하는 기능이다.
- 포트와 MAC 주소의 매핑 기억
- 스위치는 수신한 프레임의 송신지 MAC 주소를 확인한 후, 그 MAC 주소와 프레임이 들어온 포트를 매핑하여 MAC 주소 테이블에 저장한다.
- 이 매핑을 통해, 스위치는 해당 호스트가 어느 포트에 연결되어 있는지 기억하고, 이후에는 데이터를 정확하게 그 포트로만 전달할 수 있다.
- 콜리전 도메인 분리
- 포트별로 콜리전 도메인이 나누어지기에 충돌 위험이 감소한다.
- 포트별로 콜리전 도메인이 나누어지기에 충돌 위험이 감소한다.
3.2.2 MAC 주소 테이블
MAC 주소 학습 기능을 위해 스위치가 저장하는 정보를 “MAC 주소 테이블“이라고 한다.
즉, MAC 주소 테이블은 스위치 포트와 연결된 호스트의 MAC 주소 간의 연관 관계를 나타내는 정보이다.
만약, MAC 주소 학습을 하기 이전이라면?
- 호스트 A가 1번 포트로 메시지를 전송하면 스위치는 전송 받은 메시지를 3번 포트로 내보내 줘야 할 것이다.
- 현재 스위치가 MAC 주소를 학습하기 이전이기 때문에, 스위치는 호스트 A,B,C,D,의 MAC주소와 연결된 포트의 연관 관계를 알 수 없다.
- 따라서, 호스트 A가 1번 포트를 통해 메시지를 전달을 했더라도 어느 포트로 내보내야하는지 알 수 없는 것이다.
3.3.3 스위치의 MAC 주소 학습 과정
호스트 A가 호스트 C로 프레임을 전송하는 상황을 가정해보자. 스위치가 아직 MAC 주소 테이블을 학습하지 않은 초기 상태이다.
호스트 A가 1번 포트로 메시지를 전송하면 스위치는 전송 받은 메시지를 3번 포트로 내보내 줘야 할 것이다.
- 호스트 A가 호스트 C로 프레임을 전송
- 호스트 A가 호스트 C에게 데이터를 보내기 위해 프레임을 전송한다.
- 이 프레임은 스위치의 포트 1을 통해 들어온다.
-
송신지 MAC 주소 학습
- 스위치는 프레임을 수신하면서, 프레임의 송신지 MAC 주소를 확인한다.
- 프레임의 송신지 MAC 주소가 호스트 A의 주소라는 것을 확인하고, 포트 1에 호스트 A의 MAC 주소가 연결되어 있다는 정보를 MAC 주소 테이블에 기록한다.
-
목적지 MAC 주소 확인 및 플러딩
- 스위치는 프레임의 목적지 MAC 주소를 확인한다.
- 이때, 스위치가 아직 호스트 C의 MAC 주소를 학습하지 않았기 때문에, 목적지 MAC 주소에 대한 정보가 MAC 주소 테이블에 없다.
- 스위치는 플러딩(Flooding) 동작을 수행하여, 프레임을 모든 포트(포트 2, 3, 4)로 전송한다.
- 이 과정에서 호스트 B, C, D가 모두 프레임을 수신하게 된다.
-
목적지 호스트 C의 응답
- 플러딩을 통해 프레임을 수신한 호스트 중, 호스트 C는 자신이 목적지 MAC 주소와 일치하는지 확인하고, 호스트 C가 호스트 A에게 응답 프레임을 전송하게 된다.
-
수신지 MAC 주소 학습 (호스트 C)
- 호스트 C는 응답 프레임을 전송하면, 스위치는 이 프레임을 포트 3을 통해 수신하게 된다.
- 스위치는 “송신지 MAC 주소 필드”로 호스트 C의 MAC 주소를 학습하고, 포트 3에 호스트 C의 MAC 주소가 연결되어 있다는 정보를 MAC 주소 테이블에 저장한다.
-
이후의 프레임 전송 (포워딩과 필터링)
- 이제 스위치의 MAC 주소 테이블에는 포트 1에 호스트 A, 포트 3에 호스트 C가 연결된 정보가 저장되었다.
- 호스트 A가 다시 호스트 C로 프레임을 전송할 때, 스위치는 호스트 B,D가 연결된 포트로는 내보내지 않도록 필터링 한다.
- 그리고 스위치는 MAC 주소 테이블을 참조하여, C가 연결된 포트로 프레임을 포워딩한다.
- 불필요하게 다른 포트(포트 2, 4)로 프레임을 보내지 않기 때문에, 네트워크 성능이 향상된다.
- 에이징
- 만약 MAC 주소 테이블에 등록된 포트에서 일정 시간 동안 프레임을 받지 못하면 해당 항목은 삭제한다.
- 일정 시간 동안 “송신지 MAC 주소”가 ab:cd:ab:cd:00:01인 프레임을 1번 포트에서 못받으면 이 항목은 삭제된다.
요약
- 플러딩: 스위치는 MAC 주소 테이블에 목적지 주소가 없을 때, 모든 포트로 프레임을 전송한다.
- 포워딩과 필터링: 스위치는 송신지 MAC 주소를 학습하고, 이후에는 목적지에 맞는 포트로만 데이터를 전달한다.
- 에이징: 일정 시간이 지나면 MAC 주소 테이블에서 오래된 항목이 자동으로 삭제된다.
➡️ 이 과정을 통해 스위치는 점차 네트워크 상의 모든 호스트의 MAC 주소를 학습하고, 효율적인 데이터 전송을 관리하게 된다.
3.4 MAC 주소를 활용한 어댑터의 송수신
어댑터가 MAC 주소를 활용하여 프레임을 송수신하는 과정은 다음과 같다.
-
송신 과정
- 송신 어댑터는 프레임에 목적지 어댑터의 MAC 주소를 넣고 랜상으로 전송한다.
- 초기 상태에서는 스위치가 플러딩을 통해 프레임을 모든 포트로 브로드캐스트할 수도 있다.
- 자신을 목적지로 하지 않는 프레임을 수신할 가능성도 있다.
-
수신 과정
- 프레임을 수신한 어댑터는 프레임 안의 목적지 MAC 주소와 자신의 MAC 주소가 일치하는지 검사한다.
- MAC 주소가 일치하면 데이터를 추출하여 프로토콜 스택 상위로 전달한다.
- 일치하지 않으면 해당 프레임을 폐기한다.
-
MAC 브로드캐스트
- 모든 네트워크 장치가 수신해야 할 프레임에는 MAC 브로드캐스트 주소를 사용한다.
- 이 주소는 모든 비트가 1로 설정된 6바이트 값으로, 네트워크 상의 모든 장치가 프레임을 처리하도록 한다.
- ➡️ 이 과정을 통해 MAC 주소는 각 네트워크 장치가 데이터를 정확히 송수신하고, 네트워크의 효율성을 유지하는 데 핵심적인 역할을 한다.
3.3 VLAN 기능
한 대의 스위치로 가상 LAN을 만드는 방법을 VLAN(Virtual Local Area Network)이라고 한다.
- 한 대의 물리적 스위치를 여러 대의 스위치가 있는 것처럼 논리적인 단위로 LAN을 구성하고 나눌 수 있다.
- 불필요한 트래픽(허브, 스위치의 플러딩)으로 인한 네트워크 성능 저하를 방지할 수 있다.
즉, VLAN의 장점
- “스위치 한 대만으로도 마치 여러 대의 스위치가 있는 듯한” 구성이 가능해진다.
- “호스트의 물리적 위치와 관계없이” 호스트를 VLAN으로 그룹화할 수 있다.
VLAN은 사실상 다른 LAN이다.
- 같은 스위치에 연결되어있는 호스트라고 할 지라도 VLAN으로 분리된 호스트는 서로 다른 네트워크에 있는 것처럼 작동하며, 다른 VLAN에 속한 호스트와는 직접적으로 통신할 수 없다.
- 즉, 브로드 캐스트 도메인이 달라진다.
3.4 VLAN의 종류
3.4.1 포트 기반 VLAN
스위치가 포트가 VLAN을 결정하는 방식이다. 정적 VLAN이라고도 불린다.
- 특정 포트에 VLAN을 할당한 뒤, 해당 포트에 호스트를 연결하여 LAN에 참여할 수 있다.
- 같은 VLAN에 특정 호스트를 참여 시키려면 그 VLAN에 해당하는 포트에 꼽기만 하면 된다.
- 아래 그림에서 호스트 A와 B는 BLAN2를 할당한 포트에 연결되어 있으므로 같은 LAN에 속한 셈이다.
- 호스트 C는 VLAN3에 속해 있으므로 호스트 A, B와는 다른 LAN에 속한 셈이다.
3.4.2 MAC 기반 VLAN
사전에 설정된 MAC 주소에 따라 VLAN을 결정하는 방식이다. 동적 VLAN이라고도 불린다.
송수신하는 프레임 속 MAC 주소가 호스트에 속할 VLAN을 결정하는 방식이다.
댓글남기기