IT 기획의 길

인터넷이 동작하는 원리(학교에서 구글에 접속하는 과정) 본문

IT 인프라/네트워크

인터넷이 동작하는 원리(학교에서 구글에 접속하는 과정)

완벽하기 쉽지 않지만 완벽해지려고 노력해야 한다 2021. 10. 8. 10:20

얼마전 박성범 님의 깃헙에서 읽게 된 글,

'인터넷이 동작하는 아주 구체적인 원리'를 보고 참 유익하다는 생각이 들어서,

보다 쉽게 많은 사람들이 읽기 편하도록 최대한 풀어서 써 보았습니다.

'인터넷이 어떻게 동작하는지 엄청 궁금하긴 한데.. 바로 이해할 정도의 지식이 없어서 못알아 듣겠어...@-@'

라고 느끼신 분이 읽어보시면 도움이 되지 않을까 하는 마음으로 제 기준 생소하거나 어렵거나

들어는 봤지만 개념이 확실치 않다고 생각되는 용어들을 네이버 지식 백과 및 여러 사이트에서 찾아 함께 써 보았습니다!

글을 읽다가, 뭔가 알쏠달쏭한 단어들을 따로 찾아보는 수고를 덜어주지 않을까 기대를 해 봅니다.

*아래의 내용 중 이 색으로 표시된 문장들은 모두 박성범’ 님의 글에서 발췌한 부분 입니다.

이 글에 등장하는 KT와 Google Fiber, 구글의 네트워크 구조, 노드의 IP 주소와 MAC 주소는 모두 간소화 또는 가정한 것이다. 또한 클라이언트와 서버가 패킷을 주고받는 전체 과정을 훑기 위해 프록시와 캐시는 생략했다.

'이 글에 등장하는 KT와 #Google Fiber ..'

: Google Fiber란, 구글의 광섬유 통신망/ IPTV 서비스, 한마디로초고속 인터넷 서비스’를 뜻합니다.

간단하게 와이파이라고 생각하면 이해가 쉬울 것 같네요. 더 읽어 보겠습니다!

' 구글의 네트워크 구조, 노드의 IP주소와...'

'IP 주소'라는 말은 많이 들어 보셨을거라 생각 합니다. IP주소는 드넓은 인터넷 상에서 네트워크에 연결되어 있는 특정 디바이스에 대한 유일한 주소, 식별자의 역할을 합니다. 인터넷을 통해 어떤 신호를 주고 받으려면 미리 정해진 식별 주소가 필요한데요, 국제적으로 약속한 주소가 바로 이 IP주소 라고 합니다. 그런데 여기 앞에 여기에 '노드' 라는 단어가 더 붙어있죠?ㅎㅎ

사실 '노드 주소'라는 단어가, 곧 노드의 IP주소 입니다!

노드 주소는 네트워크 시스템상의 노드를 정하기 위해 각각의 노드, 그러니까 하나의 기기에 부여한 주소입니다.

( TCP/IP를 사용한 인터넷이나 인트라넷의 노드가 있는데, 라우터 식별을 위해서 사용하는 IP 주소가 노드 주소예요!)

' MAC 주소는 모두 간소화 또는 가정한 것이다.'

MAC 주소 란, 위에서 말했던 IP주소와 비교해서 설명해 보겠습니다. IP주소는 네트워크 '연결'과 관련된 주소였지요?

MAC주소는 네트워크 연결과는 상관없이, 기기에 내장된 무선 네트워크 칩에 할당된 주소 입니다.

Media Access Control Address의 약자로,

기계 고유의 주소이기 때문에 관련된 부품을 바꾸기 않는 한 변경되지 않아요.

실제로 우리가 숨쉬듯 하고 있는 '통신'을 하기 위해서는 이 MAC주소, IP주소 둘 다 꼭 필요합니다!ㅎㅎ

MAC주소를 '물리적 주소'

Ip주소를 '논리적 주소'라고 하는데요.

택배를 받을 때의 수신인과 집주소, 혹은 주민번호와 집주소라고 생각하면 간단하게 이해가 될 것 같습니다:)

내가 어디에 있던 택배가 오는 곳은 고유한 내 집 주소죠? 물리적 주소, 그것이 MAC주소 입니다.

그리고 집 주소를 써 두었으니 자유롭게 이동할 수 있는 수신인은 논리주소, IP주소 라고 이해 하시면 좋을것 같습니다.

'또한 클라이언트와 서버가 패킷을 주고받는 전체 과정을 훑기 위해 프록시와 캐시는 생략했다.'

클라이언트에 대한 간단한 이해

'클라이언트와 서버가 패킷을 주고받는 전체 과정~' 이란,

클라이언트가 위 사진과 같이 여러개의 클라이언트가 네트워크 통신을 활용해 서버에 접속을 하고,

그 서버와 붙어있는 데이터 베이스를 활용할 수 있는 시스템을 말합니다!

존재하지 않는 이미지입니다.

= 클라이언트와 서버간에 데이터를 주고 받는 상황을 설명 할 때,

프록시와 캐시 라는 개념이 끼면 너무 복잡해 지니까

그게 없다는 가정을 하겠다! 라고 해석 할 수 있겠네요ㅎㅎ

(:ᘌꇤ⁐ꃳ

어쨌든 이 글에선 프록시와 캐리에 대해 우선 넘어가고, 다음에 정리해 보도록 하겠습니다:)

*캐시에 대한 포스팅 :

컴퓨터 시스템 | CPU 와 Memory. 캐시메모리, 왜 메모리가 컴퓨터의 전체 성능을 좌우할까?

# 왜 메모리가 컴퓨터의 전체 성능을 좌우할까?​CPU가 일을 하려면 일의 내용이 CPU로 전달이 되어...

m.blog.naver.com

(물론 프록시와 캐시를 몰라도 이 글을 이해하는데 전혀 문제가 없습니다!)

'학교 네트워크에는 여러 AP(Access Point)가 있고, AP들은 스위치에 연결되어 있다.'

Ap의 뜻을 짚고 넘어가겠습니다.

'스위치들은 게이트웨이 라우터와 연결되어 있으며, 라우터는 SK브로드밴드나 KT와 같은 ISP(Internet Service Provider)의 네트워크에 연결되어 있다.'

라우터는 서로 다른 네트워크의 통신을 담당하는, 네트워크간의 '연결' 역할을 해주는 기계이고,

게이트웨이는 네트워크 간 연결을 할 때, 각 네트워크의 입구를 나타내는 것 입니다!

'관' 같은 것이라 생각하시면 될 것 같습니다. 인터넷이 어떤 방향으로 나갈 때 찾아가야 할 IP주소 입니다.

[ 인터넷 - 라우터 - PC ]

이런식으로 있으면 라우터의 오른쪽 포트의 주소가 PC의 게이트웨이 주소가 되는 것이죠.

라우터와 기본적으로 같은 기능을 하지만 한가지 큰 차이점은 다른 프로토콜을 사용하는 서로 다른 네트워크의 통신을 가능하게 한다는 점입니다.ㅎㅎ

#라우터 :

http://forum.falinux.com/zbxe/index.php?document_srl=685069&mid=lecture_tip

 

[ Getting Started: WLAN, DHCP, UDP and IP ]

'먼저 노트북을 켜고 AP(Access Point)를 검색한다. 가까운 AP들이 자신의 범위에 있는 모든 노드에게 비컨(Beacon) 프레임을 브로드캐스팅하며 자신의 존재를 알리고 있기 때문에 클라이언트는 AP 리스트를 확인하고 연결할 AP를 선택할 수 있다. 이렇게 AP가 신호를 보내는 방식을 패시브 스캐닝(Passive scanning)이라고 하며, 반대로 노드가 AP를 탐색하는 방식은 액티브 스캐닝(Active scanning)이라고 한다.'

비컨 프레임 이란, 무선 AP, 즉 공유기가 자신이 관리하는 무선랜의 존재를 정기적으로 알리는 브로드캐스트 프레임/메시지로로서 스테이션으로 하여금 무선 네트워크를 찾도록 해주는 역할을 합니다! 이 문장 이후로는 모두 쉽게 이해할 수 있을 것 같네요!

'클라이언트가 iptime01을 선택하면 AP로 접속 요청 프레임을 전송한다.

요청 프레임을 받은 AP는 응답 프레임을 클라이언트에게 보내 연결을 마친다.

흔히 사용하는 Wi-Fi 통신이 이러한 IEEE 802.11 표준을 바탕으로 한다.

처음으로 학교 네트워크에 연결된 것이기 때문에 이 클라이언트에게는 아직 IP 주소가 없다.

이제 클라이언트에 IP 주소를 할당하기 위해,

DHCP(Dynamic Host Configuration Protocol)가 동작한다.'

DHCP! 집에 있는 흔한 공유기의 기능 중 하나가 바로 DHCP 기능입니다.ㅎㅎ

회사 PC에 UTP를 꽂을 때나 카페에서 노트북이나 핸드폰이 스타벅스 SSID에 연결 될 때도 사용되는 기능이죠.

간단한 설명은 이렇습니다!

한 단계 깊게 들어가서 DHCP에 대해 짧게 설명 하자면,

우리나라에 네트워크가 처음 들어왔을때만 하더라도 IP 주소 라는 개념에 대해 사람들이 잘 알지 못했습니다. 당시엔 IP주소가 입력된 PC가 얼마 되지 않았기에, 전산 담당자가 IP주소를 관리하기가 비교적 참 쉬웠지요. IP주소 관리대장 같은 것을 만들어 회사의 IP주소들을 관리 했었습니다. 그런데 이 후 환병이 빠르게 변하며 PC를 사용하는 인원수가 늘어나고! 할당해야하는 IP가 많아지면서! 사람들이 IP주소 개념을 인식하기 시작하기 시작했습니다.

게다가 네트워크 상에서의 이런저런 문제가 생겨 갑자기 인터넷이 안될 때는 IP주소를 변경하면 되는 현상이 여기저기 생기기 시작하며, 그렇게 관리대장의 IP와 실제 장비에 입력된 IP가 일치하지 않는 문제가 생겼죠. 관리하기 힘들어 진 겁니다.ㅠㅠ 또 다른 경우로는 장비 변경을 할 시, 회사의 경우 몇 백 대의 IP들을 모조리 변경을 해야 했는데 이런저런 상황들 때문에 관리자가 관리하기가 힘들어지기 시작하며, IP주소를 관리하는 프로토콜의 필요성이 커지며 이것이 DHCP가 됩니다.ㅎㅎㅎ

그래서 DHCP는 호스트가 네트워크에 접속하고자 할 때마다 IP를 자동으로(동적으로) 할당받을 수 있도록 하는 기능을 수행하는데요,

그래서 호스트가 빈번하게 접속을 연결하고, 다시 갱신하는 가정 인터넷 접속 네트워크 및 무선랜(LAN)에서 폭넓게 사용됩니다.ㅎㅎ

이 DHCP를 통한 연결은 간단하게 4단계 과정을 통해 수행됩니다~!

1. DHCP 서버 발견 (DHCP Discovery)

: 클라이언트(PC)가 DHCP 서버를 찾는 메시지 입니다.

새롭게 도착한 호스트는 자신이 접속될 네트워크의 DHCP 서버 주소를 알지 못하기 때문에,

DHCP 서버 발견 메시지를 브로드캐스트 IP주소 (출발지 주소는 0.0.0.0, 목적지는 255.255.255.255)로 캡슐화! 하여 같은 브로드캐스트 도메인 영역에 있는 모든 노드에게 패킷이 전송됩니다!

2. DHCP 서버 제공 (DHCP Server Offer)

: 서버가 클라이언트에게 '저 여기 있어요!’ 라고 보내는 메시지 입니다:)

여기 ʕ·͡ᴥ·ʔノ 있어요

DHCP 발견 메시지를 받은 DHCP 서버가 DHCP 제공 메시지를 이용해 클라이언트 브로드캐스트 합니다.

3. DHCP 요청 (DHCP Request) :

IP 할당을 요청합니다. IP 할당을 요청한 새 호스트는, 하나 이상의 DHCP서버 제공 메시지를 받고

그 중 가장 최적의 서버를 선택한 후에 그 서버로 DHCP요청 메시지를 보냅니다.

4. DHCP ACK(Acknowledgement):

서버는 DHCP 요청 메시지에 대해 요청된 설정을 확인하는 'ACK 메시지'를 전송하고, 여기에 클라이언트의 IP가 전송됩니다.

같은 말로 서버로부터 IP주소를 할당받는 메시지 입니다! 이것으로 클라이언트 네트워크 설정이 끝난다고 보시면 되겠습니다.ㅎㅎ

'IP 할당을 서비스하는 DHCP 서버는 AP나 라우터에서 동작할 수 있다.'

'클라이언트의 운영체제가 클라이언트의 68번 포트에서 출발해 수신지의 67번 포트로 도착하는 DHCPD DISCOVER 메시지를 만든다.

DHCP DISCOVER 메시지는 UDP로 전송될 것이다. 아직 클라이언트는 IP 주소를 할당받지 못한 상태이며, 클라이언트의 IP 주소가 없기 때문에 DHCP 메시지의 src, yiaddr 필드는 0.0.0.0이다.

또한 AP에 연결된 모든 노드에 메시지를 브로드캐스트할 것이므로 dest 필드는 255.255.255.255이다.

DHCP DISCOVER 메시지의 프레임은 수신지 MAC 주소(FF:FF:FF:FF:FF:FF)를 가지고 있으며,

AP에 연결된 모든 장치에 브로드캐스트된다....'

여기서부터는 다음번에 이어서 써보도록 하겠습니다:)

(눈치 채신 분들도 있으시겠지만ㅎㅎ 윗 문장은 마지막으로 설명한 DHCP와 같은 맥락의 이야기이도 합니다!)

 

박성범님의 좋은 글 덕분에 평소에 굼금해 하기만 했던 주제에 대해 자세하고 깊게 공부하는 과정이 개인적으로 정말 재미있고 유익한 것 같습니다ค^•ﻌ•^ค 🎶

그럼 미숙한 글을 끝까지 읽어 주셔서 감사합니다~~~

'IT 인프라 > 네트워크' 카테고리의 다른 글

SSID란?  (0) 2021.10.08
공유기와 AP의 차이점은?  (0) 2021.10.08
NAS란?  (0) 2021.10.07
SSL VPN이란?  (0) 2021.10.07
네트워크 정복하기 20. HTTP 프로토콜 - 메서드와 상태 코드  (0) 2021.10.06