[F-Lab 모각코 챌린지 - 1일차] - 인터넷 네트워크

Big One·2023년 5월 11일
0

F-Lab

목록 보기
63/69

IP

지정한 IP주소에 데이터 전달

패킷 통신 단위로 데이터 전달

IP 패킷 정보 (출발지 IP, 목적지 IP, 기타 …)

패킷: Package + Bucket

IP프로토콜의 한계

  1. 비연결성
    1. 패킷 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 (우편물 생각.. )
  2. 비신뢰성
    1. 중간에 패킷이 사라질 수 있다. (패킷 소실)
    2. 패킷이 순서대로 오지 않을 수 있다.
  3. 프로그램 구분
    1. 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

TCP, UDP

전송제어 프로토콜(Transmission Control Protocol)

특징

  1. 연결지향 - 3 WAY Handshake (가상 연결!!!! 물리적 연결 x)
    1. Client → SYN → Server
    2. Client ← SYN+ACK ←Server
    3. Client → ACK → Server
    4. 데이터 전송 ACK 와 함께 데이터 전송하기도함
  2. 데이터 전달 보증
    1. Client —request→ Server // 데이터 전송
    2. Client ←response— Server // 데이터 잘 받았다~~
  3. 순서 보장
    1. 순서 꼬이면 꼬인 순서부터 다시보내라고 응답함
    2. 꼬인 순서부터 다시 보냄
    3. 서버에서 최적화 할 수 있지만 기본적으로는 다시 요청한다.
  • 신뢰할 수 있는 프로토콜이다.

  • 현재는 대부분 TCP를 사용한다.

TCP 세그먼트: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증정보, …

HTTP3 스펙에서 최적화 되서 UDP 각광 받는중

PORT

비유 아파트(IP) 몇 동 몇 호(PORT)

같은 IP 에서 여러 서버와 통신을 하는 상황일 때 구분하기 위해서 사용한다.

0 ~ 65535 할당 가능

0 ~ 1023: 잘 알려진 포트라 사용하지 않는 것이 좋다.

DNS

Domain Name System

DNS서버에서 도메인 명을 IP주소로 변환

아이피를 외우기도 어렵고 ,, IP는 변경된다

DNS를 사용하면 외우기도 쉽고 변경되도 DNS에서 IP를 변경해주면 된다.

URI와 웹 브라우저 요청 흐름

URI

Uniform: 리소스 식별하는 통일된 방식

Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)

Identifier: 다른 항목과 구분하는데 필요한 정보

URL(Locator) - 리소스가 있는 위치를 지정

URN(Name) - 리소스에 이름을 부여

URL 전체문법

scheme://[@userinfo]host[:port][/path][?query][#fragment]

https://www.google.com:443/search?q=hello&hl=ko

프로토콜(https)

호스트명(www.google.com)

포트 번호(443)

패스(/search)

쿼리 파라미터(q=hello&hl=ko)

scheme 주로 프로토콜 사용

프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙

userinfo: url에 사용자 정보를 포함해서 인증해야할 때 사용

fragment: html 내부 북마크 등에 사용, 서버에 전송하는 정보 아님

웹 브라우저 요청 흐름

DNS 서버 조회, port 번호 → IP, Port를 알아냄

HTTP 요청 메세지 생성 → TCP /IP 요청 보냄 → 서버에 요청 패킷 도착 → HTTP 응답 메세지 Broswer에 전달

profile
이번생은 개발자

0개의 댓글