URL이라는 것을 일단 설명해야한다. URL은 Uniform Resouce Locator의 약자로서 resource를 어디서 어떤 방법으로 받을지 설명하는 식별자이다. 보통 protocol(ex> http) + domain name(ex> www.naver.com) + path(ex> /login) 로 이루어져 있다.
이 URL을 입력하거나 클릭하면 아래와 같은 과정을 거쳐 resource를 불러온다.
hostname이 ip로 변환되는 과정이다. 이때 라우팅 테이블이라는 것을 통해 목적지의 정보를 찾아갈 수 있다. 라우팅 테이블을 통해 서브 네트워크로 이동하여 목적지 ip로 찾아가는데 이러한 과정을 홉바이홉(hop by hop)이라고 한다.
컴퓨터간의 통신은 IP주소를 기반으로 통신한다고 알고 있지만 정확히 말하면 IP주소를 ARP라는 것을 통해서 물리적 주소, 즉
MAC(Media Access Control) 주소로 변환한 다음 MAC주소를 이용해서 통신한다.
MAC주소는 12개의 숫자+알파벳으로 이루어져 있다. 우리는 네이버 서버로 향하는 여정위에 있다. 예를들어 네이버 IP주소가 120.70.80.3
라고 할때, 이 IP주소를 가지고 있는 MAC주소를 찾아야한다.
그럼 이 네이버 IP주소를 가진 컴퓨터가 IP주소를 변환하여 MAC주소를 알려준다. A6:BE:C3:D3:E3:F1
이라고. 그럼 드디어 네이버 데이터 센터안에 있는 서버에 도착하였다! 이제 관문앞에서 우리가 요청한 resource를 받을 수 있는 자격이 있다는 것을 알려줘야한다.
여러가지 방법으로 연결이 되지만 TCP(Transmission Control Protocol)에 의한 three-way handshake
라는 기법을 설명해보려고 한다.
TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 three-way handshake
라는 기법을 사용한다.
TCP three-Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.
[STEP 1]
A클라이언트는 B서버에 접속을 요청하는 SYN(Synchronize) 패킷을 보낸다. 이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.
[STEP 2]
B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK(Acknowledgement) 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.
[STEP 3]
A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는것이다. 이때의 B서버 상태가 ESTABLISHED 이다.위와 같은 방식으로 통신하는것이 신뢰성 있는 연결을 맺어 준다는 TCP의 3 Way handshake 방식이다.
DOM 트리 구축
랜더트리와 랜더 레이어 생성
랜더 레이어 대상으로 layout 설정
랜더레이어를 대상으로 칠하기(paint)
레이어 합치기(composite layer) 및 표기
위의 과정을 critical rendering path라고 한다. 더 자세하게 알아보고 싶으면 아래 링크를 들어가보자
그럼 tcp/ip 4계층에 대해서 좀 더 자세히 알아보자