프로토콜 종류

MoMoon·2022년 2월 21일
0

HTTP

목록 보기
1/7

IP (Internet Protocol)

  • 지정된 IP 주소에 데이터를 전달
  • 통신 단위 : 패킷 (Packet)
  • 패킷 안에 정보 : 출발지 IP, 도착지 IP, 전송 데이터, 기타 사항들

한계점

1) 비연결성

  • 패킷을 받을 대상이 없음
  • 서비스 불능 상태여도 패킷 전송

2) 비신뢰성

  • 중간에 패킷이 사라지는 경우
  • 순서대로 안오는 경우 -> 패킷들이 서로 다른 노드를 탈 경우가 있음

3) 프로그램 구분

  • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우

TCP (Transmission Control Protocol)

  • 전송 제어 프로토콜, 현재 대부분이 사용
  • IP 패킷 안에 들어가는 정보
    ㄴ 출발지 Port, 목적지 Port, 전송제어, 순서, 검증 정보 등등, 전송 데이터
  • 특징

    1) 연결지향 - TCP 3 way handshake(가상 연결) -> 연결되어 있으면 전송
    ㄴ>연결 과정 : 1. SYN (보내는 쪽 접속 요청), 2. SYN + ACK (받는 쪽 요청 수락과 접속 요청), 3. ACK (보내는 쪽 요청 수락)
    2) 데이터 전달 보증 -> 전송 실패 시 사용자에게 경고
    3) 순서 보장
    4) 신뢰 가능한 프로토콜

인터넷 프로토콜 4계층

애플리케이션 계층 - HTTP, FTP
전송 계층 - TCP, UDP
인터넷 계층 - IP
네트워크 인터페이스 계층

전송 순서

  • 프로그램이 Hello, 메시지 생성할 경우
    메시지 생성 -> SOCKET 라이브러를 통해 전달 -> TCP 정보 생성, 메시지 데이터 포함
    -> IP 패캣 생성, TCP 데이터 포함 -> LAN 카드를 통해 서버로 이동

UDP (User Datagram Protocol)

  • 기능이 거의 없음
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 단순하고 빠름

따라서

  • IP와 거의 같음 + Port + 체크섬 정도만 추가
  • 애플리케이션에서 추가 작업 필요

Port

  • 서버 안에서 돌아가는 애플리케이션들을 구분해주는 주소
  • 0 ~ 65535 할당 가능
  • 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
    - FTP - 20, 21
    - TELNET - 23
    - HTTP - 80
    - HTTPS - 443

한번에 둘 이상 연결해야 한다면?

게임, 웹 브라우저 요청 등등

-> 같은 IP 내에서 프로세스 구분

게임 8090 , 웹 브라우저 10100 등 포트 번호를 부여하여 구분


DNS (Domain Name System)

  • IP는 기억하기 어렵고 변경될 수 있음
  • 도메인명을 등록을 하고 IP주소로 변환

    ex)
       도메인 명             IP
      google.com     200.200.200.2




참고 자료

모든 개발자를 위한 HTTP 웹 기본 지식

0개의 댓글