티스토리 뷰
네트워크 관련된 글을 작성하는 이유는 지금껏 공부한 내용을 총 정리하기 위함도 있다. 앞으로 얼마나 걸릴지는 모르겠지만, 네트워크 지식을 쌓기 위해 필요한 지식들을 간략하게 짚고 넘어가 보자.
인터넷은 무엇인가?
이 질문에 대해 답하기 위한 방법은 두 가지가 존재한다.
첫 번째는 인터넷의 구성요소를 기술하는 것으로, 인터넷을 구성하는 기본적인 하드웨어와 소프트웨어 요소를 기술하는 방법이다.
두 번째 방법은 분산 애플리케이션에 서비스를 제공하는 인프라 구조 관점에서 인터넷을 기술하는 방법이 있다. 먼저 구성요소의 관점으로 인터넷에 대해 정의해보기로 하자.
구성요소로 본 인터넷
인터넷 용어로, 인터넷에 연결되는 모든 장치는 '호스트' 혹은 '종단 시스템'이라고 부른다. 따라서 우리가 사용하는 노트북, 데스크톱, 휴대폰은 모두 인터넷 네트워크에서 하나의 호스트라고 볼 수 있다. 그리고 호스트는 '통신 링크'와 '패킷 스위치'의 네트워크로 연결되며, 링크는 동축케이블, 구리선, 라디오 스펙트럼 등등 다양한 물리 매체로 구성될 수 있다. 이때 각 링크들은 다양한 전송률을 가지며 이 전송률에 따라 데이터가 전송된다.
호스트가 다른 호스트에게 보낼 데이터를 가지고 있다고 하자.
이때 송신자에 해당하는 호스트는 해당 데이터를 '세그먼트'로 나누고 각 세그먼트에 '헤더'를 붙인 후 데이터를 전송한다. 그리고 이렇게 만들어진 하나의 데이터 패키지는 컴퓨터 네트워크에서 '패킷'이라고 불린다. 그림으로 나타내면 아래와 같은 구조일 것이다.
여기서 두 가지 의문을 가질 수 있다.
1. 왜 쪼개는 걸까?
2. 수신자에게 어떻게 정확한 데이터가 전달되는 걸까?
1번의 정답은 이미 언급한 '전송률'과 관계가 있다. 이후에 다시 등장할 내용이니 지금은 '네트워크 전송률에 따라 세그먼트의 크기가 정해진다' 정도로 이해하기로 하고, 넘어가자. 2번은 '역다중화'와 관련이 있다. 이 역시도 이후에 등장할 내용이기에 지금은 '수신자 컴퓨터에서 패킷을 다시 하나로 조립한다' 정도로 이해하면 된다.
패킷을 전달하는 '패킷 교환기'는 입력 통신 링크의 하나로 도착하는 패킷을 받아서 출력 통신 링크의 하나로 그 패킷을 전달한다. 그리고 오늘날 인터넷에서 가장 많이 사용되는 패킷 교환기의 종류로는 '라우터'와 '링크 계층 스위치'가 있다.
서비스 측면에서 본 인터넷
이번에는 구성요소가 아닌, 애플리케이션에 서비스 측면에서 인터넷을 살펴보자.
전자메일, 웹 등등은 인터넷을 활용한 애플리케이션이며, 이들 애플리케이션은 서로 데이터를 교환하는 많은 종단 시스템을 포함하고 있기 때문에 '분산 애플리케이션'이라고 부른다. 중요한 것은 애플리케이션은 종단 시스템(호스트)에서 수행된다는 점이다. 네트워크 코어에 있는 패킷 교환기에서는 애플리케이션이 수행되지 않는다. 그러면 호스트에서 수행되는 애플리케이션이 어떻게 다른 호스트에서 실행되고 있는 애플리케이션에게 데이터를 보낼 수 있는 걸까?
인터넷에 접속된 호스트들은 '소켓 인터페이스'라는 것을 가지고 있다. 이 소켓 인터페이스는 애플리케이션이 따라야 하는 규칙의 집합이며, 인터넷은 이 규칙에 따라 데이터를 목적지 프로그램으로 전달하게 된다.
음.. 그러면 우리가 실행하는 애플리케이션들은 '소켓 인터페이스의 규칙'에 따라, 인터넷이라는 거대한 네트워크에 존재하는 수신자 호스트의 애플리케이션에 데이터를 정확히 전송한다라고 해석해볼 수 있다.
프로토콜이란?
방금 위에서 '규칙'이라는 단어를 언급했다. 그리고 인터넷에서 사용하는 통신 규칙은 '프로토콜'이라고 부른다. 특히 TCP와 IP는 인터넷에서 가장 중요한 프로토콜이다. 이 두 가지 프로토콜은 앞으로 아주 많이 등장할 것이다. 그리고 앞으로 공부할 모든 내용들은 사실 프로토콜과 관련된 내용들이 전부이다.
프로토콜은 약속된 규칙이다. 이러한 규칙이 필요한 이유는 상호 호환되는 시스템과 제품을 확장해서 만들 수 있기 때문이다. 예를 들어 휴대폰과 충전기의 관계에 대해 생각해보자.
휴대폰과 충전기의 가장 중요한 문제는 충전 단자가 일치하는가?이다. 그 외의 문제는 크게 중요하지 않다. 성능이 더 뛰어난 충전기를 새로 구매한다고 해서 휴대폰을 바꿔야 하는가?
네트워크에서 프로토콜도 이 관계와 비슷하다. 인터넷은 여러 개의 독립적인 계층으로 구성되지만, 이 계층 간 연결할 수 있다면 통신할 수 있는 것이다.
마무리
사실 이것만으로 인터넷 네트워크를 이해할 수는 없다. 왜냐면 그 안에는 너무나 많은 내용이 있고 복잡하기 때문이다. 네트워크 지연, 라우팅 알고리즘, OSI 7 계층 등의 내용을 언급하지 않은 이유는 어차피 앞으로 등장할 내용이기 때문이다. 꾸준히 작성해보겠다.
'CS > Network' 카테고리의 다른 글
[Network] ARP(Address Resolution Protocol)이란? (0) | 2022.10.13 |
---|---|
[Network] 링크 계층과 다중 접속 프로토콜 (0) | 2022.10.13 |