네트워크 - 실생활에서의 네트워크

2021-02-17

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


지금까지 다양한 계층들에 대해 배우면서 다양한 프로토콜들이 존재했습니다.

실 생활에서 네트워크 상에서 뭔가 작업을 한다면

어떤 과정을 거치는지 정리해봅니다.

가정.

  1. ‘나’는 노트북을 가지고 구글에 접속하고자 한다.

  2. 야외의 어떤 네트워크에서 브라우저를 키려한다.

이때 어떤 과정을 거쳐 웹 페이지를 가져오는가?

과정

1. IP 주소 얻기

노트북을 이용해서 네트워크에 접속하고자 합니다.

이 때 새로운 환경에 들어서서 IP 주소가 할당 되어있지 않은 상황입니다.

그렇다면 IP 주소를 할당 받기 위해 DHCP가 필요합니다.

DHCP : Dynamic Host Configuration Protocol

DHCP를 이용해서 컴퓨터에 IP 주소를 할당 받았습니다.

2. DNS 시스템과 First hub 라우터 IP 주소 얻기

그 다음으로 필요한 것은 외부로 나가기 위해서

‘나’의 네트워크가 포함된 서브넷을 담당하는

라우터의 IP 주소를 알아야합니다.

google.com에 접속하기 위한 DNS 서버의 주소를 알아야 합니다.

이것들에 대한 정보를 얻는 과정은 아래와 같습니다.

DHCP requestUDP에 담겨 전송이 됩니다.

전송이 되는 와중에 프레임이 된 데이터는 어디로 전송 되어야 할지 모릅니다.

DHCP 서버라던가 DNS 서버에 대한 정보가 없기 때문에 BroadCast됩니다.

그러면 DHCP를 직접 지원하고 있는 DHCP 서버ACK로 응답합니다.

이 때 DHCP 서버는 ‘나’의 서브넷을 담당하는 First hub 라우터의 주소

DNS 서버의 주소를 알려줍니다.

이렇게 해서 노트북은 자기의 IP 주소를 갖고

DNS 시스템First hub 라우터의 IP 주소를 가졌습니다.

DNS : Domain Name System

UDP : User Datagram Protocol

3. MAC 주소 얻기

그 다음에 해야 할 일은 구글 서버가 사용 하는 IP 주소를 가져 와야 되고

그걸 위해서는 DNS query를 날려야 됩니다.

시스템이 같은 서브넷에 있다면 DNS 시스템의 MAC 주소를 알아야하고,

다른 서브넷에 있다면 First hub 라우터의 MAC 주소를 알아야 됩니다.

DNS 시스템이나 First hub 라우터의 IP 주소는 알고 있기 때문에

DNS query를 날리기 위해서는 ARP를 사용해야 합니다.

ARP query 메시지를 날려서 First hub 라우터의 응답을 받아

First hub 라우터의 MAC 주소를 얻었습니다.

ARP : Address Resolution Protocol

4. DNS query로 목적지 IP 주소 얻기

이제 DNS query를 날릴 수 있게 되었습니다.

First hub 라우터의 MAC 주소를 담아서 전송 하면

라우터는 DNS 서버의 위치를 알고 있기 때문에 전달하게 됩니다.

DNS 서버는 거기에서 DNS query 메시지를 받아서 google.com이 사용하고 있는

IP 주소를 가지고 응답을 해 줍니다.

그렇게 해서 노트북에서는 구글 서버의 IP 주소를 알 수 있게 됩니다.

5. TCP 연결하기

응용 레이어 프로토콜 공부 할 때,

HTTPTCP 위에서 동작하기 때문에 TCP 연결을 먼저 만들어야 됩니다.

이것을 하기 위해서는 TCP 3-way handshaking을 합니다.

TCPSYN Flag를 세팅을 해서 SYN segment를 먼저 구글 서버에 보내게 됩니다.

그럼 구글 서버는 거기에 ACK 메시지를 전송 해줍니다.

ACK 메시지를 받아서 ACK를 만들어서 전송합니다.

이렇게 TCP가 연결이 되었습니다.

HTTP : HyperText Transfer Protocol

TCP : Transmission Control Protocol

6. 연결 완료

HTTP request message를 아까 만들었던 TCP 연결 상에서 보내고,

그것을 받은 웹 서버는 HTTP reply를 통해서 웹페이지를 전송 해 주면

그것이 이제 화면으로 나올 수 있고 마침내 웹페이지가 연결이 됩니다.