02-1 이더넷
주로 LAN, 그중에서도 유선 LAN 구축을 위한 물리 계층과 데이터 링크 계층 관련 개념들을 학습한다. 이번 파트에서는 물리 계층과 데이터 링크 계층을 구성하는 가장 대중적인 기술인 이더넷에 대해 학습한다. 물리 계층과 데이터 링크 계층은 서로 밀접하게 연관되어 있는데, 두 계층 모두 이더넷이라는 공통된 기술이 사용되기 때문이다.
이더넷(Ethernet)은 현대 LAN, 특히 유선 LAN 환경에서 가장 대중적으로 사용되는 기술이다. 예를 들어서 두 대의 컴퓨터가 있다고 가정하자. 이 컴퓨터끼리 정보를 주고받으려면 가장 먼저 케이블과 같은 통신 매체가 필요하다. 그리고 그 통신 매체를 통해 정보를 송수신하는 방법이 정해져 있어야 한다. 이더넷은 다양한 통신 매체의 규격들과 송수신되는 프레임의 형태, 프레임을 주고받는 방법 등이 정의된 네트워크 기술이다.
이더넷 표준
오늘날의 유선 LAN 환경은 대부분 이더넷을 기반으로 구성된다. 따라서 물리 계층에서는 이더넷 규격 케이블을 사용했을 것이고, 데이터 링크 계층에서 주고받는 프레임은 이더넷 프레임의 형식을 따를 것이다. 현재 이더넷은 국제적으로 표준화가 이루어졌다. 이더넷이 처음 세상에 등장한 이후 전기전자공학자협회(IEEE, Institute of Electrical and Electronics Engineers)라는 국제 조직은 이더넷 관련 기술을 IEEE 802.3이라는 이름으로 표준화했다. IEEE 802.3이란 이더넷 관련한 다양한 표준들의 모음을 의미한다고 생각해도 좋다. 서로 다른 컴퓨터가 각기 다른 제조사의 네트워크 장비를 사용하더라도 동일한 형식의 프레임을 주고받고 약속한 듯 통일된 형태로 작동하는 것은 통신 매체를 비롯한 네트워크 장비들이 이더넷 표준을 준수하고 있기 때문이다.
허브, 스위치, NIC, 케이블 등 물리 계층과 데이터 링크 계층의 다양한 장비에 대해 학습한다. 오늘날 이 모든 네트워크 장비들은 특정 이더넷 표준을 이해하고, 따른다고 봐도 무방하다. 실제로 이번 장에서 다룰 네트워크 장비들을 검색해 보면, "특정 이더넷 표준을 지원한다", "특정 이더넷 표준과 호환된다"라는 문구를 어렵지 않게 찾아볼 수 있다.
IEEE 802.3은 다양한 이더넷 표준들의 모음을 뜻하기도 하지만, 이더넷 표준화 작업을 위한 IEEE의 전문가 단체, 이른바 이더넷 작업 그룹(Ethernet Working Group)의 이름이기도 하다. IEEE 802.3 공식 홈페이지에 방문해 보면 오늘날에도 새로운 표준이 개발되고 있는 것을 볼 수 있다.
IEEE 802.3의 다양한 표준들은 802.3u 혹은 802.3ab 처럼 숫자 802.3 뒤에 버전을 나타내는 알파벳으로 표현한다. 많은 표준들이 있지만 모두 암기할 필요가 없다. 핵심은 이더넷 표준에 따라 지원되는 네트워크 장비, 통신 매체의 종류와 전송 속도 등이 달라질 수 있다는 점이다.
통신 매체 표기 형태
보통 이더넷 표준 규격에 따라 구현된 통신 매체를 지칭할 때는 통신 매체의 속도와 특성을 한눈에 파악하기 쉽도록 다음과 같은 형태로 표기한다.
전송속도BASE-추가특성
1. 전송 속도
전송 속도(Data Rate)부터 살펴보자. 숫자만 표기되어 있으면 Mbps 속도, 속도 뒤에 G가 붙은 경우 Gbps 속도를 의미한다. 예를 들어 100Base-T 케이블은 100Mbps 속도를 지원하는 케이블, 10GBASE-T는 10Gbps 속도를 지원하는 케이블이다.
전송 속도 표기 | 의미 |
10 | 10Mbps |
100 | 100Mbps |
1000 | 1000Mbps(1Gbps) |
2.5G | 2.5Gbps |
5G | 5Gbps |
10G | 10Gbps |
100G | 100Gbps |
2. BASE
BASE는 베이스밴드(BASEband)의 약자로, 변조 타입(Modulation Type)을 의미한다. 여기서 변조 타입이란 비트 신호로 변환된 데이터를 통신 매체로 전송하는 방법을 의미한다. 일반적인 LAN 환경에서는 특별한 경우가 아니라면 대부분 디지털 신호를 송수신하는 베이스밴드 방식을 사용하므로 대부분의 이더넷 통신 매체는 BASE를 사용한다고 기억해도 좋다.
BASE 외에 BROAD로 표기하는 브로드밴드(BROADband), PASS로 표기하는 패스밴드(PASSband)도 있다.
3. 추가 특성
추가 특성(Additional Distinction)에는 통신 매체의 특성을 명시한다. 10BASE-2, 10BASE-5와 같이 전송 가능한 최대 거리가 명시되기도 하고, 데이터가 비트 신호로 변환되는 방식을 의미하는 물리 계층 인코딩 방식이 명시되기도 하며, 비트 신호를 옮길 수 있는 전송로의 수를 의미하는 레인 수가 명시되기도 한다. 모두 암기할 필요가 전혀 없고, 통신 매체의 종류만 더 집중해서 학습하면 된다.
1000BASE-CX // 물리 계층에서의 인코딩 방식: X
1000BASE-TX
1000BASE-SX
100GBASE-LR4 // 비트를 전송할 전송(레인) 수: 4
100GBASE-SR4
통신 매체의 종류
가장 대표적인 통신 매체의 종류 예시이다. 추가 특성에 C, T, S, L이라는 글자가 있다. 이는 각각 동축 케이블(C), 트위스티드 페어 케이블(T), 단파장 빛을 활용하는 광섬유 케이블(S), 장파장 빛을 활용하는 광섬유 케이블(L)을 의미한다. 지금은 트위스티드 페어 케이블은 구리 선을 이용하는 케이블, 광섬유 케이블은 빛을 이용하는 케이블의 일종이라고 생각하면 된다.
추가 특성 표기(통신 매체의 종류) | 케이블의 종류 |
C | 동축 케이블 |
T | 트위스티드 페어 케이블 |
S | 단파장 광섬유 케이블 |
L | 장파장 광섬유 케이블 |
지금까지 학습한 통신 매체 표기 형식의 예이다. 통신 매체의 전송 속도와 종류를 중심으로 의미를 파악해보자.
- 10BASE-T 케이블: 10Mbps 속도를 지원하는 트위스티드 페어 케이블
- 100BASE-SX 케이블: 100Mbps 속도를 지원하는 단파장 광섬유 케이블
- 100BASE-LX 케이블: 100Mbps 속도를 지원하는 장파장 광섬유 케이블
다음 표는 이더넷 표준과 이를 기반으로 하는 통신 매체 일부 예시이다. 이더넷 표준 이름만 볼 때 보다 "전송속도BASE-추가특성"형태의 표기를 볼 때 어떤 종류의 통신 매체인지, 전송 속도는 어느 정도인지 짐작하기가 더욱 수월하다. 이더넷 표준과 통신 매체의 표기가 항상 일대일로 대응되는 것은 아니라는 점에 유의하자.
표준 규격 | 통신 매체 |
IEEE802.3i | 10BASE-T |
IEEE802.3u | 100BASE-TX |
IEEE802.3ab | 1000BASE-T |
IEEE802.3bz | 2.5GBASE-T, 5GBASE-T |
IEEE802.3an | 10GBASE-T |
IEEE802.3z | 1000BASE-SX, 1000BASE-LX |
IEEE802.3ae | 10GBASE-SR, 10GBASE-LR |
이더넷의 발전
이더넷은 지금도 발전하는 중이다. 규격별로 지원하는 속도도 점차 빨라지고 있다. 100Mbps 가량의 속도를 지원하는 표준들을 통틀어 고속 이더넷(Fast Ethernet)이라고 부른다. 최근에는 1Gbps 가량의 속도를 내는 이더넷 표준을 기가비트 이더넷(Gigabit Ethernet), 10Gbps 가량의 속도를 내는 이더넷 표준은 10기가비트 이더넷(10 Gigabit Ethernet)이라 통칭한다. 요컨데, 10BASE-T는 초기 이더넷, 100BASE-TX는 고속 이더넷, 1000BASE-T는 기가비트 이더넷, 10GBASE-T는 10기가비트 이더넷의 대표적인 규격인 셈이다.
이더넷 프레임
지금까지는 물리 계층과 관련된 이더넷 표준과 통신 매체에 대해 학습했다. 이번에는 데이터 링크 계층의 이더넷 프레임에 대해 학습한다. 현대 유선 LAN 환경은 대부분 이더넷을 기반으로 구성되므로 호스트가 데이터 링크 계층에서 주고받는 프레임인 이더넷 프레임(Ethernet Frame) 형식은 정해져 있다.
이더넷 프레임은 상위 계층으로부터 받아들인 정보에 헤더와 트레일러를 추가하는 캡슐화 과정을 통해 생성된다. 수신지 입장에서는 프레임의 헤더와 트레일러를 제거한 뒤 상위 계층으로 올려보내는 역캡슐화 과정을 거친다. 이더넷 프레임 헤더는 기본적으로 프리엠블, 수신지 MAC 주소, 송신지 MAC 주소, 타입/길이로 구성되고, 페이로드는 데이터, 트레일러는 FCS로 구성된다.
따라서 이더넷 네트워크에서 통신하는 컴퓨터들은 헤더(프리엠블, 수신지 MAC 주소, 송신지 MAC 주소, 타입/길이), 페이로드(데이터), 트레일러(FCS) 정보를 주고 받는 셈이다.
프리엠블
프리엠블(Preamble)은 이더넷 프레임의 시작을 알리는 8바이트 크기의 정보이다. 프리엠블의 첫 7바이트는 10101010 값을 가지고, 마지막 1바이트는 10101011 값을 가진다. 마지막 1바이트는 그림의 SFD(Starting Frame Delimiter)에 해당한다. 수신지는 이 프리엠블을 통해 이더넷 프레임이 오고 있음을 알아차린다. 즉, 프리엠블은 송수신지 간의 동기화를 위해 사용되는 정보이다.
수신지 MAC 주소와 송신지 MAC 주소
이더넷 프레임에서 가장 중요한 부분이다. "물리적 주소"라고도 불리는 MAC 주소는 데이터 링크 계층의 핵심이다. MAC 주소는 네트워크 인터페이스마다 부여되는 6바이트 길이의 주소로, LAN 내의 수신지와 송신지를 특정할 수 있다.
같은 네트워크 내에서 동일한 MAC 주소를 가진 기기들이 있다면 송신지와 수신지를 특정할 수 없기에 곤란하다. 그래서 MAC 주소는 일반적을 고유하고, 일반적으로 변경되지 않는 주소로써 네트워크 인터페이스마다 부여된다. 보통 NIC(Network Interface Controller)라는 장치가 네트워크 인터페이스 역할을 담당한다. 즉, 한 컴퓨터에 NIC가 여러 개 있다면 MAC 주소도 여러 개 있을 수 있다.
"일반적으로 고유한 주소", "일반적으로 변경되지 않는다"라며 정리한 이유가 있다. MAC 주소와 관련된 대표적인 오해 중 하나가 바로 MAC 주소는 "반드시 고유하고 변경이 불가능하다"라는 것이다. 사실 MAC 주소의 변경이 가능한 경우도 많으며, 따라서 고유하지 않을 수도 있다. 다만, 동일 네트워크 내에서 동작하는 기기의 MAC 주소가 우연히 같을 확률은 낮고, 같게 만드는 상황도 흔하지 않다. 따라서 MAC 주소는 "일반적으로 고유하고, 변경되지 않는 주소" 정도로 이해하면 적절하다.
윈도우 운영체제에서 명령 프롬프트(CMD)로 MAC 주소를 확인하는 명령은 getmac /v
혹은 ipconfig /all
을 입력하면 된다. MAC 주소는 총 48비트, 16진수 열두 자리로 구성된 것을 확인할 수 있다.
타입/길이
타입/길이 필드에는 타입(Type) 혹은 길이(Length)가 올 수 있다. 필드에 명시된 크기가 1500(16진수 05DC)이하일 경우 이 필드는 프레임의 크기(길이)를 나타내는 데 사용되고, 1536(16진수 0600) 이상일 경우에는 타입을 나타내는 데 사용된다.
타입이란 이더넷 프레임이 "어떤 정보를 캡슐화했는지"를 나타내는 정보이다. 이더타입(Ethertype)이라고도 부른다. 대표적으로 상위 계층에서 사용된 프로토콜의 이름이 명시된다. 가령 어떤 프레임이 IPv4 프로토콜이 캡슐화된 정보를 운반한다면 타입에는 16진수 0800이, 어떤 프레임이 ARP 프로토콜이 캡슐화된 정보를 운반한다면 타입에는 16진수 0806이 명시될 것이다.
타입 | 프로토콜 |
0800 | IPv4 |
86DD | IPv6 |
0806 | ARP |
이더넷 프레임 타입은 이외에도 종류가 많다. 그리고 전부 외울 필요가 전혀 없다.
데이터
데이터는 상위 계층에서 전달받거나 상위 계층으로 전달해야 할 내용이다. 네트워크 계층의 데이터와 헤더를 합친 PDU가 이곳에 포함된다. 최대 크기는 1500바이트로, 유의할 점은 일정 크기(46바이트 이상)여야 한다. 그 이하의 데이터라면 크기를 맞추기 위해 패딩(Padding)이라는 정보가 내부에 채워진다. 패딩에는 보통 46바이트 이상이 될 때까지 0으로 채워진다.
FCS
FCS(Frame Check Sequence)는 수신한 이더넷 프레임에 오류가 있는지 확인하기 위한 필드이다. 데이터 링크 계층에서 오류 검출이 이루어지기도 한다고 했는데, 바로 여기서 오류 검출이 이루어진다. FCS 필드에는 순환 중복 검사(CRC: Cyclic Redundancy Check)라고 불리는 오류 검출용 값이 들어간다.
송신지 프리엠블을 제외한 나머지 필드 값들을 바탕으로 CRC 값을 계산한 후, 이 값을 FCS 필드에 명시한다. 그리고 수신지는 수신한 프레임에서 프리엠블과 FCS 필드를 제외한 나머지 필드들을 바탕으로 CRC 값을 계산한 후, 이 값을 FCS 필드 값과 비교한다. 이때 비교 값이 일치하지 않으면 프레임에 오류가 있다고 판단하여 해당 프레임을 폐기한다.
토큰 링
이더넷 이외에도 다른 LAN 기술이 있다. 대표적으로 토큰 링(Token Ring) 방식이 있다. 토큰 링 네트워크에서는 호스트들이 링(고리) 형태로 연결된다. 호스트들끼리 돌아가며 토큰이라는 특별한 정보를 주고 받는데, 네트워크 내 다른 호스트에게 메시지를 송신하려면 반드시 이 토큰을 갖고 있어야 한다.
아래 그림에서 현재 토큰이 A에게 있으므로 지금은 A만 메시지 전송이 가능하다. C 혹은 D는 메시지를 송신하고 싶어도 송신할 수 없다. A는 메시지 전송이 끝나면 다음 컴퓨터(가령 B)에게 토큰을 넘겨준다. 만약 B가 송신할 메시지가 없다면 다음 컴퓨터(가령 C)에게 토큰을 그대로 넘겨준다. C가 송신하고자 하는 메시지가 있다면 이제 비로소 송신이 가능하다.
02-2 NIC와 케이블
물리 계층과 데이터 링크 계층에서의 통신 매체와 관련된 장비인 NIC와 여러 케이블에 대해 학습한다.
NIC(Network INterface Controller)는 호스트와 통신 매체를 연결하고, MAC 주소가 부여되는 네트워크 장비이다. 케이블(Cable)은 NIC에 연결되는 물리 계층의 유선 통신 매체이다. 케이블의 종류는 다양하지만, 오늘날 유선 네트워크에서 사용하는 대표적인 케이블은 크게 두 종류가 있다. 트위스티드 페어 케이블, 또 하나는 광섬유 케이블이다.
NIC
통신 매체에는 전기, 빛 다양한 신호가 흐를 수 있다. 호스트가 이를 제대로 이해하려면 통신 매체를 통해 전달되는 신호와 컴퓨터가 이해할 수 있는 정보 간에 변환이 이루어져야 한다. 이때 호스트와 유무선 통신 매체를 연결하고 이러한 변환을 담당하는 네트워크 장비가 NIC이다. NIC를 "호스트를 네트워크(LAN)에 연결하기 위한 하드웨어"라고 표현하기도 한다.
NIC는 네트워크 인터페이스 카드, 네트워크 어댑터, LAN 카드, 네트워크 카드, 이더넷 카드(이더넷 네트워크의 경우) 등 다양한 명칭으로 불린다. 요즘에는 NIC의 형태도 다양하다. USB로 연결하는 NIC도 있고, 마더보드에 내장된 NIC도 있다. 만약 추가 장치를 연결하지 않고도 네트워크에 연결되는 컴퓨터를 사용하고 있다면 높은 확률로 마더보드에 내장된 NIC를 사용 중일 것이다.
NIC의 역할
NIC는 통신 매체에 흐르는 신호를 호스트가 이해하는 프레임으로 변환하거나 반대로 호스트가 이해하는 프레임을 통신 매체에 흐르는 신호로 변환한다. 따라서 네트워크를 통해 송수신하는 정보는 NIC를 거치게 된다. 이처럼 NIC는 네트워크와의 연결점을 담당한다는 점에서 네트워크 인터페이스(Network Interface) 역할을 수행하는 네트워크 장비이다.
NIC는 MAC 주소를 통해 자기 주소는 물론, 수신되는 프레임의 수신지 주소를 인식한다. 그래서 어떤 프레임이 자신에게 도달했을 때 자신과는 관련 없는 수신지MAC 주소가 명시된 프레임이라면 폐기할 수 있고, FCS 필드를 토대로 오류를 검출해 잘못된 프레임을 폐기할 수도 있다.
트위스티드 페어 케이블
가장 대중적인 케이블인 트위스티드 페어 케이블(Twisted Pair Cable)은 구리 선으로 전기 신호를 주고받는 통신 매체이다. LAN 케이블이라고 하면 가장 먼저 떠오를만큼 대중적인 케이블 중 하나이다. 주로 활용되는 커넥터를 RJ-45라고 부른다.
광섬유 케이블
광섬유 케이블(Fiber Optic Cable)은 빛(광신호)을 이용해 정보를 주고받는 케이블이다. 빛을 이용하여 전송하기에 전기 신호를 이용하는 케이블에 비해 속도도 빠르고, 먼 거리까지 전송이 가능하다. 노이즈로부터 간섭받는 영향도 적다. 이러한 이유로 광섬유 케이블은 대륙 간 네트워크 연결에도 사용된다.
02-3 허브
대표적인 네트워크 장비로 물리 계층에는 허브가 있고, 데이터 링크 계층에는 스위치가 있다. 이번 파트에서는 먼저 물리 계층에서 여러 대의 호스트를 연결하는 허브의 특징을 살펴보고, 이와 관련해 허브의 동작 방식인 반이중 모드 통신에 대해 알아본다. 아울러 이와 반대되는 개념인 전이중 모드 통신도 함께 학습할 예정이다. 또한 허브에서 발생되는 충돌이라는 문제와 이를 해결하기 위한 프토콜인 CSMA/CD도 학습할 것이다.
- 데이터 링크 계층: NIC, 스위치(전이중 통신, VLAN)
- 물리 계층: 트위스티드 페어 케이블, 광섬유 케이블, 허브(반이중 통신, CSMA/CD)
주소 개념이 없는 물리 계층
물리 계층에서 중요한 사실을 반드시 기억해야 하는데, 물리 계층에는 주소 개념이 없다는 점이다. 송수신지를 특정할 수 있는 주소는 데이터 링크 계층에서부터 존재하는 개념이다. 물리 계층에서는 단지 호스트와 매체 간의 연결과 통신 매체상의 송수신이 이루어질 뿐이다. 그렇기에 물리 계층의 네트워크 장비는 송수신되는 정보에 대한 어떠한 조작(송수신 내용 변경)이나 판단을 하지 않는다.
반면 데이터 링크 계층에는 주소 개념이 있다. MAC 주소이다. 따라서 데이터 링크 계층의 장비나 그 이상 계층의 장비들은 송수신지를 특정할 수 있고, 주소를 바탕으로 송수신되는 정보에 대한 조작과 판단을 할 수 있다. 이 주소 개념 유무의 차이점은 단순해 보여도 물리 계층과 데이터 링크 계층의 장비와 기술, 특징을 이해하는 데 중요한 기반으로 꼭 기억해야 한다.
허브
물리 계층의 허브(Hub)는 여러 대의 호스트를 연결하는 장치이다. 리피터 허브(Repeater Hub)라고 부르기도 하고, 이더넷 네트워크의 허브는 이더넷 허브(Ethernet Hub)라고도 부른다. 허브는 포트(Port)를 통하여 호스트와 연결된 통신 매체를 연결할 수 있다.
사실, 허브는 오늘날 인터넷 환경에서 잘 사용되지 않는다. 그러나 허브를 배워야 하는 큰 이유는 허브가 가진 두 가지 특징 때문이다. 이 특징은 중요한 네트워크 개념을 내포하고 있으며, 곧 허브의 한계와도 직결되므로 잘 학습해야 한다.
첫째, 전달받은 신호를 다른 모든 포트로 그대로 다시 내보낸다.
허브는 물리 계층에 속하는 장비이다. 물리 계층에서는 주소 개념이 없기에 허브는 수신지를 특정할 수 없다. 따라서 신호를 전달받으면 어떠한 조작이나 판단을 하지 않고 송신지를 제외한 모든 포트에 그저 내보내기만 한다. 허브를 통해 이 신호를 전달받은 모든 호스트는 데이터 링크 계층에서 패킷의 MAC 주소를 확인하고 자신과 관련 없는 주소는 폐기한다.
둘째, 반이중 모드로 통신한다.
반이중(Half Duplex) 모드는 마치 1차선 도로처럼 송수신을 번갈아 가면서 하는 통신 방식이다. 예를 들어 호스트 A가 B에게 메시지를 송신할 때 호스트 B는 A에게 송신할 수 없다. 반대의 경우도 마찬가지이다. 즉, 동시에 송수신이 불가능하다.
반대로 전이중(Full Duplex) 모드는 송수신을 동시에 양방향으로 할 수 있는 통신 방식이다. 마치 2차선 도로와 같다.
리피터
허브 이외에 물리 계층의 대표적인 장비로 리피티(Repeater)라는 장비도 있다. 매우 먼 거리의 호스트와 통신하기 위해 매우 긴 트위스티드 페어 케이블로 연결되어 있다고 가정하자. 이 경우 트위스티드 페어 케이블에 흐르는 전기 신호는 전송 거리가 길어질수록 감소하거나 왜곡될 수 있다.
리피터는 이렇듯 전기 신호가 감소하거나 왜곡되는 것을 방지하기 위해 전기 신호를 증폭시켜주는 장치이다. 리피터는 물리 계층의 장비이므로 신호에 대한 어떠한 판단이나 조작을 하지 않고, 그저 신호만 증폭 시키기만 한다. 허브는 이러한 리피터의 기능을 포함하는 경우가 많다.
콜리전 도메인
허브는 반이중 통신을 지원한다고 했다. 그런데 만일 동시에 허브에다가 신호를 송신하면 어떻게 될까? 충돌(Collision, 콜리전)이 발생한다. 허브의 포트에 호스트가 많이 연결되어 있을수록 충돌 발생 가능성이 높다. 불시에 다른 호스트가 허브로 신호를 송신할 수 있기 때문이다. 이렇게 충돌이 발생할 수 있는 영역을 콜리전 도메인(Collision Domain)이라고 한다. 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속한다.
콜리전 도메인은 작으면 작을수록 충돌이 발생할 가능성이 줄어들기 때문에 좋다. 허브의 넓은 콜리전 도메인으로 인한 충돌 문제를 해결하려면 CSMA/CD 프로토콜을 사용하거나 스위치 장비를 사용해야 한다.
정리하자면 다음과 같다. 허브는 여러 대의 호스트를 연결할 수 있는 물리 계층의 장비이다. 전달받은 신호를 송신지 포트를 제외한 모든 포트로 내보내고, 반이중 모드로 통신한다. 허브에 연결된 모든 호스트는 하나의 콜리전 도메인에 속하는데, 콜리전 도메인의 범위가 클수록 충돌이 발생할 가능성이 높아진다.
CSMA/CD
허브에서 충돌이 발생하는 근본적인 이유는 허브가 반이중 모드로 통신하기 때문이다. 예를 들어 같은 허브에 연결된 A와 B가 동시에 허브에 신호를 송신하면 신호 충돌이 발생한다. 이러한 충돌 문제를 해결하기 위한 프로토콜이 CSMA/CD이다. CSMA/CD는 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜이다. (반이중) 이더넷을 대표하는 송수신 방법이라고 볼 수 있다.
CSMA/CD는 여러 호스트가 공유하는 통신 매체(Media)에 접근(Access)할 때 사용 가능한 제어(Control) 방식이라는 점에서 매체 접근 제어(MAC: Media Access Control) 방법의 일종이라고도 부른다. CSMA/CD는 Carrier Sense Multiple Access with Collision Detection의 약자이다. 두 글자씩 나눠서 학습하면 이해하기 쉬울 것이다.
첫째, CS: Carrier Sense, 캐리어 감지를 의미한다.
CSMA/CD 프로토콜을 사용하는 반이중 이더넷 네트워크에서는 메시지를 보내기 전에 현재 네트워크상에서 전송 중인 것이 있는지를 먼저 확인한다. 현재 통신 매체의 사용 가능 여부를 검사하는 것이다. 이를 캐리어 감지(Carrier Sense)라고 한다.
둘째, MA: Multiple Access, 다중 접근을 의미한다.
때로는 캐리어 감지를 해도 두 개 이상의 호스트가 부득이하게 동시에 네트워크를 사용하려할 때가 있다. 복수의 호스트가 네트워크에 접근하려는 상황을 다중 접근(Multiple Access)이라고 한다.
셋째, CD:Collision Detection, 충돌 검출을 의미한다.
충돌이 발생하면 이를 검출하는데, 이를 충돌 검출(Collision Detection)이라고 한다. 충돌을 감지하면 전송이 중단되고, 충돌을 검출한 호스트는 다른 이들에게 충돌이 발생했음을 알리고자 잼 신호(Jam Signal)라는 특별한 신호를 보낸다. 그리고 임의의 시간 동안 기다린 뒤에 다시 전송한다.
정리하자면, 반이중 이더넷 네트워크에서 CSMA/CD 프로토콜을 사용하면 다음과 같이 진행된다. 호스트들은 메시지를 전송하기 전에, 먼저 현재 전송이 가능한 상태인지를 확인한다. 다른 호스트가 전송 중이지 않을 때 메시지를 전송한다. 만일 부득이하게 다수의 호스트가 접근하여 충돌이 발생하면 임의의 시간만큼 대기한 후에 다시 전송한다.
02-4 스위치
물리 계층에서 허브의 충돌 문제를 해결하기 위해 CSMA/CD를 통해 충돌 문제를 어느 정도 완화할 수는 있지만, 사실 이보다 더 근본적인 해결 방법이 있다. 전달받은 신호를 수신지 호스트가 연결된 포트로만 내보내고, 전이중 모드로 통신하면 된다. 그러면 포트별로 콜리전 도메인이 나누어지기에 충돌 위험이 감소한다. CSMA/CD를 이용할 필요도 없어진다. 이러한 기능을 지원하는 네트워크 장비가 바로 데이터 링크 계층의 스위치이다.
스위치가 전달받은 신호를 원하는 포트로만 내보낼 수 있는 것은 스위치가 MAC 주소를 학습할 수 있기 때문이다. 스위치를 이용하면 논리적으로 LAN을 분리하는 가상의 LAN, VLAN을 구성할 수 있다는 장점도 있다.
스위치
스위치(Switch)는 데이러 링크 계층의 네트워크 장비이다. 2계층에서 사용한다 하여 L2 스위치(L2 Switch)라고도 부른다. 스위치의 여러 포트에는 호스트를 연결할 수 있는데, 이런 점은 허브와 유사하다. 다만 스위치는 허브와 달리 MAC 주소를 학습해 특정 MAC 주소를 가진 호스트에게만 프레임을 전달할 수 있고, 전이중 모드로 통신을 지원한다. 따라서 스위치를 이용하면 포트별로 콜리전 도메인이 나뉘고, 전이중 모드로 통신하므로 CSMA/CD 프로토콜이 필요하지 않다.
당연히 CMSA/CD 프로토콜의 대기 시간이 없어지면 성능상으로도 이점이 있다. 이러한 장점 덕에 스위치는 오늘날까지도 이더넷 네트워크 구성 시 자주 사용된다.
스위치의 특징
스위치의 가장 중요한 특징은 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소와의 관계를 기억한다는 점이다. 이를 통해 원하는 호스트에만 프레임을 전달할 수 있다. 스위치의 이러한 기능을 MAC 주소 학습(MAC Address Learning)이라고 부른다.
스위치는 MAC 주소 학습을 위해 포트와 연결된 호스트의 MAC 주소 간의 연관 관계를 메모리에 표 형태로 기억한다. 스위치의 포트와 연결된 호스트의 MAC 주소 연관 관계를 나타내는 정보를 MAC 주소 테이블(MAC Address Table)이라고 부른다.
MAC 주소 학습
MAC 주소 테이블은 스위치의 세 가지 기능을 통해 채워지고 유지된다. 그리고 원하는 수신지가 연결된 포트에만 프레임을 내보낼 수 있다. 바로 플러딩, 포워딩과 필터링, 에이징 기능이다. 각 기능과 동작 원리는 생략한다.
브리지
데이터 링크 계층의 스위치와 유사한 장비로 브리지(Bridge)라는 장비도 있다. 브리지는 영어로 "다리"라는 뜻이다. 그 이름에 걸맞게 브리지는 네트워크 영역을 구획하여 콜리전 도메인을 나누거나 네트워크를 확장하는 용도로 사용된다. 브리지는 앞서 설명한 스위치의 기능들도 제공한다. MAC 주소를 학습할 수 있고, 특정 호스트가 연결되어 있는 포트로 프레임을 포워딩하거나 필터링할 수 있다.
다만, 단일 장비로서의 브리지는 비교적 최근에 대중화된 스위치에 비해 사용 빈도가 줄어드는 추세이다. 브리지를 이용한 네트워크 구축 및 확장은 스위치를 통해서도 얼마든지 가능하고, 최근 스위치의 기능은 일반적으로 브리지의 기능을 포괄할 뿐만 아니라 더 다양하며, 프레임의 처리 성능 면에서도 우수하기 때문이다.
VLAN
스위치의 또 다른 중요한 기능으로 VLAN(Virtual LAN)이 있다. 이름 그대로 한 대의 스위치로 가상의 LAN을 만드는 방법이다. 허브는 송신지 포트를 제외한 모든 포트로 신호를 내보내기에 네트워크상에 불필요한 트래픽이 늘어날 수 밖에 없고, 이는 성능 저하로 이어진다.
스위치를 이용해도 마찬가지이다. 스위치에 연결된 호스트 중에서도 서로 메시지를 주고받을 일이 적거나 브로드캐스트 메시지를 받을 필요가 없어서 굳이 같은 네트워크(LAN)에 속할 필요가 없는 호스트가 있을 수도 있다. 그렇다고 이들을 분리하고자 매번 새로운 스위치 장비를 구비하는 것은 정말 낭비이다. 이때 구성하는 것이 VLAN이다.
VLAN을 구성하면 한 대의 물리적 스위치라 해도 여러 대의 스위치가 있는 것처럼 논리적인 단위로 LAN을 구획할 수 있다. 호스트의 물리적 위치와 관계없이 논리적인 LAN을 구성할 수 있는 것이다. 예를 들어 VLAN을 구성한다고 가정하자. VLAN1에 속한 호스트 A, B, C, D가 있고, 다른 VLAN2에 속한 호스트 E, F, G, H, I가 있다. VLAN1과 VLAN2는 한 개의 물리적 스위치에 포함되지만, 논리적으로 전혀 관계없이 다른 LAN에 있는 것처럼 인식한다.
만약 VLAN1에 속한 호스트가 VLAN2에 속한 호스트와 통신하고자 한다면 데이터 링크 계층의 장비가 아니라 네트워크 계층 이상의 상위 계층 장비가 필요하다. 한편으로 브로드캐스트 도메인도 달라진다. 가령 한 VLAN에 속한 호스트가 브로드캐스트를 하게 되면 VLAN에 속한 호스트에게까지는 전달되지 않는다. 서로 다른 네트워크로 간주하기 때문이다.
포트 기반 VLAN
VLAN을 구성하는 방법에서 가장 단순하지만 대중적인 방식으로는 포트 기반 VLAN이 있다. 포트 기반 VLAN(Port Based VLAN)은 한마디로 "스위치의 포트가 VLAN을 결정하는 방식"이다. 사전에 특정 포트에 VLAN을 할당하고, 해당 포트에 호스트를 연결함으로써 VLAN에 포함시킬 수 있다.
사실 한 대의 스위치로 포트 기반 VLAN을 나누면 문제가 있다. 포트 수가 부족해질 수도 있기 때문이다. VLAN1 호스트 4개, VLAN2 호스트 3개, VLAN3 호스트 3개를 포트가 8개인 하나의 스위치에 연결하기는 어렵다. VLAN 스위치 여러 대를 구비해 같은 VLAN 포트끼리 연결하여 VLAN을 확장하는 방법도 있지만 이 또한 포트의 낭비이다.
이럴 때 사용할 수 있는 방법이 바로 VLAN 트렁킹이다. VLAN 트렁킹(VLAN Trunking)은 두 대 이상의 VLAN 스위치를 효율적으로 연결하여 확장하는 방법이다. 스위치 간의 통신을 위한 특별한 포트인 트렁크 포트(Trunk Port)에 VLAN 스위치를 서로 연결하는 방식이다.
트렁크 포트는 태그 포트(Tagged Port)라고도 부른다. 그리고 트렁크 포트가 아닌 하나의 VLAN이 할당된 일반적인 포트는 액세스 포트(Access Port)라고 한다.
다음 그림을 보면, 트렁크 포트를 통해 두 개의 스위치가 연결된 것을 볼 수 있다. 낭비되는 포트를 최소화하는 동시에, 같은 스위치에 연결되어 있지 않아도 같은 LAN에 속하게 네트워크를 구성할 수 있다.
트렁크 포트로 전달받은 프레임이 어떤 VLAN에 속하는지 파악하는 방법
프레임이 스위치 A에서 트렁크 포트를 타고 스위치 B로 넘어왔다고 가정하자. 그럼 스위치 B는 트렁크 포트로 전달받은 프레임이 어떤 VLAN에 속하는지 어떻게 알 수 있을까? 스위치가 아직 학습되지 않은 MAC 주소를 포함하고 있을 경우 일반적인 이더넷 프레임만으로는 알 수 없다.
그래서 이러한 경우에는 어떤 VLAN에 속하는지 식별하기 위한 정보까지 추가된 확장된 이더넷 프레임을 사용한다. 이를 802.1Q 프레임이라고 한다. 이더넷 프레임 사이에 32비트 크기의 VLAN 태그라는 정보가 추가된다. 이곳에 VLAN을 식별하는 정보가 포함된다. 스위치 B는 이 정보를 보고 해당 프레임이 어떤 VLAN에 속한 프레임인지 알 수 있다. 802.Q1 프레임은 트렁크 포트를 통과하여 VLAN을 식별할 수 있는 프레임인 셈이다.
MAC 기반 VLAN
포트 기반 VLAN 이외에도 사전에 설정된 MAC 주소에 따라 VLAN이 결정되는 MAC 기반 VLAN(MAC Based VLAN)도 있다. 이는 포트가 VLAN을 결정하는 것이 아니라 송수신하는 프레임 속 MAC 주소가 호스트가 속할 VLAN을 결정하는 방식이다.
예를 들어 호스트 A의 MAC 주소가 VLAN3에 할당되었다면, 어떤 포트에 연결되든 호스트 A는 VLAN3에 속한 호스트로 동작한다.
'컴퓨터공학 > 네트워크' 카테고리의 다른 글
혼자 공부하는 네트워크: Chapter 03: 네트워크 계층 (2) | 2024.10.09 |
---|---|
혼자 공부하는 네트워크: Chapter 01: 컴퓨터 네트워크 시작하기 (2) | 2024.09.25 |