Skip to content

Latest commit

 

History

History
 
 

Quest06

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Quest 06. 인터넷의 이해

Introduction

  • 이번 퀘스트에서는 인터넷이 어떻게 동작하며, 서버와 클라이언트, 웹 브라우저 등의 역할은 무엇인지 알아보겠습니다.

Topics

  • 서버와 클라이언트, 그리고 웹 브라우저
  • 인터넷을 구성하는 여러 가지 프로토콜
    • IP
    • TCP
    • HTTP
  • DNS

Resources

Checklist

  • 인터넷은 어떻게 동작하나요? Internet Protocol Suite의 레이어 모델에 입각하여 설명해 보세요.

    • 인터넷은 컴퓨터 네트워크들의 모음으로 이루어져 있으며, 이 네트워크들은 서로 다른 기술과 프로토콜을 사용하여 상호 연결되어 있습니다. 이러한 연결은 인터넷 프로토콜 스위트(Internet Protocol Suite)라고 불리는 네트워크 프로토콜의 집합을 사용하여 관리됩니다.

      • Internet Protocol Suite의 레이어 모델

        • (1) Application Layer :사용자가 인터넷을 통해 데이터를 송수신하는 애플리케이션과 인터넷을 연결해주는 레이어 / HTTP, FTP, SMTP, POP3
        • (2) Transport Layer: 애플리케이션 레이어에서 송신한 데이터를 목적지 컴퓨터까지 신뢰성 있게 전송하는 역할 / TCP, UDP
        • (3) Internet Layer: 전 세계의 다양한 네트워크들을 연결해주는 레이어 / IP
        • (4) Network Access Layer : 인터넷에 연결된 각각의 컴퓨터나 라우터를 식별하고, 데이터를 물리적인 신호로 변환하여 전송하는 역할 / Ethernet, Wi-Fi, PPP(Point-to-Point Protocol)
      • 동작과정

      • 사용자가 인터넷을 통해 데이터를 송수신, (1) 레이어 -> 송신한 데이터를 목적지까지 신뢰성있게 전달, (2) 레이어 -> 전송 레이어를 통해 전달된 데이터는 인터넷레이어 (3)에서 패킷 단위로 나위어 전송됨, 각 패킷에는 목적지와 출발지 주소가 포함된다. -> 패킷은 인터넷에 연결된 다른 컴퓨터나 라우커에 전송되며 라우터는 IP주소를 통해 패킷을 전달하고 목적지 주소를 확인해 목적지와 가장 가까운 다음 라우터로 전송한다. 이과정을 최종 목적지까지 반복한다. -> 마지막으로 패킷은 네트워크 액세스 레이어(4)에서 물리신호로 변환되어 인터넷에 연결된 달라우터나 컴퓨터로 전송된다 -> 최종 목적지 컴퓨터는 패킷을 수신하고 패킷헤더의 IP주소를 확인하여 올바르게 도착했는지 확인하고 패킷내용을 추출하여 어플리케이션 레이어에서 해당 데이터를 처리한다.

    • 근거리에서 서로 떨어진 두 전자기기가 유선/무선으로 서로 통신하는 프로토콜은 어떻게 동작할까요?

    • 무선 통신의 경우, 가장 일반적으로 사용되는 프로토콜 중 하나는 Wi-Fi입니다. Wi-Fi 프로토콜은 무선 인터넷 연결을 제공하는 기술이며, 기기들은 Wi-Fi 통신을 통해 서로 데이터를 주고받을 수 있습니다. Wi-Fi 통신은 일반적으로 무선 액세스 포인트(AP)을 통해 이루어집니다.

      • AP는 인터넷에 연결된 장치로서, 다수의 Wi-Fi 기기들과 통신할 수 있습니다. Wi-Fi 기기는 AP에 연결되어 인터넷과 통신하며, AP를 통해 다른 Wi-Fi 기기들과 통신할 수 있습니다. Wi-Fi 통신은 IEEE 802.11 표준에 따라 동작하며, 이 표준은 무선 통신을 위한 규칙을 정의합니다.
    • 유선 통신의 경우, 일반적으로 사용되는 프로토콜 중 하나는 이더넷(Ethernet)입니다. 이더넷은 랜(LAN)에서 컴퓨터들이 서로 데이터를 주고받을 수 있게 해주는 프로토콜입니다. 이더넷은 물리적인 케이블을 사용하여 데이터를 전송하며, 데이터 전송 속도는 케이블의 종류에 따라 달라집니다. 이더넷 프로토콜은 TCP/IP 프로토콜 스위트에 속하며, 이 프로토콜 스위트는 인터넷에서 데이터를 안정적으로 전송하기 위한 구조를 제공합니다.

    • 근거리에 있는 여러 대의 전자기기가 서로 통신하는 프로토콜은 어떻게 동작할까요?

    • 아주 멀리 떨어져 있는 두 전자기기가 유선/무선으로 서로 통신하는 프로토콜은 어떻게 동작할까요?

      • 유선통신: 아주 멀리 떨어져 있는 두 전자기기가 유선으로 서로 통신하기 위해서는 인터넷 서비스 제공자(ISP)를 통해 광케이블, 구리케이블 등의 전선망을 연결하여 데이터를 전송할 수 있습니다. 이 경우에는 일반적으로 인터넷 회선을 이용하여 통신을 합니다. 각 전자기기는 인터넷에 접속하기 위해 모뎀(Modem) 장치를 이용하여 인터넷 회선에 연결합니다. 그리고 인터넷을 통해 다른 전자기기와 통신을 할 수 있습니다.

      • 무선통신: 아주 멀리 떨어져 있는 두 전자기기가 무선으로 서로 통신하기 위해서는 위성 통신(Satellite communication)을 이용하거나, 광대역 무선 접속(WiMAX)과 같은 기술을 이용하여 데이터를 전송할 수 있습니다. 위성 통신은 위성을 통해 데이터를 송수신하는 방식으로, 전 세계 어디서든 빠르고 안정적으로 통신이 가능합니다. 하지만 고비용과 지연시간이 큰 단점이 있습니다. WiMAX는 광대역 무선 접속 기술로, 기지국과 전자기기 간에 무선으로 데이터를 전송합니다. WiMAX는 일반적으로 인터넷을 이용한 통신에 많이 사용됩니다.

        • 또한, 인터넷 회선이나 위성 통신, WiMAX와 같은 기술을 이용한 무선 통신에서는 라우터(Router)를 이용하여 각 전자기기 간의 통신을 연결합니다. 라우터는 IP 주소와 포트 번호 등의 정보를 이용하여 데이터를 송수신할 전자기기를 판별하고, 데이터를 정확하게 전송할 수 있도록 합니다.
    • 두 전자기기가 신뢰성을 가지고 통신할 수 있도록 하기 위한 프로토콜은 어떻게 동작할까요?

      • -> 웹과 사용자간의 대표적인 통신규약인 HTTP는, SSL인증을 적용한 HTTPS 프로토콜을 사용한 것이 가장 대표적인 보안적용의 예이다.
      • -> HTTP프로토콜을 통한 데이터통신 과정에 SSL/TLS 암호화 방식(양방향 암호화)을 적용하여 상대적으로 안전한 데이터 전달이 가능하도록 한 방식이다.
    • HTTP는 어떻게 동작할까요?

      • 정의: HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간의 데이터 통신을 위한 프로토콜입니다. HTTP는 클라이언트와 서버 간의 요청과 응답으로 구성됩니다.

      • 동작과정

        1. 클라이언트가 웹 브라우저를 통해 서버에 요청을 보냅니다. 이 요청은 URL(Universal Resource Locator)을 통해 식별됩니다.
        2. 서버는 요청을 받고, 요청된 리소스(HTML, CSS, JavaScript, 이미지 등)를 찾아서 응답합니다.
        3. 서버는 응답 결과를 HTTP 응답 메시지에 담아서 클라이언트에게 보냅니다. 이 응답 메시지는 HTTP 버전, 상태 코드, 응답 헤더, 응답 본문 등으로 구성됩니다.
        4. 클라이언트는 서버로부터 받은 응답 메시지를 처리하고, 웹 브라우저를 통해 결과를 보여줍니다.
  • 우리가 브라우저의 주소 창에 www.knowre.com 을 쳤을 때, 어떤 과정을 통해 서버의 IP 주소를 알게 될까요?

    1. 사용자가 웹브라우저에 www.knowre.com 입력
    2. 웹브라우저는 캐싱된 DNS 기록들을 통해 해당 도메인주소와 대응하는 IP주소를 확인 -> 캐싱된 기록이 없을 경우 다음단계로 넘어간다.
    3. 웹브라우저가 HTTP를 사용하여 DNS에게 입력된 도메인 주소를 요청
    4. DNS가 웹브라우저에게 찾는 사이트의 IP주소를 응답 -> ISP(Internet Service Provider)의 DNS서버가 호스팅하고 있는 서버의 IP주소를 찾기 위해 DNS query를 날린다.
    5. 웹브라우저가 웹서버에게 IP주소를 이용하여 html문서를 요청
    6. 웹어플리케이션서버(WAS)와 데이터베이스에서 우선 웹페이지 작업을 처리
    7. 위의 작업처리 결과를 웹서버로 전송
    8. 웹서버는 웹브라우저에게 html 문서결과를 응답
    9. 웹브라우저는 화면에 웹페이지 내용물 출력

    참고: https://velog.io/@eassy/www.google.com%EC%9D%84-%EC%A3%BC%EC%86%8C%EC%B0%BD%EC%97%90%EC%84%9C-%EC%9E%85%EB%A0%A5%ED%95%98%EB%A9%B4-%EC%9D%BC%EC%96%B4%EB%82%98%EB%8A%94-%EC%9D%BC

Quest

  • tracert(Windows가 아닌 경우 traceroute) 명령을 통해 www.google.com 까지 가는 경로를 찾아 보세요.
    • 어떤 IP주소들이 있나요?
    • 그 IP주소들은 어디에 위치해 있나요?
  • Wireshark를 통해 www.google.com 으로 요청을 날렸을 떄 어떤 TCP 패킷이 오가는지 확인해 보세요
    • TCP 패킷을 주고받는 과정은 어떻게 되나요?
    • 각각의 패킷에 어떤 정보들이 담겨 있나요?
  • telnet 명령을 통해 http://www.google.com/ URL에 HTTP 요청을 날려 보세요.
    • 어떤 헤더들이 있나요?
    • 그 헤더들은 어떤 역할을 하나요?

Advanced

  • HTTP의 최신 버전인 HTTP/3는 어떤 식으로 구성되어 있을까요?
  • TCP/IP 외에 전세계적인 네트워크를 구성하기 위한 다른 방식도 제안된 바 있을까요?