개발/네트워크 & Ubuntu

브라우저 Parallel connection 확인하기

EVEerNew 2024. 1. 9. 11:07
반응형

 

 

 

HTTP의 패킷 이동을 보기 위해 wire shark를 확인하던 중 이론과 다른 부분을 확인했다.

 

HTTP 1.1 version에서는 keep-alive로 설정 시 하나의 connection에서 요청과 응답이 오고 가야 한다.

이를 실습을 통해 확인해 보자.

 

 

실습환경

 

 

 

 

 

 

패킷 분석

 

client에서 server로의 3 way handshake가 진행되어, 세션이 맺어진다.

 

 

이 세션 내에서 client가 HTTP GET main html파일을 요청한다.

 

 

 

이에 대한 응답이 확인된다.

 

 

Nginx는 기본적으로 keep-alive timeout이 75초로 세팅되어 있으므로,

75초간 서로 간의 통신이 더 이상 없을 땐 세션이 종료된다.

 

 

 

 

 

그런데 확인해 보면 3개의 image를 각각 새로운 세션을 새로 맺어서 iamge를 GET 해온다.

 

 

 

포트 번호도 다른 것이 확인이 된다.

 

 

 

 

Parallel Connection

 

Keep alive라고 단 한 개의 port만 사용하면 순차적 전송을 기다려야 하므로, 클라이언트의 여러 포트와 병렬적인 connection을 맺어 넓은 대역폭의 사용한다.

 

TCP/브라우저의 자체적인 최적화로, 병렬연결이 진행한다.

 

Nginx setting에서도 최대 keep-alive connection 개수 제한 가능하다.

 

아쉽게도 사용하는 파이어폭스는 왼쪽처럼 connection limit이 없어서 한 개의 connection 만에서 진행되는 HTTP 실습은 하지 못하였다.

 

 

다시 캐시를 지우로 로딩을 해보면, 하나의 connection에서도 여러 가지 요청이 나가는 persistent conncetion도 확인이 된다.

 

 

 

 

 

반응형