네트워크란?
네트워크란 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미합니다.
노드(node) : 컴퓨터, 라우터, 스위치 등 네트워크에 연결되어 있는 모든 장치를 의미함.
링크(link) : 각 노드들을 연결하는 케이블, 광섬유 등의 연결체를 의미함.
처리량, 지연시간
- 처리량 (throughput)
링크를 통해 전달되는 단위 시간 당 데이터 양을 의미하며, 단위는 bps(bits per second)입니다. bps는 초당 전송 / 수신되는 비트 수를 의미합니다. 처리량이 클수록 좋은 네트워크라고 볼 수 있습니다.
처리량은 트래픽, 네트워크 장치 간의 대역폭, 에러, 장치의 하드웨어 스펙에 영향을 받습니다.
처리량 = (전체 데이터 용량(byte) * 사용자수 * 8) / 처리 시간(초) = bps
처리량에 8을 곱해주는 이유는 byte 단위의 용량을 bit 단위로 변환하기 위해서입니다.
- 트래픽 (traffic)
서버를 통해 사용자에게 전달된 전체 데이터 양을 의미합니다. 단위는 byte 단위(kilobyte, megabyte, gigabyte 등)을 사용합니다.
트래픽은 사용자가 많을수록 증가합니다.
트래픽 = 전송 데이터 용량 * 전송 데이터 개수 * 사용자 수
- 대역폭 (bandwidth)
대역폭은 단위 시간동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수를 의미합니다. 데이터를 자동차에 비유한다면 대역폭이 작은 네트워크는 1차선 도로, 대역폭이 큰 네트워크는 4차선 도로라고 볼 수 있습니다.
대역폭의 단위는 처리량과 동일하게 bps이며, 처리량과 동일하게 계산합니다.
예를 들어 10분 안에 최대 20,000명의 사용자가 접속하는 사이트가 있을 때, 사용자가 접속할 때마다 8MB 용량의 데이터를 전송한다면 이 사이트에 필요한 대역폭은 다음과 같습니다.
(8MB * 20000 * 8) / 600s = 2133Mbps = 2.133Gbps
즉, 이 사이트는 약 2Gbps의 대역폭이 필요합니다.
- 지연 시간 (latency)
지연시간은 IP 패킷이 한 지점에서 다른 지점으로 이동하는 데 걸린 시간을 의미합니다. 일부에서는 패킷을 다른 지점에 보내고 이것이 다시 돌아오기까지 걸리는 왕복 시간을 의미하기도 합니다.
지연 시간은 패킷의 크기, 대역폭, (왕복 시간의 경우)라우터의 패킷 처리 시간 등에 영향을 받습니다.
네트워크 토폴로지와 병목 현상
네트워크 토폴로지
네트워크 토폴로지(network topology)는 노드와 링크가 물리적으로 연결되어 있는 것, 또는 그 연결 방식을 의미합니다. 네트워크가 구성되는 방식이나 구조라고 이해할 수 있습니다.
토폴로지의 종류는 크게 다음과 같이 5가지가 있습니다.
메시(mesh) 토폴로지
메시 토폴로지는 모든 노드가 각각의 다른 노드와 링크로 연결되어 있는 구성입니다. 노드가 N개인 메시 토폴로지에서 필요한 링크의 개수는 1 + 2 + 3 + ... + (N - 1) = N(N - 1) / 2 개입니다.
장점 :
- 모든 노드가 서로 연결되어 있기 때문에 각 노드 간의 커뮤니케이션이 매우 빠릅니다.
- 데이터가 각 전용 채널이나 링크를 통해 장치 간 전달되기 때문에 데이터를 신뢰할 수 있습니다.
- 한개의 노드에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크를 계속 사용할 수 있고, 트래픽 분산 처리가 가능합니다.
단점 :
- 구축, 유지 비용이 큽니다.
- 노드 추가가 어렵습니다.
스타 토폴로지
스타 토폴로지는 중앙에 있는 하나의 노드(허브)에 모든 노드가 연결되어 있는 네트워크 구성입니다. 각 노드는 중앙 노드와 연결할 링크 하나만 가지면 되므로 노드가 N개일 때 필요한 전체 링크 수도 N개입니다.
장점 :
- 각 노드나 링크에 장애가 발생했을 때 다른 노드/링크에 영향을 미치지 않습니다.
- 노드를 추가하거나 에러를 탐지하기 쉽고, 패킷 충돌 발생 가능성이 적습니다.
단점 :
- 중앙 노드(hub)에 모든 노드가 의존적이기 때문에 중앙 노드에 장애가 발생하면 시스템 전체가 다운됩니다.
- 네트워크의 성능이 하나의 노드(hub)에 의해 결정됩니다.
버스 토폴로지
버스 토폴로지는 버스(bus)라고 불리는 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크를 말합니다. 버스 토폴로지에서는 데이터가 한 end point에서 다른 end point로 한방향으로 흐릅니다. 주로 근거리 통신망(LAN)에서 사용됩니다.
각 노드가 하나의 중앙 링크에 연결되어 있으므로 노드가 N개일 때 필요한 링크의 수는 (N + 1)개입니다.
장점 :
- 설치 비용이 적고, 각 노드나 중앙 회선을 제외한 링크에 장애가 발생해도 다른 노드에 영향을 미치지 않습니다.
- 노드 추가/삭제가 쉽습니다.
단점 :
- 중앙 회선에 장애가 발생하면 전체 시스템이 다운되고, 새 노드를 추가하면 전체 네트워크 속도가 느려질 수 있습니다.
- 트래픽이 무거워지면 네트워크 충돌이 증가합니다.
- 중앙 회선을 통해 모든 데이터를 주고받기 때문에, 스푸핑이 일어날 가능성이 있어 보안에 취약해집니다.
스푸핑(Spoofing) : 악의적인 노드가 자신의 IP를 숨기고, 다른 사람의 IP를 부당하게 취득해서 해당 노드로 보내지는 패킷을 탈취하는 해킹 기법.
링형 토폴로지
링형(ring) 토폴로지는 각 노드가 양 옆의 두 노드와만 연결되어 전체적으로 고리처럼 하나의 링크를 사용하는 네트워크 구성 방식입니다. 링형 토폴로지는 기본적으로 한 방향으로만 흐르나, 각 노드가 두개의 커넥션을 갖게 해서 양방향으로 흐르게 구성할 수도 있습니다. 이를 Dual Ring Topology라고 부릅니다.
장점 :
- 데이터가 일정한 방향으로 흐르기 때문에 네트워크 충돌 가능성이 거의 없습니다.
- 설치/확장 비용이 적습니다.
단점 :
- 데이터가 각 노드들을 거치면서 전송되기 때문에 한 개의 노드에서 장애가 발생하면 전체 시스템에 영향이 갈 수 있습니다.
- 노드 추가/삭제가 전체 네트워크 토폴로지에 영향을 끼칠 수 있습니다.
트리 토폴로지
트리(tree) 토폴로지는 스타 토폴로지의 변형으로, 계층형(hierarchical) 토폴로지라고도 불립니다. 노드가 트리 형태로 연결되어 있는 방식으로, 데이터가 위에서 아래 방향으로 흐릅니다. 최상위 노드(Central hub)를 기점으로 모든 노드들이 가지처럼 뻗어나가며 연결되는 구조입니다.
장점 :
- 각 단말 노드들은 다른 노드들과 독립된 링크를 사용하므로 하나의 단말 노드에 장애가 발생해도 다른 노드에 영향을 미치지 않습니다.
- 에러 탐지와 수정이 쉽습니다.
단점 :
- 최상위 노드(central hub)에 장애가 발생하면 전체 시스템이 다운됩니다.
- 케이블 연결이 많아 비용이 비쌉니다.
- 노드 추가 시 네트워크 재구성이 어렵습니다.
병목 현상
병목 현상은 하나의 특정 구성 요소로 인해 전체 시스템의 성능이 제한을 받는 현상을 의미합니다. 교통 현상을 예로 들 수 있는데, 4차선 도로가 갑자기 2차선 도로로 좁혀지면 차선이 좁혀지는 구간에서 교통 체증이 발생하는 것이 병목 현상입니다. 이를 네트워크 시스템으로 가져오면 차선을 링크, 차선이 좁혀지는 구간을 노드로 생각할 수 있습니다.
위 그림은 네트워크 시스템의 병목현상을 나타낸 것입니다. 초록색 노드는 오른쪽 네트워크의 허브 역할을 하는 노드이며, 파란색 노드는 두 개의 네트워크 시스템이 연결되어 있는 노드입니다. 이 두 노드가 연결되는 지점에서 링크가 하나로 연결되면서 많은 양의 데이터가 몰리며 병목현상이 발생합니다.
병목현상은 발생 원인을 파악하기 어려운 현상입니다. 만약 사용자의 네트워크가 아예 연결되지 않는다면 이는 링크나 스위치가 망가졌거나, 사용자의 TCP/IP가 구성되지 않는 등 비교적 쉽게 문제의 원인을 파악할 수 있습니다. 그러나 사용자의 네트워크 속도가 느려졌다면, 이는 네트워크 구성 중 어느 지점에서 네트워크 속도를 느려지게 하는 원인이 있는지 파악해야 합니다. 굉장히 많은 양의 노드와 링크가 서로 복잡하게 얽혀있는 네트워크라면 이를 파악하기가 굉장히 어려울 것입니다.
이러한 병목현상을 해결하기 위해서라도 네트워크 토폴로지를 잘 알고 활용해야 합니다. 네트워크가 어떻게 구성되어 있는지 알고 있다면 병목현상같은 문제가 어느 지점에서 발생하는지 알기가 수월할 것입니다. 물론 네트워크 구성 외에도 충분하지 못한 대역폭, 서버 오버로드, 링크 케이블 문제, 사용자의 하드웨어 문제 등 병목현상을 일으키는 원인은 굉장히 많아서 해결하기 까다로운 문제입니다.
네트워크 분류
네트워크는 규모를 기반으로 분류할 수 있으며, 크게 LAN, MAN, WAN 세가지로 구분할 수 있습니다.
LAN(Local Area Network)
LAN은 근거리 통신망을 의미하며 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영됩니다. 각 장치는 TCP / IP 주소를 사용하여 스위치로 연결됩니다. 라우터는 LAN 경계점에서 더 큰 MAN이나 WAN과 연결됩니다. 연결된 장치 수가 제한적이므로 데이터가 매우 빠르게 전송되며, 작은 규모이므로 설계 및 유지 관리가 쉽습니다.
MAN(Metropolitan Area Network)
MAN은 LAN보다 넓으면서 WAN보다 작은 영역을 포함한 네트워크입니다. 도시같은 넓은 지역의 네트워크를 나타내며, LAN에 비해 매우 많은 장치가 연결되므로 네트워크를 설계하고 유지하기가 어렵습니다. 주로 고속 연결이 필요한 고객을 위해 설계됩니다.
WAN(Wide Area Network)
WAN은 광역 네트워크를 의미하며 국가나 대륙같은 넓은 지역을 포함하는 네트워크입니다. WAN은 전화선과 전파를 통해 다른 LAN이나 MAN에 연결할 수 있습니다. 일반적으로 개인이 소유하거나 관리할 수 없으며, 국가에서 관리하는 전문 업체(우리나라는 SKT, KT, LG)가 네트워크를 구축하고 관리합니다. WAN은 LAN에 비해 전송 속도가 10분의 1 이상 느리며, 혼잡한 구성을 가지고 있습니다.
WAN에서는 데이터를 송수신하기 위해 Switching이라는 방식을 사용합니다. Switching에는 Circuit switching과 Packet switching이라는 두 가지 방식이 있습니다.
Circuit switching
Circuit switching은 데이터 송수신에 circuit이라는 회선을 이용합니다. 미리 네트워크에 circuit들을 만들어두고, 두 장치 간 제이터 전송이 필요할 때 circuit 하나를 점유하고 서로 데이터를 주고받습니다. 이 때 데이터가 오가는 경로는 점유한 circuit 하나로 유일하므로, 데이터가 순차적으로 빠르게 전송됩니다. 또한, 두 장치간에 circuit이 한 번 설정되면 다른 제 3의 장치나 데이터가 끼어들지 못해 데이터 손실 가능성이 적습니다.
다만, circuit을 예약하는 과정이 매우 복잡해서 시간이 오래 걸립니다. 한 circuit이 예약되어 있는 동안은 해당 circuit을 사용하지 못한다는 특성 때문에 비용이 증가하고, circuit을 점유하고 있지만 데이터를 보내지 않는다면 해당 circuit이 낭비되어 비효율적입니다.
Packet switching
Packet switching은 데이터를 packet이라는 단위로 쪼개서 전송합니다. packet은 하나의 회선만을 거치는 것이 아니라, 수많은 네트워크를 라우팅을 통해 거쳐서 목적지에 도착합니다.
packet은 header와 payload로 구성되어 있습니다. header에는 목적지의 IP주소, 패킷 번호, 데이터 길이, 프로토콜 등의 식별 정보가 담겨있습니다. payload에 실제 전송하고자 하는 데이터가 담겨 있습니다.
packet은 목적지 주소를 가지고 있기 때문에 각 링크, 스위치, 라우터를 거쳐서 목적지에 도달할 수 있게 됩니다. 이 때 라우터가 중요한 역할을 하게 됩니다. 라우터는 패킷을 수신하면 수신된 링크를 구별하고 패킷을 다시 송신할 링크를 찾아서 송신합니다.
이렇게 목적지에서 수신한 패킷은 목적지에서 패킷의 번호를 이용해 다시 하나의 데이터로 재조합됩니다.
packet switching 방식은 circuit이 점유되면 사용하지 못하는 circuit switching 방식과 달리 모든 링크들을 사용할 수 있다는 장점이 있습니다. 패킷들은 네트워크 상의 어떤 링크든지 목적지와 이어지는 링크라면 사용할 수 있습니다. 다만, 패킷이 목적지에서 정상적으로 수신되었는지 여부를 알기가 매우 어렵습니다. 목적지에서 패킷이 잘 온게 맞는지 확인하려면 송신측까지 다시 가서 물어봐야 하기 때문입니다. 따라서 packet switching은 데이터 전송이 100% 보장되지 않는다는 단점이 있습니다.
참고자료
면접을 위한 CS 전공지식노트 - 주홍철
https://steemit.com/network/@sapphire317/link-node-cloud
https://kim-dragon.tistory.com/99
https://johngrib.github.io/wiki/latency/
https://www.geeksforgeeks.org/types-of-network-topology/
https://www.linkedin.com/pulse/29-common-network-bottlenecks-himadri-das
'CS > 네트워크' 카테고리의 다른 글
홉바이홉 통신, ARP (2) | 2022.11.13 |
---|---|
네트워크 기기 (4) | 2022.11.06 |
[HTTP] URI와 URL (0) | 2022.08.19 |
[HTTP] IP / TCP / DNS (0) | 2022.07.08 |
[HTTP] HTTP와 TCP / IP (0) | 2022.07.07 |