[Network]웹 프로토콜이란

nopecho·2022년 1월 16일
1

웹 프토로콜

기본적으로 웹 통신은 클라이언트와 서버가 있음 요청을 보내는 곳은 클라이언트 그 요청에 응답을 보내주는게 서버.
인터넷 통신은 여러 통신 방법이 있음 기본적인 구조는 클라이언트가 요청을 패킷에 담아 보내면 인터넷 망(해저 광케이블, 위성, 로컬 광케이블 등)의 노드(서로 연결되어 있는 가지?)를 통해 서버로 전달되고 서버도 마찬가지고 인터넷 망을 통해 클라이언트로 응답을 보냄


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

  • 역할 지정한 ip주소에 데이터 전달
  • 패킷 이라는 통신 단위로 데이터 전달
    * 패킷에는 host ip, 요청을 받을 ip, 데이터 정보를 가지고 있음

한계

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

TCP / UDP

위의 IP 프로토콜의 단점을 보완해줌

인터넷 프로토콜 스택의 4계층
애플리케이션 계층 ( HTTP, FTP )
전송 계층 ( TCP, UDP )
인터넷 계층 ( IP )
네트워크 인터페이스 계층 ( LAN드라이버, LAN장비 )

TCP/IP 패킷은 일반 IP패킷에 TCP세그먼트 (전송제어,순서, 검증 정보, 포트 등등)을 추가로 더해진것

TCP 특징
전송 제어 프로토콜

  • 연결 지향 - 3way handshake(가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재 대부분 TCP사용

TCP 3way handshake
1. SYN (싱크로) : 접속 요청 / 클라이언트 -> 서버
2. SYN+ACK : 요청 수락 / 서버 -> 클라이언트
3. ACK : 요청 확인 / 클라이언트 -> 서버 (ACK와 함께 데이터 전송도 가능)
4. 클라이언트 <- -> 서버 데이터 전송
한마디로 데이터 전달을 보증해줌. 클라이언트에서 데이터를 전송하면 서버에서는 데이터를 받았다고 응답을 줌

UDP 특징
사용자 데이터그램 프로토콜

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 x
  • 데이터 전달 보증 x
  • 순서 보장 x
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름!
  • IP와 거의 같은 패킷 + 포트 + 체크섬 정도만 추가
    * 애플리케이션에서 추가 작업이 필요함

포트

하나의 클라이언트에서 한번에 둘 이상 의 서버와 연결 해야 한다면?
클라이언트가 (하나의 IP에서) 게임도 하고 음악도 듣고 채팅도 한다면? 게임서버, 음악서버, 채팅서버 각각에서 오는 패킷들이 어느 서버에서 왔는지 모름. 그런데 이를 해결해주는게 PORT(포트)

  • 서버 자체의 주소를 가지는게 IP / 그 IP에서 각각의 애플리테이션을 구분지어주는게 PORT

TCP/IP 패킷의 구조 : 출발지IP / PORT, 도착지IP / PORT, 전송 데이터 등등...

  • 패킷에 출발지 IP와 PORT가 명시 돼 있어서 서버에서 다시 응답 가능

PORT

  • 하나의 IP에서 0 ~ 65535번 포트까지 할당 가능
  • 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는게 좋다.
    HTTP - 80 포트 사용
    HTTPS - 443 포트 사용

DNS

IP주소는 기본적으로 외우기 어렵다. 변할 수 도 있음 그래서 클라이언트가 서버에 요청을 하고 싶으면 IP를 일일이 다 기억해야됨. 그게 어렵기 때문에 DNS사용

Domain Name System

  • 전화번호부 개념

  • 도매인명을 (naver.com, google.com 등) 실제 서버의 IP주소로 변환 해줌

    클라이언트가 도메인 명으로 주소창에 입력하면 DNS서버를 통해 해당 도메인 명이 있는지 확인하고 해당 도메인이 있으면 실제 IP주소를 넘겨줌

0개의 댓글