네트워크 - 실생활에서의 네트워크
컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.
-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의
지금까지 다양한 계층들에 대해 배우면서 다양한 프로토콜들이 존재했습니다.
실 생활에서 네트워크 상에서 뭔가 작업을 한다면
어떤 과정을 거치는지 정리해봅니다.
가정.
-
‘나’는 노트북을 가지고 구글에 접속하고자 한다.
-
야외의 어떤 네트워크에서 브라우저를 키려한다.
이때 어떤 과정을 거쳐 웹 페이지를 가져오는가?
과정
1. IP 주소 얻기
노트북을 이용해서 네트워크에 접속하고자 합니다.
이 때 새로운 환경에 들어서서 IP 주소
가 할당 되어있지 않은 상황입니다.
그렇다면 IP 주소
를 할당 받기 위해 DHCP
가 필요합니다.
DHCP : Dynamic Host Configuration Protocol
DHCP
를 이용해서 컴퓨터에 IP 주소
를 할당 받았습니다.
2. DNS 시스템과 First hub 라우터 IP 주소 얻기
그 다음으로 필요한 것은 외부로 나가기 위해서
‘나’의 네트워크가 포함된 서브넷을 담당하는
라우터의 IP 주소
를 알아야합니다.
또 google.com
에 접속하기 위한 DNS 서버의 주소
를 알아야 합니다.
이것들에 대한 정보를 얻는 과정은 아래와 같습니다.
DHCP request
가 UDP
에 담겨 전송이 됩니다.
전송이 되는 와중에 프레임이 된 데이터는 어디로 전송 되어야 할지 모릅니다.
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 연결하기
응용 레이어 프로토콜 공부 할 때,
HTTP
는 TCP
위에서 동작하기 때문에 TCP 연결
을 먼저 만들어야 됩니다.
이것을 하기 위해서는 TCP 3-way handshaking
을 합니다.
TCP
에 SYN Flag
를 세팅을 해서 SYN segment
를 먼저 구글 서버에 보내게 됩니다.
그럼 구글 서버는 거기에 ACK 메시지
를 전송 해줍니다.
ACK 메시지
를 받아서 ACK
를 만들어서 전송합니다.
이렇게 TCP
가 연결이 되었습니다.
HTTP : HyperText Transfer Protocol
TCP : Transmission Control Protocol
6. 연결 완료
HTTP request message
를 아까 만들었던 TCP
연결 상에서 보내고,
그것을 받은 웹 서버는 HTTP reply
를 통해서 웹페이지를 전송 해 주면
그것이 이제 화면으로 나올 수 있고 마침내 웹페이지가 연결이 됩니다.