인터넷은 어떻게 동작하나요? (How does the INTERNET work?)
1. 인터넷은 무엇인가요?
네트워크
(network)란 서로 데이터를 보낼 수 있는 연결된 *노드 또는 컴퓨터 장치의 그룹입니다. 인터넷
은 상호(inter)연결된 네트(net)워크로, 컴퓨터들이 서로 통신 가능한 방대한 네트워크라 할 수 있습니다.
*노드: 네트워크에 연결된 모든 물리적인 기기 혹은 장치들을 뜻하는 말로, 데이터 전송을 위한 연결 지점 역할을 합니다. 예로는 컴퓨터, 프린터, 스위치 또는 라우터가 있습니다.
단순하게 인터넷은 무엇일까요? 인터넷은 물리적인 긴 와이어(wire)라고 말할 수 있습니다. 이 와이어를 통해 컴퓨터는 서로 연결되어 통신할 수 있습니다.
서버는 이렇게 인터넷에 직접 연결된 컴퓨터로, 하드 드라이브에 웹 페이지와 관련된 데이터들을 가지고 있습니다. 모든 서버에는 고유의 IP
주소가 있어서 마치 우편 번호처럼 컴퓨터들이 서로를 찾을 수 있게 도와줍니다.
한편, 우리가 일상에서 매일 사용하는 랩탑, 스마트폰, 프린터 등은 서버가 아닌 클라이언트
라고 부릅니다. 왜냐하면 인터넷에 직접적으로 연결되어 있지 않고, 인터넷을 제공하는 조직인 ISP
(Internet Service Provider)를 거치기 때문입니다.
인터넷은 데이터를 주고 받는 과정임을 생각해봅시다. 클라이언트는 ISP를 통해 서버에 데이터를 요청합니다. 그렇다면 데이터는 어떻게 주고 받는 것일까요?
2. IP(Internet Protocol)란 무엇인가요?
2-1. IP에 대해 알아봅시다
인터넷에 직접 또는 간접적으로 연결된 모든 장치는 IP 주소를 가지고 있습니다. 여기서 IP
(Internet Protocol)란 인터넷 프로토콜을 의미하며, 인터넷에서 데이터 통신을 관리하는 규약을 말합니다. 쉬운 예를 들어봅시다.
각기 다른 나라에서 자란 두 사람은 공통 언어를 사용해야 소통할 수 있습니다. 그리고 해당 언어로 대화하기 위해서는 따라야 할 고유한 어휘와 문법이 있을 것입니다.
이처럼 네트워킹에서 서로 데이터를 주고받기 위해서는 발신자와 수신자 모두 동일한 프로토콜을 따라야합니다. 이러한 맥락에서 IP는, 인터넷이나 로컬 네트워크에서 ‘전송되는 데이터’를 해석할 수 있도록 데이터 형식을 지정하는 표준화된 방법이라 할 수 있습니다.
2-2. 도메인 이름(Domain name)은 유용합니다!
앞서 언급했듯이, 네트워크에 연결된 모든 장치에는 IP 주소가 있습니다. 이러한 IP 주소를 사용해 목적지를 찾아가는 것입니다. 그러나 IP 주소는 192.168.2.10.
처럼 기억하기 어렵습니다. 그래서 IP 주소에 도메인
이라고 하는 사람들이 읽을 수 있는 이름을 지정할 수 있습니다.
DNS
(Domain Name System)는 전화번호부와 같은 서버를 제공해줍니다. www.example.com과 같이 사람이 읽을 수 있는 이름을 등록하면, 그것을 173.194.121.32 처럼 IP 주소로 변환하여 컴퓨터 간 서로 통신할 수 있도록 합니다. 이렇게 하면 IP 주소가 변경되어도 도메인을 통해 접근할 수 있습니다.
이처럼 IP 주소를 사용해 컴퓨터를 식별하고, 지정한 IP 주소에 패킷
(Packet)이라는 통신 단위로 데이터를 전달하게 됩니다.
3. 패킷(Packet)이란 무엇을 의미하나요?
인터넷의 어디든 두 개 이상의 부분이 교차하면 라우터
(router)라고 불리는 장치가 있습니다. 출발지와 목적지 사이에 수많이 존재하는 라우터는, 인터넷 상에서 패킷을 안내하여 각 패킷이 목적지에 한 단계씩 가까워지도록 도와줍니다.
3-1. 패킷을 사용하는 이유는?
여기서 패킷
은 정보 전송의 기본 단위로, 네트워크를 통해 전달되는 작은 데이터 조각이라고 볼 수 있습니다. 데이터가 작은 구조로 분해되는 이유는 데이터의 안정적이고 효율적인 전송을 보장하기 위함입니다. 데이터가 커다란 덩어리라면, 네트워크의 *대역폭을 너무 많이 차지해 다른 패킷의 흐름을 막고, 결과적으로 특정 지점에서 막히거나 느려질 위험이 있기 때문입니다. 이처럼 패킷 사용은 네트워크를 더 빠르게 작동하도록 만드는 중요한 요소입니다.
대역폭(bandwidth): 일정한 시간 내에 네트워크 연결을 통해 처리할 수 있는 데이터의 양을 나타냅니다. 데이터를 얼마나 많이 수용할 수 있는지 판단하는 기준이 됩니다.
3-2. 패킷은 어떻게 구성되나요?
이렇게 분산된 패킷은 각각의 식별자에 따라 수신하는 장치에서 재조립됩니다. 각 라우터는 패킷을 어디로 보내야 하는지 어떻게 아는 걸까요?
패킷의 구조를 살펴봅시다. 패킷에는 헤더와 페이로드 두 부분으로 구성됩니다. 헤더에는 출발지 IP 주소, 목적지 IP 주소 같은 패킷에 대한 정보가 포함되어 있으며, 실제 데이터인 페이로드를 감싸고 있습니다. 이를 통해 패킷을 수신하는 장치에서는 패킷의 출처, 용도, 처리 방법 등을 알 수 있는 것입니다.
4. IP에도 한계점이 있나요?
패킷은 인터넷 망을 통해 여러 노드를 거쳐 목적지 서버에 도달하게 됩니다. 하지만 이렇게 IP 주소를 찾아가는 방식에는 한계가 있습니다.
- 비연결성: 목적지 컴퓨터가 꺼져 있는데 이를 모른 채 패킷이 전송될 수 있습니다. 패킷을 받을 대상 서버가 없거나, 서비스 불능 상태여도 알 길이 없습니다.
- 비신뢰성: 패킷이 중간에 사라지거나, 여러 개의 패킷이 순서대로 도착하지 않을 수도 있습니다.
- 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러 개일 때, 어떤 프로그램이 데이터를 받게 될지 구분할 수 없습니다.
이러한 문제들을 해결하는 것이 바로 TCP
입니다.