인터넷의 구조 및 동작원리에 대해서 간단하게 알아봤다면, 우리가 놓치고 있는 디테일한 부분을 알아보자
컴퓨터에서의 네트워크
서로 다른 컴퓨터가 네트워크를 이용해 정보를 교환하는 방법
네트워크를 이용해 정보를 교환하려면 컴퓨터의 도착지를 알아야하는데, 이를 알 수 있게 각각의 컴퓨터는 IP주소를 가지고 있다.
ISP를 통해 인터넷에 연결할 경우 일반적으로 임시 IP 주소가 할당된다. LAN(Local Area Network)에서는 영구적인 IP 주소를 할당하거나 DHCP(Dynamic Host Configuration Protocol) 서버에서 임시 IP 주소를 얻을 수 있다.
근거리 통신망, LAN(Local Area Network)은 네트워크를 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크이다. 이더넷(Ethernet)과 WiFi는 근거리 통신망에 사용하기 위해 흔히 쓰이는 기술 2가지이다. 이와 대조적으로는 WAN이 있다.
현재는 이더넷을 이용한 TCP/IP를 사용하는 것이 일반적이다.
Window, Unix 계열의 OS 환경에서는 기본적으로 네트워크에 연결되어 있는지 확인할 수 있은 프로그램이 있는데 그것이 PIng 프로그램이다. 잠수함 소나 시스템에서 나온 소리를 따서 ping 이라고 한다.
ping 프로그램은 실제로 ICMP(Internet Control Message Protocol)를 사용한다.
인터넷에 연결된 서로 다른 컴퓨터와 통신할 때 대화 내용을 번역하기 위해서 프로토콜 스택(Protocol Stack)을 사용한다.
예를 들어, 1.2.3.4
IP주소를 사용하는 컴퓨터와 5.6.7.8
IP 주소의 컴퓨터가 있다면..(IP 주소가 할당되었다는 것은 인터넷에 연결되어 있다는 뜻이다.)
1.2.3.4
IP주소가 할당된 컴퓨터가 5.6.7.8 IP주소로 “Hello world”라는 메세지를 보낸다.3-4에 해당하는 변환 과정에 프로토콜 스택(Protocol Stack)을 사용한다.
Application Protocol layer | 웹(WWW), E-Mail, FTP, SSH 등과 같은 애플리케이션 프로토콜 |
---|---|
TCP Layer | TCP(Transmission Control Protocol), 전송 제어 규약 |
IP Layer | IP(Internet Protocol) 주소를 이용하여 패킷을 특정 컴퓨터로 전송 |
Physical Layer | 하드웨어 계층이라고도 불리며, 패킷을 네트워크 신호로 변환하거나 반대로 변환 |
스택이라는 단어를 유추해볼 수 있듯이 프로토콜 스택은 위에서 아래로 동작한다.
서로 다른 컴퓨터가 정보를 교환하는 구조
컴퓨터가 정보를 교환하는 방법을 알아보았다면 그 사이는 어떻게 구성되어있는지를 알아보자
간단한 네트워크 구조를 보여주기 위함이다. 인터넷은 훨씬 더 복잡하다.
간단한 네트워크 구조를 보여주기 위함이다. 인터넷은 훨씬 더 복잡하다.
전화선을 이용하여 ISP(Internet Service Provider, 인터넷 제공 업체)를 통해 인터넷을 이용한다.
Traceroute 프로그램을 이용하면 패킷이 주어진 목적지로 가능 경로를 볼 수 있다. 경로를 표시하고 그 구간의 정보를 기록하거나, 패킷 전송 지연을 측정하기 위한 컴퓨터 네트워크 진단 유틸리티이다.
아래처럼 패킷이 목적지에 도달하기 위해 많은 것을 거쳐가야 한다는걸 알 수 있다.
$ traceroute google.com
traceroute to google.com (172.217.25.174), 64 hops max, 52 byte packets
1 192.168.35.1 (192.168.35.1) 3.778 ms 3.356 ms 3.244 ms
2 211.108.141.1 (211.108.141.1) 4.926 ms 5.283 ms 4.892 ms
3 180.70.209.77 (180.70.209.77) 3.944 ms 3.781 ms 3.640 ms
4 10.105.0.56 (10.105.0.56) 3.729 ms
10.105.1.2 (10.105.1.2) 3.557 ms
10.105.0.144 (10.105.0.144) 3.799 ms
5 10.222.11.126 (10.222.11.126) 11.397 ms
10.222.11.64 (10.222.11.64) 13.813 ms
10.222.12.194 (10.222.12.194) 14.781 ms
6 10.222.16.185 (10.222.16.185) 9.153 ms 9.271 ms 9.137 ms
7 72.14.215.199 (72.14.215.199) 42.107 ms 41.821 ms
72.14.195.150 (72.14.195.150) 55.270 ms
8 * * *
9 209.85.253.56 (209.85.253.56) 40.323 ms
108.170.242.129 (108.170.242.129) 41.111 ms 41.834 ms
10 108.170.242.98 (108.170.242.98) 41.617 ms
108.170.242.144 (108.170.242.144) 41.150 ms
108.170.242.98 (108.170.242.98) 40.885 ms
11 209.85.249.241 (209.85.249.241) 44.883 ms
209.85.142.26 (209.85.142.26) 47.208 ms
72.14.234.67 (72.14.234.67) 41.193 ms
12 172.253.50.221 (172.253.50.221) 59.079 ms
142.250.58.92 (142.250.58.92) 43.481 ms
142.250.229.250 (142.250.229.250) 41.971 ms
13 108.170.243.65 (108.170.243.65) 42.644 ms
108.170.243.33 (108.170.243.33) 43.414 ms 42.686 ms
14 72.14.238.23 (72.14.238.23) 41.956 ms 41.896 ms
72.14.239.25 (72.14.239.25) 43.527 ms
15 sin01s16-in-f14.1e100.net (172.217.25.174) 42.011 ms 43.286 ms 42.361 ms
인터넷 백본은 서로 상호 연결되는 대규모 네트워크로 구성되는데, 이러한 대규모 망을 네트워크 서비스 공급자(Network Service Provider, NSP)라고 한다.
NSP도 여러개의 규모있는 회사가 있는데 이러한 NSP는 서로 피어링하여 NAP(Network Access Provider)를 통해 패킷 트래픽을 교환한다. 이는 MAE(Metropolitan Area Exchanges)에서도 이루어지는데 차이점은 MAE는 개인소유이다.(MAE, NAP 모두 인터넷 교환 지점(IX)라고 한다.)
ISP와 NSP의 차이점
ISP는 인터넷에 접속할 수 있게 해주는 유료 제공업체이다. KT, SK브로드밴드, LG유플러스 등이 있다.
반면 NSP는 네트워크 백본을 보유하여 이러한 환경을 업체들에게 임대해주고, 더 나아가 ISP의 역활을 대신하기도 한다.
라우팅이란, 어떤 네트워크 안에서 데이터를 보낼 때 최적의 경로를 선택하는 과정이다.
인터넷에 연결된 컴퓨터가 전세계에 있는 모든 IP주소를 알고 있지 않다. 단, 라우터를 통해 패킷을 원하는 IP주소로 보낼 수 있다. 인터넷은 기본적으로 트리구조를 가지기 때문에 상류로 거슬러 올라가 해당 네트워크에서 IP주소를 조회하는 방식이다.
1.2.3.4 IP주소를 가진 컴퓨터가 5.6.7.8 IP주소의 컴퓨터로 메세지를 보낸다면 다음과 같다.
도메인 이름의 경우, DNS를 이용하여 IP주소를 조회하는데, 인터넷에 연결된 컴퓨터라면 기본적으로 DNS가 지정된다. 하나의 DNS가 모든 도메인 이름을 가지고 있지 않는다. 단, DNS는 분산되어 있으며 라우팅 계층과 비슷한 트리구조로 되어 있다. 때문에 원하는 도메인 이름을 찾을 때까지 위로 거슬러 올라간다.