Computer Science/Network

[CS] 인터넷은 어떻게 작동할까요 (심화)

Jiwoo 2022. 4. 3. 23:44

개요

인터넷의 작동 원리를 이해하려면, 컴퓨터 통신의 구성요소부터 차근차근 알아가는 것이 좋다. 왜냐하면 공부를 시작하면 아래와 같은 과정을 거치기 때문이다.
 
📄인터넷 작동 원리는 HTTP를 전달해서...
👶 HTTP가 뭐지?
  → 📄 HTTP는 표준화된 프로토콜로...
  👶 프로토콜은 뭐지?
    → 📄 프로토콜은 컴퓨터 통신을 위해 합의된 통신 약속...
    👶 컴퓨터 통신? (ㄷㄷ)
 
인터넷은 컴퓨터 네트워크 통신을 기반으로 구현했기 때문에 HTTP, 도메인, 패킷 같은 용어로 설명될 수 밖에 없다. 그러므로 이에 대한 기본적인 이해가 필요하다. 원치 않아도 배워야 한다는 것이다! 역순으로 헤매면서 머릿속에 집어넣는 것보다 기초부터 순차적으로 배우는 것이 훨씬 효율적이다.
 
그럼 지금부터 컴퓨터 통신의 구성 요소, 네트워크 시스템의 구조, 그리고 인터넷까지 점진적으로 살펴보자!
 

목차

  1. 컴퓨터 네트워크란?
  2. 컴퓨터 통신의 구성요소
  3. 네트워크 시스템의 계층적 구조
  4. 인터넷
     

1. 컴퓨터 네트워크란?

사람, 컴퓨터, 기타 장비들 간의 정보 교류를 위한 디지털 정보통신망 중 하나

즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것

이를 통해 통신하는 컴퓨터 두 대는 직접 연결되어 있거나, 여러 경로를 통해 간접적으로 연결되어 있다.
 

실제로 연결되어있는 해저 케이블 지도

 
네트워크는 여러 개의 컴퓨터와 장치들이 거미줄처럼 얽혀있는 구조라고 생각하면 된다!
 
다른 종류의 네트워크 간의 연결 / 출처: 이관용,정광식 <컴퓨터과학개론> p292

 

2. 컴퓨터 통신의 구성요소

컴퓨터 네트워크 기술은 컴퓨터와 컴퓨터, 컴퓨터와 네트워크 간의 접속과 정보 교환을 위한 규약을 제공한다. 다음은 이를 이해하기 위해 이해해야 할 컴퓨터 통신의 구성요소이다.
 

  • 채널(channel)
    모든 통신은 전선, 전화선, 광케이블, 무선 링크 등 통신 매체를 통해 전달된다. 통신 신호가 실제로 전달되는 통로가 채널이다.
     
  • 주파수(frequency)
    통신 채널을 통해 전달되는 통신 신호는 디지털/아날로그 모두 주기성을 가지는 파형의 모습을 가지고 있다.
    이 통신 신호가 초당 몇 번 진동하는가를 계산한 것이 주파수이다.
    주파수의 단위는 헤르츠(Hz)
     
  • 네트워크 인터페이스(network interface)
    컴퓨터와 인터넷을 연결해주는 장치
    컴퓨터 내부의 신호를 물리적/전기적 신호로 변환해준다.
    컴퓨터 내부에 추가되거나 주변 장치로 존재한다.
    ex) 이더넷 카드, USB 와이파이
     
  • (통신) 프로토콜(protocol)
    컴퓨터 통신을 위해 노드 간의 합의된 통신 약속
    택배 보낼 때 이름, 전화, 주소같은 양식이 있는 것처럼, 프로토콜은 통신하는 노드끼리 메세지를 주고 받는 양식과 규칙 체계이다.
    정보 손실과 통신오류를 막기 위해 명확하게 규정될 필요가 있다.
    대표적으로 네이트워크 인터페이스 수준의 이더넷 프로토콜, 인터넷 통신을 위한 TCP/IP, 웹 서비스의 기반이 되는 HTTP등이 있다. (뒤에 자세한 설명이 나온다)
     

노드 & 호스트

헷갈려서 직접 만든 발그림

 

  • 노드(node)
    네트워크 공간 상에 있는 컴퓨터나 관련 장비
    지금 사용 중인 컴퓨터나 스마트폰도 노드이며, 라우더(router)와 같은 전용 네트워크 장비가 될 수도 있다.
     
  • 호스트(host)
    네트워크를 이용하기 위해 네트워크 주소가 할당된 노드
    ex) 이 글을 보고 있는 컴퓨터, 스마트폰 등
    • 호스트가 아닌 노드: 모뎀, 허브, 스위치 등(네트워크 주소가 없어도 동작 가능)
      이들은 네트워크를 이용하는 것이 아니라 호스트끼리 데이터를 주고 받는 과정에서 중간자 역할을 하는 장치이기 때문
       

서버 & 클라이언트

인터넷은 두 대의 컴퓨터가 정보를 주고 받을 때 비로소 완성된다.

예를 들어 웹 브라우저가 요청하면, 웹 서버는 요청에 응답해서 웹 페이지를 보여준다. 이 관계를 클라이언트와 서버라고 한다.
 

  • 클라이언트(client)
    네트워크 상에서 데이터를 요청하는 호스트
     
  • 서버(server)
    요청에 응답할 수 있는 호스트
     

3. 네트워크 시스템의 계층적 구조

인터넷의 바탕이 되는 컴퓨터 통신 절차 모델부터 알아보자!
 

OSI 참조 모델

추상적으로 정의된 컴퓨터 간의 통신 절차 7단계

아래 세 단계가 네트워크를 이루는 부분이다
 

출처: 이관용,정광식 <컴퓨터과학개론> p293

 
출처:&nbsp; https://www.researchgate.net/figure/Packet-encapsulation-TCP-IP-architecture-encapsulates-the-data-from-the-upper-layer-by_fig4_49288737

 
데이터는 계층을 내려가면서 전달을 위해 필요한 정보가 덕지덕지 붙게 된다.

이렇게 감싸지는 걸 캡슐화 라고 한다.
 

  1. 물리 계층(physical layer)
    • 물리적으로 연결된 채널을 통해 비트 단위로 전송되는 계층
      쉽게 말해, 이진 데이터 정보를 어떻게 전달할 것인지 설계하는 단계
    • 이더넷의 연결 잭, 케이블의 전기적 특성이 여기서 정의된다.
       
  2. 데이터링크 계층(datalink layer)
    • 직접 연결된 노드와 노드 사이의 데이터 전송을 담당
      (여기서 미국의 IP주소에 데이터를 전달하면, 연결된 노드를 타고 타고 전달됨)
    • 여기서 전송되는 데이터의 단위를 프레임(frame)이라고 함
    • 단순히 bit을 전송하는 물리층에 신뢰성을 더하기 위한 흐름제어 및 오류제어 기능
    • 데이터링크 계층 프로토콜: 이더넷, 와이파이 등
       
  3. 네트워크 계층(network layer)
    • 송신 측에서 최종목적지까지 패킷을 전달하는 계층
    • 패킷을 어떤 경로로 어떻게 전달할지 결정하는 라우팅이 일어남
    • 해당 계층에서 인터넷의 IP가 정의
    • 패킷이 몰릴 경우에 혼잡 제어를 수행
      • 패킷
        • 네트워크가 전달하는 데이터의 일반적인 단위
        • 데이터링크 계층의 데이터 전송 단위는 프레임! 네트워크 계층의 전송 단위는 패킷!
        • 쉽게 말해 패킷이 택배 박스라면, 프레임은 안에 속포장지
      • 라우터
        • 데이터 패킷이 거쳐서 전달되는 경로, 네트워크 간에 중계 역할을 하는 장치
        • 각자 가지고 있는 라우터 테이블을 이용해서, 자신에게 도착한 패킷을 수신 노드 방향으로 전달함
        • 데이터 전송 과정에서 가장 빠르고 신뢰성 있는 경로를 설정하고 관리한다
           
  4. 전송 계층(transport layer)
    • 네트워크 계층에서 패킷을 종단까지 전달한다면(네트워크 주소), 전송층은 종단 내에서 최종 수신 프로세스로의 전달(포트주소)를 담당
    • 세그먼트or데이터그램 단위의 메시지가 신뢰성을 보장하며 전달함
    • 분할/재조립, 연결/흐름제어, 오류제어
    • TCP가 정의
       
  5. 세션 계층(session layer)
    • 통신 노드 간 연결 접속/차단과 데이터 통신 방식 결정
       
  6. 표현 계층(presentation layer)
    • 데이터의 변환, 압축, 암호화를 담당
    • 송수신되는 데이터의 표현 방식에 대한 표준화된 구문 형식을 제공 → 다른 표현 방식의 데이터도 변환이 잘 이루어짐
    • ex) 서로 컴퓨터 구조가 다르면 워드 파일의 저장 및 표현 방식이 다를 수 있는데, 이를 해결해준다
       
  7. 응용 계층(application layer)
    응용 프로토콜의 기능 지원
    • 웹에서 사용하는 HTTP
    • 파일 전송을 위한 FTP
    • 이메일 전송을 위한 SMTP 등
       

인터넷

효율성을 위해 OSI 계층의 일부만 구현

표현 계층, 세션 계층, 응용 계층이 따로 없으며, 이는 개별 응용 프로그램 수준(주로 브라우저)에서 해결함

TCP/IP 프로토콜이 가장 중요한 요소이며, 이를 기반으로 구현됨
 

출처: 이관용,정광식 <컴퓨터과학개론> p296

 

계층 별 프로토콜

계층 별로 정의되는 프로토콜 (전부는 아니며 중요한 것만)
 

  1. 네트워크 계층 프로토콜
    • IP (인터넷 프로토콜)
      • 네트워크 계층에서 정의되는 프로토콜
      • 패킷의 출발지-목적지 간 전송을 위해 정의됨
      • 패킷 송수신 호스트의 주소를 지정하기 위해 각 컴퓨터에게 IP주소가 부여된다
      • IP = 네트워크 주소 + 호스트 주소
        ex) IP(192.168.123.132) = 네트워크 주소(192.168.123) + 호스트 주소(132)
         
  2. 전송 계층 프로토콜
    • TCP
      • 전송 계층에서 정의되는 프로토콜
      • 노드 안에서 실행되는 프로세스의 송신자와 수신자 사이 전송을 위한 것
      • 신뢰성 있는 연결 지향형 메시지 전송을 지원
         
  3. 응용 계층 프로토콜
    • HTTPS
      • HTTP : 웹 서버와 웹 브라우저 간의 멀티미디어 통신에 사용
      • HTTPS (HyperText Transfer Protocol over Secure socket layer)
        : HTTP의 보안 취약점을 보완한 것으로, 웹 서버와 웹 브라우저 간의 보안이 강화된통신에 사용
         
  4. 이외
    • 도메인 네임 시스템(DNS)
      • IP를 도메인 네임으로 바꿔서 의미있는 이름을 부여하는 이름-주소 변환 시스템
      • 인터넷 전역에광범위하게 분포된 분산 시스템
      • 도메인 네임(domain name) : 일반 문자열로 된 IP주소
        ex) 203.232.172.70 (IP) ⇒ www.knou.ac.kr (도메인 네임)
         

참고

https://blog.naver.com/myca11/221369799273

https://jhnyang.tistory.com/403?category=947031

'Computer Science > Network' 카테고리의 다른 글

[Network] URI / URL / URN  (0) 2023.05.04
[CS] 인터넷은 어떻게 작동할까요 (기초)  (0) 2022.03.31