스위치란?
중요한 네트워크 장비로써 라우터와 쌍벽을 이루는 것이 바로 스위치다. 스위치의 역할은 주로 두 가지다
- PC나 서버 등을 네트워크에 연결시킨다.
- 같은 네트워크 내부의 LAN 포트 사이에서 데이터 전송을 수행한다.
스위치에는 LAN 포트가 여러 개 달려있다. 가정용 스위치에는 대개 8개 정도 달려 있지만, 기업용 스위치 중에는 몇백 개나 되는 LAN 포트를 갖춘 제품도 있다.
컴퓨터를 네트워크에 연결하기 위해선 컴퓨터와 스위치의 LAN 포트를 서로 연결하면 된다. 이 때 스위치가 여러 대의 컴퓨터로부터 LAN 케이블을 모으는 것처럼 보이기 때문에 집선 장치라고 불리기도 한다.
스위치에 연결된 컴퓨터들은 기본적으로 같은 네트워크에 연결되고 스위치를 여러 대 사용하는 경우에도 같은 네트워크로 취급된다.
스위치는 같은 네트워크에 연결된 컴퓨터들의 LAN 포트 사이에서 데이터 전송을 수행한다 이때 스위치가 어느 LAN 포트로 데이터를 전송할지는 판단하기 위해 이용되는 것이 바로 MAC 주소이다.
MAC 주소란?
이더넷은 이더넷 인터페이스 간에 데이터를 전송하므로 데이터를 전송하려면 이더넷 인터페이스를 특정해야만 한다. 이더넷 인터페이스를 특정하기 위해서 MAC 주소가 있다.
MAC 주소는 인터페이스를 특정하기 위한 48비트 주소다, 그 중 24비트는 OUI 그 뒤 24 비트는 시리얼 넘버로 구성된다. OUI는 이더넷 인터페이스를 제조하는 벤더(메이커) 식별 코드다.
시리얼 넘버는 각 벤더가 할당한다. MAC 주소는 이더넷 인터페이스에 미리 할당되어 있어, 기본적으로 변경할 수 없는 주소이므로 '물리 주소'나 '하드웨어 주소'라고 부르는 경우도 있다.
MAC 주소는 유선 LAN의 이더넷과 무선 LAN 외에도 단거리 통신에 사용되는 블루투스와 같은 다양한 데이터 통신에서 활용된다. 네트워크 인터페이스 계층이 보내는 데이터를 프레임(frame) 이라고 부르는데, 이 프레임 안에 송신지와 수신지의 MAC 주소 정보가 들어간다.
● 프리앰블 - Preamble(7bytes)
: 이더넷 MAC 프레임의 첫 번째 필드로서 0과 1을 반복하는 7바이트를 포함하고, 수신 시스템에게 프레임이 도착하는 것을 알려주며, 입력 타이밍에 수신 시스템이 동기화할 수 있도록 만든다. 프리엠블은 실제로 물리층에서 추가됐고, 공식적으로 프레임의 일부분은 아니다.
● 시작 프레임 지시기 - Start of Frame Delimeter (1byte)
: 정상적인 프레임의 시작을 표시(10101011)하는 프레임 동기로, 마지막 두 비트는 11이며 수신자에게 이다음 필드가 목적지 주소임을 알려준다.
● 목적지 주소 - Destination MAC Address(6 bytes)
: 패킷을 수신하는 목적지의 물리(MAC) 주소
● 발신지 주소 - Source MAC Address(6 bytes)
: 패킷 송신자의 물리(MAC) 주소
● 길이 or 종류 - Type or Length(2 bytes)
: 길이 또는 종류로 정의되어 있다. 만약 필드의 값이 1,518보다 작으면 길이필드이고, 뒤에 따라오는 데이터 필드의 길이를 정의한다. 반면에 값이 1,536보다 크면 프레임 안에 캡슐화되어 있는 PDU패킷의 종류를 정의한다.
● 데이터 - Data / Payload(46~1500 bytes)
: 상위 계층의 프로토콜로부터 캡슐화된 데이터가 들어있다. 데이터 필드는 최소 46~1500바이트의 크기를 가지고 있다. 사위 계층의 패킷의 길이가 최소길이(46 byte) 보다 작을 때는 끝에 padding(0)로 채워진다.
● FCS(CRC)(4 bytes)
DA+SA+Length+Data의 영역을 계산하여 에러를 판별한다. 송신 측에서 CRC를 추가하여 보내고, 수신 측은 CRC를 체크하여 에러프레임은 버린다.
※ CRC : Cyclic Redundancy Check는 에러검출 방법 중의 하나로 송신 측의 데이터로부터 다항식에 의해 추출된 결과를 여분의 오류검사필드(FCS:Frame Check Sequence)에 덧붙여 보내면 수신 측에서는 동일한 방법으로 추출한 결과와의 일치성으로 오류검사를 하는 기술이다.
MAC 어드레스의 역할은 데이터를 전달할 목적지를 가리킨다는 점에서 IP 어드레스와 유사하지만, IP 어드레스는 최종 목적지가 한번 설정되면 전송 과정 중에 변경되지 않지만, MAC 어드레스는 전송 과정 중에 통신 경로상에 다음 장비의 어드레스로 교체되는 점이 다르다.
MAC 주소와 IP 주소가 두개나 필요할까?
MAC 주소의 다른 이름은 하드웨어 주소다, 한 마디로 그 기계의 고유번호(그 하드웨어만 가지고 있는 식별 번호)다.
IP 주소는 변동 가능성이 있기 때문에 절대 변하지 않는 그 기계의 고유 주소번호가 필요한데 그게 MAC 주소다.
컴퓨터는 자신의 IP와 MAC 주소는 알아도 내가 통신하고자 하는 상대방의 MAC 주소는 모른다, 우리가 보통 메일로 보내면 a@gmail.com 이런 식으로 도메인 주소로 메일을 발송하게 되는데, 이 도메인 주소는 전송될 때 IP로 바뀌어 통신 요청을 하게 된다.
네트워크단에서 IP주소로 MAC 주소를 알아오는 기능을 하는 프로토콜을 ARP라고 한다. MAC 주소는 직접 연결된 노드들에게 데이터를 전달하는데에 초점이 맞춰져 있다, 매체를 두 장치가 아닌 복수 개의 장치가 공유해서 쓰고 있기 때문에 어떤 한 장치가 프레임 (데이터)를 보내면 이 프레임이 어느 장치에 가는 프레임을 알려면 이 프레임이 도착해야 할 장치의 주소를 들여다 봐야하는데 그게 MAC이다, 데이터링크 계층에서 보내는 프레임에는 수신 장치의 MAC 주소와 이 프레임을 송신하는 MAC 주소가 쓰여져있다.
MAC 주소의 표기
MAC 주소란 'LAN 포트의 주소'를 말한다. MAC 주소는 원칙상 변경할 수 없다.(단, 소프트웨어로 MAC 주소를 변경할 수 있는 LAN 포트도 있다). 그래서 MAC 주소는 '하드웨어 주소', '물리적 주소'라고 불린다. 라우터와 스위치는 LAN 포트 여러 개를 가지고 있는데, 각 LAN 포트마다 MAC 주소가 존재한다.
MAC 주소는 48비트이므로 48개의 '0'과 '1'의 조합으로 이루어져 있다. 그래서 이대로는 알아보기가 매우 어려우므로 MAC 주소를 표기할 때는 8비트씩 끊어서 16진수로 변환한 뒤에, '-(하이픈) 혹은 ':(콜론)'으로 구분 지어 표기한다. 예를 들면 '00-00-CC-12-34-56'과 같다.
보통 0~9 및 A~F의 조합으로 나타낸다. 표기 패턴은 다음과 같이 다양하므로 틀리지 않도록 주의한다.
- 1바이트씩 16진수로 변환하고 '-'로 구분한다. -> 00-00-01-02-03-04
- 1바이트씩 16진수로 변환하고 ':'로 구분한다. -> 00:00:01:02:03:04
- 2바이트씩 16진수로 변환하고 '.'로 구분한다. -> 0000,0102,0304
MAC 주소를 이용하여 제조사 확인법
제조사를 확인하는 방법은 두 가지가 있다.
1) MAC 주소 변환 제공사이트를 이용한 검색
MAC Segment, Vendor, Address 결괏값을 확인할 수 있다.
아래 주소 링크로 들어가셔서 우측 상단 중간에 있는 "MAC SEARCH"를 클릭하시면 위 화면을 볼 수 있다.
2) IEEE에 등록된 List를 검색하여 찾는 방법
IEEE에서는 표준그룹 MAC주소를 무료로 등록 진행해주고 있다. 즉 제조사가 IEEE 홈페이지에 등록하면 검토위원의 승인을 거쳐 IEEE 승인한 MAC 주소로 등록이 된다.
포탈은 아래와 같이 TEXT 형태로 구성되어 있다
MAC 주소 동작
스위치 내부에는 MAC 주소 테이블이 있다.
아래 그림에서는 포트 4의 스위치에 4대의 컴퓨터가 연결되어 있다. 여기서 각각의 MAC 주소를 'A, B, C, D'로 가정하겠다. 스위치는 MAC 주소들이 저장되는 'MAC 주소 테이블'을 가지고 있지만 스위치의 전원이 막 켜진 상태이거나 할 경우, MAC 주소 테이블은 텅 비어있게 된다.
만일 주소테이블에 데이터를 전송하려는 목적지 컴퓨터의 MAC주소가 없을 경우 연결되어 있는 컴퓨터들 모두에게 데이터가 전송되는데 이러한 데이터 전송을 플러딩(Flooding, 홍수)라고 부른다.
'CS > 네트워크' 카테고리의 다른 글
JWT (Json Web Token) (0) | 2024.09.23 |
---|---|
0Auth란? (0) | 2024.09.23 |
스위치 라우터의 차이 (0) | 2024.08.09 |
IPsec의 개념 (0) | 2024.07.30 |
SDN (Software Defined Network) 이란? (0) | 2024.07.17 |