Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
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도 확인이 된다.
'개발 > 네트워크 & Ubuntu' 카테고리의 다른 글
GNS3를 사용한 static Routing 테스트 (1) | 2024.01.21 |
---|---|
[Virtual Box] Ubuntu server FTP 서버 설치 및 구성 (0) | 2024.01.18 |
Ubuntu server - DNS 서버 설치 및 구성 (1) | 2024.01.07 |
Ubuntu server - Nginx 설명 및 설치 (1) | 2024.01.07 |
[Virtual Box] 포트 포워딩으로 SSH 접속하기 (0) | 2024.01.02 |