네트워크 작동 과정

Violet_Evgadn·2023년 4월 26일
0

네트워크

목록 보기
1/37

출처 : http://www.yes24.com/Product/Goods/90640081

네트워크를 공부하려 하는데 어디서부터 어떤 것을 공부해야 하는지 매우 막막했다.

그래서 여러 사이트에서 네트워크 관련 책 중 괜찮은 것을 찾아봤고 "성공과 실패를 결정하는 1%의 네트워크 원리"로 공부하기로 결정하였다.

앞으로 이 책을 통해 네트워크 공부 및 블로그 정리를 진행할 것 같다.


네트워크 전체 작동 흐름네트워크 동작 과정

네트워크는 사용하는 HW 및 SW 수가 많기 때문에 세세하게 공부하다가 전체 네트워크 흐름을 파악하지 못하는 경우가 생길 수 있다.

네트워크의 흐름을 잊어버리고 미시적 관점에서만 네트워크를 공부하게 될 경우 암기 과목밖에 되지 않으며 외운 것을 흐름에 적용하지 못하게 된다.

따라서 먼저 전체 동작 과정을 러프하게 공부한 뒤 본격적인 공부에 들어가도록 하겠다.


네트워크 전체 작동 흐름

네트워크 동작 방식

브라우저(크롬, 웨일 등)에서 웹 서버(네이버, 구글 등)에 액세스 한다고 가정하자.

이때 우리는 브라우저에서 웹 서버에게 어떤 동작을 수행하고 싶은지 Request(요청) 형식으로 메시지를 보낸다.

메시지를 받은 웹 서버는 Request를 해석하고 이에 맞는 Respond(응답)을 브라우저 측에 보냄으로써 사용자는 원하는 동작을 수행할 수 있게 되는 것이다.

그렇다면 이 Request와 Respond를 주고 받는 과정에 대하여 알아보자.

1. 웹 브라우저

Browser에 URL을 입력해 사이트에 접속하거나 글을 올리는 등의 작업을 하기 위하여 Request를 보내는 과정이다.

이 과정이 네트워크 전체 과정의 시작이라 할 수 있겠다.

URL을 브라우저에 입력하면 브라우저가 바로 웹 서버에 Request를 보내는 것이 아니다.

브라우저는 단지 정해진 규칙에 따라 사용자의 의도를 조사한 뒤 Request Message를 만드는 역할만 수행한다.

브라우저가 만든 Request Message를 OS에 내장된 디지털 메시지를 운반할 수 있는 네트워크 제어용 SW에 의뢰하여 Reuqest를 웹 서버에 도착하게 만드는 것이다.

이 과정은 사람이 편지를 쓰는 작업과 동일하다.

2. 프로토콜 스택 & LAN 어댑터

프로토콜 스택(Protocol Stack)이란 OS에 내장된 네트워크 제어용 SW이다.

1번 과정에서 브라우저는 Request Message를 만든 뒤 디지털 메시지를 운반할 수 있는 네트워크 제어용 SW에 의뢰하여 Request를 보낸다고 말했는데 이때 말하는 네트워크 제어용 SW가 프로토콜 스택이다.

Protocol Stack은 브라우저에서 받은 메시지에 수신처 주소 등의 제어 정보를 덧붙여 패킷 형식으로 만든다.

또한 통신 오류가 발생했을 경우 패킷을 고쳐 보내거나 데이터 통신양을 조절하는 등 다양한 역할을 수행한다.

이후 Protocol Stack은 LAN 어댑터라는 곳에 패킷을 넘기게 된다.

LAN 어뎁터란 이더넷이나 무선 LAN으로 통신할 때 사용하는 HW인데 Protocol Stack에 의해 만들어진 패킷을 전기 신호로 변환하고 LAN의 케이블에 송출한다.

이 과정을 통해 단순 Message였던 사용자 동작이 전기 신호로 변환되어 인터넷으로 보낼 수 있는 자료로 바뀌는 것이다.

이 과정은 작성이 완료된 편지를 비서에게 맡기면 비서가 편지를 받을 사람의 주소를 써주고 우편을 붙여 정상적으로 우편이 갈 수 있도록 편지 봉투를 만드는 과정이라 할 수 있겠다.

3. 허브, 스위치, 라우터

이 과정은 인터넷에 접속하는 형태에 따라 많은 상황이 존재한다.

큰 흐름을 설명할 때 모든 과정을 다 다룰 필요는 없으므로 PC가 가정이나 회사의 LAN에 접속되어 있고 LAN은 ADSL이나 광섬유 등의 광대역 회선에 의해 인터넷에 접속되어 있다는 대표적인 상황을 가정하자.

LAN 어댑터가 송신한 패킷은 스위칭 허브 등의 HW를 경유하며 인터넷에 접속할 수 있는 Router에 도착한다.

Router와 User가 만나는 부분은 가정이나 회사 내부망으로써 Request 및 Packet 생성 과정이 일어난다.

Router의 앞부분(Router와 User가 만나는 부분의 반대편)은 인터넷과 연결되어 있다.

이런 구조를 통해 Router는 Request Message에 의해 생성된 패킷을 통신사(Provider)가 제공하는 인터넷망에 보내는 역할을 수행한다.

이 과정은 편지 봉투에 담겨진 편지를 우체통에 넣으면 이후 집배원이 우체통에 담긴 편지 봉투를 가져가는 과정이라 할 수 있다.

4. 액세스 회선, Provider

이제 인터넷의 내부로 도착했다.

인터넷의 입구에는 액세스 회선이라는 통신 회선이 있다.

이 액세스 회선은 계약하고 있는 Provider와 연결되어 있으며 Provider에는 POP(Point of Presence)라는 설비가 존재한다.

Provider라 하니 고급져보이지만 한국으로 생각하면 SKT, KT, LG 중 계약한 인터넷 회사라고 생각하면 된다. 이 중 PC와 가장 가까운 POP에 패킷이 먼저 도착한다.

이후 POP에서 받은 패킷을 전국 또는 전 세계에 이미 구축되어 있는 통신망을 통해 목적지까지 전달하는 것이다.

구축되어 있는 통신망은 케이블을 통해 라우터끼리 연결되어 있는 상태로 구축되어 있다.

이때 사용되는 통신사의 라우터는 여러 개의 Request를 모두 처리할 수 있어야 하므로 수십 개의 케이블을 접속시킬 수 있는 거대하며 고속의 (비싼) 라우터이다.

이 과정이 우리가 말하는 "인터넷"이라고 할 수 있다.

만약 특정 기술을 사용하여 통신사의 인터넷 속도가 증가했다는 기사가 나올 경우 라우터나 라우터 사이를 연결하는 케이블 기술을 업그레이드시켜 성능 향상을 했다 생각하면 된다.

이는 우체통에서 편지 봉투를 가져간 집배원이 가장 가까운 우체국에 편지 봉투를 전달하고 우체국이 적혀 있는 주소에 맞도록 편지를 전달하는 과정이다.

5. 방화벽, 캐시 서버

방화벽은 도착한 패킷이 안전한지를 검사하는 가드 역할을 수행한다

만약 위험한 패킷이라고 판단되면 방화벽 측에서 패킷이 웹 서버 내부로 들어오지 못하게 하여 서버에 대한 공격을 사전 차단하는 것이다.

만약 방화벽을 통과했다면 캐시 서버에 접속하게 된다.

페이지의 데이터 중에는 다시 이용할 수 있는 것이 있는데 이런 데이터가 캐시 서버에 들어간다.

만약 캐시 서버에 필요한 데이터가 존재할 경우 굳이 Web Server까지 가서 로직을 수행하지 않고서도 데이터를 추출할 수 있으므로 더욱 빠른 속도로 Respond를 받을 수 있다.

대규모 웹 사이트의 경우 복수의 Web Server와 메시지를 분배하는 부하 분산 장치(Load Balancer)를 사용하기도 하며 인터넷 전체에 캐시 서버를 분산시켜 콘텐츠 배포 서비스를 이용할 수도 있다.

이 과정은 집배원이 편지 목적지 주소 아파트에 편지를 가지고 가면 먼저 그 편지에 폭탄 같은 위험물이 있는지 경비원이 확인해 보고 만약 없을 경우 목적지에 편지를 전달하는 과정이다.

6. 웹 서버

Packet이 웹 서버 내부에 도착하면 웹 서버는 어떤 Reqeust가 왔는지 먼저 파악한다.

즉, Packet에서 제어 정보를 제거하고 알맹이인 Request Message만 복원시킨다.

이후 복원시킨 Reqeust Message를 Web Server Application(웹 프로그램)에 넘김으로써 Reuqest에서 원하는 동작을 실제로 수행한다.

Request 복원 과정 또한 OS에 내장된 프로토콜 스택이 수행한다.

Request에 해당하는 동작이 완료되었다면 User(브라우저)에게 응답을 보내야 하는데, 이 Respond 과정은 정확히 지금 수행했던 과정을 반대로 수행하면 된다.

이 과정은 실제 편지를 받고 알맹이를 뜯어 편지 내용을 읽은 뒤 답변을 쓰고 답변 편지를 보내는 것과 동일하다.

profile
혹시 틀린 내용이 있다면 언제든 말씀해주세요!

0개의 댓글