기초 시리즈: 인터넷 2

이선주·2023년 11월 18일
0

기초 시리즈

목록 보기
2/7

인터넷의 구조 및 동작원리에 대해서 간단하게 알아봤다면, 우리가 놓치고 있는 디테일한 부분을 알아보자


컴퓨터에서의 네트워크
서로 다른 컴퓨터가 네트워크를 이용해 정보를 교환하는 방법

네트워크와 IP 주소

네트워크를 이용해 정보를 교환하려면 컴퓨터의 도착지를 알아야하는데, 이를 알 수 있게 각각의 컴퓨터는 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)를 사용한다.
ping 명령어

프로토콜 스택 및 패킷

인터넷에 연결된 서로 다른 컴퓨터와 통신할 때 대화 내용을 번역하기 위해서 프로토콜 스택(Protocol Stack)을 사용한다.

예를 들어, 1.2.3.4 IP주소를 사용하는 컴퓨터와 5.6.7.8 IP 주소의 컴퓨터가 있다면..(IP 주소가 할당되었다는 것은 인터넷에 연결되어 있다는 뜻이다.)

  1. 1.2.3.4 IP주소가 할당된 컴퓨터가 5.6.7.8 IP주소로 “Hello world”라는 메세지를 보낸다.
  2. ISP를 통해 전화선으로 전송한다고 가정
  3. 문자를 전자 신호로 변환하여 인터넷으로 전송
  4. 전송된 전화 신호를 문자로 변환

3-4에 해당하는 변환 과정에 프로토콜 스택(Protocol Stack)을 사용한다.

프로토콜 스택(Protocol Stack)의 동작

Application Protocol layer웹(WWW), E-Mail, FTP, SSH 등과 같은 애플리케이션 프로토콜
TCP LayerTCP(Transmission Control Protocol), 전송 제어 규약
IP LayerIP(Internet Protocol) 주소를 이용하여 패킷을 특정 컴퓨터로 전송
Physical Layer하드웨어 계층이라고도 불리며, 패킷을 네트워크 신호로 변환하거나 반대로 변환

스택이라는 단어를 유추해볼 수 있듯이 프로토콜 스택은 위에서 아래로 동작한다.

  1. 애플리케이션 계층에서는 데이터를 가공하는 작업을 담당한다.
  2. 보낼 데이터가 클수록 데이터를 작은 단위로 나뉘어지는데, 이를 인터넷에서 패킷(Packet)이라고 한다.
  3. TCP 계층에서 패킷을 대상 컴퓨터로 보낼 방법을 정한다.
  4. IP 계층은 목적지(대상 컴퓨터의 IP 주소)를 확인한다.
  5. 패킷을 보낼 방법과 목적지가 정해지면 피지컬 계층에서 패킷을 전자신호로 변환하여 전송된다.
  6. 목적지에 도달한 전자신호는 프로토콜 스택의 아래에서 위로 작동한다.
  7. 패킷은 최종적으로 목적지에 대한 정보가 제거된다.

프로토콜 스택


인터넷 구조

서로 다른 컴퓨터가 정보를 교환하는 구조

네트워킹 인프라

컴퓨터 네트워크 연결

컴퓨터가 정보를 교환하는 방법을 알아보았다면 그 사이는 어떻게 구성되어있는지를 알아보자

간단한 네트워크 구조를 보여주기 위함이다. 인터넷은 훨씬 더 복잡하다.

간단한 네트워크 구조를 보여주기 위함이다. 인터넷은 훨씬 더 복잡하다.

전화선을 이용하여 ISP(Internet Service Provider, 인터넷 제공 업체)를 통해 인터넷을 이용한다.

  • ISP 사용자를 관리 하기위해 Modem Pool을 사용하는데, 이는 모뎀들의 집합이다.
  • 백본(또는 라우터)으로 데이터를 보내기 전 패킷 흐름을 제어하기 위해 전용 컴퓨터를 사용한다. 이 컴퓨터는 네트워크에 접속을 제공(Serve)하기 때문에 포트 서버, NAS(Network Access Server), RAS(Remote Access Server) 등으로 부른다. 인터넷 사용정보 및 사용료에 대한 청구비용 등은 이 단계에서 수행한다.
  • 이후 패킷은 목적지를 찾을 때까지 여러 라우터, 백본, 전용 회선 및 기타 네트워크를 통해 이동한다.

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)라고 한다.)

https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2F6ZLtHweiZDdXMSJqD5vGyZ%2FUntitled%3Fnode-id%3D0%253A1

ISP와 NSP의 차이점
ISP는 인터넷에 접속할 수 있게 해주는 유료 제공업체이다. KT, SK브로드밴드, LG유플러스 등이 있다.
반면 NSP는 네트워크 백본을 보유하여 이러한 환경을 업체들에게 임대해주고, 더 나아가 ISP의 역활을 대신하기도 한다.

라우팅 계층

라우팅이란, 어떤 네트워크 안에서 데이터를 보낼 때 최적의 경로를 선택하는 과정이다.

인터넷에 연결된 컴퓨터가 전세계에 있는 모든 IP주소를 알고 있지 않다. 단, 라우터를 통해 패킷을 원하는 IP주소로 보낼 수 있다. 인터넷은 기본적으로 트리구조를 가지기 때문에 상류로 거슬러 올라가 해당 네트워크에서 IP주소를 조회하는 방식이다.

https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2FQIMcWKdLU9xNTynl9oc3oH%2FRouting-layers%3Fnode-id%3D0%253A1

1.2.3.4 IP주소를 가진 컴퓨터가 5.6.7.8 IP주소의 컴퓨터로 메세지를 보낸다면 다음과 같다.

  1. LAN(Local Area Network)에서 IP조회하였지만 존재하지 않는다. 상위 라우터로 메세지를 전송하여 상위로 올라간다.
  2. 라우터는 메세지를 보낸 컴퓨터(IP 프로토콜 계층)가 지정한 IP주소(5.6.7.8)를 검사한다.
  3. 라우터는 라우터가 해당하는 네트워크에 IP주소를 조회한다.
  4. 발견하지 못했을 경우 상위로 올라가 IP를 조회한다. NSP 백본에 연결된 라우터는 가장 많은 IP주소를 알고있기 때문에 패킷은 올바른 백본으로 하향한다.

도메인 이름의 경우, DNS를 이용하여 IP주소를 조회하는데, 인터넷에 연결된 컴퓨터라면 기본적으로 DNS가 지정된다. 하나의 DNS가 모든 도메인 이름을 가지고 있지 않는다. 단, DNS는 분산되어 있으며 라우팅 계층과 비슷한 트리구조로 되어 있다. 때문에 원하는 도메인 이름을 찾을 때까지 위로 거슬러 올라간다.

profile
백엔드 개발자의 기초 다지기

0개의 댓글