[기술면접 준비] 네트워크

유형찬·2022년 12월 17일
0

기술 면접 준비 for network

웹 통신의 큰 흐름 https://google.com 을 접속 할 때 일어 나는 일

  1. 먼저 DNS Lookup을 한다.

    1. DNS Lookup은 브라우저가 DNS 서버에게 google.com의 IP 주소를 물어보는 것이다.
    2. DNS 서버는 google.com의 IP 주소를 알고 있으므로 브라우저에게 IP 주소를 알려준다.
    3. 브라우저는 DNS 서버가 알려준 IP 주소를 가지고 google.com에 접속한다.
  2. 브라우저는 DNS Lookup 과정을 통해 얻은 IP에 접속한다.

    1. 브라우저는 google.com에 접속하기 위해 TCP/IP 프로토콜을 사용한다.
    2. TCP/IP 프로토콜은 3-way handshaking을 한다.
      1. 3-way handshaking은 브라우저가 google.com에 접속하기 위해 먼저 google.com에게 접속을 요청한다.
      2. google.com은 브라우저의 요청을 받고 브라우저에게 접속을 허가한다.
      3. 브라우저는 google.com의 허가를 받고 google.com에 접속한다.
    3. 브라우저는 google.com에 접속하고 HTTP 프로토콜을 사용하여 google.com에게 웹 페이지를 요청한다.
    4. google.com은 브라우저의 요청을 받고 브라우저에게 웹 페이지를 응답한다.
    5. 브라우저는 google.com의 응답을 받고 웹 페이지를 브라우저에 표시한다.

TCP VS UDP

  • TCP 는 연결 지향형 , UDP 는 비연결 지향형 프로토콜이다.
  • TCP -> 가상 회선 ( 신뢰성 , 느림 ) -> ( 혼잡 제어 , 흐름 제어 , 오류 제어)
  • UDP -> 데이터그램 ( 비신뢰성 , 빠름 ) -> ( 오류 제어 X , 흐름 제어 X , 혼잡 제어 X )
  • TCP : 파일 전송
  • UDP : 스트리밍 , RTP등 연속성 중요한 서비스 , 개발자가 직접 신뢰성 보장 가능 -> HTTP/3 QUIC 프로토콜로 신뢰성 보장 가능

TCP 3-way handshaking , 4-way handshaking

3-way handshaking

TCP 연결을 위한 절차 , 서버가 클라이언트에 응답 할 수 있는지

  • SYN : 연결 요청
  • SYN/ACK : 연결 수락
  • ACK : 연결 확인
  • SYN(N) -> ACK(N+1) -> , SYN(M) -> ACK(M+1) , 임의의 난수 N , M -> 기존 요청과 구분하기 위해

4-way handshaking

TCP 해제를 위한 절차 , 클라이언트 -> 서버 연결 해제 요청

  • 클라이언트 요청 -> 서버 확인 -> 클라이언트에 응답 후 연결 해제 -> 클라이언트 일정 시간 대기 후 연결 해제
  • 일정 시간 대기 후 해제 이유 : 패킷이 늦게 도착 할 수 있기 때문

HTTP VS HTTPS

  • HTTP : HyperText Transfer Protocol
  • HTTPS : HTTP + SSL/TLS
  • HTTP : 80번 포트 , HTTPS : 443번 포트
  • HTTP : 암호화 X , HTTPS : 암호화 O

HTTPS , SSL Handshaking

  • HTTPS : HTTP + SSL/TLS , 제 3자 인증 , 비대칭키 , 대칭키
  • SSL : Secure Socket Layer
  • SSL Handshaking : 클라이언트와 서버가 암호화 통신을 하기 위한 절차

Client Request -> Server Certification response -> Client Verify Certification

  • Certification : 비밀키로 암호화 , 공개키로 검증 가능 , 서버의 공개키 획득 가능
  • 서버의 공개키로 통신에 사용할 비밀키를 서버에 request
  • 공유된 비밀키로 통신
  • 비밀키 공유/암호화 : 통신
  • 인증기관/공개키 : 인증서
  • 복합적으로 사용하는 이유 -> 비대칭키 속도 < 대칭키 속도

HTTP METHOD

  • OPTIONS : SERVER Request URI 지원 여부 확인
  • GET : 서버로부터 리소스 요청
  • HEAD : GET과 동일 , 응답에 BODY X , Header 만 응답
  • POST : 서버에 리소스 생성 요청
  • PUT : 서버에 리소스 생성/수정 요청
  • DELETE : 서버에 리소스 삭제 요청
  • TRACE : 서버에 요청 메시지를 그대로 반환
  • PATCH : 서버에 리소스 일부 수정 요청

HTTP STATUS CODE

  • 1xx : 요청 수신
  • 2xx : 요청 성공
  • 3xx : 요청 완료 , 리다이렉트
  • 4xx : 요청 오류
  • 5xx : 서버 오류
profile
rocoli에요

0개의 댓글