어떻게 층층이 나눠 일하기, 네트워크의 층
편지를 부친다고 하자. 글은 편지지에 쓰고, 편지지는 봉투에 넣고, 봉투에는 주소를 적은 뒤 우편 바구니에 담는다. 한 사람이 모든 일을 한꺼번에 하지 않고 단계가 나뉘어 있는 것이다. 네트워크도 이렇게 일을 층으로 나눠서 해요.
왜 층으로 나눌까
앞에서 보았듯 내 메시지는 여러 역을 거쳐 전해진다. 그런데 한 번 전하는 데에도 할 일이 꽤 많다.
내용을 담아야 하고, 빠지거나 순서가 뒤바뀌지 않게 챙겨야 하고, 어디로 보낼지 주소를 붙여야 하고, 그것을 실제 신호로 바꿔야 해요.
이 모든 일을 한 덩어리로 처리하려 들면 너무 복잡해서 엉키기 쉽다.
왼쪽 한 덩어리를 누르면 할 일이 한데 뒤엉키고, 오른쪽을 누르면 내용 · 정확함 · 주소 · 신호가 층으로 나뉘어 또렷해져요.
한 덩어리로 묶인 일은 손대기가 겁난다. 하나를 고치면 엉뚱한 곳이 함께 흔들리기 때문이다.
층으로 나눠 두면 각 층은 자기 일만 맡는다. 주소를 붙이는 층은 내용이 무엇인지 몰라도 되고, 신호로 바꾸는 층은 주소를 몰라도 돼요.
그래서 한 층을 고쳐도 다른 층은 멀쩡하다. 이것이 층으로 나누는 첫째 이유다.
겹겹이 감싼다
보낼 때는 메시지를 겹겹이 감싼다. 먼저 편지지에 내용을 쓰고, 그 편지지를 속봉투에 넣는다. 속봉투는 다시 겉봉투에 넣고 겉봉투에 주소를 적는다.
마지막으로 그것을 우편 바구니에 담는데, 이 바구니가 0과 1로 된 실제 신호에 해당해요.
안쪽 내용은 그대로 두고 바깥에 한 겹씩 덧씌우는 것이다. 이렇게 감싸는 일을 캡슐화라고 부른다.
버튼을 누를 때마다 한 겹씩 감싼다. 편지지 → 속봉투 → 겉봉투 → 우편 바구니 순서로 다 감싸면 캡슐화가 끝나요.
다 감싸고 나면 바깥에서는 우편 바구니만 보인다. 바깥 신호는 안에 어떤 내용이 들었는지 알 필요가 없고, 그저 0과 1을 실어 나르면 된다.
반대로 편지지는 주소가 무엇인지 신경 쓰지 않아요. 겹마다 자기 몫만 챙기는 것이다.
각 층은 자기 일만 한다
네 겹은 맡은 일이 저마다 다르다. 편지지는 무엇을 말할지, 곧 내용을 맡는다. 속봉투는 빠진 곳 없이 순서대로 다 왔는지, 곧 정확함을 맡는다.
겉봉투는 어디로 보낼지, 곧 주소를 맡고, 우편 바구니는 0과 1을 실제 선과 전파에 싣는 신호를 맡아요.
실제 인터넷에서는 이 네 층을 보통 응용 계층, 전송 계층, 인터넷 계층, 링크 계층이라고 부른다.
층을 하나씩 누르면 그 층이 맡은 일만 또렷이 켜진다. 내용 · 정확함 · 주소 · 신호, 네 가지 일이 네 층에 하나씩 나뉘어 있어요.
재미있는 점은 한 층이 옆 층의 속사정을 몰라도 된다는 것이다. 주소 층은 내용이 인사말인지 사진인지 알 필요가 없고, 신호 층은 위에 적힌 주소가 무엇인지 신경 쓰지 않는다.
저마다 자기 칸만 잘 지키면 전체가 척척 돌아가요. 그렇다면 받는 쪽은 이 겹들을 어떻게 풀까?
받으면 거꾸로 벗긴다
도착한 쪽에서는 감쌌던 순서와 반대로 푼다. 맨 먼저 우편 바구니에서 꺼내 0과 1을 다시 봉투 묶음으로 모은다.
다음에는 겉봉투를 벗긴다. 주소는 이미 제 몫을 했으니 떼어 낸다. 이어서 속봉투를 벗기며 빠진 곳 없이 잘 왔는지 확인해요.
마지막으로 편지지를 펼치면 보낸 사람의 메시지가 그대로 나온다.
버튼을 누를 때마다 바깥부터 한 겹씩 벗긴다. 우편 바구니 → 겉봉투 → 속봉투 → 편지지 순서로 벗기면 메시지가 도착해요.
겹을 다 벗기니 처음에 쓴 메시지가 그대로 남아 있다. 보낸 쪽이 감싼 순서를 받는 쪽이 정확히 거꾸로 풀었기 때문이다.
그래서 안쪽 내용은 오는 길 내내 건드려지지 않아요. 같은 층끼리는 같은 약속을 따르고, 이 약속을 프로토콜이라고 부른다. 이 약속 덕분에 만든 회사가 다른 기계끼리도 말이 통한다.
정리
한 줄로 모으면 이렇다. 네트워크는 모든 일을 한꺼번에 하지 않고 층으로 나눠, 각 층이 자기 일만 한다.
보낼 때는 편지지부터 우편 바구니까지 겹겹이 감싸는데, 이것이 캡슐화다. 받을 때는 반대로 바깥부터 한 겹씩 벗겨 메시지에 닿는다.
층마다 같은 약속을 지키니 복잡한 일도 단순하고 튼튼하게 돌아가요.
버튼을 누를 때마다 핵심이 하나씩 나타난다. (층으로 나눔 → 보낼 때 감쌈(캡슐화) → 각 층은 제 일만 → 받을 때 거꾸로 벗김) 네 가지가 다 나오면 정리가 끝나요.
이제 메시지를 층으로 나눠 감싸고 벗기는 방법을 알았다. 겉봉투의 주소를 맡는 층이 바로 앞에서 본 숫자 주소를 쓰는 곳이다.
그렇다면 겉봉투를 받아 든 역은 갈림길에서 다음 역을 어떻게 고를까? 다음 레슨에서는 길을 고르는 일, 라우팅을 다뤄요.