요약
IBM의 Token Ring은 이더넷보다 질서 있게 동작했지만, 비싸고 속도 경쟁에서 밀려 사라졌습니다.
블로그 The Silicon Underground를 운영하는 데이비드 파쿼가 1980~90년대에 이더넷과 겨뤘던 Token Ring을 되짚은 글입니다. 그는 Token Ring을 쓰는 회사에서 일했습니다. 지금도 중고 장비가 이더넷과 헷갈릴 만큼 닮아서 알아 둘 만하다고 했습니다.
왜 중요한가
- 기술적으로 깔끔한 방식도 값과 속도에서 밀리면 표준 경쟁에서 진다는 사례입니다.
- 옛 PC 장비를 모으는 사람에게는 이더넷 카드와 Token Ring 카드를 가려내는 지침이 됩니다.
핵심 내용
- 장비를 다 갖추면 이더넷 비용이 3분의 1이었고, 이것이 승패를 가른 가장 큰 이유였습니다.
- 16Mbps Token Ring은 100Mbps 이더넷을 따라가지 못했고, 128Mbps 계획은 기가비트 이더넷보다 늦었습니다.
- 토큰(전송 허가 신호)을 가진 장비만 보내서 충돌이 없었지만, 이더넷이 스위치를 쓰면서 이 장점이 옅어졌습니다.
- 한 링의 카드는 모두 같은 속도여야 해서, 속도를 잘못 맞춘 장비 하나가 망 전체를 멈출 수 있었습니다.
- IBM은 1985년 10월 15일 Token Ring을 발표했고, "IBM을 고르면 잘리지 않는다"는 통념 덕에 몇 년을 버텼습니다.
HN 반응
- 은행·병원·제약회사처럼 IBM을 따르던 곳이 1990년대 말까지 Token Ring을 깔았다가 이더넷으로 바꾸느라 고생했다는 경험담이 이어졌습니다.
- 토큰 방식은 전송 시간을 예측할 수 있어 실시간 시스템에 유리했다는 보충과, 토큰을 잃으면 그 장점도 끝이라는 반론이 함께 나왔습니다.
추억 여행으로 아주 좋네요. 대형 은행들이 토큰링을 산 건 IBM을 사서 잘리는 사람은 없다는 말 때문이었고, 토큰링 케이블의 묵직함과 우주선처럼 투박한 MAU에 비하면 이더넷은 너무 아마추어 같아 보였거든요. 암수 구분 없는 커넥터, 기억나시죠? 제가 아는 어느 은행은 가까이 있는 본사 건물들을 4Mbps 토큰링으로 이었고, 16Mbps로 올릴까 고민하던 중이었습니다. 그때는 그게 이상하게 빨라 보였어요. 그러다 이더넷이 나왔고 486 기반 SCO Unix 서버까지 나오면서, 직원 30명 부서를 PC 단말기로 돌리는 환경을 비교적 쉽고 싼값에 갖출 수 있게 됐습니다. 그때가 좋았죠…
제목의 "WAS"(였나)를 보니 갑자기 나이 든 기분이 드네요. 대학 때 이걸 배우면서, 앞으로 다루게 될 테니 이더넷과 뭐가 다르고 어떻게 동작하는지 알아야 한다고 생각했거든요. 그런데 이제는 그냥 커다란 "WAS"(과거형)가 됐네요.
저는 올해 초에 짧은 컴퓨터 네트워킹 과정을 마쳤는데, 토큰링도 이더넷과 거의 비슷한 비중으로 다뤘습니다. (솔직히 둘 다 자세히 배우진 않았어요. 정말 입문 과정이었으니까요.)
저는 2005년쯤 고등학교에서 CompTIA+ 자격증을 준비하면서 토큰링을 배웠습니다.
하지만 실제로 본 적은 한 번도 없어요. 그때도 이미 완전히 "WAS"(과거형)였죠.
중학교에 있던 i386, i486 컴퓨터들은 이더넷 버스에 물려 있었습니다(교실을 따라 BNC 케이블이 지나가고 네트워크 카드마다 T자 커넥터가 달려 있던 게 기억나요).
제 기억이 맞다면 토큰링은 100Mbit 이상의 속도에서는 현실적으로 쓸모가 없었고, DOS보다 더 빨리 도도새 신세가 됐습니다.
제가 90년대 중반에 컴퓨터공학 학위를 따던 때에 토큰링은 이미 학계의 호기심거리였습니다. 그 무렵 학과 전산망은 이미 트위스트 페어 이더넷으로 갈아탄 상태였죠. 90년대 후반 첫 직장에서는 웹 팜의 백엔드 네트워크에 FDDI를 썼는데, 기가비트가 나오자 그것도 뜯어냈으니 FDDI도 오래가지는 못했습니다.
저희 동네 병원 시스템(Premier Health)은 IBM과 토큰링에 올인했었습니다. 1998년에 새 병원을 지으면서 전부 토큰링으로 배선했을 때 속이 쓰렸던 기억이 나요. 1998년이면 토큰링의 운명은 벽에 쓰여 있다시피 했는데도, 그쪽 IT 부서는 IBM 블루 색으로 피를 흘리는 사람들이었거든요.
2013년으로 건너뛰면, 제 아내가 그 병원들 중 한 곳에서 딸을 낳고 있었는데, 병실에 사용 중인 8P8C(일명 RJ-45) 잭 바로 옆에 안 쓰는 타입 1 토큰링 벽면 잭이 있는 걸 봤습니다.
제가 다니는 회사의 옛 사무실 한 곳에서도 똑같은 플러그를 본 적이 있어요. 오래된 IBM 연결용인가 보다 했는데, 이제야 정체를 정확히 알게 됐네요!
참고로 토큰링 배선 위로 이더넷을 돌릴 수 있게 해 주는 어댑터가 있습니다. IBM은 사무실이 전부 토큰링으로 배선돼 있어서 그런 어댑터가 많았어요.
저한테도 딱 그 용도로 9핀 DB9 커넥터가 달린 D-Link 이더넷 카드가 몇 장 있어요.
저희는 예전에 Doom, Descent, Quake를 할 때 토큰링 방식 네트워크(정확히는 ARCNET)를 정말 좋아했습니다. ARCNET은 설정이 더 귀찮고 케이블도 더 굵었지만, 일단 깔아 놓으면 믿을 수 없을 만큼 안정적이었어요. 그야말로 방탄이었죠.
그에 비해 전통적인 이더넷(동축 케이블과 터미네이터를 떠올려 보세요)은 자주 먹통이 됐고, 케이블 한 군데만 불량이어도 하루를 망치기 일쑤였습니다.
ARCNET은 이론상 속도가 훨씬 느렸지만, 튼튼하고 공정하고 안정적이었고, 클라이언트 하나가 부하를 준다고 해서 전체가 죽어 버리지도 않았습니다.
이더넷이 원래는 전송 매체를 공유하는 방식이었고 충돌이 심각한 한계였다는 걸 잊은 분들이 많을 것 같아요. 스위칭이 나중에 추가되면서 충돌 문제를 대부분 해결했고, 그게 오늘날 우리가 아는 이더넷으로 가는 길을 열었죠.
2008년에 학교 네트워크 일을 하다가 구석 어딘가에서 오래된 허브를 발견했던 기억이 나요. 그때도 흔치 않은 물건이었어요!
저희 컴퓨터공학과에서는 허브가 귀했어요. 정확한 타임스탬프와 함께 트래픽을 쉽게 스니핑할 수 있었거든요.
제가 네트워킹을 처음 배울 때까지는 허브가 아슬아슬하게 아직 쓸모가 있었지만, 그래도 시기가 꽤 늦어서 실제 현장에서 쓰이는 걸 본 적은 없는 것 같아요. 특히 저렴한 스위치에도 포트 미러링이 흔히 들어가게 된 뒤로는 더 그랬죠. 대학원 때 아무도 건드리려 하지 않던 낡은 산업용/과학용 시험 장비 더미가 있었는데, 거기 오래된 Cisco 허브가 쓰였던 것 같긴 하지만 기억이 흐릿합니다.
오래된 Thicknet 네트워크가 쓰이는 건 정말 한 번도 못 봤지만, 토큰링은 비교적 최근에 실제로 쓰이는 걸 본 적이 있어요. 다만 토큰링에 대해서는 예전 CompTIA 교재에서 그런 게 있다고 언급했던 것 말고는 배운 게 없습니다.
저는 그 시절에 손이 닿지 않았거나 아슬아슬하게 너무 오래돼서 접하지 못했던 옛 기술이 실제로 쓰이는 모습을 보는 걸 좋아해요. 알아가는 재미가 정말 크죠. YouTube의 ClabRetro는 제가 "하던 일 다 멈추고 새 영상을 보는" 몇 안 되는 크리에이터입니다.
1999년에는 저도 아직 책상 밑을 기어 다니며 배선하던 때였어요. 어느 담배 회사 영업소에 갔는데, 벽면 플레이트에 토큰링, 이더넷, 애플토크라고 적힌 포트가 있었습니다(RJ11처럼 생겼으니 PhoneNet이었을까요?). 한두 해 뒤에는 버지니아에 있는 그 회사 본사 창고에서 낡은 장비를 폐기하는 일을 했는데, FDDI와 HIPPI 하드웨어를 구경했습니다. 실제로 쓰이는 건 못 봤지만요.
그리고 이전 직장에서는 아주 평범한 사무실에 DEC라고 적힌 벽면 플레이트가 있었는데, 거기 달린 잭이 제가 본 것 중 제일 이상했어요. 눈으로 봐서는 정체를 알 수 없었고, 저는 제가 다 안다고 생각했는데 말이죠. 폭이 1.5인치쯤 되고 위에서 내려오는 스프링식 플라스틱 덮개가 달려 있었어요. 안에는 도체가 두 개쯤밖에 없었고, 일반적인 RJ 계열 핀이 전혀 아니었습니다. Vax 계열이었을 것 같지만, Vax는 80년대 초부터 항상 이더넷이었다고 알고 있고, 그보다 오래된 건 2025년까지 살아남았을 것 같지 않거든요.
제가 대학에 다니던 2003~2007년에는 허브가 꽤 흔했는데, 학교 인프라용은 아니었어요. 방마다 네트워크 포트가 하나뿐이어서 학교가 학생들에게 허브를 빌려줬습니다. 그 용도가 얼마나 오래 갔는지는 모르겠네요. 지금쯤은 리모델링을 거쳐 방마다 네트워크 포트가 여러 개 있을 것 같고(기숙사에는 어차피 무선이 있을 테고요).
그런데도 사람들은 여전히 와이파이를 쓰죠...
제가 처음 접한 네트워크는 문 닫는 회사에서 얻어 온 10base2 장비였어요. 그걸 설치해서 IPX/SPX 네트워크를 돌리고 Doom, Descent, Quake를 하는 것이 네트워킹과의 첫 만남이었습니다. 그때는 방 건너편 컴퓨터끼리 통신하는 모습이 정말 신기했어요. 동축 커넥터를 비틀어 끼우면 딸깍 하는 그 느낌에는 묘한 만족감이 있었죠.
(> 제가 처음 접한 네트워크는 문 닫는 회사에서 얻어 온 10base2 장비였어요.)
저도 완전히 똑같아요! 이웃들(지금도 친구예요)이 폐업한 회사에서 중고 10base2 네트워크 카드와 동축 케이블, T자 커넥터, 터미네이터를 잔뜩 구해 왔거든요.
그래서 그 카드를 PC에 꽂아 LAN을 만들었고, 저희 형제 방에서 이웃집까지 동축 케이블을 이었습니다. 그것도 3층에서요! 길 한복판의 전선을 이용해 길 건너 이웃까지 잇는 것도 생각해 봤지만 현명하지 않다고 판단했어요(십 대였으니 그런 생각도 일단 해 봤던 거죠). 두 집 사이에 구멍을 뚫을 생각도 했는데, 이웃 아버지는 괜찮다며 아주 긴 드릴까지 빌려주셨지만 저희 부모님은 들으려고도 하지 않으셨어요.
게다가 전용 BNC 커넥터 압착 공구가 없었고(어디서 사는지도 몰랐고 돈도 없었습니다), 그래서 평범한 펜치로 BNC 커넥터 달린 동축 케이블을 만드는 데 도가 텄죠.
그렇게 워크래프트 2의 꼬마 오크와 인간들이 집과 집 사이를 동축 케이블을 타고 오갔습니다(1995년쯤이었어요).
톨킨링(반지의 제왕) 네트워크네요
저는 십 대 후반에 Prime 미니컴퓨터를 다뤘습니다. Prime은 1979년에 토큰링 제품인 RingNet을 내놨어요.
재미있는 사실이 있는데, 시스템마다 IN과 OUT 동축 포트가 하나씩 있었고 동축 케이블은 엄지손가락만큼 굵었습니다. 시스템이 죽으면 작은 하드웨어 박스가 단락시켜서 IN과 OUT 동축을 서로 이어 줬어요. 그러면 링은 끊기지 않지만 네트워크의 그 구간이 길어지고, 노드 사이에는 엄격한 거리 제한이 있었습니다. 거리가 너무 멀어지면 링 전체가 끊어졌죠. 동축 케이블이 하나라도 손상되면 그것도 링 끊김으로 이어졌고요. Prime에는 여러 노드에서 돌려 링이 끊긴 곳을 찾는 전용 진단 프로그램이 있었습니다.
토큰 패싱 네트워크는 하드 리얼타임 시스템 분석에서 흥미로운 대상이었습니다. 충돌 감지 대신 결정적(deterministic) 접근 제어를 갖췄기 때문이죠. 덕분에 Rate Monotonic Scheduling 이론을 네트워크 계층까지 확장할 수 있었습니다. 그때의 우선순위 연구(priority ceiling protocol, 다단계 토큰 우선순위 방식)는 오늘날 토큰 버킷 속도 제한에 살아남아 있습니다.
흥미롭게도 CAN 버스는 링 토폴로지가 아니라 버스 토폴로지를 쓰면서 충돌 감지를 통해 결정적 접근 제어를 구현합니다. 저는 CAN으로 안 좋은 경험을 했지만, 근본 설계 때문이라기보다 하드웨어 버그나 드라이버 버그 때문이었다고 생각해요.
CAN의 중재(arbitration)는 지금까지 본 하드웨어 계층의 기술 중 가장 멋진 것 중 하나입니다.
우선순위가 높은 메시지가 박자 하나도 놓치지 않고 충돌을 처리할 수 있다는 걸 처음 알았을 때는 마법 같았어요.
토큰 버스는 버스의 "한 번에 한 사용자" 특성과 링의 "토큰 분실 가능성"을 합쳐 놓은 방식입니다.
IEEE 802.4 토큰 버스 표준은 폐기됐어요.
성능 저하와 단일 장애 지점을 신경 쓰지 않는다면 마스터가 폴링하는 버스는 꽤 흔합니다. 케이블 네트워크가 이런 식으로 동작할 걸요.
토큰을 잃어버리기 전까지는 뭐든 결정적이죠.
재미있는 이야기가 하나 있어요.
90년대 후반에 제가 머크(Merck)에서 인턴이었을 때 네트워크 팀이 토큰링에서 이더넷으로 갈아타는 중이었습니다.
일이 어찌나 많았던지 직원이든 인턴이든 누구나 주말에 나와서 도와 달라고 공개적으로 사람을 모았어요. 결국 수당까지 얹어 주겠다고 했고, 제 인턴 친구 몇 명이 그 제안을 받아들였습니다.
그 시절에는 토큰링 위에서 Novell을 돌리는 게 꽤 인기 있었어요.
간단히 요약하면 이렇습니다.
토큰링은 이더넷의 대안이 되는 네트워킹 방식이었습니다.
이더넷은 노드가 전송하고 싶을 때 그냥 전송하고, 충돌(다른 노드가 동시에 전송하려는 경우)이 나면 물러났다가 재시도합니다.
토큰링은 "전송 허가" 토큰을 노드에서 노드로 원형(링) 순서로 넘겨 충돌을 피했습니다.
제가 알기로 토큰링은 아마추어 무선 넷(ham radio net)과 좀 비슷하게 동작해요.