1. 브라우저 및 웹서버(일단 전반적인 것)
참고 사진 및 링크
1. URL을 입력한다.
2. DNS서버에서 입력된 URL과 매핑되는 IP를 찾는다. 이를 리턴한다.
3. IP주소는 HTTP 프로토콜을 통해 HTTP 요청메시지를 생성한다.
4. 요청메시지는 TCP를 사용해 인터넷을 거쳐 서버로 전송된다.
5. 서버는 요청 메시지를 받고 이에 응하는 응답 메시지를 보낸다.
6. 도착한 HTTP 응답 메시지는 HTTP 프로토콜 통해서 웹페이지 데이터로 변환되어 출력된다.
참고 사진
(여기서부터는 이곳 참고하였음. 일단 무슨 말인지 모르겠으나 내 식대로 해석해서 이해하면 다음과 같음) : 약간 하드웨어 부분도 들어가는 쪽.
2. 프로토콜 스택 & LAN 어댑터
- 프로토콜 스택(운영체제에 내장된 네트워크 제어용 소프트웨어)이 브라우저로부터 메시지를 받는다.
- 브라우저로부터 받은 메시지를 패킷 속에 저장한다.
- 그리고 수신처 주소 등의 제어정보를 덧붙인다.
- 그런 다음, 패킷을 LAN 어댑터에 넘긴다.
- LAN 어댑터는 다음 Hop의 MAC주소를 붙인 프레임을 전기신호로 변환시킨다.
- 신호를 LAN 케이블에 송출시킨다.
- 프로토콜 스택이 정확히 어떻게 생긴 것인지는 모르겠으나 OS에 내장된 네트워크 제어용 소프트웨어라는 것이라는 것만 알고 가고, 일단 얘가 위에서 본 메시지를 받는다.
- 그리고 이 메시지를 패킷에 넣고 여기에 수신처 주소 등의 제어 정보를 덧붙인다.
- 패킷은 혼자 두면 갈 수 없으니 LAN에 태운다.
- 그럼 이걸 홉이라고 해서 출발지와 목적지 사이에 위치한 경로의 부분이라고 하는, 이동할 때마다 하나씩 생겨서 목적지까지 갈 수 있게 도와주는 걸 해준다. 그리고 이를 전기신호로 바꾼다.
- 이후 송출
3. 허브, 스위치, 라우터
- LAN 어댑터가 송신한 프레임은 스위칭 허브를 경유하여 인터넷 접속용 라우터에 도착한다.
- 라우터는 패킷을 프로바이더(통신사)에게 전달한다.
- 인터넷으로 들어가게 된다.
- 전기신호로 송출된 패킷은 우리가 아는 그 기계 '허브'를 경유해서 라우터에 도착한다.
- 라우터가 그 패킷을 프로바이더인 통신사(우리가 아는 KT, SKT...겠지..?)에 보낸다.
- 그 덕에 인터넷으로 들어간다.
그냥 허브-공유기-통신사 이 순서 같긴 하다. 일단 뒤에서 자세히 살펴보자
4. 엑세스 회선, 프로바이더
- 패킷은 인터넷의 입구에 있는 액세스 회선(통신 회선)에 의해 POP(Point Of Presence, 통신사용 라우터)까지 운반된다.
- POP 를 거쳐 인터넷의 핵심부로 들어가게 된다.
- 수 많은 고속 라우터들 사이로 패킷이 목적지를 향해 흘러가게 된다.
- 패킷은 인터넷 입구에 있는 통신사용 라우터까지 엑세스 회선이라는 것을 통해 이동한다.(아까 랜에서 보내던거 계속 떠올리며 생각하기)
- 인터넷 핵심부에 이동한 패킷은 목적지까지 흘러가게 된다.
현재 상황 : 통신사 인터넷 안에서 목적지를 향해 가고 있는 패킷
5. 방화벽, 캐시서버
- 패킷은 인터넷 핵심부를 통과하여 웹 서버측의 LAN 에 도착한다.
- 기다리고 있던 방화벽이 도착한 패킷을 검사한다.
- 패킷이 웹 서버까지 가야하는지 가지 않아도 되는지를 판단하는 캐시서버가 존재한다.
- 웹서버의 LAN에 패킷이 도착하면 방화벽이 패킷이 멀쩡한지 검사를 한다.
- 웹서버에 가기 전에 캐시 서버라는 것이 패킷을 결정한다. 못 들어간 것 중 이용할 수 있는 것이 있으면 캐시 서버에 저장해서 써 먹는다.
6. 웹 서버
- 패킷이 물리적인 웹 서버에 도착하면 웹 서버의 프로토콜 스택은 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다.
- 메시지를 받은 웹 서버 애플리케이션은 요청 메시지에 따른 데이터를 응답 메시지에 넣어 클라이언트로 회송한다.
- 왔던 방식대로 응답 메시지가 클라이언트에게 전달된다.
- 도착한 패킷은 아까 싸였던 것이 그대로 벗겨지면서 메시지를 복원하고 웹서버 앱에 남긴다.
- 요청받은 메시지에 따른 응답을 회송한다.
- 클라이언트는 전달 받는다.