본 글은 Kurose의 "하향식 컴퓨터 네트워킹"을 바탕으로 기술한 것임을 밝힌다. 제목에서 "하향식"이란 OSI 계층 중 물리 계층에서 시작해 애플리케이션 계층으로 향하는 기존의 방식과는 반대로, 애플리케이션 계층에서 시작해 물리 계층으로 설명을 이어나가는 방식을 뜻한다. 이 방식은 생소하고 눈에 잘 보이지 않는 네트워크 바닥의 물리계층에서 네트워크에 대한 따분한 논의를 이어가는 것에서 벗어나, 우리에게 친숙하고 당장 눈으로 볼 수 있는 애플리케이션 계층에서 시작해 흥미를 유발할 수 있다. 본 연재 또한 책의 챕터와 맞추어 애플리케이션 계층에서 시작해 마지막 물리 계층으로 연재를 끝맺을 것이다. 이러한 방식이 네트워크라는 방대한 그물을 이해하기에 도움이 될 것이다.
1. 인터넷이란
인터넷은 우리에게 친숙한 컴퓨터나 손 안의 스마트폰으로 시작하는 수많은 장치들을 연결해주는 거대한 그물망이다. 인터넷 용어로 이 장치들은 '종단 시스템(end system)' 혹은 '호스트(host)'라고 한다. 네트워크는 이 종단 시스템들을 다른 종단 시스템으로 이어주는 역할을 한다. 이 종단 시스템들은 어떤 경로로 목적지를 향할까? '통신 링크(communication link)'와 패킷 스위치(packet switch)'라고 불리는 구성요소가 있다. 통신 링크는 고전적인 구리선에서 광케이블까지 다양한 매체를 통해 데이터를 전송해준다. 이 각각의 링크들은 다양한 전송률로 데이터를 전송해주며, 전송률은 초당 비트 수를 나타내는 'bps(bit per second)' 단위로 표현한다. 패킷 스위치는 일반적으로 '라우터(router)'와 '링크 계층 스위치(link-layer switch)'가 있다. 이 두 형태의 스위치들은 데이터를 최종 목적지 방향으로 이동하도록 도와준다. 그렇다면 이 링크와 패킷 스위치를 통해 어떤 데이터를 보낼까? 일반적으로 데이터는 '세그먼트(segment)'라는 작은 단위로 나누고 여기에 목적지의 주소와 데이터의 정보를 나타내는 '헤더(header)'를 붙인다. 이렇게 가공된 데이터는 패킷(packet)이라고 불린다. 패킷은 지금도 네트워크 상을 이동하며 목적지로 쉼 없이 운반되고 있다.
이상으로 설명한 네트워크의 구성요소들은 화물을 운반하는 트럭에 비유할 수 있다. 링크는 고속도로이며 패킷 스위치는 교차로이다. 고속도로는 도로의 상태와 차선 수에 따라 트럭의 이동속도를 제한한다(전송률). 패킷은 당연히 트럭의 화물에 비유할 수 있으며, 이 화물은 운반하기 용이하게 작게 나누어져 있고(세그먼트) 각 화물들에는 목적지와 구성품이 적힌 스티커가 붙어있다(헤더)
그렇다면 어떻게 한 종단 시스템이 다른 종단 시스템에게 데이터를 보내도록 지시할 수 있을까? 이는 소켓 인터페이스(socket interface)가 수행하는 역할이다. 인터넷 소켓 인터페이스는 데이터를 보내고자 하는 송신 프로그램이 따라야 하는 규칙의 집합이다. 화물에 붙은 송장 스티커는 일정한 양식에 따라 적혀있어야 할 것이다. 이 규칙은 수많은 구성요소가 각자의 역할을 하고 있는 네트워크 시스템에서 가장 중요한 개념이다.
2. 프로토콜
네트워크의 구성요소를 논함에 있어 '프로토콜(protocol)'을 빼먹을 수 없을 것이다. 실제로 본 책에서 대부분의 내용이 프로토콜의 역할과 구성을 다루고 있다. 프로토콜이란 네트워크에서 사용되는 약속된 대화 양식이다. 우리는 일정한 질문에 맞는 특정한 대답이 있다.(여보세요?->네 000입니다) 이 양식을 벗어나는 대화는 상대방을 당황하게 만들고 정상적인 대화는 중단된다.(여보세요?->저는 당신의 여보가 아닙니다) 이 특정한 질문과 대답을 정한 협약이 프로토콜이다. 네트워크 상에서 연결된 두 개체는 프로토콜이 제어하는 흐름에 따라 데이터를 주고받을 수 있다. 본 책에서 프로토콜을 이렇게 정의하고 있다.
"프로토콜은 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라,
메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다."
3. 네트워크의 가장자리
네트워크의 가장자리에는 위에서 기술했듯이 종단시스템(혹은 호스트)이 존재한다. 이 호스트는 '서버(server)'와 '클라이언트(client)'로 구분된다. 대부분이 알고 있듯이 클라이언트는 우리가 일상적으로 사용하는 PC나 스마트폰일 수 있고 서버는 강력한 기능을 갖춘 거대한 컴퓨터이다. 이 호스트가 데이터를 목적지로 보내기 위해서는 우선 라우터를 통해야만 한다. 종단 시스템을 네트워크의 시작으로 안내하는 유형은 크게 DSL(digital subscriber line), 케이블 인터넷 접속, FTTH(fiber to the home), 이더넷과 와이파이, 4G, 5G 같은 광역 무선 네트워크 등이 있다.
4.네트워크의 코어
종단 시스템에서 네트워크의 중심으로 시선을 이동해보자. 데이터들은 링크와 패킷 스위치로 이루어진 무수한 도로들을 어떻게 이동할까? 송신 시스템은 데이터를 패킷이라는 단위로 쪼개어 목적지로 보낸다. 이 패킷들은 링크와 패킷 스위치를 거치며 전송된다. 대부분의 패킷들은 '저장 후 전달 전송(store-and-foward transmission)' 방식을 이용한다. 이 방식은 패킷을 받은 스위치가 출력 링크로 비트를 전송하기 전에 패킷의 전체를 다 받아야 한다. 즉 스위치는 패킷의 모든 비트를 수신하고 저장 후에(store) 출력 링크로 전송한다(foward). 이런 방식에서 패킷의 전달속도는 N개의 링크가 있다면 기존의 전달속도(L/R)시간에 N을 곱한 N*L/R이다. 그렇다면 스위치는, 즉 라우터는 패킷을 어떤 링크로 보내야 할지(어떤 방향으로 전송할지) 어떻게 알 수 있을까? 앞서 말했듯이 패킷은 세그먼트에 헤더가 부착된 형태로 구성되어 있다. 라우터는 이 헤더의 일부를 조사해 다음 목적지를 파악하고 적절한 링크로 패킷을 전송한다. 각각의 라우터는 목적지 주소를 라우터의 출력 링크로 맵핑하는 전달 테이블을 갖고 있다. 라우터 간의 이동 과정은 전체의 이동경로를 찾기보다, 단지 자신이 보내야 할 다음 주소만을 찾는 과정이다.
5. 회선 교환 vs 패킷 교환
앞서 기술한 데이터의 이동 방식은 모두 패킷 교환 방식이었다. 하지만 패킷 교환 방식 외에 회선 교환 방식 또한 존재한다는 것을 지금 밝힌다. 회선 교환 방식은 항시 연결되어 연결 상태를 유지하는 방식이라고 요약할 수 있다. 이 연결이 이루어지는 동안 회선은 일정한 전송률과 전송속도를 보장해준다. 하지만 회선 교환 방식은 실질적으로 데이터가 교환이 이루어지지 않는 비활용 기간에도 연결을 유지하고 있으므로 대역폭의 낭비가 일어날 수 있다. 일반적인 전화방식을 생각하면 이해가 편하다. 누군가에게 전화를 걸어서 상대방이 응답해 연결이 이루어지면, 서로 아무 말을 하지 않아도 연결은 계속 유지된다.
이러한 특징 때문에 회선 교환은 종단 간의 지연이 불규칙적이거나 예측 불가능하지 않아 영상통화나 전화통화에 유리한 방식이다. 하지만 회선 교환은 패킷 교환에 비해 효율적이지 않고, 구현이 복잡하다. 결론적으로 현시대의 네트워크에서는 회선 교환 방식보다 패킷 교환 방식을 더 선호한다.
본 장에서는 인터넷 네트워크의 대략적인 구성과 데이터 전송의 기본적인 형태같은 네트워크 분야의 기초적인 주제를 다루었다. 다음 장은 애플리케이션 계층으로, 참고하고 있는 책의 구성에 따라 하향식 구성으로 순서를 맞추었다.
'Network' 카테고리의 다른 글
용어를 확실히 - stateful vs stateless (0) | 2019.12.24 |
---|---|
컴퓨터 네트워크 4-2. 네트워크 계층 : 제어 평면 (0) | 2019.12.15 |
컴퓨터 네트워크 4-1. 네트워크 계층 : 데이터 평면 (0) | 2019.12.14 |
컴퓨터 네트워크 3. 트랜스 포트 계층 (0) | 2019.12.12 |
컴퓨터 네트워크 2. 애플리케이션 계층 (0) | 2019.12.08 |