네트워크, IT 인프라의 혈액

안녕하세요~ IT의 아는 것을 넓혀가는 룰루르루입니다!
오늘은 "IT 인프라의 심장이자 혈액, 네트워크"에 대해 간단히 정리해보았습니다.
네트워크에 대한 이해를 돕기 위한 글로 모든 내용은 다루지 않았으니,
관심이 있으시다면 아래 링크에서 더 자세한 개념을 얻어가시면 좋겠습니다.
잘못된 정보가 있거나 보완할 점이 있다면 댓글로 알려주시면 감사하겠습니다! 😊
네트워크라는 말은 일상에서 쉽게 접하지만 깊게 생각해보면 정말 막연한 단어입니다.
인적,물적 네트워크, 소셜 네트워크 등 다양한 영역에서 네트워크란 말을 사용하기도 하고,
실제로는 인터넷=네트워크 정도로만 이해하는 경우도 많기 때문입니다.
네트워크란 무엇인가요?
네트워킹 또는 컴퓨터 네트워킹은 데스크톱 컴퓨터, 모바일 장치, 라우터 또는 애플리케이션 등
두 개 이상의 컴퓨팅 장치를 연결하여 정보와 리소스를 전송하고 교환 할 수 있는 프로세스
네트워크는 쉽게 말해 둘 이상의 대상이 필요한 정보를 주고 받을 수 있는 환경을 의미합니다.
이제 의미를 확장하면 다음과 같이 설명할 수 있습니다.
- 인적(소셜) 네트워크: 개인과 개인을 연결해 정보를 교환할 수 있는 사회적 관계망
- 물적 네트워크: 자원과 자원을 주고 받을 수 있는 인프라(철도, 해운, 항공 등)
- 컴퓨터 네트워크: 컴퓨팅 장치와 장치가 연결되어 데이터를 주고 받을 수 있는 환경
- 통신 네트워크: 통신 단말과 단말이 연결되어 데이터를 주고 받을 수 있는 환경
여기서 우리가 일상에서 흔히 사용하는 스마트폰, iptime 공유기의 Wi-Fi, 인터넷이 모두 네트워크의 대표적인 예시입니다.
앞으로 다룰 네트워크는 정보통신(IT) 관점에서의 네트워크 입니다.
넓은 개념의 네트워크
우리가 해외에 있는 구글이나 아마존 배송 서비스를 국내에서 이용할 수 있는 이유는 기본적으로 해저케이블을 이용해 나라와 나라끼리 네트워크가 연결되어 있기 때문입니다.
한국에 있는 구글이랑 아마존 데이터 센터랑 통신하는데요! 라고 하시면 네트워크에 이해가 높으신 분일 것 같습니다.
이렇게 지역과 지역, 국가와 국가 간을 연결하는 대규모 네트워크를 WAN(Wide Area Network)라고 합니다.
반대로 특정 지역만 연결하는 소규모 네트워크도 있습니다. 이를 LAN(Local Area Network)라고 합니다.
쉽게 생각하면 우리 집에 설치한 공유기 환경이 로컬 네트워크에 해당한다고 할 수 있습니다.
이런 네트워크를 RAN, MAN, CAN, PAN과 같이 더 세부적으로 나눌 수 있지만 넓은 범위에서 네트워크는 간단하게 두 가지만 이해하면 됩니다.
- LAN: 회사 내부 장비를 연결하기 위한 네트워크, 사용자 또는 조직이 관리
- WAN: 회사 외부와 통신할 수 있는 인터넷 구간, 인터넷 서비스 제공 업체(ISP)가 관리
전송 방식으로 구분하는 네트워크
기본적으로 상당수의 네트워크는 유선 네트워크로 이루어져 있습니다. 앞서 나온 내용처럼 나라와 나라는 해저 케이블로 연결되어 있고, 이 케이블이 KT와 같은 ISP의 기간망에 연결되어 우리의 집까지 광케이블로 연결되어 들어옵니다.
TMI. 이를 나타내는 정보통신용어가 FTTH, Fiber To The Home 입니다.
집에 있는 인터넷을 생각해보면 모뎀에서 인터넷 선이 나오고, 컴퓨터와 공유기로 연결됩니다.
이 과정에서 UTP라는 유선 케이블이 연결되어 데이터를 주고 받는데, 이 네트워크 구간을 유선 네트워크라고 합니다.
근데 생각해보면 스마트폰을 이용할 때는 케이블을 꽂지 않고 와이파이(WI-FI)로 인터넷에 연결합니다.
이것은 집에 설치된 공유기에 안테나가 내장되어 있어 전자파가 발생하기 때문입니다.
이렇게 공유기와 핸드폰 사이 전자파를 이용해 통신하는 구간을 무선 네트워크라고 할 수 있습니다.
간단하게 정리하면 아래와 같습니다.
- 유선 네트워크: 케이블(구리선, 광섬유 등)으로 데이터를 전송하는 네트워크 구간
- 무선 네트워크: 전자기적 신호(적외선, 전파 등)로 데이터를 전송하는 네트워크 구간
이제 조금 더 응용하면 "유선 LAN = 회사에 구성된 네트워크에 유선 케이블로 연결", "무선 LAN = 회사에 구성된 네트워크에 WI-FI로 연결" 라고 생각하면 됩니다!

여기까지는 흔히 생각하고 접할 수 있는 네트워크라 이미 알고 있는 내용이었을거라 생각합니다.
이제 조금씩 깊이 들어가보겠습니다.
네트워크 토폴로지
- Bus 형 토폴로지
- 공유된 공통 회선에 모든 장비가 연결되는 방식
- 서로 연결되어 있어 하나의 노드가 전송하면 다른 모든 노드가 수신
- Ring 형 토폴로지
- 각 장비가 원형으로 상호 연결된 구조, Liner 방식의 신뢰도를 높이기 위한 방식
- 하나의 장비에 Input, Output 용도의 회선이 1개씩 존재
- Star 형 토폴로지
- 네트워크 중앙에 위치한 장비를 거쳐 모든 장비가 통신하는 방식
- 단일 장비에서 Failover가 발생하더라도 다른 장비는 정상 통신
- 단일 공유기에 연결된 여러 컴퓨터를 생각하면 됩니다.
- 소프트웨어로 구현하는 네트워크크도 보통 Star 형이라고 생각하면 됩니다.
- Tree 형 토폴로지
- 중앙에 있는 장비에서 뻗어 나가는 계층 구조로 점점 더 많은 장비가 연결하는 방식
- 현업에서 가장 많이 볼 수 있는 토폴로지
- 계층에 따라 VLAN을 구성해 가상의 Star나 소규모의 Tree 구조로 바꿀 수 있어 활용도가 높은 토폴로지
- Mesh 형 토폴로지
- 각 장비가 점 대 점으로 상호 연결된 구조
- 높은 신뢰도를 보장하지만 비용이 가장 많이 발생
- 라우터 장비 간 연결에 많이 사용하는 방식
네트워크를 전업으로 다루시는 분들이 아니라면 Tree와 Star 정도만 이해하셔도 나중에 소프트웨어의 통신 방식을 설명할 때 충분할 것 같습니다.
네트워크와 프로토콜
프로토콜이란 네트워크의 모든 노드가 데이터를 공유하고 수신하기 위한 규칙, 규약
OSI 7계층 모델
네트워크를 이론으로 접하면 가장 많이 접하는 단어가 OSI 7계층 모델입니다.
OSI 7계층 모델은 인터넷이 막 발달하던 시기 서로 다른 장비들이 네트워크 상에서 통신 할 수 있도록, 통신에 필요한 각 과정과 프로토콜을 표준화 한 이론적인 모델입니다.
자격증을 공부할 땐 7계층이 각각 어떤 역할을 하고 어떤 특징이 있는지 이해하려고 많이 노력했는데,
지금 생각해보면 현재 네트워크 환경에서는 이렇게 복잡하게 구분할 필요가 없고 대부분 TCP/IP 모델을 사용하기 때문에 크게 와 닿지 않았던것 같습니다.
그래서 넘어가겠습니다.
TCP/IP 모델
TCP/IP 모델은 현재 네트워크 환경에서 일반적으로 통용되는 인터넷 프로토콜을 정의한 모델입니다.
OSI 7계층을 축소했다고 표현하기도 하고, 중요한 TCP와 IP 외 나머지는 뭉뚱그린 것처럼 보입니다.
그래서 이론적인 부분도 OSI 7계층과 크게 다르지 않아 생략하겠습니다.
네트워크 액세스 계층 (OSI 1~2 계층)
OSI 1계층은 물리 계층, 2계층은 데이터링크 계층으로 인접한 장비와 데이터를 주고 받기 위한 계층입니다.
즉, 단순히 생각하면 케이블로 연결된 장비에게 데이터를 전송하기 위한 방법, 규칙이 포함되어 있습니다.
그럼 다른 장비에게 데이터를 보내는 방법은 무엇일까요?
상대방 하드웨어의 고유 주소인 MAC 주소를 목적지로 데이터를 보내는 것입니다.
그럼 상대방의 MAC 주소를 모르면 어떻게 할까요?
연결된 장비 모두에게 MAC 주소를 요청하고 원하는 MAC 주소가 있다면 거기로 보냅니다.
네트워크 액세스 계층과 관련된 장비로는 허브, 브릿지, L2 스위치가 있습니다.
- 허브: 단순히 컴퓨터를 1:N으로 연결하기 위한 초기 모델로 연결된 장비를 기억하는 기능이 없어 연결된 모든 장비에게 데이터를 전송(브로드캐스트)한다는 단점으로 현재는 거의 사용되지 않습니다.
- 브릿지: 허브의 단점을 보완하고자 네트워크를 분리하려는 시도가 있었고, 분리된 네트워크를 연결해 주는 장치가 필요했는데 그 장비가 브릿지입니다. MAC 주소로 연결된 장치를 기억하고 트래픽을 처리하는 역할입니다.
- L2 스위치: 통상 스위치라 하는 장비는 L2 스위치를 의미합니다. 허브와 브릿지 기능이 모두 내장된 장치로 내부에 MAC 테이블이 있어 연결된 장비에 대한 정보를 가지고 있고, 트래픽을 효율적으로 처리할 수 있어 사용됩니다.
인터넷 계층 (OSI 3 계층)
OSI 3계층은 네트워크 계층으로 인접하지 않은 장비와 데이터를 주고 받기 위한 계층입니다.
이전 계층에서는 당연하게도 인접하지 않은 장비가 나에게 MAC 주소를 줄 수 없었습니다.
그럼 다른 네트워크에 가서 물어봐야 합니다. 근데 MAC 테이블의 용량은 작기도 하고, 하나의 정보만 담을 수 있습니다.
즉, A에게 가려면 B 네트워크를 거쳐 C 네트워크에 가서 찾아라. 같은 경로를 저장할 수 없었습니다.
그래서 상대 장비의 위치를 찾기 위한 주소와 경로가 필요했고, 이를 위한 규칙이 IP 프로토콜, 그 주소 정보가 IP Address 입니다. 마찬가지로 상대방을 찾는 프로토콜이 필요했는데, 그것이 ICMP 프로토콜, 흔히 말하는 Ping과 ARP, RARP입니다.
TMI. IP Address는 장비마다 고유한 것이 아니라 임의로 부여하는 것이라 논리적 주소라고도 합니다.
인터넷 계층과 관련된 장비로는 라우터와 L3 스위치가 있습니다.
- 라우터: IP Address를 이용해 최적의 경로 를 찾아주는 장비, 라우팅 테이블에 저장된 규칙에 따라 특정 IP를 찾는 요청은 지정된 방향으로 전달하는 역할을 한다. 이 기능을 이용하면 특정 대역끼리는 전달하지 않도록 네트워크를 분리할 수도 있다.
- L3 스위치: L3 스위치는 L2 스위치의 역할을 하면서 라우터 기능이 내장된 장비로 스위치 자체적으로 인접하지 않은 장비에게도 데이터를 전달할 수 있게 해주는 장비입니다. 주로 여러 L2 스위치를 묶어 L3가 라우팅을 해주는 구조로 많이 사용합니다. 또한 보통 L3들을 묶어 처리하는 고성능의 L3를 Back-bone 또는 백본 스위치라고 합니다.
전송 계층(OSI 4계층)
OSI 4계층은 단일 장비의 특정 서비스와 데이터를 주고 받기 위한 규칙, 방법을 포함하고 있습니다.
예를 들어 하나의 장비에서 DB 서버와 Web 서버가 같이 동작하고 있다면 둘 다 같은 IP 주소를 갖기 때문에 어떤 서비스로 데이터를 보내야 할지 알 수 없습니다.
그래서 이 계층에서는 특정 서비스의 주소(포트 번호)와 데이터 통신 방식(TCP, UDP 프로토콜)을 포함하고 있습니다.
- TCP: 중요한 정보라 손실되면 안되고 항상 한번에 정확하게 받아야 해
- UDP: 조금 손실 되더라도 빨리 끊임없이 받아야 해
관련된 장비로는 로드 밸런서와 L4 스위치가 있습니다.
먼저, 인터넷 계층에서 웹 서버를 찾을 수 있었지만 사용자가 웹 서버로 직접 요청을 보내다 보니 서버에 너무 많은 부하가 발생했습니다. 물론 도메인에 여러 IP를 등록해 여러 서버가 요청을 받을 수 있지만, 여전히 특정 서버에만 트래픽이 몰리는 상황이 발생했습니다.
- 로드밸런서: 서버에 직접적으로 가해지는 부하를 줄이기 위해 먼저 요청을 받고, 트래픽과 현재 서버의 성능을 고려해 최적의 서버로 라우팅해 주는 트래픽 프록시 역할, 이름 그대로 Load(부하) + Balancer(분산)을 위한 장비이다.
- L4 스위치: 앞서 나온 L3 스위치에 로드밸런서의 기능이 탑재된 스위치
TMI. 로드밸런서가 어떻게 최적의 서버를 선택하는지에 대한 알고리즘도 존재합니다.
어플리케이션 계층 (OSI 5~7 계층)
OSI 4계층에서 특정 서비스(프로그램)을 찾아갔다면, 나머지는 프로그램의 내부의 영역입니다.
프로그램이 어떻게 데이터를 처리하고 전달하는지 등, 서비스 간 실제 데이터를 주고 받기 위한 규칙이 포함된 계층입니다.
예를 들어 브라우저는 웹 서버로 HTTP 형식의 데이터를 요청하고, 웹 서버는 HTTP 응답 안에 HTML 형식의 데이터를 반환합니다. 또 메일 서버와 메일 서버끼리 데이터를 주고 받기 위해 SMTP를 사용할 수도 있습니다.
즉, 이런 어플리케이션(서비스)간 통신을 위한 방법을 정의한 것이 어플리케이션 계층입니다.
관련된 장비로는 ALB와 L7 스위치가 있습니다.
상황을 가정한다면 L4 스위치로 로드밸런싱을 할 경우 포트 수준에서 이루어지기 때문에 VIP나 일반 사용자나 동일한 수준의 서비스를 제공합니다. 즉, 더 복잡한 라우팅을 구성할 수 없다는 단점이 있었습니다.
- Application 로드 밸런서: 7계층에서 동작하는 로드밸런서는 데이터를 직접 뜯어볼 수 있어, 특정 URL로의 요청 또는 특정 데이터가 포함된 요청을 다른 경로로 보내도록 구성할 수 있습니다.
- L7 스위치: 마찬가지로 ALB 기능이 탑재된 스위치입니다.
최근 IT 직무는 네트워크에 대한 이해를 요구하고 있습니다.
기존의 온프레미스 개발 환경은 네트워크 엔지니어 또는 IT 인프라의 담당자가 직접 관리하는 형태가 많았지만,
최근에는 가상화나 컨테이너 기술로 네트워크가 소프트웨어로 구현되어 개발자도 네트워크에 대한 이해를 요구하고 있습니다.
개발자는 여전히 온프레미스 환경에서 서비스하는 경우가 있고 필요에 따라 클라우드나 컨테이너 환경에서 서비스를 배포하는데, 가상 네트워크에 대한 이해가 부족하다면 localhost에서 벗어나기 어렵게 되었습니다.
다음에는 클라우드의 네트워크, 도커의 네트워크에 대해 다뤄보겠습니다!
감사합니다~~
컴퓨터 네트워킹이란 무엇인가요? | IBM
컴퓨터 네트워킹이란 정보와 리소스의 전송 및 교환을 가능하게 하는 2개 이상의 컴퓨팅 디바이스를 연결하는 프로세스를 의미합니다.
www.ibm.com
WAN(Wide Area Network)이란? | 용어 해설
WAN(Wide Area Network)은 여러 도시, 심지어는 국가 간의 대규모 지리적 영역에서 다수의 컴퓨터를 연결할 수 있습니다. | HPE 대한민국
www.hpe.com
[Network] OSI 7계층이란
1. OSI 7계층이란? 네트워크에서 통신이 이루어지는 과정을 7개의 계층으로 나눈 것을 말한다. 초기에 여러 정보 통신 업체의 장비들은 자신의 업체 장비끼리만 연결이 되어 호환성이 매우 좋지
btcd.tistory.com
로드 밸런서란?
로드 밸런서는 애플리케이션을 지원하기 위해 온프레미스 또는 클라우드의 리소스 간에 네트워크 트래픽을 동적으로 분산하는 디바이스 또는 서비스입니다.
www.f5.com