이미지 출처 : https://avahack.medium.com/networking-for-devops-bf2a0aca5813
요청: Leon requested naver.com GET /
역할 주체: 사용자 브라우저
요청: naver.com GET / (IP: ?)
역할 주체: 브라우저 / OS
요청: Get IP of naver.com
역할 주체: 로컬 DNS 리졸버 (보통 ISP 제공)
요청: IP 1.1.1.9 (from DNS)
역할 주체: DNS 서버
요청: 1.1.1.9 GET /
역할 주체: 사용자 OS → 로컬 라우터
요청: ARP 또는 L2 주소 확인
역할 주체: 로컬 라우터 (L2 계층 포함)
요청: 1.1.1.9 GET /
역할 주체: 로컬 라우터
요청: 1.1.1.9 GET /
역할 주체: ISP 라우터 (인터넷 백본 또는 엣지 라우터)
요청: 1.1.1.9 GET /
역할 주체: 상위 ISP 라우터 또는 트랜짓 라우터
요청: 1.1.1.9 GET /
역할 주체: IDC 인접 ISP 라우터
2.2.2.9 sent GET / to your 1.1.1.9
역할 주체: 방화벽(Firewall), Load Balancer, Edge Router
2.2.2.9 sent GET / to your port 80
역할 주체: Platform Router 또는 L3/L4 Switch
Respond index.html(resource of /) to 2.2.2.9
역할 주체: 웹 서버 (Apache, Nginx 등) + 네트워크 라우터
단계 | 동작 내용 | 주체 (행동 주체) | 역할 및 설명 |
---|---|---|---|
1 | Leon requested naver.com GET / | 사용자 (브라우저) | 도메인 기반 요청 시작. URL을 브라우저에 입력함. |
2 | naver.com GET / (IP: ?) | 브라우저 / OS | 아직 IP를 모름 → DNS 조회 필요. |
3 | Get IP of naver.com (DNS) | 로컬 DNS 리졸버 | DNS 쿼리 전송. 도메인 이름에 대한 IP 주소 질의 수행. |
4 | IP 1.1.1.9 (from DNS) | DNS 서버 | naver.com의 실제 IP를 응답 (예: A record). |
5 | 1.1.1.9 GET / 요청 생성 | 로컬 네트워크의 라우터 | IP 주소를 받은 후 HTTP 요청을 생성하여 라우터로 전달. |
6 | L2 주소 확인 | 로컬 라우터 (L2) | 목적지가 동일 네트워크인지 판단. ARP/MAC 주소 조회. |
7 | 1.1.1.9 GET / 패킷 전송 | 라우터 | 외부 목적지(IP)로 패킷을 전송. ISP로 라우팅 시작. |
8 | L3 목적지 확인 → 라우팅 테이블에서 다음 홉 결정 | ISP 라우터 (L3) | 목적지 IP 기반으로 다음 홉 결정, 라우팅 수행. |
9 | 목적지로 패킷 전송 | 중간 ISP 라우터 | 패킷을 더 상위 ISP 또는 목적지 IDC로 전달. |
10 | (8과 동일) | 상위 ISP 라우터 | 동일하게 다음 홉으로 전달 (Transit 또는 Peering). |
11 | 2.2.2.9 sent GET / to your 1.1.1.9 | IDC 엣지 라우터 / 방화벽 | 외부 요청 수신. 방화벽이 포트 검사, 정책 적용 후 내부로 전달. |
12 | 내부 라우팅 → 포트 80으로 전달 | IDC 내부 L3 라우터 또는 L4 스위치 | 내부 네트워크 내 적절한 웹 서버의 포트 80으로 요청 전달. |
13 | index.html 응답 생성 및 송신 | 웹 서버 (Apache/Nginx) + 내부 라우터 | 요청된 리소스를 생성하고, 응답 패킷을 외부 클라이언트에게 전송. |
이미지 출처 : https://www.webnic.cc/domain-names/what-is-a-domain-name-server-dns-and-how-it-works/
웹사이트 접속 시 서버-클라이언트 모델 동작 과정
네트워크 통신에 필요한 메시지를 구성한다.
OSI 7계층을 따라 상위 계층부터 하위 계층으로 데이터에 헤더를 추가한다.
[Application / Presentation / Session Layer]
[Transport Layer]
[Network Layer]
Network Layer에서는 자신의 IP 주소를
source-ip
영역에, DNS를 통해 조회한 서버의 IP 주소를target-ip
필드에 넣어 IP 패킷을 만든다.
[Data Link Layer]
[Physical Layer]
송신자의 호스트 또는 로컬 라우터는 프레임을 검사하여
ISP 라우터는 다음을 수행한다.
목적지 IP를 포함한 메시지가 대상 서버가 있는 네트워크에 도달하면,
서버 컴퓨터의 운영체제는 다음을 수행한다.
서버가 클라이언트에게 응답을 보내는 경우,