[네트워크]인터넷은 어떻게 작동할까? 정리

been·2021년 2월 2일
0

TIL2

목록 보기
3/14

<인터넷은 어떻게 작동할까?>

  • TLDR : 다양한 프로토콜에 따라 패킷을 이동하는 라우터

##프로토콜이란?

: 프로토콜은 컴퓨터가 네트워크를 통해 서로 통신하는 방법을 지정하는 일련의 규칙입니다.

  • 전송 제어 프로토콜에는 한 컴퓨터가 다른 컴퓨터로 데이터를 보내는 경우 대상 컴퓨터에서 누락된 데이터가 있는지 원본 컴퓨터에 알려 원본 컴퓨터가 다시 보낼 수 있도록하는 규칙이 있습니다.
  • 또는 그만큼 인터넷 프로토콜 컴퓨터가 보내는 데이터에 주소를 첨부하여 정보를 다른 컴퓨터로 라우팅하는 방법을 지정합니다.

##패킷이란?

: 인터넷을 통해 전송되는 데이터를 메시지라고 합니다. 메시지가 전송되기 전에 먼저 패킷이라는 여러 조각으로 분할됩니다.

  • 이러한 패킷은 서로 독립적으로 전송됩니다.
  • 일반적인 최대 패킷 크기: 1000자에서 3000자 사이
  • 인터넷 프로토콜은 메시지 패킷화 방법을 지정합니다.

##패킷 라우팅 네트워크란?

: 원본 컴퓨터에서 대상 컴퓨터로 패킷을 라우팅하는 네트워크입니다. 패킷은 이동 중에 여러 라우터를 통해 이동합니다. (인터넷은 라우터라고하는 특수 컴퓨터의 방대한 네트워크로 구성됩니다.)

** 라우터의 역할

: 원본에서 대상으로 패킷을 이동하는 방법을 아는 것입니다.

** 홉

: 패킷이 한 라우터에서 다음 라우터로 이동할 때 이를 홉이라고합니다.

** 인터넷 프로토콜

  • 메타 데이터를 포함하는 패킷의 지정된 공간인 패킷 헤더네트워크 주소를 첨부하는 방법을 지정합니다.
  • 라우터가 헤더의 주소를 기반으로 패킷을 전달하는 방법을 지정합니다.

##이 인터넷 라우터는 어디에서 왔을까? 누가 소유할까?

  • 이 라우터는 1960년대에 정부가 재난 발생시 정보에 액세스하고 정보를 배포할 수 있도록 분산된 컴퓨터 네트워크를 목표로 하는 군사 프로젝트인 ARPANET으로 시작되었습니다. 그 이후로 많은 ISP (인터넷 서비스 제공 업체) 회사 에서 이러한 ARPANET라우터에 라우터를 추가했습니다.
  • 인터넷 라우터는 단일 소유자가 아니라 여러 소유자가 있습니다. 초기에는 ARPANET과 관련된 정부 기관 및 대학, 이후에는 AT&T 및 Verizon과 같은 ISP 기업이 있었습니다.
  • 누구도 이 모든 것을 소유하지 않습니다.

##패킷이 항상 순서대로 도착할까? 그렇지 않은 경우 메시지는 어떻게 재조립될까?

  • 패킷이 순서없이 도착할 수 있습니다.

원인 : 이후 패킷이 이전 패킷보다 대상으로 가는 더 빠른 경로를 찾을 때 발생합니다.

  • 전송 제어 프로토콜은 이 정보를 사용하여 대상에서 메시지를 재구성합니다.

##패킷이 항상 목적지로 이동할까?

  • 인터넷 프로토콜은 패킷이 항상 목적지에 도착한다고 보장하지 않습니다. (패킷손실)

원인: 라우터가 처리할 수 있는 더 많은 패킷을 수신할 때 발생합니다.

**전송 제어 프로토콜

  • 재전송을 수행하여 패킷 손실을 처리합니다.
  • 이는 대상 컴퓨터가 수신 및 재구성 한 메시지의 양을 나타내는 확인 패킷을 주기적으로 원본 컴퓨터로 다시 보내도록 함으로써 수행됩니다.
  • 대상 컴퓨터에서 누락된 패킷이 있음을 발견하면 원본 컴퓨터에 누락된 패킷을 다시 보내도록 요청하는 요청을 보냅니다.
  • 두 컴퓨터가 전송 제어 프로토콜을 통해 통신할 때 두 컴퓨터간에 TCP 연결이 있다고 말합니다.

##이러한 인터넷 주소는 어떻게 생겼을까?

이러한 주소를 IP 주소라고하며, 두 가지 표준이 있습니다.

  1. IPv4 -ex) 212.78.1.25
    • IPv4는 2³² (약 40 억)의 가능한 주소 만 지원하기 때문에 Internet Task Force는 IPv6라는 새로운 주소 표준을 제안했습니다.
  2. IPv6
    • ex) 3ffe : 1893 : 3452 : 4 : 345 : f345 : f345 : 42fc -2¹²⁸ 가능한 주소를 지원하여 훨씬 더 많은 네트워크 장치를 허용합니다. -이는 2017년 현재 인터넷에 있는 80 억 개 이상의 네트워크 장치보다 훨씬 더 많을 것입니다.

##IPv4 주소가 약 40 억 개에 불과하다면 어떻게 인터넷에 80 억 개 이상의 네트워크 장치가있을 수 있을까?

  • Public ip, private ip가 있기 때문입니다.

public ip 주소

  • 인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다.
  • 공인 IP는 전세계에서 유일한 IP 주소를 갖는다.
  • 공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다.

private ip 주소

  • 일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이며, 로컬 IP, 가상 IP라고도 한다.
  • 일반적으로 192.168.xx 또는 172.16.x.x 또는 10.x.x.x 형식, 여기서 x는 1에서 255 사이의 숫자입니다.
  • private IP 주소는 DHCP (Dynamic Host Configuration Protocol)에 의해 할당됩니다.

**NAT (Network Address Translation) 프로토콜

: private IP 주소를 public IP 주소에 매핑하는 프로토콜을 NAT (Network Address Translation) 프로토콜이라고 합니다. 이것이 가능한 IPv4 주소가 40 억 개에 불과한 80 억 개 이상의 네트워크 장치를 지원할 수 있게 해줍니다.

##라우터는 패킷을 보낼 위치를 어떻게 알 수 있을까? 인터넷에서 모든 IP 주소가 어디에 있는지 알아야 할까?

모든 라우터는 모든 IP 주소가 어디에 있는지 알 필요가 없습니다. 각 패킷을 라우팅 할 인접한 Outbound link만 알면 됩니다.

**Outbound links

  • Outbound links는 다른 곳으로 이동하기위한 링크입니다.
  • 이들은 다른 특정 웹 페이지 또는 웹 사이트로 연결되는 링크입니다.
  • 전부는 아니지만 대부분의 웹 사이트에는 Outbound links가 있습니다.
  • IP 주소는 네트워크 prefix와 호스트 식별자의 두 부분으로 나눌 수 있습니다.

Ex)

129.42.13.69

Network Prefix: 129.42

Host Identifier: 13.69

**Network Prefix

  • 단일 연결을 통해 인터넷에 연결되는 모든 네트워크 장치 (예 : 대학 캠퍼스, 기업 또는 대도시 지역의 ISP)는 모두 동일한 네트워크 prefix를 공유합니다.
  • 라우터는 129.42. . 형식의 모든 패킷을 동일한 위치로 보냅니다.
  • 따라서 라우터는 수십억 개의 IP 주소를 추적하는 대신 백만 개 미만의 네트워크 prefix만 추적하면 됩니다.

##그러나 라우터는 여전히 많은 네트워크 prefix를 알아야한다. 새 라우터가 인터넷에 추가되면 이러한 모든 네트워크 prefix에 대한 패킷을 처리하는 방법을 어떻게 알 수 있을까?

  1. 새 라우터에는 몇 가지 사전 구성된 경로가 제공될 수 있습니다. 그러나 패킷을 발견하면 라우팅 방법을 알지 못하는 경우 인접 라우터 중 하나를 쿼리합니다.
  2. 이웃이 패킷을 라우팅하는 방법을 알고 있으면 해당 정보를 요청 라우터로 다시 보냅니다.
  3. 요청하는 라우터는 나중에 사용할 수 있도록 이 정보를 저장합니다.

이러한 방식으로 새 라우터는 Outbound links에 대한 네트워크 prefix 데이터베이스인 자체 라우팅 테이블을 구축합니다. 인접한 라우터가 모르는 경우 다른 인접한 라우터들을 쿼리합니다.

##네트워크로 연결된 컴퓨터는 도메인 이름을 기반으로 IP 주소를 어떻게 파악할까?

DNS(Domain Name System)은 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 컴퓨터가 읽을 수 있는 IP주소(예: 192.0.2.44)로 변환합니다.

  • IP 주소를 확인하기 위해 컴퓨터는 먼저 최근에 방문한 웹 사이트의 IP 주소를 저장하는 로컬 DNS 캐시를 확인합니다.
  • IP 주소를 찾을 수 없거나 IP 주소 레코드가 만료된 경우 IP 주소 확인 전용 ISP의 DNS 서버를 쿼리합니다.
  • ISP의 DNS 서버가 IP 주소를 확인할 수 없는 경우 지정된 최상위 도메인의 모든 도메인 이름을 확인할 수 있는 루트 이름 서버를 쿼리합니다.

최상위 도메인은 도메인 이름의 맨 오른쪽 마침표 오른쪽에 있는 단어입니다. Ex) .com .net .org

##응용 프로그램은 인터넷을 통해 어떻게 통신할까?

  • 인터넷 네트워크 계층은 링크 계층, 인터넷 계층, 전송 계층 및 응용 프로그램 계층으로 구성됩니다.
    • <계층구조>
      응용 프로그램 계층
      전송 계층
      인터넷 계층
      링크 계층
  • 각 계층은 구현 세부 사항에 대해 걱정하지 않고 하위 계층의 기능을 사용합니다.

예를 들어, 애플리케이션은 소켓이라는 구조를 사용하여

TCP를 통해 네트워크의 다른 애플리케이션에 연결합니다.

이 구조는 패킷 라우팅 및 패킷을 메시지로 재조립하는 세부 정보를 추상화합니다.

##각 인터넷 계층은 무엇을 할까?

링크계층

  • 링크 계층은 광섬유 케이블이나 와이파이 무선 신호와 같은 물리적 매체를 통해 데이터 비트를 전송하는 것과 관련이 있습니다.

인터넷계층

  • 링크 계층 위에는 인터넷 계층이 있습니다.
  • 인터넷 계층은 패킷을 대상으로 라우팅하는 것과 관련이 있습니다. (인터넷 프로토콜이 있습니다.)
  • 인터넷 프로토콜은 네트워크로드 또는 중단에 따라 동적으로 패킷을 조정하고 다시 라우팅합니다.

전송 계층

  • 인터넷 계층 위에는 전송 계층이 있습니다.
  • 이 계층은 아래의 인터넷 및 링크 계층에서 데이터가 손실될 수 있다는 사실을 보완하기위한 것입니다.
  • 주로 패킷을 원래 메시지로 재조립하고 손실된 패킷을 재전송하는 데 주로 사용됩니다(전송 제어 프로토콜이 있습니다)

응용 프로그램

  • 응용 프로그램 계층이 맨 위에 있습니다.
  • 이 계층은 아래의 모든 계층을 사용.
  • 인터넷을 통해 패킷을 이동하는 복잡한 세부 사항을 처리합니다 -> 프로그램은 소켓과 같은 간단한 추상화를 사용하여 인터넷의 다른 응용 프로그램과 쉽게 연결할 수 있습니다.
  • 웹 브라우저와 웹 서버가 상호 작용하는 방법을 지정하는 HTTP 프로토콜은 응용 프로그램 계층에 있습니다.
  • 이메일 클라이언트가 이메일을 검색하는 방법을 지정하는 IMAP 프로토콜은 애플리케이션 계층에 있습니다.
  • 파일 다운로드 클라이언트와 파일 호스팅 서버 간의 파일 전송 프로토콜을 지정하는 FTP 프로토콜은 응용 프로그램 계층에 있습니다.

##클라이언트와 서버는 무엇일까?

공통점 : 클라이언트와 서버는 모두 인터넷을 통해 통신하는 응용 프로그램

클라이언트

  • 웹 브라우저, 이메일 클라이언트 또는 스마트 폰 응용 프로그램과 같은 사용자 대면 응용 프로그램이라는 점에서 "사용자에게 더 가깝습니다".
  • TCP 연결을 시작하는 애플리케이션

서버

  • 클라이언트가 필요할 때 인터넷을 통해 통신하는 원격 컴퓨터에서 실행되는 응용 프로그램입니다.
  • TCP 연결을 수신하는 애플리케이션

##신용 카드와 같은 민감한 데이터를 인터넷을 통해 안전하게 전송하려면 어떻게 해야할까?

  • 문제 : WiFi와 같은 무선 기술의 출현으로 해커는 공중에서 패킷을 가로 챌 수 있습니다. 네트워크 하드웨어가 물리적으로 안전한지 확인하는 것만으로는 충분하지 않았습니다.
  • 해결책 : SSL / TLS를 통한 암호화 및 인증

##SSL / TLS란?

  • SSL은 Secured Sockets Layer를 나타냅니다.
  • TLS는 Transport Layer Security를 나타냅니다.
  • SSL은 1994 년 Netscape에 의해 처음 개발되었지만 나중에 더 안전한 버전이 고안되어 TLS로 이름이 변경되었습니다.
  • SSL / TLS는 전송 계층과 애플리케이션 계층 사이에있는 선택적 계층입니다.
  • 암호화 및 인증을 통해 민감한 정보의 안전한 인터넷 통신을 가능하게합니다.

**암호화

  • 클라이언트가 서버에 대한 TCP 연결을 암호화하도록 요청할 수 있음을 의미합니다.
  • 클라이언트와 서버간에 전송되는 모든 메시지는 패킷으로 분할되기 전에 암호화됩니다. 해커가 이러한 패킷을 가로 채면 원래 메시지를 재구성할 수 없습니다.

**인증

  • 클라이언트가 서버가 자신이 주장하는 사람임을 신뢰할 수 있음을 의미합니다.

SSL 작동 과정:

  1. 최신 브라우저에서 SSL이 활성화 된 웹 사이트를 방문 할 때마다 SSL이 작동하는 것을 확인합니다.
  2. 브라우저가 http 대신 https 프로토콜을 사용하는 웹 사이트를 요청하면 웹 서버에 SSL 암호화 연결을 원한다는 것을 알립니다.
  3. 웹 서버가 SSL을 지원하는 경우 암호화된 보안 연결이 설정되고 브라우저의 주소 표시 줄 옆에 자물쇠 아이콘이 표시됩니다.

##SSL은 서버의 ID를 어떻게 인증하고 통신을 암호화 할까?

  • 비대칭 암호화 및 SSL 인증서를 사용합니다.

**비대칭 암호화는?

  • 공개 키개인 키를 사용하는 암호화 체계입니다.
  • 개인 키 > 데이터를 해독하고 문서에 서명하는 데 사용됩니다.
  • 공개 키 > 데이터를 암호화하고 서명 된 문서를 확인하는 데 사용됩니다.
  • 대칭 암호화와 달리 비대칭 암호화는 암호화 기능이 자동으로 해독 기능을 부여하지 않음을 의미합니다.

**SSL 인증서

  • 웹 서버에 할당된 공개 키로 구성된 디지털 문서입니다.

과정:

  1. SSL 인증서는 인증 기관에서 서버에 발급합니다. 운영 체제, 모바일 장치 및 브라우저는 SSL 인증서를 확인할 수 있도록 일부 인증 기관의 데이터베이스와 함께 제공됩니다.
  2. 클라이언트가 서버와의 SSL 암호화 연결을 요청하면, 서버는 SSL 인증서를 다시 보냅니다.
  3. 클라이언트가 체크합니다.
    1. -SSL 인증서가 서버에 발급됐는지
    2. -SSL 인증서가 신뢰할 수있는 인증 기관에 의해 서명됐는지
    3. -SSL 인증서가 만료되지 않았는지
  4. 클라이언트는 SSL 인증서의 공개 키를 사용하여 임의로 생성된 임시 비밀 키를 암호화하고 서버로 다시 보냅니다.
  5. 서버에는 해당 개인 키가 있으므로 클라이언트의 임시 비밀 키를 해독할 수 있습니다.
  6. 이제 클라이언트와 서버 모두 이 임시 비밀 키를 알고 있으므로 이를 사용하여 서로에게 보내는 메시지를 대칭 적으로 암호화할 수 있습니다.
  7. 세션이 끝나면 이 임시 비밀 키를 버립니다.

##해커가 SSL 암호화 세션을 가로 채면 어떻게 될까?

  • 해커는 개인 키가 없기 때문에 임시 비밀 키를 해독할 수 없습니다.
  • 임시 비밀 키가 없기 때문에 클라이언트와 서버 간의 메시지를 해독할 수 없습니다.

0개의 댓글