프로그래머는 과정을 이해하는 사람. 코드는 화면, Signal, 보고서 등으로 출력될 수 있다. 근본적으로 입력 -> 출력과정을 이해해야만 프로그래머이다.
대기열, 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고 이 후 브라우저렌더링 과정을 거쳐 네이버라는 화면이 나타나게 됩니다. 또한 이러한 과정이 캡슐화, 비캡슐화과정을 거쳐서 이뤄지게 됩니다.
브라우저는 주소창 입력에 대한 요청을 대기열에 넣는다.
요청된 값의 결과값을 저장하고 그 값을 다시 요청하면 다시 제공하는 기술. 공유프록시 캐시와 브라우저 캐시로 나뉘어진다.
브라우저가 요청의 IP 주소를 확인하는 단계이다. DNS는 도메인 이름과 IP주소를 매칭해주는 서버이다. 바로 DNS로 요청을 전달하는 것이 아닌 컴퓨터 메모리에 있는 호스트 파일 등 캐시를 확인한 후 캐시미스가 일어나면 DNS로 요청. DNS의 장점은 IP가 바뀌어도 똑같은 도메인으로 이동.
라우팅은 IP 주소를 찾아가는 과정이다(홉 바이 홉). 각각의 라우터에 있는 라우팅 테이블의 IP를 기반으로 패킷을 전달하고 다시 전달한다. 통신 장치에 있는 '라우팅 테이블'의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속해서 이동하는 '라우팅' 과정을 거쳐 패킷이 최동 목적지까지 도달하는 통신이다.
라우팅 테이블 : 송신지에서 수신지까지 도달하기 위해 사용되며 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어있는 리스트를 뜻한다. 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터 정보를 가지고 있다.
게이트웨이 : 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 말한다.
IP주소를 바탕으로 ARP를 통해 물리적인 서버 주소를 찾게 된다. IP주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신한다.
이와 반대로 RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 한다.
브라우저가 TCP 3웨이 - 핸드셰이크 및 SSL 연결 등을 통해 연결을 설정한다. 이후 요청을 보낸 후 해당 요청한 서버로부터 응답을 받는다.
브라우저는 서버로부터 응답을 수신한다.
크롬의 경우 HTML과 CSS가 각각 파서에 의해 해석되다 DOM 트리를 구축하고 렌더트리를 구축하는 등의 과정이 일어난다.
보내는 요청 값들이 캡슐화 과정을 거쳐 전달되고, 다시 링크 계층을 통해 해당 서버와 통신을 하고, 해당 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이저가 전송된다.
상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정이다.
하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정이다.
TCP/IP 4계층?1계층 네트워크 엑세스 계층 : OSI 7계층의 물리계층과 데이터 링크 계층에 해당되며 물리적인 주소로 MAC를 사용. LAN, 패킷망 등에 사용된다.2계층 인터넷 계층 : OSI 7계층의 네트워크 계층에 해당한다. 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당. 프로토콜 - IP, ARP, RARP 3계층 전송 계층 : OSI 7계층의 전송 계층에 해당한다. 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다. 프로토콜 - TCP, UDP 4계층 응용 계층 : OSI 7계층의 세션 계층, 표현 계층, 응요 계층에 해당한다. TCP/UDP 기반의 응용 프로그램을 구현할 때 사용. 프로토콜 - FTP, HTTP, SSH |
요청을 한 후 응답받는 첫 번째 바이트까지의 시간(Time to First Byte)을 나타낸다. 캐시, DNS, 초기연결, 요청, 응답 등 걸린 시간(컨텐츠 다운 시작 시간까지). 지금까지 설명한 과정이 "빠르게" 나타나야 한다.
메타버스란? (0) | 2022.07.12 |
---|---|
알고리즘 & 자료구조 - 큐(Queues), 스택(Stacks) (0) | 2022.07.07 |
데브옵스란?(DevOps) (0) | 2022.07.06 |
쿠버네티스란(Kubernetes)? (0) | 2022.07.06 |
도커란 무엇인가(Docker) (0) | 2022.07.06 |
댓글 영역