iBetter Books
수정

네트워크란 무엇인가

지금 이 글을 읽는 순간에도 여러분의 기기는 수많은 데이터를 주고받고 있습니다. 메시지를 보내고, 영상을 받아오고, 어딘가의 서버에 '나 아직 여기 있어요'라고 신호를 보냅니다. 이 모든 일은 네트워크 위에서 일어납니다. 그렇다면 네트워크란 정확히 무엇일까요.

네트워크는 한마디로 둘 이상의 컴퓨터가 데이터를 주고받을 수 있도록 연결된 것입니다. 책상 위 노트북과 프린터가 케이블로 연결되어 있다면 그것도 작은 네트워크입니다. 집 안의 모든 기기가 공유기에 매달려 있다면 그것은 조금 더 큰 네트워크입니다. 그리고 이 집들이, 회사들이, 나라들이 전부 이어진 거대한 네트워크의 네트워크가 바로 인터넷입니다.

통신에는 세 가지가 필요하다

사람이 대화하려면 말할 사람, 들을 사람, 그리고 말이 오가는 공기가 필요합니다. 컴퓨터 통신도 똑같습니다. 데이터를 보내는 쪽(송신자), 받는 쪽(수신자), 그리고 데이터가 지나갈 길(전송 매체)이 있어야 합니다.

여기에 한 가지가 더 필요합니다. 바로 약속입니다. 한국어를 모르는 사람에게 한국어로 말하면 소리는 전달되지만 뜻은 전해지지 않습니다. 컴퓨터도 마찬가지여서, 보내는 쪽과 받는 쪽이 '이 신호는 이런 뜻이다'라는 약속을 미리 공유해야 합니다. 이 약속을 프로토콜이라고 부릅니다. 이 책의 절반은 사실 이 프로토콜들에 관한 이야기입니다.

왜 데이터를 직접 보내지 않을까

순진하게 생각하면, 내 컴퓨터에서 상대 컴퓨터까지 선을 하나 쭉 이어서 데이터를 그대로 흘려보내면 될 것 같습니다. 실제로 아주 초기의 통신은 그렇게 했습니다. 하지만 전 세계 수십억 대의 기기를 모두 일대일 선으로 잇는 것은 불가능합니다. 선의 개수가 기기 수의 제곱에 가깝게 폭발하기 때문입니다.

그래서 현대의 네트워크는 길을 공유합니다. 여러 통신이 같은 선과 같은 중계 장비를 나누어 씁니다. 마치 도로 하나를 수많은 자동차가 함께 쓰는 것과 같습니다. 길을 공유하면 효율은 좋아지지만, 대신 '누구의 데이터를 먼저 보낼지', '길이 막히면 어떻게 할지', '내 데이터가 엉뚱한 곳으로 가지 않게 하려면 어떻게 할지' 같은 새로운 문제들이 생깁니다. 이 문제들을 풀어 온 역사가 곧 네트워크 기술의 역사입니다.

이어지는 절에서는 이 '길을 공유하는 방식'이 구체적으로 어떻게 발전해 왔는지, 회선 교환과 패킷 교환이라는 두 갈래를 따라가 보겠습니다.