프로그래밍 일기 — 네트워크 — Part 1

배우는 자(Learner Of Life)
10 min readApr 30, 2024

인터넷 연결의 길(Route)을 만드는 것

인터넷 연결망은 여러개의 길(route)로 이루어져있다(1).

프로그래밍을 공부하면서 눈뜨게된 분야가있다. 그건 바로 네트워크(Network)라는 개념이다. 사전적의미로는 “여러개의 개인들이 연결된 관계망"이지만, 컴퓨터 세계에서는 “하나 혹은 그 이상의 서버에 여러개의 클라이언트가 연결된 인터넷망"을 말한다.

네트워크에 대한 이해가 중요한 이유는 서버와 클라이언트라는 것이 존재하기 때문이다. 서버가 하나 존재한다면 반드시 어떠한 클라이언트에 데이터를 전달하려는 의도라는 것이고, 데이터를 전달한다면, 관건은 데이터를 얼마나 빠르고 안정적으로 전달하느냐일 것이다. 얼마 안되는 수의 클라이언트를 서비스하는 서버라면 모르겠지만, 서비스의 규모가 커질수록 이는 매우 중요한 고려사항이된다. 자연스럽게 서버의 클라이언트에 대한 데이터 전송 효율을 높이는 기술에 관심이 갈 수 밖에 없다. 바로 이 문제를 해결하기위해 가장 기초적으로 이해해야할 개념이 네트워크와 관련된 지식이다.

이번 시리즈 부터는 네트워크에 관련된 기본개념에 대해 다루어 볼 계획이다. 이번 글에서는 그 중에서도 가장 기본중의 기본인 라우터(Router)라는 것에 대해 다루어보려한다.

라우터(Router)

라우터란 Cisco 문서(2)에 따르면, 파일, 커뮤니케이션 정보, 혹은 웹 요청 및 응답 등의 단순한 웹 상호작용 등 여러 형태의 데이터를 포함하는 패킷(Packet)을 활용하여 네트워크 데이터를 특정한 방향으로 이끄는 도구이다. 여기서 데이터 패킷을 이해하는 것이 중요한다. 데이터 패킷은 여러 레이어(layer)혹은 섹션(section)으로 이루어지고, 그 중 하나는 전송자, 데이터 타입, 테이터 크기, 그리고 가장 중요한 목적지 IP 주소를 포함한다. 라우터는 이 레이어의 정보를 읽고, 데이터의 우선순위를 정하여 각 전송 상황에 맞는 가장 최적의 라우트(route)를 선택한다.

여러 종류의 라우터(3)

라우터의 이점

그렇다면 이러한 라우터는 인터넷 성능에 있어 어떤 이점을 가져다줄까? 라우터는 각각의 클라이언트를 로컬(Local) 서버와 인터넷 서버에 연결한다. 그래서 각각의 클라이언트가 개별적인 로컬 서버에서 작업을 하면서도, 비즈니스나 특정 조직이 활용하는 인트라넷이나 인터넷 환경에도 연결하여 작업물을 공유하거나 실시간으로 커뮤니케이션이 가능하다. 위에 설명했듯이, 라우터가 인터넷으로 연결하기 위한 가장 빠른 라우트를 찾는 역할을하기에, 각 클라이언트의 상황마다 데이터를 전송할 수 있는 최적의 길을 제공하여 인터넷 연결을 훨씬 더 효율적으로 할 수 있게 해주는 것이다. 이러한 강점들 때문에 오늘날 인터넷을 활용하는 거의 모든 비즈니스들은 라우터를 사용하지 않는 곳이 없다고 할 수 있을 정도다.

라우터는 또한 보안 장치 역할을 한다. 라우터내에는 보통 Firewall및 컨텐츠 필터 소프트웨워가 설치되어있어 원하지 않는 스팸성 컨텐츠나 바이러스성 웹사이트를 효과적으로 방어할 수 있다.

라우터는 데이터 전송이나 인터넷 접속 뿐만 아니라, 하드 드라이브를 연결해 파일을 공유할 수 있는 스토리지를 만들어주거나, 프린터등 주변기기(Peripheral Device)등을 연결해 공용으로 활용할 수 있게 해준다. 즉, 어떠한 서버나 클라이언트로 구성된 네트워크의 개념을 활용하는 거의 모든 시스템을 구성할 수 있게 해준다.

라우터의 종류

  1. 코어 라우터(Core Router)

코어 라우터란 SK Telecom과 같은 인터넷 서비스 제공자들이나 구글 및 아마존과 같은 클라우드 서비스 제공자들이 주로 활용한다. 추가적인 라우터나 스위치를 연결하기 위한 최대의 Bandwidth를 제공하는 것이 이 장비의 장점이다. 대부분의 소규모 사업장에서는 필요하지 않지만, 세계에 여러 지사와 직원을 가진 매우 큰 규모의 기업에서는 네트워크 아키텍쳐를 구성할 때 일반적으로 코어 라우터를 사용하는 편이다.

2. 에지 라우터(Edge Router)

에지 라우터는 “게이트웨이 라우터(Gateway Router)” 혹은 “게이트웨이(Gateway)”로 많이 불린다. 인터넷이나 다른 네트워크와 연결되는 특정 네트워크의 가장 외부에 있는 접점이라고 이해할 수 있다. 에지 라우터는 코어 라우터와는 다르게 최적화(Optimized)된 Bandwidth를 제공하고, 데이터를 엔드 유저에 공급하기위해 다른 라우터로 연결하는 것이 목적이다. 에지 라우터는 일반적으로 Wi-Fi나 로컬 네트워크를 완전히 관리하기 위한 옵션을 제공하지 않는다. 일반적으로 입력단에서는 몇 개의 Ethernet 포트만을 제공하여 인터넷을 연결하고, 다수의 출력부분을 제공하여 다른 라우터를 연결할 수 있게해준다.

과거에 에지 라우터는 모뎀(Modem)이라고도 많이 불렸는데, 요즘은 네트워크 관련 제조사나 IT 업계에서는 거의 쓰이지 않고 에지 라우터라고 부르는 것이 일반적이다.

3. 분산 라우터(Distribution Router)

분산 라우터는 내부 라우터(Interior Router)라고도 불리며, 일반적으로 유선 연결을 통해 에지 라우터(혹은 게이트웨이)에서 데이터를 받아 주로 무선 연결(때로 물리적 Ethernet 연결을 통해 유저 및 다른 라우터와 연결)을 통해 엔드 유저에게 전달하는 역할을한다.

4. 무선 라우터(Wireless Router)

무선 라우터는 Residential Gateway라고도 불리며, 에지 라우터와 분산 라우터의 기능을 합했다고 볼 수 있다. 가정용 네트워크 및 인터넷 연결에 가장 널리 활용되는 라우터라 할 수 있다.

거의 대부분의 인터넷 서비스 제공자는 최대한 필요한 모든 기능을 포함하는 무선 라우터를 표준 장비로 활용한다. 소규모 비즈니스에서는 ISP 무선 라우터를 활용하는 것보다는, 더 나은 무선 성능 및 연결 제어, 보안성을 지닌 비즈니스 레벨의 라우터를 활용하는 편이다.

5. 가상 라우터(Virtual Router)

가상 라우터는 소프트웨어로 구현된 라우터로써, 클라우드 상에서 특정 라우트의 기능을 가상화하여 서비스로 제공한다. 이러한 라우터는 여러 복잡한 네트워크를 활용하는 대규모 비즈니스에 적합하다. 가상 라우터는 확장성 및 유연성이 뛰어나 필요에 맞게끔 조정이 가능하고, 상대적으로 초기 설치 비용이 낮다는 장점이 있다. 또한, 로컬 네트워크 하드웨어에 대한 관리의 필요성을 줄여주는 이점을 가지고있다.

라우터 선정시 유의할 점

  • 연결성(Connectivity):

포트의 수와 타입에 따라서 연결하려는 디바이스에 연결할 수 있는지가 결정된다. 따라서 연결 포트가 전화 포트인지, Ethernet 포트인지, 다른 케이블 포트인지, 아니면 USB 인지를 확인하는 것이 중요하다. 또한 추후에 연결할 수 있는 장비가 늘어나 네트워크를 확장할 수 있는 가능성이 있다면, 여분의 포트가 있는 장비를 고려할 필요가 있다.

  • Bandwidth:

충분한 Bandwidth는 유저 경험(UX) 측면에 있어 매우 중요하다. Bandwidth가 커질수록 다수의 유저들에게 더 높은 성능의 인터넷 접속을 제공할 수 있기 때문이다. 따라서, 유저가 많아질수록 Bandwidth도 그에 따라 늘어나야한다. Bandwidth를 증가시키는 가장 일반적인 방법은 라우터나 허브(Hub)를 추가적으로 도입하는 것이다. 다만, 무턱대고 Bandwidth를 무조건 증가시키면, 사용하지 않는 Bandwidth는 인터넷 상에서 병목현상(Bottleneck)을 야기할 수 있으므로 주의한다.

  • 무선 연결성(Wireless Capability):

Wi-Fi는 일반적으로 가장 널리 활용되는 무선 연결 방식이지만, 그 외에도 다른 다양한 형태의 연결 방식이 존재한다. 예를 들어 가장 최근의 발전된 표준은 Wi-Fi 6(802.11ax)로써, 네트워크 여러 접근 지점(디바이스나 추가적인 라우터 등)이 한번에 연결된 상태에서, 훨씬 더 빠른 데이터 전송 속도를 지원한다. 주의할 것은 Wi-Fi 6 라우터는 구형 Wi-Fi 표준과 하위 호환성(Backward Compatibility)를 가진다는 것이다.

  • 단순화된 설치 및 관리:

대부분의 Router는 브라우져기반 인터페이스로써 특정 라우터에 직접 연결되어 설치 및 관리된다. 그러나 최근에는 모바일 어플리케이션을 통해 특정 디바이스와 호환되는 라우터를 설치할 수 있도록 지원하기 때문에, 더 직관적인 인터페이스와 용이한 설치가 가능하다. 따라서 활용할 디바이스와 호환되면서, 모바일 어플리케이션을 통해 설치가 쉬운 라우터를 선택하는 것이 좋다.

  • 보안:

라우터는 일반적으로 WPA 혹은 WPA 2 비밀번호 보호 기능을 제공한다. 일부 라우터는 Firewall 소프트웨어를 활용하기에 지속적으로 들어오는 데이터를 스캔하여 잠재적인 바이러스나 Malware가 없는지 검사한다. 또 하나의 중요한 도구는 MAC(Media Access Control)주소 필터링이라는 것으로써, 디바이스에 특화된 ID를 활용해 유저를 스크린하고 네트워크 접근을 허용하거나 불허할 주체들에 대한 Whitelist 및 Blacklist를 지정할 수 있다.

  • 유연성:

Power over Ethernet (PoE) 포트는 무선 접근 지점에 연결할 수 있는 VoIP 전화, IP 혹은 카메라 등 외부 디바이스에 데이터를 전달하고 전력을 공급하는 역할을한다. PoE는 케이블이 필요하지 않으며 네트워크에 추가적인 유연성을 제공할 수 있다.

  • 자동 업데이트:

라우터는 성능 및 보안성을 유지하기 위해 주기적인 소프트웨어 업데이트를 필요로한다. 대부분의 라우터 제조사들은 유저가 별도의 행위 없이도 라우터 자체에서 자동적으로 소프트웨어를 업데이트할 수 있도록 지원한다.

  • 커스터마이징 가능한 설정:

대부분의 라우터에서는 유저가 스스로 네트워크 트래픽, 게스트 네트워크, 유해 컨텐츠 제어 및 보안 설정 등을 수정할 수 있도록 지원한다. 오늘 날에는 웹 브라우져보다는 모바일 어플리케이션을 통해 라우터 설정을 관리하도록 지원하는 라우터들이 많다.

  • 게스트(Guest) 네트워크:

게스트 네트워크는 외부 고객이나 게스트가 비즈니스를 위해 무선으로 내부 네트워크를 접속해야할 때, 보안성을 높이는 매우 좋은 장치라 할 수 있다. 게스트 네트워크는 특정 비즈니스 디바이스 및 파일에 대한 접근을 제한하면서도, 방문자가 허용된 권한내에서는 최적의 연결 성능을 누릴 수 있도록한다.

  • 서비스 품질 (Quality of Service, QoS) 제어:

라우터가 QoS 기능을 제공한다면, 모든 유저의 사용 흐름을 모니터링할 수 있는 도구와 혼용할 경우, 네트워크의 업로드(Upstreaming) 및 다운로드(Downstreaming)를 제어할 수 있고, 비디오 스트리밍등 특정 목적의 사용을 제어할 수 있으며, 각 유저에 대해서 별도의 Bandwidth를 지정할 수 있다. 이 기능을 활용할 수 있다면, 네트워크의 보안성을 높이고 흐름을 모니터링하는데 있어 큰 도움이된다.

  • Mesh 네트워크:

Wi-Fi 확장기(Extender)를 활용해 보았다면, 사실 이 도구가 큰 단점을 가지고 있다는 것을 알 수 있다. 확장기는 다수의 네트워크를 생성하지만, 네트워크끼리 서로 커뮤니케이션하지 않고, 특정 디바이스에는 호환되지 않아 Bandwidth 병목 현상을 발생시킬 수 있다.

이러한 확장기의 단점을 개선한 것이 라우터의 Mesh 네트워크 기능으로써, 다수의 Wi-Fi 전송기를 제한된 공간에 배치하면서 서로 하나의 네트워크만 공유하도록한다. 확장기와는 다르게 그 어떤 다른 무선 라우터와도 호환이된다는 장점이 있다. 단, 해당 Mesh 네트워크를 구현할 수 있도록 지원하는 라우터가 필요하다.

참조:

(1) https://pixabay.com/photos/road-pavement-landscape-roadway-220058/

(2) https://www.cisco.com/c/en/us/solutions/small-business/resource-center/networking/what-is-a-router.html?dtid=osscdc000283

(3) https://www.pinterest.com/pin/types-of-routers-are-there-in-networking--802766702313841645/

--

--

배우는 자(Learner Of Life)

배움은 죽을 때까지 끝이 없다. 어쩌면 그게 우리가 살아있다는 증거일지도 모른다. 배움을 멈추는 순간, 혹은 배움의 기회가 더 이상 존재하지 않는 순간, 우리의 삶은 어쩌면 거기서 끝나는 것은 아닐까? 그렇기에 살아있음에 감사하며, 세상의 가르침에 목이말라 오늘도 즐겁게 배우려한다.