모든 개발자를 위한 HTTP 웹 기본 (강의) 지식 정리 1(인터넷 네트워크)

RisingJade의 개발기록·2022년 2월 16일
1

1. IP(인터넷 프로토콜)

  • 인터넷 프로토콜 역할
    • 지정한 IP 주소에 데이터 전달
    • 패킷(Packet)이라는 통신 단위로 데이터 전달.
  • IP 패킷 정보
    • 출발지 IP, 목적지 IP, 기타 등등
    • 전송 데이터
  • 클라이언트 패킷 전달
    • 인터넷에다가 클라 패킷을 인터넷에 던지면 목적지 IP(서버)에 맞는 곳으로 전달
  • 서버 패킷 전달
    • 목적지 IP(서버)에 제대로 도착을 했으면 다시 클라IP를 목적지로 저장해서 인터넷에 던지면 된다.

IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라지면?
    • 패킷이 순서대로 안오면?
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

위와 같은 이유로 순수 IP 프로토콜만으로는 한계가 존재한다.
따라서, TCP, UDP와 같은 프로토콜이 탄생했다.


2. TCP, UDP

인터넷 프로토콜 스택의 4계층

  1. 어플리케이션 계층 - HTTP, FTP
  2. 전속 계층 - TCP, UDP
  3. 인터넷 계층 - IP
  4. 네트워크 인터페이스 계층 - 랜카드, 랜드라이버에서 사용되는 것
  • 실제 패킷의 흐름은 다음과 같다.

TCP/ IP 패킷 정보

  • 출발지 PORT, 목적지 PROT, 전송제어, 순수, 검증 정보...(포트는 아래 설명이 있다.)
  • 위와 같은 정보가 TCP 세그먼트에 담긴다.

TCP 특징(전송 제어 프로토콜, Transmission Control Protocol)

  • 연결지향 - TCP 3 way handshake(가상 연결)

    • 논리적 보장, 물리적으로 보장되는건 아님
  • 데이터 전달 보증

  • 순서 보장

    • 1,2,3 순서로 와야되는데 1,3,2로 왔으면 2부터 다시 보내라고 한다.(최적화에 따라 다르긴 함..)
  • 신뢰할 수 있는 프로토콜

  • 현재는 대부분 tcp 사용

    UDP 특징

  • 하얀 도화지에 비유(기능이 거의 없음)

  • 연결지향 - TCP 3 way handshake X

  • 데이터 전달보증 X

  • 순서보장 X

  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

  • IP와 거의 같다. PORT, 체크섬 정도만 추가 됨

    체크섬: 네트워크를 통해 전달된 값이 변경되었는지를 검사하는 값으로 무결성을 제공한다.

  • 애플리케이션에서 추가작업 필요


3. PORT

여기서 Port(포트)란 IP 내에서 애플리케이션 상호 구분(프로세스 구분)을 위해 사용하는 번호이다.(한 컴퓨터 내에서 게임, 음악, 메일 등 포트가 달라야 구분가능하다.)
포트 숫자는 IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미한다.
사용 가능한 숫자는 0 ~ 65535 사이의 숫자가 가능하며 미리 지정되어있는 포트도 있으니 조심히 사용하자

  • 조심해야 할 포트들 (0 ~ 1023)

    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

4. DNS (간단하게 설명)

IP는 기억하기 어렵고 변경될 수 있다. 따라서 뭔가 외우기 쉽게 해줘야 쓰기 편하다.

  • DNS(Domain Name System)의 약자로 전화번호부 같은 것이라 생각하면 쉽다.

  • 도메인 명을 IP 주소로 변환해 준다.

  • 도메인은 사야된다...

profile
언제나 감사하며 살자!

0개의 댓글