웹 브라우저(클라이언트)와 웹 서버의 연결 개요
1%의 네트워크 원리 (01) - 개요
탐험 여행의 흐름
데이터 -> 패킷, 패킷, 패킷, …
스위치, 라우터: 우체국, 택배 집하장
- 웹 브라우저
- 프로토콜 스택, LAN 어댑터
- 허브, 스위치, 라우터
- 액세스 회선, 프로바이더
- 방화벽, 캐시 서버
- 웹 서버
1. 웹 브라우저
사용자 -> 웹 브라우저 -> 프로토콜 스택
- 사용자가 웹 브라우저에 URL 입력
- 웹 브라우저가 URL의 의미에 따라 Request 메시지 생성
- OS에 내장된 네트워크 제어용 소프트웨어에 의뢰해 데이터 넘김
2. 프로토콜 스택, LAN 어댑터
프로토콜 스택 -> LAN 어댑터 -> LAN 케이블
- 프로토콜 스택이 브라우저에서 받은 메시지를 패킷 속에 저장, 제어 정보 추가(수신처 주소 등)
- 패킷을 LAN 어댑터에 전달
- LAN 어댑터가 전기 신호로 변환
- LAN 케이블에 송출해 패킷이 네트워크 속으로 들어감
프로토콜 스택
- OS에 내장된 네트워크 제어용 소프트웨어
3. 허브, 스위치, 라우터
LAN 어댑터 —패킷–> 스위칭 허브 등 -> 인터넷 접속용 라우터 -> 통신사(프로바이더)(인터넷)
클라이언트 PC -> 가정·회사의 LAN -> ADSL·FTTH 등의 광대역 회선에 의해 인터넷에 접속
- 인터넷에 접속하는 형태에 따라 상이
4. 액세스 회선, 프로바이더
액세스 회선(인터넷 입구) -> 프로바이더/(POP, 통신사용 라우터)
라우터 라우터 라우터 라우터 라우터 …
- 인터넷의 내부
5. 방화벽, 캐시 서버
.. —패킷–> 방화벽 -> 캐시서버 -> 웹 서버 측의 LAN
6. 웹 서버
.. —패킷–> 웹 서버 기계 -> 프로토콜 스택 —원래 리퀘스트 메시지–> 웹 서버 애플리케이션
패킷이 거치는 경로
1 클라이언트
1-1 사용자
http://cyber.co.kr
URL 입력http://cyber.co.kr
1-2-1 웹 브라우저
- URL을 해석해 HTTP 메시지 생성
- 소켓 라이브러리에 전달
HTTP 메시지
1-2-2 소켓 라이브러리
- 받은 HTTP 메시지를 송신 데이터로 프로토콜 스택에 전달
HTTP 메시지
1-3-1 프로토콜 스택 - TCP
- 송신 데이터를 패킷의 길이에 맞게 분할
- TCP 헤더 부가
- IP에 전달
TCP HTTP조각
1-3-2 프로토콜 스택 - IP
- 패킷에 IP 헤더 부가
- MAC 주소 조사 후 MAC 헤더 부가
- LAN 드라이버에 전달
MAC IP TCP HTTP조각
1-4 LAN 드라이버
- LAN 어댑터에 송신 패킷 전달
- 송신 지시
MAC IP TCP HTTP조각
1-5 LAN 어댑터
- 이더넷 송신 가능 상태 확인
- 패킷을 전기 신호로 변환
- 트위스트 페어 케이블에 전달
전기신호
2 클라이언트측 LAN
2-1 트위스트 페어 케이블
- 신호가 트위스트 페어 케이블을 통해 리피터 허브로 이동
전기신호
2-2 리피터 허브
- 신호를 모든 포트로 전송
- 스위칭 허브로 이동
전기신호
2-3 스위칭 허브
- 도착한 패킷의 수신자 MAC 주소의 값과 자기 속에 있는 주소 테이블을 대조해 출력할 곳의 포트를 판단
- 포트에 패킷 중계
MAC IP TCP HTTP조각
2-4 라우터
IP TCP HTTP조각
- 도착한 패킷의 수신자 IP 주소의 값과 저장된 라우팅 테이블의 내용을 대조해 출력 포트를 판단
- 포트에 패킷 중계
MAC PPPoE PPP IP TCP HTTP조각
2-5 ADSL 모뎀
- 도착한 패킷을 ATM 셀로 분할
# # # # # #
- ATM 셀을 전기 신호로 변환해 전화선에 내보냄
전기신호
3 액세스 회선
3-1 DSLAM(전화국용 집합 모뎀)
- 전기 신호가 전화선을 통해 전화국이나 아파트 안의 통신실의 DSLAM에 도착
- 수신한 전기 신호를 ATM 셀의 형태로 되돌려 광대역 액세스 서버로 전송
# # # # # #
3-2 BAS(광대역 액세스 서버)
- ATM 셀을 패킷 형태로 만들고 수신자 주소를 살펴본 후 패킷을 중계
MAC PPPoE PPP IP TCP HTTP조각
3-3 터널
L2TP PPP IP TCP HTTP조각
- BAS가 중계한 패킷은 L2TP 헤더가 붙음
3-4 터널링용 라우터
- 터널 출구에 있는 터널링용 라우터에 패킷 도착
- L2TP 헤더, PPP 헤더 분리
- 인터넷을 통과해 웹 서버측으로 이동
XXX IP TCP HTTP조각
4 프로바이더(인터넷)
5 웹 서버측 LAN
5-1 방화벽
MAC IP TCP HTTP조각
- 서버측의 LAN에 있는 방화벽이 들어온 패킷을 검사
- 통과시킬지 차단할지 판단
MAC IP TCP HTTP조각
5-2 캐시 서버
- 웹 서버 바로 앞에 캐시 서버가 설치될 수 있음
- 방화벽을 통과한 패킷을 캐시 서버가 가로챔
- 사용자가 요청한 페이지가 캐시 서버에 저장되어 있으면 웹 서버를 대신해 해당 페이지를 되돌려보냄
MAC IP TCP HTTP조각
6 웹 서버
6-1 LAN 어댑터
- 캐시 서버에 페이지가 저장되어 있지 않으면 여기에서 요구가 전송됨
6-2 LAN 드라이버
- 웹 서버에 패킷이 도착
- LAN 어댑터, LAN 드라이버가 연대해 패킷 수신
- 프로토콜 스택에 전달
MAC IP TCP HTTP조각
6-3-1 프로토콜 스택 - IP
- IP 헤더, TCP 헤더 검사
- 오류가 없으면 패킷에서 HTTP 메시지의 조각을 추출해 원래 모습으로 복원
TCP HTTP조각
6-3-2 프로토콜 스택 - TCP
HTTP 메시지
6-4-1 소켓 라이브러리
- 원래 모습으로 돌아온 HTTP 메시지를 웹 서버에 전달
HTTP 메시지
6-4-2 웹 서버
- 받은 HTTP 메시지 내용을 해석
- 요청하는 내용에 따라 데이터를 추출해 클라이언트에 반송
주요 키워드
01 웹 브라우저가 메시지를 만든다
- 브라우저
- 웹 서버
- URL
- HTTP
- HTML
- 프로토콜
- URI
- 리퀘스트 메시지
- 리졸버
- Socket 라이브러리
- DNS 서버
- 도메인명
02 TCP/IP의 데이터를 전기 신호로 만들어 보낸다
- TCP/IP
- 소켓
- 프로토콜 스택
- IP 주소
- 포트 번호
- 패킷
- 헤더
- LAN 어댑터
- LAN 드라이버
- MAC 주소
- 이더넷 컨트롤러
- ICMP
- UDP
03 케이블의 앞은 LAN 기기였다
- LAN
- 트위스트 페어 케이블
- 크로스토크
- 리피터 허브
- MDI
- MDI-X
- 스위칭 허브
- 전이중
- 반이중
- 충돌
- 자동 조정
- 라우터
- 경로표
- 넷마스크
- 기본 게이트웨이
- 조각 나누기
- 주소 변환
- 글로벌 주소
- 프라이비트 주소
04 액세스 회선을 통해 인터넷의 내부로
- ADSL
- FTTH
- 광섬유
- 액세스 회선
- ADSL 모뎀 일체형 라우터
- ATM
- 셀
- 직교 진폭 변조
- 스플리터
- DSLAM
- 브로드밴드 액세스 서버
- 리모트 액세스 서버
- PPP
- 네트워크 오퍼레이션 센터
- 광섬유
- IX(Internet eXchange)
05 서버측의 LAN에는 무엇이 있는가?
- 방화벽
- 패킷 필터링
- 데이터센터
- 라운드 로빈
- 부하 분산 장치
- 캐시 서버
- 프록시
- 프록시 서버
- 콘텐츠 배포 서비스
- 리다이렉트
06 웹 서버에 도착하여 응답 데이터가 웹 브라우저로 돌아간다
- 응답 메시지
- 멀티태스크
- 멀티스레드
- 가상 디렉토리
- CGI
- 폼
- 액세스 제어
- 패스워드
- 데이터 형식
- MIME
참고
성공과 실패를 결정하는 1%의 네트워크 원리