출판일 :2005년 2월호
지난 호 네트워크 엔지니어에 대한 소개에 이어 이번 호부터는 본격적으로 네트워크의 기본 기술에 대해 소개할 것이다. 그 첫 번째로 현재와 같은 여러 다양한 네트워크 구성을 가능케 한 이더넷에 대해 알아보자. 여러 기술 중에서도 이더넷은 한두 페이지에 소개될 수 없을 만큼 많은 내용을 담고 있다. 최근 인기 기술인 다계층 스위치나 보안 같은 기술의 습득도 중요하지만 네트워크 연결의 기본은 이더넷이라는 점을 잊지 말자.
최성열 | 파이오링크 기술지원팀 팀장
지금은 시간이 많이 흘렀지만 예전에 처음으로 네트워크를 접했을 때의 필자는 컴퓨터에 LAN 카드를 설치하거나 한번에 수십 개씩의 UTP 케이블을 불량(?) 없이 만드는데 능숙한 네트워크 초보였었다.
지금은 네트워크를 조금 안다는 이유로 잡지에 미약하나마 글을 쓰는 자리에 서 있다. 그런데 재미있는 것은 세상을 바꿔 놓은 인터넷의 기초인 '이더넷(Ethernet)'을 누가 만들었는지조차 모르고 수년을 지내왔다는 점이다.
많은 사람들이 인터넷을 이야기하면 1960년대 하와이 섬을 연결하기 위한 'Aloha Network'를, 그리고 1972년에 이들의 속도가 당시로는 경이로운 2.94Mbps(지금과 비교도 안되는 속도이지만)였다는 것을 이야기한다. 하지만 정작 이더넷을 처음 만든 사람에 대해서는 모르는 경우가 많다. 한글을 만든 사람은 세종대왕, 전화기는 벨, 비행기는 라이트형제라고들 하는데, 이더넷을 만든 사람에 대해서는 적어도 알아둬야 할 것 같다.
이더넷은 복사기 등 사무기기로 유명한 제록스라는 회사의 연구원이었던 밥 매트칼프(Bob Metcalfe) 박사가 만들어낸 작품이다.
이더넷의 아버지 로버트 밥 매트칼프(Robert Bob Metcalfe)는 이더넷을 최초로 설계한 사람으로 '이더넷의 아버지'로 불린다. 1946년 뉴욕 브룩클린에서 태어났으며, 1979년에는 네트워크 장비 회사인 3COM을 설립했다. 매트칼프는 개발자나 사업가로서 뿐만이 아니라 PC LAN, 이더넷과 네트워크의 미래에 대한 강의를 진행하는 등 열정이 많은 사람이다.
사실 밥이 설계한 이더넷은 지금처럼 전세계적으로 보급할 목적으로 만들어진 것은 아니었다. 단지 공유된 통신선에서 여러 호스트(컴퓨터, 서버, 프린터 등)를 연결할 목적이었다고 한다. (그림 1)을 자세히 보면 뒤에서 언급하게 될 10Base-2/5 형태를 손으로 그린 것처럼 보인다(BNC 케이블과 LAN 카드, 터미네이터 등을 통해 파악이 가능하다).
제록스의 밥이 설계한 이더넷은 제록스 뿐만이 아니라 DEC, 인텔(Intel)이 공동 개발해 IEEE(www.ieee.org)라는 국제전기전자공학회에서 표준으로 인정받고, 본격적으로 세상 밖으로 나오게 된다. 하지만 여기서 재미있는 사실은 이더넷이 공공연히 지금도 사용되고 있지만, IEEE에서는 이더넷이라는 말은 전혀 사용하지 않고, 이더넷의 동작방식인 CSMA/CD(Carrier Sense Multiple Access/Collision Detect)를 기초로 설명하고 있다(항간에는 이미 업계에서 사용했던 용어이기 때문에 공식학회에서는 사용하지 않았거나, 상업적인 이유 때문에 사용하지 않는다는 설도 있다.)
<Ethernet?>
Ethernet은 'ether(에테르 - 빙, 열, 전자기를 전달하는 가상적 매체)'와 'network'가 합쳐진 용어다. 'network'는 이미 연결된다는 뜻으로 쉽게 생각할 수 있고 'ether'는 뜻 그대로 전달을 하는 매체라는 뜻이다. 다시 말해서 이 두 용어의 합성어인 이더넷은 전달매체의 연결이란 뜻으로, 실제 동작방식과 딱 어울리는 용어라고 할 수 있다.
이더넷의 통신원리는 CSMA/CD
네트워크를 설명하는 자료라면 어디에서든지 등장하는 CSMA/CD라는 논리는 사실 일반 사용자에게는 큰 의미가 없다. CSMA/CD의 동작 원리가 어떻게 되건 간에 내가 데이터를 보내고 싶을 때 제대로만 보낼 수 있다면 상관이 없기 때문이다. 하지만 보내고 싶을 때 전달되지 않거나, 느려진다면 엔지니어는 이에 대한 답을 찾아야만 한다. 사실 어떤 분야에서든지 엔지니어가 기본적인 동작원리를 모르는 상태에서의 문제 해결은 쉽지 않을 것이다.
이더넷의 기본 동작은 (그림 2)처럼 하나의 통신경로에 연결 된다. 그래서 권팀장이 이대리에게 데이터를 보내거나 노과장이 정과장에게 데이터를 보내거나 동일한 통신 경로를 사용한다.
CSMA/CD라는 개념은 바로 이 통신 경로가 하나라는 점에서 출발한다. 통신경로의 또 다른 특징으로는 한번에 한대의 컴퓨터만 데이터를 전송할 수 있고, 만약에 두 대가 동시에 보내게 될 경우 데이터가 깨지는 충돌(Collision) 현상이 발생해 정상적인 통신이 안되는 점이다. 그래서 권팀장 컴퓨터, 노과장 컴퓨터는 모두 데이터를 보내기 전에 제일 먼저 다른 컴퓨터가 이 통신 경로를 사용하고 있는지를 먼저 확인하고 보내게 된다.
CSMA(Carrier Sense Multiple Access)는 '다중 접속시 전송 감시'라는 뜻으로, 연결된 모든 컴퓨터는 데이터를 보내기 위해 다른 컴퓨터가 보내고 있는지를 감시하고 있다는 의미를 지니고 있다. 쉽게 생각해 통신경로에 항상 의사가 사용하는 '청진기'를 대고 있다고 생각하면 된다.
다음으로 CD(Collision Detect)는 '충돌 감지'라고 해서, 이렇게 감시를 하고 보내도록 설계가 돼 있지만 만약에 동시에 같이 보내게 될 경우, 앞에서 말한 것처럼 충돌을 하게 되고, 이 충돌을 알리는 신호가 모든 컴퓨터들에게 전달된다. 이 신호를 잼(Jam)이라고 부른다. 이렇게 잼 신호를 받은 컴퓨터들은 보내는 것을 중단하고 일정 시간 후에 재전송을 시도한다.
다시 보내기를 시도한다고 해서 바로 보내는 것이 아니라, CSMA 논리에 따라 다른 컴퓨터가 사용하고 있는지를 우선 확인하는 것은 두말할 나위가 없다.
이더넷 환경에서 동시에 데이터를 전송하게 될 경우 (그림 3)처럼 ① 데이터 전송(동시) → ② 충돌 → ③ 충돌신호의 과정을 거치게 된다.
< 이더넷의 또 다른 특성 '모두가 평등, 내 것이 아니어도 모두 수신' >
이더넷에 연결돼 있는 모든 컴퓨터들은 한마디로 '모두가 평등하다'. 중요한 서버이든, 일개 컴퓨터이든 간에 이들은 통신 경로를 아무도 사용하지 않고 있다면 언제든지 보낼 수 있는 권리를 평등하게 갖고 있다.
그리고 또 한가지, 이더넷에 연결돼 있는 컴퓨터가 여러 대일때 통신하는 두 대의 컴퓨터 간에 데이터를 주고받더라도 이들은 하나의 통신선 상에 있기 때문에 다른 컴퓨터들도 항상 받게 되고(이더넷의 단점), 이들은 내 것이 아닐 경우 과감히 버려지게 된다.