# Study/[ 성공과 실패를 결정하는 1%의 네트워크원리 ]

[허언증/네트워크] chapter01-① (성공과 실패를 결정하는 1%의 네트워크 원리)

이론과 실습 사이 2020. 2. 2. 21:56
반응형

안녕하세요 허언증 입니다.

 

책에 있는 내용을 이해하고 서술 하듯 글을 적어 내려 갑니다. 저도 공부하는 차원에서 정리하는 글 이고 네트워크 과정에서 생략되는 부분도 발생할 수 있기 때문에 부족한 점도 있다는거 인지 하시고 편안하게 읽어주세요!! 역사처럼 물 흐르는식으로 스타일로 글을 작성합니다.

 

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주소를 알게 되면 다음 실행을 중지하고 첫 번째 명령을 진행 함

성공과 실패를 결정하는 1%의 네트워크 원리 / 그림1-12 참고

 

 

 

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서버는 크게 신경을 안 써도 되는 부분이다.

 

 

 

 

 

 

 

 

너무 길어져서 다음게시글에 계속 이어가도록 하겠습니다.

 

 

 

 

반응형