[네트워크] 네트워크 지식

김나우·2022년 4월 30일
0

google를 접속할 때 일어나는 일

  1. 브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만들고, OS에 전송 요청

  2. 이 때 Domain으로 요청을 보낼 수 없기 때문에 DNS Lookup 수행

    DNS 룩업 과정

    브라우저 -> hosts 파일 -> DNS Cache 순서로 도메인에 매칭되는 ip를 찾음

  3. 이 요청은 프로토콜 스택이라는 OS에 내장된 네트워크 제어용 소프트웨어에 의해 패킷에 담김

  4. 패킷에 제어정보를 덧붙혀 LAN 어댑터에 전송하고,LAN 어댑터는 이를 전기신호로 변환시켜 송출

  5. 패킷은 스위치 허브 등을 경유하여 인터넷 접속용 라우터에서 ISP로 전달되고 인터넷으로 이동

  6. 액세스 회선에 의해 통신사용 라우터로 운반되고 인터넷의 핵심부로 전달
    고속 라우터들 사이로 목적지까지 패킷이 흘러들어가게 됨

  7. 핵심부를 통과한 패킷은 목적지의 LAN의 도착, 방화벽이 패킷을 검사한 후
    캐시 서버로 보내어 웹 서버에 갈 필요가 있는지 검사

  8. 웹 서버에 도착한 패킷은 프로토콜 스택이 패킷을 추출하여 메세지를 복원
    웹 서버 애플리케이션에 넘김

  9. 애플리케이션은 요청에 대한 응답 데이터를 작성하여 클라이언트로 회송
    이는 전달된 방식 그대로 전송


TCP와 UDP 차이

TCP는 연결 지향형 프로토콜, UDP는 데이터를 데이터그램단위로 전송하는 프로토콜

TCP는 가상 회선을 만들어 신뢰성을 보장하도록(흐름제어, 혼잡제어, 오류제어) 하는 프로토콜로, 따로 신뢰성을 보장하기 위한 절차가 없는 UDP에 비해 속도가 느린편

TCP는 파일전송과 같은 신뢰성이 중요한 서비스에 사용

UDP는 스트리밍, RTP와 같이 연속성이 더 중요한 서비스에 사용


TCP 3way handshake

TCP 3way handshake는 가상회선을 수립하는 단계다.

클라이언트는 서버에 요청을 전송할 수 있는지, 서버는 클라이언트에게 응답을 전송할 수 있는지
확인하는 과정이다.

SYN, ACK 패킷을 주고받으며, 임의의 난수로 SYN 플래그를 전송하고, ACK 플래그에는 1을
더한값을 전송합니다. 정확한 순서는 SYN -> ACK,SYN -> ACK


HTTP vs HTTPS

HTTP는 따로 암호화 과정을 거치지 않기 때문에 중간에 패킷을 가로챌 수 있고, 수정가능
따라서 보안이 약해짐

이를 보안하기 위해 나온것이 HTTPS, 중간에 암호화 계층을 거쳐서 패킷을 암호화함


profile
안녕하세요

0개의 댓글