Internet History and 통신 - 인터넷 역사, 프로토콜, OSI참조 모델, TCP/IP, 패킷

최윤찬

Updated:

Intro

안녕하세요. 최윤찬 입니다.
간단하게 인터넷에 대해 정리 해보았습니다.



1. 인터넷이란 무엇인가?

  • 컴퓨터로 연결하여 TCP/IP라는 통신 프로토콜을 이용해 정보를 주고 받으는 컴퓨터 네트워크를 의미합니다.
  • 인터넷이라는 명칭은 1973년 TCP/IP를 정립한 빈튼 서프밥 간이 ‘네트워크의 네트워크’를 구현하여 모든 컴퓨터를 하나의 통신망 안에 연결하고자 하는 의도에서 이를 줄여 인터넷이라고 정하였습니다.

  • 정리 : 네트워크의 네트워크라는 2대 이상의 컴퓨터를 연결하고 통신하는 네트워크에 또 다른 네트워크를 연결한다는 의미로 즉 많은 네트워크들이 연결되어 인터넷를 이루었다는 의미입니다. ```
  • 네트워크 : 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통시 형태를 말하며 쉽게 말해 2대 이상의 컴퓨터를 연결하고 통신하는 것을 의미합니다. ``` ***

    2. 프로토콜

  • 프로토콜이란 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정하는 규칙 체계를 의미합니다.

    프로토콜의 기본 요소

    구문

  • 전송하고자 하는 데이터의 형식, 부호화 신호 레벨등의 규정(송수신 데이터의 포맷이나 문법과 같은 형식적인 측면)

    의미

  • 전송의 조작이나 오류 제어를 위한 제어를 위한 제어 정보에 대한 규정(데이터의 각 항목이 무엇을 뜻하는지, 문장의 의미는 무엇인지와 같은 내용적 측면)

    시간

  • 접속되어 있는 개체 간의 통신 속도의 조정이나 메세지의 순서 제어 등을 규정(송신과 수신측의 전달 속도를 제어하거나 초기 연결을 위한 메세지 순서 등의 규정)

3. OSI참조 모델과 TCP/IP

OSI 참조 모델과 TCP/IP 등장 배경

  • 1960~1970년대에서 각각의 업체는 자신들의 컴퓨터끼리 네트워크를 사용하여 데이터를 통신했습니다.
  • 이 과정에서 컴퓨터와 통신에서 사용하는 기기를 자신들의 프로토콜 규격에 맞추어 사용하여 다른 회사와는 호환되지 않는 경우가 많았습니다.
  • 이것을 통일하려고 했던 단체가 바로 ISO이면 해당 단체가 OSI참조 모델이라는 표준화 단계를 선언했습니다.
  • OSI 참조 모델은 데이터 통신을 7개의 단계로 나누었는데 이것이 바로 저희가 많이들 알고 있는 OSI 7계층입니다.
  • OSI 7계층 모델의 발표했던 시기에 인터넷을 위한 통신 프로토콜을 만들고 있던 IETF가 독자적으로 Internet Protocol Suite를 발표하므로써 TCP/IP가 표준으로 자리잡게 되었습니다.

image

TCP란?

  • Transmission Control Protocol의 약자로써 전송제어 프로토콜.
  • 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜입니다.

TCP 특징

신뢰성

  • TCP의 가장 중요한 특징 중 하나로 TCP는 손상되거나 없어지거나 중보되거나 네트워크 계층에서 순서가 틀어져서 전달된 데이터를 복구해야 한다.
  • 이것을 실현하기 위해 적극적 수신, 통지, 재전송 체계를 사용.

    TCP 구조

image

  • Source Port(16bits): 출발지 포트번호
  • Destinations Port(16bits): 목적지 포트 번호
  • Sequence Number(32bits): 송신데이터 순서 번호
  • Acknowlegment Number(32bits): 상대방이 다음에 전송할 순서번호로써 수신확인 응답과 함께 해당 필드에 상대방이 다음에 전송할 순서 번호를 담아서 보냅니다.
  • HLEN(4bits): 헤더의 길이
  • Reserved(4bits): 예약
  • control Flags(6bits): URG(긴급 데이터 설정), ACK(수신확인 응답 설정), PSH(송수신 버퍼에 있는 데이터를 즐시 처리), PST(연결중단/강제 종류), SYN(연결 설정), FIN(연결종료)
  • WindowsSize(16bits): 수신측에서 송신측에 보내는 Receiver window size로 수신버퍼의 여유 공간 크기를 의미합니다.
  • Checksum(16bits): 헤더를 포함한 전체 세그먼트에 대한 오류를 검사하기위한 필드
  • Urgent Pointer(16bits): 세그먼트가 긴급 데이터를 포함하고 있는 경우에 사용되는 필드로 긴급 데이터의 위치값을 담고 있습니다.

흐름제어

  • 데이터 세그먼트를 송수신하는 컴퓨터는 CPU와 네트워크 대역폭의 차이 때문에 서로 다른 데이터 속도로 작동할 수 있다.
  • 결국 수신자가 처리할 수 있는 것보다 훨씬 더 빠른 속도로 송신자가 데이터를 보낼 가능성이 많다.
  • 이것을 방지하기 위해 TCP는 송신자가 보낸 데이터의 양르 제어하는 흐름 제어 메커니즘을 구현.

    다중화

  • 응용프로그램에 포트 번호 값을 연계 시키므로써 서로 다른 포트 쌍을 사용하여 한 라우터의 많은 프로세스가 동시에 TCP통신 서비스를 이용가능

    연결형

  • 연결형 서비스로 가상 회성 방식을 제공.

    양방향 운반

  • 하나의 전송선로에서 데이터가 동시에 양쪽방향으로 전송될 수 있는 것을 의미.
* 가상회성 방식 : 회선 방식과 비슷하게 논리적으로 경로설정 후에 사용자 데이터를 전송하는데
  이와 같은 방식을 연결 지향 네트워크 서비스라 부르며 양측 가입자 사이에 긴 메시지를 긴 시간 동안 교환할 경우에는 유리.  
* 회성 방식 : 메시지가 전송되기 전에 발생지에서 목적지까지의 물리적 통신 회선 연결이 선행되어야 하고 이 물리적인 연결이 정보 전송이 종료될 때까지 계속 유지되는 교환 방식       

IP란?

  • 통신에 필요한 고유 주소를 말하며, 통신 기능이 제공되는 기기들이 서로 통신을 하기 위해 필요한 고유 번호입니다.
  • 2022년 기준으로 IPv4와 IPv6 두 가지 체계가 있다.
  • 공인IP, 사설IP, 고정IP, 유동IP로 나누어집니다.

    IPv4

  • 주소는 32비트 방식으로 8비트씩 4자리로 되어 있으며 각자리는 온점으로 구분합니다.
  • 약 42억 9천개의 주소를 가질 수 있습니다.
  • 전 세계적으로 인터넷 사용자 수가 급증하면서 IP4주소가 고갈될 위기에 처했습니다.

image

IPv6

  • IP version 6의 약자
  • IPv4의 주소체계를 128비트 크기로 확장한 차세대 인터넷 프로토콜 주소입니다.
  • 16비트씩 8자리로 각 자리는 콜론으로 구분합니다.

image

공인IP

  • 공인기관에서 인증한 공개형 IP주소
  • 인터넷공유기를 사용하지 않는 한 컴퓨터 등에서 사용하는 대부분의 IP주소는 공인IP주소입니다.(어떤사용자도 1차적으로 접근이 가능하기 때문에 방화벽이 필요)

사설IP

  • 공인되지 않은 주소라는 뜻이며 외부에서 공개되지 않아, 원칙적으로 외부에서 검색, 접근이 불가능한 주소
  • 사설IP는 A클래스의 10.xxx.xxx.xxx와 B클래스의 172.10.xxx.xxx, C클래스의 192.168.xxx.xxx로 정해져 있습니다.
  • 사설IP 주소가 할당된 컴퓨터 등은 외부에서 검색, 접근이 기본적으로 불가능합니다.
  • 일반적으로 인터넷 공유기가 그러한 보안 장비의 역할(네트워크 방화벽)도 수행하고 있습니다.

고정IP

  • 사용자가 직접 IP 주소를 입력해 주소를 설정하는 방식
  • IP 주소가 변경되면 안 되는 서버나 네트워크프린터 등에 적합

    유동IP

    *IP 주소를 할당하는 서버나 공유기가 보내주는 정보 그대로 컴퓨터에 자동 설정되는 방식

  • 다른말로 ‘DHCP(Dynamic Host Configuration Protocol)’ 서비스라고 합니다.
  • 이론적으로 컴퓨터가 매번 부팅할 때마다(즉 IP 할당 요청이 발생할 때마다)IP 주소는 변경되지만, 이전에 할당 받았던 IP 주소 그대로 재할당 받는 경우가 더 많습니다.

    서브넷 마스크

  • 하위 네트워크를 구분하는 표기법
  • 서브넷마스크는 기본적으로 1과 0으로만 구성
  • 같은 IP주소의 대역을 A,B,C클래스 등올 나눕니다.
  • 서브넷 마스크가 틀리면 인터넷 접속 불가
  • 1은 네트워크 영역으로 사용하겠다는 뜻이고, 0은 호스트 IP로 사용하겠다라는 뜻
  • 예시 ‘255.0.0.0’, ‘255.255.0.0’,’255.255.255.0’(2진수 : 1111 1111.1111 1111.1111 1111.0000 0000)등으로 형식 표기

  • 정리 :최소 1~20까지만 IP를 할당하면 된다. 그럼 나머지 21~100은 사용자가 신경쓰지 않게 끔, 서브넷 마스크로 가려버린다고 생각하면 됩니다.
    *11111111 11111111 11111111 11111000 = 255.255.255.248 (서브넷마스크)
    *11111111 11111111 11111111 (기본 C클래스가 가질 수 있는 네트워크 영역 )
    *11111 (사용자 지정한 네트워크영역 or 범위)
    *000 (사용자가 지정한 호스트영역)
    

TCP/IP

  • 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약입니다.
  • 인터넷으로 디바이스를 연결하는 네트워크 프로토콜의 집합입니다.
  • 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있습니다.
  • HTTP, FTP, SMTP등 TCP를 기반으로 한 수많은 애플리케이션 프로토콜들이 IP위에서 동작하기 때문에 TCP/IP라고 부릅니다.
  • TCP/IP가 많이 사용되면서 흔히 사용하던 OSI 7계층을 더욱 추상화 한 TCP/IP 4계층이 등장했습니다. ```
  • 패킷 : 네트워크를 통해 전송하기 쉽도록 자른 데이터 단위 ```

    데이터 전송 원래

  • 송신 측 호스트의 응용 프로그램이 보내는 데이터를 수신 측 호스트의 응용 프로그램에 전송하려면 각 프로토콜에서 정의한 제어정보(IP 주소, 포트 번호, 오류 체크 코드 등)가 필요합니다.
  • 제어 정보는 위치에 따라앞쪽에 붙는 헤더(header)와뒤쪽에 붙은 트레일러(trailer)로 나누어집니다.
  • 이터는 이러한 제어 정보가 결합된 형태인 패킷(packet)으로 전송되며 이것은 제어정보와 데이터로 이루어있다고 볼수 있습니다.
  • 송신 측 응용프로그램에서 보넨 데이터는 TCP/IP이더넷 계층을 지나면서 헤더 또는 트레일러 형탱의 제어 정보가 덧붙어서 패깃이 생성되고 이것을 수신 측에 도달하면 이더넷/IP/TCP 계층을 지나면서 헤더 또는 트레일러 형태의 제어 정보가 제거되고 최종적으로 수신 측 응용 프로그램이 데이터를 받게 됩니다.
  • 인터넷 계층은 호스트와 라우터에 모두 존재하며, IP 주소와 라우팅 기능을 이용해 패킷 전송 경로를 결정합니다.

4계층

  • 네트워크액세스 계층(물리계층 데이터링크 계층)
  • 인터넷계층(네트워크 계층)
  • 전송계층(전송 계층)
  • 응용계층(세셔게층, 표현계층, 응용계층)

네트워크 액세스 계층

  • OSI 7계층의 물리계층과 데이터 링크 계층에 해당합니다.
  • TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당합니다.
  • 에러 검출 기능(Detecting errors), 패킷의 프레임화(Fraimg packets)
  • 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계.
  • LAN, 패킷망, 등에 사용됨

2계층 인터넷 계층

  • OSI 7계층의 네트워크 계층에 해당합니다.
  • 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공합니다.
  • 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공합니다.
  • 프로토콜 종류 – IP, ARP, RARP

3계층 전송 계층

  • OSI 7계층의 전송 계층에 해당
  • 애플리케이션 계층의 세션과 데이터그램(datagram) 통신서비스 제공합니다.
  • 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
  • 프로토콜 종류 – TCP, UDP

4계층 응용 계층

  • OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당한다.
  • 프로그램(브라우저)가 직접 인터액트하는 레이어. 데이터를 처음으로 받는곳입니다.
  • 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공합니다.
  • 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의합니다.
  • HTTP, SMTP등의 프로토콜을 가진다.
  • TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
  • 프로토콜 종류 – FTP, HTTP, SSH

OSI7계층 프로토콜 종류

응용

  • 사용자와 가장 밀접한 계층으로 인터페이스 역할을 담당합니다.
  • 응용 프로세스 간의 정보 교환을 담당합니다.
  • HTTP, SMTP, FTP, Telnet

    표현

  • 데이터를 어떻게 표현할지 정하는 역할을 하는 계층
  • 송신자에서 온 데이터를 해석하기 위한 응용계층 데이터 부호화, 변화
  • 수신자에서 데이터의 압축을 풀수 있는 방식으로 된 데이터 압축합니다.
  • 데이터의 암호화와 복호화
  • ASCII, MPEG, JPEG, MIDI

    세션

  • 통신 장치 간 상호작용 및 동기화를 제공합니다.
  • 연결 세션에서 데이터 교환과 에러 발생 시의 복구를 관리합니다.
  • NetBIOS, SAP, SDP, NWLink

    전송

  • 종단 간 신뢰성 있고 정확한 데이터 전송을 담당합니다.
  • 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행합니다.
  • 데이터 전송을 위해서 Port 번호를 사용합니다.(대표적인 프로토콜로 TCP와 UDP가 있음)
  • 전송 계층에서 데이터 단위는 세그먼트(Segment)
  • TCP, UDP, SPX

    네트워크

  • 중계 노드를 통하여 전송하는 경우 어떻게 중계할 것인가를 규정합니다.
  • 라우팅 기능을 맡고 있는 계층으로 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 가지고 있습니다.(최적의 경로를 설정가능)
  • 컴퓨터에게 데이터를 전송할지 주소를 갖고 있어서 통신가능(=우리가 자주 듣는 IP 주소가 바로 네트워크 계층 헤더에 속함)
  • 네트워크 계층에서 데이터 단위는 패킷(Packet)입니다.
  • 장비 : 라우터, L3 스위치
  • IP, IPX

    데이터 링크

  • 물리적인 연결을 통하여 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당(Point-To-Point 전송)합니다.
  • 안전한 정보의 전달이라는 것은 오류나 재전송하는 기능이 존재합니다.
  • MAC 주소를 통해서 통신합니다.
  • 데이터 링크 계층에서 데이터 단위는 프레임(Frame)입니다.
  • 장비 : 브리지, 스위치
  • Ethernet, Token Ring, FDDI, Apple Talk

    물리

  • 7계층 중 최하위 계층.
  • 주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송합니다..
  • 데이터는 0과 1의 비트열, 즉 On, Off의 전기적 신호 상태로 이루어져 해당 계층은 단지 데이터를 전달.
  • 단지 데이터 전달의 역할을 할 뿐이라 알고리즘, 오류제어 기능이 없음
  • 장비 : 케이블, 리피터, 허브

    image

도메인 URL

  • 도메인 : IP는 사람이 기억하기 어렵기 때문에 각각의 IP에 이름을 부여한 것을 말합니다.(도메인을 IP주소로 변환하여 받아는데 여기에 DNS라는 프로토콜이 사용됩니다.)
  • URL : 도메인을 표함한 경로로써 사용자가 도메인 서버로 접속할 때 프로토콜고 서비스타입을 통합적으로 적어준 것입니다.

  • image

도메인 구조

  • 도메인은 최상위 도메인명, 호스트명(차상위 도메인/서브 도메인), 도메인명으로 이루어져 있습니다.
  • 최상위 도메인 : 도메인 레벨 중에 가장 높은 단계에 있는 도메인 으로 도메인의 목적, 국가, 종류를 나타냅니다.
  • 차상위 도메인 : 호스트, 서브 도메인으로도 불리며, 보조 도메인으로, URL로 전송하거나 계정 내의 IP주소나 디렉토리로 포워딩되는 도메인 이름의 확장자입니다.
  • 도메인 명 : 임의로 지정 가능한 사이트의 이름으로 google, naver등이 여기에 해당합니다.

  • image
포워딩
* 라우터 입력 포트에 도착한 패킷을 목적지로 향하는 경로 중 적절한 출력 포트로 이동시키는 것

DNS
* 사람이 읽을 수 있는 도메인 이름을 기계가 읽을 수 있는 IP주소로 변환해주는 프로토콜

도메인 
* www.youtube.com  
* www.naver.com  
* www.google.com  

HTTP

  • 웹상에서 HTML을 서로 주고받을 수 있도록 만들어진 프로토콜, 통신 규약
  • 서로 이해할 수 있는 공통의 통신 형식: Protocol

HTTP 통신 방식

요청과 응답

  • 클라이언트가 먼저 HTTP에 요청을 서버에 보내면 서버는 요청을 처리한 후 결과에 따른 HTTP 응답을 클라이언트에게 보냄으로써 하나의 HTTP 통신이 됩니다.
  • 백엔드 API 시스템의 엔드포인트 구현도 기본적으로 HTTP 요청을 인풋으로 받아서 HTTP 응답을 아웃풋으로 리턴하는 구조로 구현을 하게 됩니다.

  • image
요청 Request, 응답 Response으로 이루어짐
클라이언트가 서버에게 요청을 보냄
서버는 요청에 대한 응답 결과를 줌
클라이언트 사용자에게 응답 받은 결과를 보여줌

stateless

  • 상태가 없다는 뜻으로, HTTP 통신에서는 상태라는 개념이 존재하지 않습니다.
  • 각각의 HTTP 통신은 독립적이며 그 전에 처리된 HTTP 통신에 대해서 전혀 알지 못합니다.
  • 이 특성의 장점은 HTTP 통신 간의 진행이나 연결 상태의 처리나 저장을 구현하지 않아도 되는 것이고, 단점은 HTTP 요청을 보낼 때마다 해당 요청을 처리하기 위해 필요한 모든 데이터를 매번 포함시켜서 요청을 보내야 한다는 것입니다. 이런한 단점을 위해서 쿠키나 세션등을 사용하여 HTTP 요청을 처리할 때 필요한 진행 과정이나 데이터를 저장합니다.

쿠키

  • 웹 브라우저가 웹사이트에서 보내온 정보를 저장할 수 있도록 하는 조그마한 파일

세션

  • ㅍ쿠키와 마찬가지로 HTTP 통신상에서 필요한 데이터를 저장할 수 있해줍니다. 쿠키와의 차이점은 쿠키는 웹 브라우저(클라이언트 측)에서 데이터를 저장하는 반면에 세션은 웹 서버에서 데이터를 저장한다.

Http 패킷

  • Http 통신은 요청을 보내고 응답을 받알때 그 정보들을 패킷(Packet)에 넣어 보낸다.
  • Header : 보내는 사람의 주소, 받는 사람의 주소, 패킷 생명시간
  • Body : 실제 전달하고자 하는 내용
  • General : 요청 url 정보와 메소드, 상태 코드를 확인할 수 있습니다.
  • Response Headers : 응답 헤더. 응답 온 패킷의 헤더를 확인할 수 있습니다. 서버의 종류, 연결 상태 등이 담겨 있습니다.
  • Request Headers : 요청 헤더. 요청을 보낸 패킷의 헤더를 확인할 수 있습니다. 보낸 클라이언트의 종류, 요청한 파일의 종류 등을 알 수 있습니다.

  • image

Leave a comment