본문 바로가기
카테고리 없음

230222 TIL

by hbIncoding 2023. 2. 22.

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

  • 지정한 IP 주소에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달

  1) 클라이언트 패킷 전달, 서버 패킷 전달

  • 출발지와 목적지를 가지고 노드들을 통해 전달된다.

  2) IP 프로토콜의 한계

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

2. TCP/UDP

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

  2) IP 패킷 정보

  • 패치지와 버킷의 합성어
  • TCP/IP 패킷 정보

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

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

  4) TCP 3way handshake

  • 클라이언트와 서버 서로 믿을 수 있는 구조가 된다.
  • 연결이 되고 난 이후에 데이터를 전송한다.
  • 서버가 종료된다면 연결이 안되어 데이터 전송이 진행되지 않는다.\
  • 데이터 전달 보증 : 서버에 데이터 전송을 하고 서버는 데이터를 잘 받았음을 보낸다.
  • 순서 보장 : 패킷 1,2,3을 보냈는데 1,3,2로 도착했다면 그렇다면 1번까지는 잘된거닌까, 1을 제외하고 다 버리고 2부터 다시보내라고 요청 : TCP안에 전송제어, 순서 정보가 포함되어 있기 때문에

  5) UDP(사용자 데이터그램 프로토콜 User Datagram Protocol)

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake 없음
  • 데이터 전달 보증 없음
  • 순서 보장 없음
  • 데이터 전달 순서가 보장되지 않지만 ,단수하고 빠름
  • 정리
    • IP와 거의 같다. +PORT +체크섬 정도만 추가
    • 애플리케이션에서 추가 작업 필요

3. PORT

  1) IP에 더해 PORT 라는 개념

  • 같은 IP내에서 PORT를 통해 적절한 위치로 찾아간다.
  • 패킷 보낼 때 출발지 IP랑 출발지 PORT 까지 보내기 때문에 가능하다.
  • 0~65535할당가능
  • 0~1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
    • FTP - 20, 23
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

4. DNS(도메인 네임 시스템 Domain Name System)

  • IP는 기억하기 어렵고, 변경될 수 있다.

1) DNS란?

  • 전화번호부와 같다, 도메인 명을 IP 주소로 변환한다.
  • 기억하기도 쉽고, 변경되는 문제도 핸들링 가능하다.

 

5. URI(Uniform Resource Identifier)

  • 로케이터(locator), 이름(name) 또는 둘다 추가로 분류 될 수 있다.

1) 단어 뜻

  • URI
    • Uniform : 리소스를 식별하는 통일된 방식
    • Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음)
    • Identifier : 다른 항복과 구분하는데 필요한 정보
  • URL  - Locator : 리소스가 있는 위치를 지정
  • URN - Name : 리소스에 이름을 부여
  • 위치는 변할 수 있지만, 이름은 변하지 않는다.
  • URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음
  • 기억하기도 쉽고, 변경되는 문제도 핸들링 가능하다.

2)URL 전체 문법

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
  • https://www.google.com:443/search?q=hello&hl=ko
    • scheme
      • 주로 프로토콜 사용
      • http는 80포트, https는 443포트 주로 사용, 포트는 생략 가능
    • userinfo
      • URL에 사용자정보를 포함해서 인증
      • 거의 사용하지 않음
    • host : 호스트명(www.google.com)
      • 도메인명 또는 IP주소를 직접 사용가능
    • PORT : 포트번호 (443)
      • 접속 포트
      • 일반적으로 생략, 생략시 http는 80, https는 443
    • path : 패스(/search)
      • 리소스 경로(path), 계층적 구조
    • query : 쿼리 파라미터 (q=hello&hl=ko)
      • key = value 형태
      • ?로 시작, &로 추가 가능
      • query parameter, query string 등으로 불림
    • fragment

5. 웹 브라우저 요청 흐름

  • HTTP 요청 메시지 작성

  • HTTP 메시지 전송

  • 패킷 생성

  • 요청 패킷 전달
  • 요청 패킷 도착
  • 응답 패킷 전달
  • 응답 패킷 도착