안녕하세요 허언증 입니다.
책에 있는 내용을 이해하고 서술 하듯 글을 적어 내려 갑니다. 저도 공부하는 차원에서 정리하는 글 이고 네트워크 과정에서 생략되는 부분도 발생할 수 있기 때문에 부족한 점도 있다는거 인지 하시고 편안하게 읽어주세요!! 역사처럼 물 흐르는식으로 스타일로 글을 작성합니다.
TCP/IP, 서브넷, 넷마스크, 라우터, 허브, DNS, 프로토콜, 메모리, DHCP 에 대해 알고 계시면 이해 할 때 도움이 됩니다. 모른다고 하셔도 읽으시는데 불편함 없이 최대한 적을 것이며, 중간중간 링크를 통해 정보를 제공 해 드리겠습니다.
chapter01을 요약하면
1. HTTP 리퀘스트 메시지를 작성한다.
2. 웹서버의 IP주소를 DNS 서버에 조회한다.
3. 전 세계의 DNS서버가 연대한다.
4. 프로토콜 스택에 메시지 송신을 의뢰한다.
chapter01이 끝나면 4개의 과정을 알 수 있게된다.
1. HTTP 리퀘스트 메시지를 작성한다.
URL 입력 -> 브라우저에서 URL 해독 -> 액세스대상 확인 -> 해당 프로토콜 서버로 전송 -> 서버가 다시 클라이언트로 응답 전송
URL 입력
흔히 말하는 주소창에 형식에 맞게 입력을 하면 된다.
URL -> 브라우저에서 URL 해독
URL 에는 프로토콜종류, 사용자명, 패스워드, 서버측 포트번호, 도메인 등 다양한 정보가 있다.
URL입력을 하면 제일 먼저 웹브라우저에서 해독을한다. 해독을 하는 이유는 URL 정보에 프로토콜종류를 확인하기 위해서다.
URL 입력 -> 브라우저에서 URL 해독 -> 액세스대상(프로토콜) 확인 후 -> 해당 프로토콜 서버로 전송
해독이 끝나면 웹브라우저가 해당 프로토콜 형식으로 전송을 해 준다.
앞 내용 생략...-> 해당 프로토콜 서버로 전송 -> 서버가 다시 클라이언트로 응답 전송
메시지를 잘 받았다는 표시를 클라이언트 측으로 전송을 해줘야 클라이언트도 인지를 할 수 있기 때문에 전송을 하게된다. 이때 전송에 문제가 생겼다면 "스테이터스 코드"를 통해 오류를 검출한다.
참고 ! URL / HTTP프로토콜을 모른다면 Click!! Click!!
메시지는 보냈지만, 잊고있는 항목이 있습니다. 우리가 흔히 많이 들어왔던 IP 주소를 알아야 보낼 수 있는데 IP 주소를 확인 하는 과정이 없습니다. IP주소를 알아내는 방법에 대해 이야기 하도록 하겠습니다.
2. 웹서버의 IP주소를 DNS 서버에 조회한다.
브라우저는 URL 해독 및 HTTP메시지를 만들지만 네트워크에 송출하는 기능이 없기 때문에 OS에 의뢰를 해서 송신한다.
( 브라우저 - URL 해독 & HTTP메시지 제작 / OS(운영체제) - 네트워크 송출 )
(간단, 심화 두가지 형태로 풀어 적었습니다.)
가까운 DNS 서버에 요청 -> DNS서버로 부터 받은 IP주소를 사용
(간단)
가까운 DNS 서버에 요청
우리가 사용하는 컴퓨터는 이미 DNS를 설정을 했거나, 인터넷 회사로부터 자동으로 부여를 받았다. 설정 된 DNS가 IP주소를 요청을 한다.
가까운 DNS 서버에 요청 -> DNS서버로 부터 받은 IP주소를 사용
요청을 보낸 후 받은 IP 주소를 이용해서 브라우저에게 전달을 한다.
Ex)
우선순위 : 1순위-네이버 / 2순위-다음
1) 네이버를 조회해줘.
1-1) 1순위 명령을 잠시 중지하고 DNS 명령을 실행한다. (IP를 알기 위해서)
2) 1순위 네이버를 잠시 멈추고, 그 다음 순서 인 다음을 실행함
1-2) DNS명령을 통해 IP주소를 알게 되면 다음 실행을 중지하고 첫 번째 명령을 진행 함
DNS서버가 왜 필요한가? Click!! Click!! (준비중)
리졸버가 DNS서버에 요청 -> 서버로 응답을 받음 -> 리졸버가 메모리에 IP저장
-> 브라우저가 메모리에 접근 후 IP습득 (HTTP 메시지와 OS에 IP주소를 건네준다)
(심화)
*리졸버란?
:DNS서버 / DNS클라리언트가 있다. 둘 중 DNS클라이언트를 리졸버라고 말한다. 또는
DNS 클라이언트 = DNS 리졸버 = 리졸버 3가지 형태로 불려진다.
DNS를 이용해 IP주소를 확인을 "네임 리졸루션" 이라고 한다.
리졸버는 Socket 라이브러리에 있으며, Socket 라이브러리는 OS 프로토콜 스택과 명령을 주고 받는다
리졸버가 DNS서버에 요청 (*위 사진 참고!! 그림1-12)
URL에 HTTP 요청한 클라이언트PC = 리졸버 / 현재 명령을 미완료 처리(멈춤)하고, 다음 명령을 계속 처리한다.
리졸버가 DNS서버에 요청 -> 서버로 응답을 받음
두 번째 명령을 처리 하던 중 리졸버가 DNS 서버로부터 IP주소를 획득!
리졸버가 DNS서버에 요청 -> 서버로 응답을 받음 -> 리졸버가 메모리에 IP저장
획득한 IP주소를 자신의PC의 메모리에 저장
리졸버가 DNS서버에 요청 -> 서버로 응답을 받음 -> 리졸버가 메모리에 IP저장 -> 브라우저가 메모리에 접근 후 IP습득 (HTTP 메시지와 OS에 IP주소를 건네준다)
브라우저가 메모리에 접근 후 IP 얻고 해당 프로토콜 메시지에 IP 입력 , OS에 IP를 건네준다.
DNS서버와 통신할 때는 IP가 필요없는가??? 어떻게 IP도 모르는데 통신이 가능한가?
DNS서버와 클라이언트(리졸버) 송신할때도 DNS서버의 IP주소가 필요하다. 하지만 우리는 이미 DNS서버의 IP는 설정을 한 상태이다. 직접설정을 한 경우와 인터넷 회사측에서 DHCP로 부여한 경우 2가지로 나뉘며 DNS서버는 크게 신경을 안 써도 되는 부분이다.
너무 길어져서 다음게시글에 계속 이어가도록 하겠습니다.
'# Study > [ 성공과 실패를 결정하는 1%의 네트워크원리 ]' 카테고리의 다른 글
[허언증/네트워크] chapter03-① (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.15 |
---|---|
[허언증/네트워크] chapter02-③ (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.11 |
[허언증/네트워크] chapter02-② (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.10 |
[허언증/네트워크] chapter02-① (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.09 |
[허언증/네트워크] chapter01-② (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.08 |