Post

물리 계층과 데이터 링크 계층

이번 포스트는 ‘혼자 공부하는 네트워크‘라는 책을 통해 통신이 이루어지는 근원적인 지점인 물리 계층과 데이터 링크 계층에 대해 알아보기 위한 목적을 갖고 있다.

우선, 이런 좋은 책을 만들어주신 강민철 님에게 감사하다는 것을 전하고 시작하도록 하겠다. 강민철 님은 어려운 내용들을 쉽게 설명해내는 능력이 매우 띄어난 저자로, 같은 설명을 하시더라도 IT 초심자가 보아도 이해되게끔 풀어주셔서 머리 속에 더 잘 남게해주신다. 개발 관련해서 처음 배우는 학문이나 여러 번 공부했는데 머리 속에 박혀있지 못한 것이 있다면 강민철 님의 책이나 강의를 추천한다.

그럼 시작해보자.

1. 이더넷

물리 계층과 데이터 링크 계층은 서로 밀접하게 연관되어 있다. 현대에서 두 계층에 이더넷이라는 기술이 공통으로 사용되기 때문이다.

이더넷$^{Ethernet}$은 현대 LAN, 특히 유선 LAN 환경에서 가장 대중적으로 사용되는 기술이다. 두 대의 PC가 정보를 주고 받으려면 일단 케이블같은 통신 매체가 필요하다. 그리고 통신 매체를 통해 정보를 송수신하는 방법이 정해져 있어야 한다. 바로 이더넷이 그 방법이다.

이더넷은 다양한 통신 매체의 규격들과 송수신되는 프레임의 형태, 프레임을 주고받는 방법 등의 정의된 네트워크 기술이다.

1.1 이더넷 표준

오늘날의 유선 LAN 환경은 대부분 이더넷을 기반으로 구성된다. 만약 우리가 유선 LAN 환경을 구축했다면 십중팔구 물리 계층에 이더넷 규격 케이블이 사용되었을 거고, 데이터 링크 계층에서 주고받는 프레임은 이더넷 프레임의 형식을 따를 것이다.

현재 이더넷은 국제적으로 표준화가 이루어졌다. 이더넷이 처음 세상에 등장한 이후 전기전자공학자협회$^{Institute\ of\ Electrical\ and\ Electronics\ Engineers}$라는 국제 조직은 이더넷 관련 기술을 IEEE 802.3이라는 이름으로 표준화 했다. IEEE 802.3 는 이더넷 관련 다양한 표준들의 모음을 의미한다고 생각해도 좋다. 서로 다른 컴퓨터가 각기 다른 제조사의 네트워크 장비를 사용해도 동일한 형식의 프레임을 주고받고 약속한 듯 통일된 형태로 작동할 수 있는 것은 네트워크 장비(통신 매체 포함)들이 이더넷 표준을 따르기 때문이다.

이더넷은 지속해서 발전하고 있고 새로운 이더넷 표준들이 계속해서 만들어지고 있다. 802.3u 혹은 802.3ab 처럼 뒤에 버전을 나타내는 알파벳으로 표현되며 새로운 표준들이 나오고 있는데, 핵심은 이더넷 표준에 따라 지원되는 네트워크 장비, 통신 매체의 종류와 전송 속도 등이 달라질 수 있다는 점이다.

1.2 통신 매체 표기 형태

통신 매체를 지칭할 때 이더넷 표준 규격에 따라 표기하기도 하지만, 그렇지 않는게 일반적이다.

보통 이더넷 표준 규격에 따라 구현된 통신 매체를 지칭할 때 통신 매체의 속도와 특성을 한눈에 파악하기 쉽게 표기한다. 그러한 속도와 특성이 표기되는 방식을 살펴보자.

1.2.1 전송 속도

숫자만 있으면 Mbps 속도, 숫자 뒤에 G가 붙는 경우엔 Gbps를 의미한다. 예를 들어 100Base-T 케이블은 100Mbps 속도를 지원하는 케이블이고 10GBASE-T는 10Gbps 속도를 지원하는 케이블이다.

1.2.2 BASE

BASE는 베이스밴드$^{BASEband}$의 약자로, 변조 타입$^{modulation\ type}$을 의미한다. 여기서 변조 타입이란 비트 신호로 변환된 데이터를 통신 매체로 전송하는 방법을 의미한다. 일반적인 LAN 환경에서 특별한 경우가 아니라면 대부분 디지털 신호를 송수신하는 베이스밴드 방식을 사용하기 때문에 대부분의 이더넷 통신 매체는 BASE를 사용한다고 생각해도 좋다.

1.2.3 추가 특성

추가 특성$^{additional\ distinction}$ 에는 통신 매체의 특성을 명시한다. 이곳에 명시할 수 있는 특성의 종류는 다양하다. 10BASE-2, 10BASE-5와 같이 전송 가능한 최대 거리가 명시되기도 하고, 데이터가 비트 신호로 변환되는 방식을 의미하는 물리 계층 인코딩 방식이 명시되기도 하며, 비트 신호를 옮길 수 있는 전송로의 수를 의미하는 레인 수가 명시되기도 한다.

다만 처음 이더넷을 학습하는 개발자 입장에서 추가 특성의 종류보단 통신 매체의 종류에 주목해야 한다.

1.3 통신 매체 종류

추가 특성에 C, T, S, L이라는 글자가 있다면 각각 동축 케이블(C), 트위스티드 페어 케이블(T), 단파장 빛을 활용하는 광섬유 케이블(S), 장파장 빛을 활용하는 광섬유 케이블(L)을 의미한다.

1.4 이더넷 프레임

이제 데이터 링크 계층의 이더넷 프레임을 살펴보자.

이더넷 프레임은 캡슐화 과정을 통해 만들어진다. 수신지 입장에서는 역캡슐화 과정을 거친다.

이더넷 프레임 헤더는 기본적으로 프리앰블, 수신지 MAC 주소, 송신지 MAC 주소, 타입/길이로 구성되고, 페이로드는 데이터, 트레일러는 FCS로 구성된다.

1.4.1 프리앰블

프리앰블$^{preamble}$은 이더넷 프레임의 시작을 알리는 8바이트(64비트) 크기의 정보다. 프리앰블의 첫 7바이트는 10101010 값을 가지고, 마지막 바이트는 10101011 값을 가진다. 수신지는 이 프리앰블을 통해 이더넷 프레임이 오고 있음을 알아차린다. 즉, 프리앰블은 송수신지 간의 동기화를 위해 사용되는 정보다.

1.4.2 수신지 MAC 주소와 송신지 MAC 주소

이더넷 프레임에서 가장 중요한 부분으로 ‘물리적 주소’라고도 할 수 있는 이것들은 데이터 링크 계층의 핵심이다. MAC 주소는 네트워크 인터페이그마다 부여되는 6바이트(48비트) 길이의 주소로, LAN 내의 수신지와 송신지를 특정할 수 있다.

MAC 주소는 일반적으로 고유하고, 변경되지 않는 주소로써 네트워크 인터페이스마다 부여된다. 보통 NIC$^{Network\ Interface\ Controller}$라는 장치가 네트워크 인터페이스 역할을 담당한다. 즉, 한 컴퓨터에 NIC가 여러 개 있다면 MAC 주소도 여러 개 있을 수 있다.

MAC 주소와 관련된 대표적인 오해로 ‘MAC 주소는 반드시 고유하고 변경이 불가능하다’라는 것이 있다. 사실 MAC 주소는 변경이 가능한 경우도 많고, 고유하지 않을 수도 있다. 다만, 동일한 네트워크 내에서 동작하는 기기의 MAC 주소가 우연히 같을 확률은 낮고, 같게 만드는 상황도 흔하지 않다.

1.4.3 타입/길이

필드에 명시된 크기가 1500(16진수 05DC) 이하일 경우 이 필드는 프레임의 크기(길이)를 나타내는 데 사용되고, 1536(16진수 0600) 이상일 경우에는 타입을 나타내는 데 사용된다.

타입이란 이더넷 프레임이 ‘어떤 정보를 캡슐화했는지’를 나타내는 정보다. 이더타입이라고도 부른다. 대표적으로 상위 계층에서 사용된 프로토콜의 이름이 명시된다. 가령 어떤 프레임이 IPv4 프로토콜이 캡슐화된 정보를 운반하나면 타입에는 16진수 0800이, 어떤 프레임이 ARP 프로토콜이 캡슐화된 정보를 운반한다면 타입에는 16진수 0806이 명시될 것이다.

1.4.4 데이터

데이터는 상위 계층에서 전달받거나 상위 계층으로 전달해야 할 내용이다. 네트워크 계층의 데이터와 헤더를 합친 PDU가 이곳에 포함된다. 최대 크기는 1500 바이트로, 유의할 점은 반드시 일정 크기(46바이트 이상)여야 한다는 점이다. 그 이하의 데이터라면 크기를 맞추기 위해 패딩이라는 정보를 내부에 채워야 한다.

1.4.5 FCS

FCS$^{Frame\ Check\ Sequence}$는 수신한 이더넷 프레임에 오류가 있는지 확인하기 위한 필드이다. 데이터 링크 계층에서 오류 검출이 이루어지기도 하는데 바로 여기서 이루어진다.

이 필드에는 CRC$^{Cycle\ Redundancy\ Check}$, 즉 순환 중복 검사라고 불리는 오류 검출용 값이 들어간다.

송신지는 프리앰블을 제외한 나머지 필드 값들을 바탕으로 CRC 값을 계산한 후, 이 값을 FCS 필드에 명시한다. 그리고 수신지는 수신한 프레임에서 프리앰블과 FCS 필드를 제외한 나머지 필드 값들을 바탕으로 CRC 값을 계산한 뒤, 이 값을 FCS 필드 값과 비교한다. 이때 비교 값이 일치하지 않으면 프레임에 오류가 있다고 판단해 해당 프레임을 폐기한다.

2. NIC와 케이블

NIC$^{Network\ Interface\ Controller}$는 호스트와 통신 매체를 연결하고, MAC 주소가 부여되는 네트워크 장비다. 케이블$^{cable}$은 NIC에 연결되는 물리 계층의 유선 통신 매체다. 케이블의 종류는 다양하지만 오늘날 유선 네트워크에서 사용되는 대표적인 케이블은 두가지로 트위스트 페어 케이블, 또 하나는 광섬유 케이블이다. 그럼, NIC부터 트위스티드 페어 케이블, 광섬유 케이블 순으로 알아보자.

2.1 NIC

통신 매체에는 전기, 빛 등 다양한 신호가 흐를 수 있다. 호스트가 이를 제대로 이해하려면 통신 매체를 통해 전달되는 신호를 컴퓨터가 이해할 수 있는 정보로 변환해야 한다. 이 때 호스트와 유무선 통신 매체를 연결하고 변환을 담당하는 네트워크 장비가 NIC이다.

호스트는 NIC가 있어야 네트워크에 참여할 수 있다. 이런 점에서 NIC를 ‘호스트를 네트워크(LAN)에 연결하기 위한 하드웨어’라고 표현하기도 한다.

2.1.1 NIC의 생김새

NIC는 네트워크 인터페이스 카드, 네트워크 어댑터, LAN 카드, 네트워크 카드, 이더넷 카드(이더넷 네트워크의 경우) 등 다양한 명칭으로 불린다.

초기에는 확장 카드 형태로 따로 연결해서 사용하는 형태를 띄었지만 요즘은 USB로 연결하는 NIC도 있고, 마더보드에 내장된 NIC도 있다.

2.1.2 NIC의 역할

NIC는 통신 매체에 흐르는 신호를 호스트가 이해하는 프레임으로 변환하거나 반대로 호스트가 이해하는 프레임을 통신 매체에 흐르는 신호로 변환하는 역할을 담당한다. 따라서 호스트가 네트워크를 통해 송수신하는 정보는 NIC를 거치게 된다. 그래서 NIC는 네트워크와의 연결점을 담당한다는 뜻에서 네트워크 인터페이스 역할을 수행한다고도 한다.

NIC는 MAC 주소를 통해 자기 주소는 물론, 수신되는 프레임의 수신지 주소를 인식한다. 그래서 어떤 프레임이 자신에게 도달했을 때 자신과 관련이 없으면 폐기할 수 있고, FCS 필드를 참고해서 오류를 검출해 잘못된 프레임을 폐기할 수 있다.

2.2 트위스티드 페어 케이블

통신 매체로 연결된 두 호스트의 데이터 처리 능력이 아무리 뛰어나도, 통신 매체가 그런 속도를 따라잡지 못하면 아무 효용이 없다. 그래서 통신 매체에 대한 이해는 중요하다.

트위스티드 페어 케이블은 구리 선으로 전기 신호를 주고받는 통신 매체다. LAN 케이블이라고 하면 가장 먼저 떠오를 만큼 대중적인 케이블 중 하나다.

2.2.1 생김새

트위스티드 페어 케이블은 케이블 본체와 케이블의 연결부인 커넥터로 이루어져 있다.

커넥터는 공유기나 컴퓨터에 연결되는 인터넷 선에서 흔히 볼 수 있는 다리를 눌러 꼳아야 하는 케이블 커넥터로 RJ-45를 주로 활용한다.

본체는 구리선이 두 가닥씩 꼬여 있다. 그런데 본체가 구리선으로 이루어져 있으면 문제가 생긴다. 전기 신호를 주고받다 보면 구리 선에 전자적 간섭이 생길 수 있기 때문이다. 이런 간섭을 노이즈라고 부른다.

트위스티드 페어 케이블은 구리선으로 이루어져 있어서 노이즈에 민갑하다. 그래서 이 케이블 중에선 구리선을 그물 모양의 철사 또는 포일로 감싸 보호하는 경우가 많다. 구리선 주변을 감싸서 노이즈를 감소시키는 방식을 차폐$^{shielding}$라고 하고, 차폐에 사용된 그물 모양의 철사와 포일을 각각 브레이드 실드$^{braided\ shield}$ 혹은 포일 실드$^{foil\ shield}$ 라고 한다.

2.2.2 실드에 따른 분류

브레이드 실드로 감싸 노이즈를 감소시킨 트위스티드 페어 케이블은 STP$^{Shield\ Twisted\ Pair}$ 케이블, 포일 실드로 노이즈를 감소시킨 트위스티드 페어 케이블은 FTP$^{Foil\ Twisted\ Pair}$ 케이블이라고 한다. 반면 아무것도 감싸지 않은 구리 선만 있는 케이블은 UTP$^{Unshielded\ Twisted\ Pair}$ 케이블이라고 부른다. 여기에 더해 더 세분화해서 나누기도 한다.

다음은 케이블 명칭 표기 예시이다. X와 Y에는 U, S, F 를 명시할 수 있다.

1
XX/YTP
  • U : 실드 없음
  • S : 브레이드 실드
  • F : 포일 실드

XX에는 케이블 외부를 감싸는 실드의 종류가 명시된다. 하나이거나 두 개일 수 있다. 그리고 Y에는 꼬인 구리 선 쌍을 감싸는 실드의 종류가 명시된다.

예를 들면 다음과 같다.

  • S/FTP 케이블: 케이블 외부는 브레이드 실드로 보호되고, 꼬인 각 구리 선 쌍은 포일 실드로 감싼 케이블을 의미한다.
  • F/FTP 케이블: 케이블 외부와 각 구리 선 쌍을 모두 포일 실드로 감싼 케이블을 의미한다.
  • SF/FTP 케이블: 케이블 외부는 브레이드 실드와 포일 실드로 감싸고, 각 구리 선 쌍은 포일 실드로 감싼 케이블을 의미한다.
  • U/UTP 케이블: 아무것도 감싸지 않은 케이블을 의미한다.

2.2.3 카테고리에 따른 분류

트위스티드 페어 케이블은 카테고리에 따라서도 분류할 수 있다. 카테고리는 트위스티드 페어 케이블 성능의 등급을 구분하는 역할을 한다. 높은 카테고리에 속한 케이블일수록 높은 성능을 보인다.

카테고리는 영문 표기 Category에서 앞의 세 글자를 딴 Cat이라는 표기로 줄여서 표현하는 경우가 많다.

다음 표는 현재 가장 대표적으로 활용되는 카테고리를 분류한 표다. 카테고리가 높을 수록 송수신을 할 수 있는 데이터의 양은 더 많고, 더 빠른 전송이 가능함을 시사한다.

특징Cat5Cat5eCat6Cat6aCat7Cat8
지원 대역폭100MHz100MHz250MHz500MHz600MHz2GHz
주요 대응 규격100BASE-TX1000BASE-T1000BASE-TX10GBASE-T10GBASE-T40GBASE-T
전송 속도100Mbps1Gbps1Gbps10Gbps10Gbps40Gbps

카테고리는 케이블을 구매할 때 확인해야 할 정보 중 하나다. 케이블 자체에 적혀있는 경우도 많다.

2.3 광섬유 케이블

이 케이블은 빛을 이용해 정보를 주고받기 때문에 전기 신호를 이용하는 케이블에 비해서 속도가 빠르고, 먼 거리까지 전송이 가능하다. 노이즈로부터 간섭받는 영향도 작다. 그래서 광섬유 케이블은 대륙 간 네트워크 연결에도 사용된다.

2.3.1 생김새

이것도 케이블 본체와 커넥터로 이루어져 있다. 다만 광섬유 케이블은 커넥터 종류가 다양하다. 대표적으로 LC 커넥터, SC 커넥터, FC 커넥터, ST 커넥터가 있다.

본체는 머리카락 같은 형태의 광섬유로 구성되어 있다. 광섬유는 빛을 운반하는 매체다.

광섬유 한 가닥의 중심에는 코어가 있다. 코어는 광섬유에서 실질적으로 빛이 흐르는 부분이다. 그리고 코어를 둘러싸는 클래딩$^{cladding}$ 이 있다. 클래딩은 빛이 빛이 코어 안에서만 흐르도록 빛을 가두는 역할을 한다. 코어와 클래딩 간에 빛의 굴절륙 차이를 만들어 빛을 코어 내부에 가두는 원리다.

광섬유 케이블은 코어의 지름에 따라 싱글 모드 광섬유 케이블$^{SMF:\ Single\ Mode\ Fiber}$과 멀티 모드 광섬유 케이블$^{MMF:\ Multi\ Mode\ Fiber}$로 나뉜다. 여기서 싱글 모드와 멀티 모드는 광섬유 케이블의 종류를 구분하는 가장 기본적인 기준이다.

2.3.2 싱글 모드 광섬유 케이블

싱글 모드 광섬유 케이블과 멀티 모드 광섬유 케이블의 주된 차이점은 코어의 지름이다. 싱글 모드 광섬유 케이블은 코어의 지름이 8~10$\mu$m 정도로, 머리카락 평균 두께는 대략 50~150$\mu$m 로 알려져 있다.

코어의 지름이 작다면 빛이 이동할 수 있는 경로가 많지 않다. 다시 말해, 코어의 지름이 작다면 빛의 이동 경로가 하나 이상을 갖기 어렵고, 이를 두고 ‘모드’가 ‘하나’라고 표현한다.

싱글 모드 케이블은 신호 손실이 적기에 장거리 전송에 적합하다. 반면 멀티 모드에 비해 일반적으로 비용이 높다는 단점도 있다.

싱글 모드 케이블은 파장이 긴 장파장의 빛을 사용한다. 대표적인 싱글 모드 광섬유 케이블 규격으로 1000BASE-LX, 10GBASE-LR이 있다. 여기서 L은 장$^{Long}$파장을 의미한다.

2.3.3 멀티 모드 광섬유 케이블

이 케이블은 코어의 지름이 50~62.5$\mu$m 정도로 싱글 모드보다 크다. 그래서 빛이 여러 경로로 이동할 수 있다. 이를 두고 ‘모드가 여러 개’라고 표현한다.

멀티 모드는 싱글 모드보다 전송 싱 신호 손실이 클 수 있기에 장거리 전송에는 부적합하다. 실제로 싱글 모드 케이블은 수십 킬로미터까지 전송이 가능한 데 비해, 멀티 모드 케이블은 일반적으로 수백 미터, 길어야 수 킬로미터 정도만 전송이 가능하다. 그래서 멀티 모드 케이블은 비교적 근거리를 연결하는데 주로 사용된다.

또한 멀티 모드 케이블은 싱글 모드에 비해 단파장의 빛을 사용한다. 대표적인 멀티 모드 케이블 규격으로 1000BASE-SX, 10GBASE-SR이 있다. 여기서 S는 단$^{Short}$파장을 의미한다.

3. 허브

통신 매체를 통해 송수신 되는 메세지가 거쳐갈 수 있는 네트워크 장비로 대표적인 것은 물리 계층의 허브, 데이터 링크 계층의 스위치가 있다.

이번 절에서는 물리 계층에서 여러 대의 호스트를 연결하는 허브의 특징을 살펴보고, 이와 관련된 허브의 동작 방식인 반이중 모드 통신에 대해 알아보자. 아울러 이와 반대되는 개념인 전이중 통신과 허브에서 발생하는 충돌이라는 문제와 이를 해결하기 위한 프로토콜은 CSMA/CD도 알아보자.

3.1 주소 개념이 없는 물리 계층

허브를 알아보기 전, 기억해야할 중요한 사실이 있다. 바로 물리 계층에는 주소 개념이 없다는 점이다. 송수신지를 특정할 수 있는 주소는 데이터 링크 계층부터 존재하는 개념이다. 물리 계층에서는 단지 호스트와 통신 매체 간의 연결과 통신 매체 상의 송시신이 이루어질 뿐이다. 그렇기에 물리 계층의 네트워크 장비는 송수신되는 정보에 대한 어떠한 조작(송수신 내용 변경)이나 판단을 하지 않는다.

반면 데이터 링크 계층에는 주소 개념이 있다. MAC 주소가 여기에 속한다. 따라서 데이터 링크 계층의 장비나 그 이상의 계층의 장비들은 송수신지를 특정할 수 있고, 주소를 바탕으로 송수신되는 정보에 대한 조작과 판단을 할 수 있다. 이 차이점은 두 계층의 장비와 기술, 특징을 이해하는 데 중요한 기반이 된다.

3.2 허브

허브는 리피터 허브라 부르기도 하고, 이더넷 네트워크의 허브는 이더넷 허브라고도 부른다.

허브는 커텍터를 연결할 수 있는 포트가 있는 형태를 갖는다. 포트에 호스트와 연결된 통신 매체를 연결할 수 있다.

3.2.1 특징

허브는 오늘날의 인터넷 환경에서 잘 사용되지 않는다. 그런데도 수많은 서적에서 허브를 설명하는 이유는 허브가 가진 두 가지 특징 때문이다. 이 특징들은 중요한 네트워크 개념을 내포하고 있고, 허브의 한계와도 직결된다.

첫째, 전달받은 신호를 다른 모든 포트로 다시 내보낸다.

허브는 물리 계층에 속하는 장비이고, 물리 계층에서는 주소 개념이 없어 허브는 수신지를 특정할 수 없다. 그래서 신호를 전달받으면 송신지를 제외한 모든 포트에 내보낸다. 허브를 통해 이 신호를 전달받은 모든 호스트는 데이터 링크 계층에서 패킷의 MAC 주소를 확인하고 자신과 관련 없는 주소는 폐기한다.

둘째, 반이중 모드로 통신한다.

반이중$^{half\ duplex}$ 모드는 마치 1차선 도로처럼 송수신을 번갈아 가며 하는 통신 방식이다. 가령 호스트 A가 B에게 메세지를 송신할 때 호스트 B는 A에게 송신할 수 없다. 반대의 경우도 마찬가지.

반대로 전이중$^{full\ duplex}$ 모드는 송수신을 동시에 양방향으로 할 수 있는 통신 방식이다.

3.2.2 콜리전 도메인

허브는 반이중 통신을 지원하는데 동시에 허브에 신호를 송신하면 충돌$^{collision}$(콜리전)이 발생한다.

허브에 호스트가 많이 연결될 수록 충돌 발생 가능성이 높다. 이렇게 충돌이 발생할 수 있는 영역을 콜리전 도메인이라고 한다. 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속한다.

허브의 넓은 콜리전 도메인으로 인한 충돌 문제를 해결하기 위해선 CSMA/CD 프로토콜을 사용하거나 스위치 장비를 사용해야 한다.

3.2.3 CSMA/CD

허브에서 충돌이 발생하는 근본적인 이유는 허브가 반이중 모드로 통신하기 때문이다.

CSMA/CD는 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜이다. Carrier Sense Multiple Access with Collision Detection의 약자이다. 어떤 개념인지 살펴보자.

첫째, CS는 Carrier Sense, 캐리어 감지를 의미한다.

CSMA/CD 프로토콜을 사용하는 반이중 이더넷 네트워크에서는 메세지를 보내기 전에 현재 네트워크 상에서 전송 중인 것이 있는지 먼저 확인한다. 현재 통신 매체의 사용 가능 여부를 검사하는 것이다. 이를 캐리어 감지라고 한다.

둘째, MA는 Multiple Access, 다중 접근을 의미한다.

때로 캐리어 감지를 해도 두 개 이상의 호스트가 동시에 네트워크를 사용하려 할 때가 있다. 이런 상황을 다중 접근이라고 한다.

셋째, CD는 Collision Detection, 충돌 검출을 의미한다.

충돌이 발생하면 이를 검출하는데, 이를 충돌 검출이라고 한다. 충돌을 감지하면 전송이 중단되고, 충돌을 검출한 호스트는 다른 이들에게 충돌이 발생했음을 알리고자 잼 신호$^{jam\ signal}$라는 특별한 신호를 보낸다.

정리해서 CSMA/CD 프로토콜을 사용하면 호스트들은 메세지를 전송하기 전에

  1. 먼저 현재 전송이 가능한 상태인지 확인하고,
  2. 다른 호스트가 전송중이지 않을 때 메세지를 전송한다.
  3. 만일 부득이하게 다수의 호스트가 접근해서 충돌이 발생하면 임의의 시간만큼 대기한 후 다시 전송한다.

4. 스위치

CSMA/CD를 통해 충돌 문제를 어느 정도 완화할 수는 있지만, 더 근본적인 해결 방법이 있다. 전달받은 신호를 수신지 호스트가 연결된 포트로만 내보내고, 전이중 모드로 통신하면 된다. 그러면 포트별로 콜리전 도메인이 나눠지기에 충돌 위험이 감소한다. 이런 기능을 지원하는 네트워크 장비가 바로 데이터 링크 계층의 스위치다.

스위치가 전달받은 신호를 원하는 포트로만 내보낼 수 있는 건 스위치가 MAC 주소를 학습할 수 있기 때문이다. 또, 스위치를 이용하면 논리적으로 LAN을 분리하는 가상의 LAN, VLAN을 구성할 수 있다.

스위치는 2계층에서 사용한다고 해서 L2 스위치라고도 부른다. 스위치의 여러 포트에는 호스트를 연결할 수 있는데, 이런 점은 허브와 유사하다. 다만 스위치는 MAC 주소를 학습해서 특정 MAC 주소를 가진 호스트에만 프레임을 전달할 수 있고, 전이중 모드의 통신을 지원한다.

4.1 특징

스위치의 가장 중요한 특징은 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소와의 관계를 기억한다는 점이다. 이를 이용해 원하는 호스트에만 프레임을 전달할 수 있게 된다. 이런 기능을 MAC 주소 학습이라 부른다.

스위치는 MAC 주소 학습을 위해 포트와 연결된 호스트의 MAC 주소 간의 연관 관계를 메모리에 표 형태로 기억한다. 이걸 MAC 주소 테이블이라고 부른다.

4.2 MAC 주소 학습

MAC 주소 학습은 세 가지 과정을 거쳐 수행된다.

  1. 플러딩
  2. 포워딩과 필터링
  3. 에이징

호스트 1, 2, 3, 4가 있고 각각 포트 1, 2, 3, 4에 연결되어 있다고 해보자. 이 상황에서 호스트 1이 호스트 3으로 프레임을 전송하려 한다고 가정해보자. 스위치는 처음에 호스트 A, B, C, D의 MAC 주소와 연결된 포트의 연관 관계를 알지 못한다.

스위치의 MAC 주소 학습은 프레임 내 ‘송신지 MAC 주소’ 필드를 바탕으로 이루어진다. 스위치가 처음 호스트 1에서 프레임을 송신하면, 프레임 내 ‘송신지 MAC 주소’ 정보를 바탕으로 호스트 1의 MAC 주소와 연결된 포트를 MAC 주소 테이블에 저장한다. 하지만 여전히 수신지 호스트 3이 어느 포트에 연결되어 있는지는 모른다.

이런 상황에서 스위치는 마치 허브처럼 송신지 포트를 제외한 모든 포트로 프레임을 전송한다. 이런 스위치의 동작을 플러딩$^{flooding}$이라 한다.

그렇게 관련 있는 호스트 3 만 프레임을 수신하고, 스위치로 응답 프레임을 전송한다. 이 과정에서 스위치는 호스트 3의 MAC 주소와 연결된 포트를 알아내서 MAC 주소 테이블에 기록한다.

이제 스위치는 두 호스트가 프레임을 주고받을 때는 다른 포트로 프레임을 보낼 필요가 없게 된다.

전달받은 프레임을 어디로 내보내고 내보내지 않을지 결정하는 스위치의 기능을 필터링$^{filtering}$이라고 한다. 그리고 프레임이 전송될 포트에 실제로 프레임을 내보내는 것을 포워딩$^{forwarding}$이라 한다.

만약 MAC 주소 테이블에 등록된 특정 포트에서 일정 시간 동안 프레임을 전송받지 못했다면 해당 항목은 삭제된다. 이를 에이징이라고 한다.

4.3 VLAN

허브는 송신지 포트를 제외한 모든 포트로 신호를 내보내기에 네트워크 상에 불필요한 트래픽이 늘어날 수밖에 없고, 성능이 저하된다.

스위치를 사용하더라도 마찬가지다. 스위치에 연결된 호스트 중에서도 서로 메세지를 주고받을 일이 적거나 브로드캐스트 메세지를 받을 필요가 없어서 굳이 같은 네트워크(LAN)에 속할 필요가 없는 호스트가 있을 수도 있다. 그렇다고 이들을 분리하기 위해 매번 새로운 스위치 장비를 구비하는 것은 낭비다. 이때 구성하는 것이 VLAN이다.

VLAN을 구성하면 한 대의 물리적 스위치로 여러 대의 스위치가 있는 것처럼 논리적인 단위로 LAN을 구획할 수 있다. VLAN을 구성하면 다른 VLAN에 속한 호스트와는 물리적인 거리에 상관없이 다른 LAN에 있는 것처럼 인식한다. 그래서 만약 VLAN1에 속한 호스트가 VLAN2에 속한 호스트와 통신하려고 하면 데이터 링크 계층의 장비가 아니라 네트워크 계층 이상의 상위 계층 장비가 필요하다.

한편으로 브로드캐스트 도메인도 달라진다.

4.3.1 포트 기반 VLAN

가장 단순하고 대중적인 VLAN 구성 방식으로는 포트 기반 VLAN이 있다. 이 방식은 ‘스위치가 포트의 VLAN을 결정하는 방식’이다. 사전에 특정 포트에 VLAN을 할당하고, 해당 포트에 호스트를 연결함으로써 VLAN에 포함시킬 수 있다.

그런데, 한 대의 스위치만으로 포트 기반 VLAN 방식으로 나누면 문제가 있다. 포트 수가 부족해질 수 있다는 건데, VLAN 스위치를 여러 대를 구비해 같은 VLAN 포트끼리 연결해서 VLAN을 확장하는 방법이 있지만 결국 포트가 낭비된다.

이럴 때 사용할 수 있는 방법이 VLAN 트렁킹이다. VLAN 트렁킹$^{VLAN\ Trunking}$은 두 대 이상의 VLAN 스위치를 효율적으로 연결해서 확장하는 방법이다. 스위치 간의 통신을 위한 특별한 트렁크 포트에 VLAN 스위치를 서로 연결하는 방식이다.

트렁크 포트는 태그 포트(tagged port)라고도 부른다. 그리고 트렁크 포트가 아닌 하나의 VLAN이 할당된 일반적인 포트는 액세스 포트(access port)라고 한다.

4.3.2 MAC 기반 VLAN

포트 기반 VLAN 이외에도 사전에 설정된 MAC 주소에 따라 VLAN이 결정되는 MAC 기반 VLAN도 있다. 이는 포트가 VLAN을 결정하는 것이 아니라 송수신하는 프레임 속 MAC 주소가 호스트에 속할 VLAN을 결정하는 방식이다.

참고 서적

This post is licensed under CC BY 4.0 by the author.