본문 바로가기

Computer Science/Network

[Network] Internet (인터넷 네트워크 기본)

반응형

1. What is Internet?

 

Internet

 

세계 컴퓨터들을 하나로 통신할 있도록 프로토콜을 통해 연결한 글로벌 네트워크 IP, TCP 등의 프로토콜을

사용하여 패킷을 주고받는 방식으로 통신한다.

 

Protocol

 

컴퓨터가 네트워크 내에서 어떤 방식으로 통신해야하는지 정한 규칙의 집합.

 

TCP/IP: Transmission Control Protocol / Internet Protocol

  - 인터넷에서 사용하는 프로토콜

  - TCP: 전송 조절 프로토콜 (HTTP, FTP, SMTP)

      • 데이터의 안정적인 전달을 보증 (전달된 패킷의 순서를 유지)

  - IP: 패킷 통신 방식의 인터넷 프로토콜

 

Client vs Server

 

Client Server 인터넷을 통해 통신하는 애플리케이션으로 서로의 역할에 따라 구분된다.

 

- Client: 유저 쪽의 애플리케이션으로 네트워크를 통해 서버에 접속하여 서버에 서비스를 요청한다.

- Server: 클라이언트가 네트워크를 통해 필요한 정보나 서비스를 요청하면 이를 제공하는 시스템.

 

 

2. IP Addresses and DNS

 

IPv4 vs IPv6

 

IP주소는 IPv4 IPv6 두개의 표준이 존재한다. IPv4 2³² 개의 주소값을 허용하며 IPv6 2¹²개의 주소값을 허용한다. 대부분 IPv4 주소를 사용한다.

 

Public IP address vs Private IP address

 

network와 연결하는 장치들은 public address private address를 가진다. local network로 접속하는 기기들은 같은 public IP address를 공유한다. 그리고 local network 내에서 서로 다른 private IP address를 가지는 것으로 구별된다. 일반적으로 192.168.xxx.xxx, 172.16.xxx.xxx, 10.xxx.xxx.xxx 등의 구조를 가지는데, 이들은 DHCP (dynamic host configuration protocol)에 의해 할당된다.

 

local network 내에서 www.google.com 요청을 보낼 시, 모뎀을 떠나는 패킷은 헤더에 기기에 배정된 포트 번호를 담고 전송되며, 응답이 돌아올 때는 해당 포트번호를 이용해 올바른 기기에게 응답을 전달해준다.

 

private IP address public IP address에 매핑하는 프로토콜은 NAT (network address translation) 프로토콜을 통해 이루어진다.

 

이러한 내용들을 볼 때 IP address는 기기에 유일하게 부여되는 값은 아니다. 기기에 유니크하게 부여되는 주소는 MAC address로 기기는 하나의 맥 주소만 가진다.

 

DNS (Domain Name System)

 

인터넷 상에서 접근하는 도메인에 대해 찾아가야할 IP 주소로 변환해주는 시스템이다.

위의 예시와 같이 www.google.com 으로 요청하는 경우 해당 도메인 www.google.com 이용하여 IP 주소를 얻기위하여 DNS 이용한다.

 

www.google.com 과 같은 domain name 을 이용하여 IP address를 얻어내기 위해서 DNS를 이용한다.

우선 local DNS cache를 참조하여 최근 방문했던 도메인과 IP를 확인한다. 만약 해당하는 도메인이 없거나 만료되었다면 ISP DNS server로 요청을 보낸다. ISP에서도 찾지 못하게 되면 Root DNS Server로 요청을 보내게 된다.

 

Root DNS Server는 해당 도메인의 IP를 전부 가지고 있진 않고, 주소 맨 오른쪽에 있는 .com, .net과 같은 top-level domain을 보고 해당 도메인들을 관리하는 서버의 주소를 알려준다. 이를 통해 ISP top-level domain 관리 서버 (Top level DNS server)로 요청을 보내 IP address를 받아온다.

 

 

3. Packets and Router

 

Packet

 

패킷은 데이터의 전송 단위이다. 인터넷으로 전달되는 데이터를 메세지라고 , 메세지는 패킷이라는 조각으로 잘게 나누어 전송된다. 패킷들은 서로 독립적으로 전송되며 IP (Internet Protocol) 어떤 식으로 패킷화되어야 하는지 명시하고 있다.

각 패킷은 헤더와 바디로 구분되는데 헤드에는 송신자, 수신자, TTL (time to live) 등의 정보를 가지고 있고, 바디에는 전달하고자 하는 데이터가 들어있다.

 

Router

 

라우터는 패킷의 위치 정보를 추출하여 해당 위치까지의 최적의 경로를 지정하며, 해당 경로를 따라 데이터 패킷을 다음 장치로 전달하는 장치이다.

 

라우터는 네트워크 계층 (L3) 장비로 네트워크들을 연결시켜주는 장치로 패킷을 전송하는 행위를 routing이라고 한다. 라우터에서 다음 라우터로 이동하는 것을 hop이라고 부르며 라우터는 패킷의 헤더에서 목적지 주소를 추출하여 다음 hop 조회하여 전송한다.

 

다음 hop 조회할 사용하는 것이 routing table이다. routing table 목적지 네트워크와 목적지 네트워크로 가기 위해 전송될 , next hop IP 주소를 관리하는 곳이다.

 

New Router Added

 

새로운 라우터가 설치되는 경우, 패킷을 보내야 위치에 대해서 모를 있다. 이때 라우터는 이웃하는 라우터들에게 해당 패킷의 목적지 정보에 대한 쿼리를 요청한다. 이웃한 라우터들은 해당 정보를 응답하여준다. 응답을 받은 라우터는 해당 정보를 routing table 저장하여 이후 routing 시에 사용한다.

 

IP addresses and Router

 

라우터가 모든 IP주소에 대해서 해당 주소가 어디를 가리키는지는 알지 못한다. 오직 outbound link 부르는 이웃한 주소들만 알고있다.

IP 주소는 network prefix host identifier, 부분으로 나누어진다.

 

192.168.1.93 -> 192.168 (network prefix) + 1.93 (host identifier)

 

대학, 기관, ISP (internet service provider) 같은 단위의 단일 위치로 연결되는 라우터들은 모두 같은 network prefix 가지도록 하여 192.168.*.* 같이 특정 network prefix 가지는 주소는 모두 같은 곳으로 전송하는 방식을 통해 라우터가 기억해야할 주소의 양을 줄일 있다.

 

 

패킷의 도착

 

internet protocol은 패킷이 목적지에 도달한다는 보장을 하지는 않는다. 전송 도중에 packet loss가 일어날 수 있다.

TCP에서는 패킷 손실을 retransmission으로 해결한다. 패킷이 도착지에 도달하면 ACK 패킷을 보내어 패킷의 도달을 알린다. 누락된 패킷이 있는 경우에는 재전송을 요청한다.

 

 

4. Encryption and Public Keys

 

SSL/TLS

 

인터넷 통신을 할 때에 데이터 전송 도중 중간에 이를 도청하거나 해킹하여 정보가 노출될 수 있다. 이러한 부분을 방지하기 위하여 SSL/TLS를 통한 encryption, authentication 등이 생겨났다.

 

SSL은 Secured Sockets Layer, TLS는 Transport Layer Security를 의미한다.

이들은 SSL/TLS는 선택적으로 사용되어 Transport layer와 Application layer 사이에 위치한다. 이 레이어는 encryption과 authentication을 통해 정보를 보호한다.

 

encryption은 클라이언트가 서버로 보내는 TCP connection 요청을 암호화한다. 메세지가 패킷으로 나뉘기 전에 암호화 하기 때문에 패킷을 가로채도 기존의 메세지를 파악할 수 없다.

 

authentication은 클라이언트가 서버로 보이는 녀석을 믿을 수 있는지 판단하는 것이다. 이를 통해서 클라이언

트와 서버 사이에서 악의적인 간섭을 일으키는 man in the middle attack을 막을 수 있다.

SSL이 적용된 웹사이트는 http가 아닌 https 프로토콜을 사용한다.

 

SSL (Secure Sockets Layer)

  - symmetric key: 대칭키. 하나의 키로 암호화, 복호화 모두 진행

  - asymmetric key: 비대칭키, 두개의 키로 암호화와 복호화를 진행

    • private key와 public key를 사용하여 암호화/복호화 진행

    • 공개키 방식 암호화

  - SSL 인증서: 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서

  - HTTPS: SSL 프로토콜 위에서 돌아가는 프로토콜

 

TLS (Transport Layer Security)

  - SSL을 보완한 버전

반응형