기본 배경.

크롬의 목표

  • 속도 : 빠른 브라우저
  • 보안
  • 안정성 : 웹 앱 플랫폼
  • 단순함 : 복잡한 기술을 단순한 사용자 경험속에 녹이기.

크롬이 사용한 기술

  • 멀티 프로세스 모델 : 프로세스 및 메모리 격리. 각 탭당 보안 샌드박스 모델 제공.
  • 웹 프로그램 싱행의 주요 단계 : 리소스 가져오기, 페이지 레이아웃 및 렌더링, 자바스크립트 실행.
  • V8 : 오픈소스, 빠른 자바스크립트 엔진. node.js의 기본 엔진이기도 함.
  • Blink : 오픈소스, 빠른 표준 호환 레이아웃 엔진.
  • 학습 : 사용자 이용 패턴 수집, 분석을 통한 빠른 사용자 경험 제공.

모던 웹 앱

  • HTTP archive 프로젝트에 수집된 30만개의 문서를 분석
  • 한 페이지를 표시하는데 1280KB, 88개의 리소스, 15개 이상의 개별 호스트 연결이 필요.

사용자 입장에서 '충분히 빠름'이란?

  • 0 100ms : 바로 반응
  • 100 300 ms : 약간 인식되는 느림.
  • 300 1000ms : 기계가 동작하는 구나 인식.
  • 1s+ : 정신세계의 컨텍스트 전환
  • 10s+ : 나중에 해야지

네트워크 입장에서 리소스 요청의 수명

  1. Redirect, App Cache : 이미 가져온 리소스중에서 적절한 캐시관련 헤더(Expireds, Cache-Control 등)가 설정되어 있었다면 로컬 사본을 이용.
  2. DNS 질의
    • 크롬은 {스킴, 호스트, 포트}에 따라 재 사용되는 소켓 풀을 관리.
    • 프록시가 설정되어 있거나, 프록시 자동설정 스크립트(PAC)가 설정되어 있는지 확인. 설정되어 있다면 프록시에 대한 소켓 풀 관리. PAC는 URL에 따라 다른 프록시 설정이 가능.
    • DNS 질의는 인기있는 호스트거나 가까이있는 호스트 도메인일 경우 응답이 빠름.
  3. TCP 연결
    • 3-웨이 핸드쉐이킹 : 순차적으로 SYN/SYN_ACK/ACK가 이루어지다 보니 시간이 많이 소요.(full round-trip time).
    • HTTPS 요청일 경우 SSL핸드쉐이킹이 발생. 이는 추가로 2번의 라운드트립 지연이 발생할 수 있음. 다만 SSL세션이 캐시되어 있을 경우 한번의 라운드트립 시간에 연결 가능.
  4. HTTP 요청
    • HTTP 요청을 보내는데 필요한 시간 + 서버가 응답을 처리하는데 소요되는 시간 + 서버가 보낸 응답을 받는 시간.

미국 광대역통신망에서의 간 단계별 소요시간

  • DNS : 50 ms
  • TCP 핸드쉐이킹 : 80ms (1RTT)
  • SSL 핸드쉐이킹 : 160ms (2 RTT)
  • HTTP 요청 전송 : 40ms
  • 서버 처리 시간 : 100ms
  • 서버 응답 전송 : 40ms
  • 하나의 리소스 요청에 대해 470ms 소요. 그중 80%이상의 시간이 네트워크 연결에 소요된 시간.
  • 악조건 : 초기 TCP 윈도우 크기(4~15KB)가 서버 응답을 보내는데 적절치 않을 경우 한두번 더 RTT지연이 발생. SSL 연결의 경우 인증서를 못가져오거나 온라인 인증서 상태 확인(OCSP; Online Certificate Status Check)를 진행할 경우 수백에서 수천 밀리초의 지연이 추가 발생




원문 : http://aosabook.org/en/posa/high-performance-networking-in-chrome.html


눈큰아이입니다.

다들 며칠전부터 구글에서 내놓은 새로운 브라우저인 크롬(Chrome)에 대해 많은 글들을 보셨을 것 같아요. 나오자마자 시장점유율 1%를 차지했다는 소식도 들리는군요.

사실 크롬은 어떤 면에서는 새로운 브라우저이면서 한편으로는 아니지요.
크롬의 밑바탕이 되는 HTML엔진은 사파리나 구글폰에서 사용되는 웹킷(webkit)이고, 자바스크립트 엔진은 V8이고, 렌더링엔진은 무엇을 사용하는지 아직 잘 모르겠습니다.
따라서 기술적인 측면에서 보자면 아주아주 새로운 엔진의 등장이나 개념은 없는 셈입니다.

그러나 알게모르게 구글과 잘 조합되어있고(주소창에 그냥 검색어만 입력하면 구글에서 검색이 수행됩니다.), 각 탭이 개별 프로세스라는 점, 그리고 새로운 인터페이스를 시도할 수 있는 과거의 짐이 없는 브라우저임은 틀림없는 사실이지요.

참고로 탭이 개별 프로세스로 되어있는 것을 좋아하시는 분들이 많은데, 이러한 구조는 IE8에서도 구현이 되어있지요.

여하튼 웹 애플리케이션에 최적화된 새로운 브라우저의 등장을 여러가지 측면에서 환영합니다.

계속 써봐야겠어요.




구글이 재미있는 것을 많이 내놓는군요.


재미로 주소창에 다음 내용을 입력해보세요

about:memory
about:stats
about:network
about:internets
about:histograms
about:dns
about:cache
about:plugins
about:version
view-source: http://주소
about:%
about:hang


마지막 두개는 조심하세요 :)


  1. 2008.09.05 20:06

    비밀댓글입니다

+ Recent posts