이제 네크워크 처리량과 지연, 병목 현상, 토폴로지에 대해서 정리해보겠습니다. 네트워크 처리량은 패킷 처리량이라고 할 수도 있습니다.
패킷
물리적인 네트워크를 통해 데이터를 전송할 때, 큰 데이터를 한 번에 보내기보다는 작은 조각으로 나누어 전송하는 것이 효율적입니다. 이 작은 조각을 "패킷"이라고 부릅니다. 각 패킷은 데이터의 일부를 담고 있으며, 패킷에는 몇 가지 중요한 정보가 포함되어 있습니다.
- 헤더 (Header): 패킷의 헤더에는 출발지 주소와 목적지 주소, 패킷의 크기, 패킷의 순서 정보 등이 포함됩니다. 이 정보는 패킷을 전송하고 수신하는 동안 어디로 가야 할지를 결정하는 데 사용됩니다.
- 데이터 (Data): 패킷의 본문에는 실제 데이터의 작은 일부가 포함됩니다. 예를 들어, 웹 페이지의 경우, 패킷에는 텍스트나 이미지의 작은 조각이 들어갈 수 있습니다.
- 푸터 (Footer): 패킷의 푸터는 데이터의 무결성을 확인하기 위한 정보를 담고 있습니다. 패킷의 내용이 중간에 변경되지 않았는지 확인하기 위해 사용됩니다.
패킷이 네트워크를 통해 전송되는 동안, 중간에 여러 장치와 경로를 거칠 수 있습니다. 패킷이 손실된다는 것은 이러한 여정 중에 패킷이 사라져서 목적지에 도달하지 못하는 상황을 의미합니다. 이러한 손실은 다양한 이유로 발생할 수 있습니다.
패킷 손실
- 목적지에 도착하지 못하는 경우: 이 경우 패킷이 네트워크 전송 중에 사라져서 목적지에 도달하지 않는 상황을 의미합니다. 패킷이 네트워크의 경로 중간에 사라진다면, 해당 패킷의 데이터는 목적지에 도달하지 못하게 되어서 데이터의 일부 또는 전체가 손실됩니다.
- 네트워크 혼잡: 네트워크가 많은 트래픽으로 인해 혼잡한 경우, 패킷이 큐에서 기다리다가 버려질 수 있습니다.
- 패킷 중계 장비 오류: 패킷 중계 장비(라우터, 스위치 등)의 오류로 인해 패킷이 손실될 수 있습니다.
- 신호 간섭: 무선 네트워크에서는 주변 전파 간섭이나 신호 감도가 낮아서 패킷이 손실될 수 있습니다.
- 도착했으나 내용이 이상한 경우: 패킷이 목적지에 도착했지만, 그 내용이 왜곡되었거나 손상된 경우를 말합니다. 이런 경우에는 데이터의 무결성이 위배되어 패킷의 내용이 올바르지 않을 수 있습니다.
- 데이터 손상: 패킷 전송 중에 데이터가 손상되거나 왜곡될 수 있습니다. 이는 전파 간섭이나 전송 오류로 인해 발생할 수 있습니다.
- 암호화/복호화 오류: 데이터가 암호화되어 전송되는 경우, 복호화 과정에서 오류가 발생하면 데이터가 이상하게 보일 수 있습니다.
- 데이터 변조: 중간에 악의적인 공격자가 패킷의 내용을 조작하는 경우, 패킷의 데이터가 변경될 수 있습니다.
지연 시간을 정하는 요소
통신 거리
가장 중요한 요소 중 하나는 데이터가 시작되는 위치와 의도된 목적지입니다. 서버가 장치와 지리적으로 다른 지역에 있는 경우 데이터가 더 멀리 이동해야 하므로 지연 시간이 길어집니다.
네트워크 정체
네트워크 정체는 네트워크를 통해 많은 양의 데이터가 전송될 때 발생합니다. 트래픽이 증가하면 네트워크 링크, 라우터, 스위치 등의 인프라에서 혼잡이 발생할 가능성이 증가합니다. 이로 인해 패킷들이 큐에 쌓여 전송 지연이 발생할 수 있으며, 이 혼잡한 상황을 피하기 위해 패킷이 다른 경로를 통해 전송될 수도 있습니다.
보안 관련 추가 프로토콜
일부 네트워크에는 보안을 위해 추가 프로토콜이 필요합니다. 추가 핸드셰이크 단계로 인해 지연이 발생합니다.
- SSL/TLS (Secure Sockets Layer/Transport Layer Security)
- SSL과 TLS는 데이터 통신의 보안을 위해 사용되는 프로토콜입니다. 주로 웹 브라우징과 이메일과 같은 애플리케이션에서 사용됩니다. SSL/TLS는 클라이언트와 서버 간의 보안 연결을 설정하기 위해 핸드셰이크 과정을 포함합니다. 클라이언트가 서버에 연결 요청을 보내면, 서버와 클라이언트는 서로의 신원을 확인하고 암호화 알고리즘 및 세션 키를 협상합니다. 이 핸드셰이크 단계는 초기 연결에 추가 지연을 발생시키지만, 이후 데이터 전송은 암호화되어 보안이 보장됩니다.
- IPsec (Internet Protocol Security)
- IPsec는 네트워크 레벨에서 데이터의 보안성을 제공하기 위한 프로토콜입니다. IPsec는 가상 사설 네트워크(VPN)와 같은 환경에서 많이 사용됩니다. IPsec는 데이터의 기밀성, 무결성, 인증 등을 보호하기 위해 패킷에 암호화와 인증 헤더를 추가합니다. IPsec의 핸드셰이크 단계에서는 통신 당사자 간에 보안 정책을 협상하고 암호화에 필요한 키를 교환합니다.
- SSH (Secure Shell)
- SSH는 원격 터미널 접속과 파일 전송을 안전하게 수행하기 위한 프로토콜입니다. SSH는 클라이언트와 서버 간의 핸드셰이크를 통해 보안 연결을 설정하고, 이후 데이터 전송은 암호화되어 안전하게 이루어집니다. SSH는 암호화 및 키 교환을 위한 다양한 알고리즘을 지원하며, 보안이 필요한 환경에서 널리 사용됩니다.
패킷 손실로 인한 재전송
네트워크 장치가 과부하되어 패킷이 손실될 수 있습니다. 패킷이 지연되거나 손실되면 디바이스에서 패킷을 재전송합니다. 이로 인해 지연 시간이 늘어납니다.
- 손실되는 이유
- 트래픽 혼잡: 네트워크의 대역폭을 초과하는 양의 데이터가 동시에 전송되면 혼잡이 발생할 수 있습니다. 네트워크 장비가 처리할 수 있는 패킷의 양을 초과하면 패킷이 큐에 쌓여 패킷 손실이 발생하거나, 패킷 전달이 지연될 수 있습니다.
- 패킷 충돌: 이더넷과 같은 공유 매체 네트워크에서는 여러 디바이스가 동시에 데이터를 전송하려고 할 때 충돌이 발생할 수 있습니다. 충돌이 발생하면 충돌이 감지되고, 충돌된 패킷들은 폐기됩니다.
- 신호 간섭: 무선 네트워크에서는 주변 장치나 전파 간섭으로 인해 신호가 왜곡되거나 손실될 수 있습니다. 이로 인해 패킷 손실이 발생할 수 있습니다.
- 라우터 버퍼 오버플로우: 네트워크 장비의 버퍼는 패킷을 일시적으로 저장하는 공간입니다. 네트워크 트래픽이 급격히 증가하면 라우터의 버퍼가 오버플로우될 수 있어 패킷이 손실될 수 있습니다.
- 물리적 손상: 네트워크 케이블이 손상되거나 장치의 물리적 결함이 있을 경우 패킷의 내용이 손실될 수 있습니다.
- 네트워크 장비 오류: 네트워크 장비의 하드웨어 오류나 소프트웨어 버그로 인해 패킷 손실이 발생할 수 있습니다.
- DDoS 공격: 분산 서비스 거부(DDoS) 공격은 악의적인 공격자가 대상 서버나 네트워크에 대량의 트래픽을 보내 패킷 손실이나 네트워크 마비를 유발하는 경우가 있습니다.
처리량을 정하는 요소
대역폭
네트워크 용량이 전송 매체의 최대 대역폭에 도달하면 처리량이 해당 제한을 초과할 수 없습니다.
처리 능력
특정 네트워크 디바이스에는 처리 성능을 향상시키는 특수 하드웨어 또는 소프트웨어 최적화가 있습니다. 몇 가지 예로는 전용 애플리케이션별 집적 회로 또는 소프트웨어 기반 패킷 처리 엔진이 있습니다.
패킷 손실
패킷 손실은 네트워크 정체, 하드웨어 결함 또는 잘못 구성된 네트워크 디바이스 등 다양한 이유로 발생할 수 있습니다. 패킷이 손실되면 다시 전송해야 합니다. 이로 인해 지연이 발생하고 네트워크의 전체 처리량이 감소합니다.
네트워크 토폴로지
네트워크 토폴로지는 네트워크 디바이스의 수, 네트워크 링크의 대역폭, 네트워크 경로의 디바이스 간 거리를 나타냅니다.
잘 설계된 네트워크 토폴로지는 데이터 전송을 위한 다중 경로를 제공하고 트래픽 병목 현상을 줄이며 처리량을 증가시킵니다. 디바이스가 더 많거나 거리가 더 긴 네트워크에서는 많은 처리량을 달성하기 위해 복잡한 네트워크 토폴로지가 필요합니다.
네트워크 토폴로지
네트워크 토폴로지는 네트워크의 물리적인 구성이나 연결 방식을 나타내는 것으로, 네트워크 장치와 리소스 간의 연결 방식을 기술하는 중요한 개념입니다. 토폴로지는 네트워크의 구조와 통신 패턴을 결정하며, 네트워크의 성능과 확장성에 영향을 줍니다.
병목 현상
네트워크 내에서 데이터의 흐름이 한계에 도달하여 전송 속도가 더 이상 향상되지 않거나, 지연 현상이 발생하는 상황을 병목 현상이라고 합니다. 병목 현상은 네트워크 요소나 경로에서 가장 처리 능력이 낮거나 대역폭이 작은 부분에서 발생할 수 있습니다.
일반적인 네트워크 토폴로지의 유형
- 스타 토폴로지 (Star Topology): 모든 장치가 중앙의 허브나 스위치에 연결되는 구조로, 각 장치 간의 통신은 허브나 스위치를 통해 이루어집니다.
- 장점: 중앙 허브나 스위치를 통해 각 장치가 연결되어 관리와 유지보수가 용이합니다.
- 단점: 중앙 허브에 문제가 생기면 해당 허브와 연결된 모든 장치에 영향을 미칠 수 있습니다.
- 병목 현상: 중앙 허브의 처리 능력이 한계에 다다르면 병목 현상이 발생할 수 있습니다.
- 버스 토폴로지 (Bus Topology): 모든 장치가 한 개의 공유된 통신 라인(버스)에 연결되는 구조로, 데이터는 공유된 버스를 통해 전송됩니다.
- 장점: 단순하고 저렴한 구현이 가능합니다.
- 단점: 단일 버스에 모든 데이터가 공유되기 때문에 충돌이나 데이터 충돌이 발생할 수 있습니다. 한 장치의 오류가 전체 네트워크에 영향을 줄 수 있습니다.
- 병목 현상: 버스의 대역폭이 한정되어 여러 장치가 동시에 데이터를 전송할 경우 병목 현상이 발생할 수 있습니다.
- 링 토폴로지 (Ring Topology): 모든 장치가 원형으로 연결되어 링을 형성하며, 데이터는 순환 방식으로 전송됩니다.
- 장점: 데이터 충돌이 없으며, 각 장치가 순서대로 데이터를 전송합니다.
- 단점: 하나의 장치에 문제가 생기면 전체 링이 중단될 수 있습니다. 추가 장치 연결이 어렵습니다.
- 병목 현상: 한 장치의 오류나 연결이 끊길 경우 전체 링의 작동이 멈출 수 있습니다.
- 트리 토폴로지 (Tree Topology): 스타 토폴로지의 확장된 형태로, 여러 스타 토폴로지가 중앙 허브를 통해 연결되는 구조입니다.
- 장점: 복잡한 네트워크 구조를 구현할 수 있으며, 확장성이 있습니다.
- 단점: 중앙 허브에 문제가 생기면 하위 레벨의 장치에 영향을 미칩니다. 전체 구조의 유지보수가 어려울 수 있습니다.
- 병목 현상: 중앙 허브에 문제가 생길 경우 하위 장치들에 영향을 미칠 수 있습니다.
- 메시 토폴로지 (Mesh Topology): 모든 장치가 서로 직접 연결되는 구조로, 높은 신뢰성과 병목 현상을 줄일 수 있지만 설치와 유지보수가 복잡합니다.
- 장점: 높은 신뢰성과 내결함성을 제공하며, 병목 현상을 최소화할 수 있습니다.
- 단점: 설치와 관리가 복잡하며, 장치 간 연결이 많아질수록 비용이 증가합니다.
- 모든 장치가 직접 연결되기 때문에 병목 현상이 발생하기 어려우나, 추가 장치가 많아질수록 복잡성이 증가할 수 있습니다.
- 혼합 토폴로지 (Hybrid Topology): 여러 토폴로지 유형을 혼합하여 사용하는 구조로, 다양한 요구사항을 충족시킬 수 있습니다.
- 장점: 다양한 요구 사항을 고려하여 네트워크를 설계할 수 있습니다.
- 단점: 복잡성과 비용이 증가할 수 있습니다.
- 각 구성요소의 병목 현상이 전체 네트워크의 성능을 제한할 수 있습니다.
읽어주셔서 감사합니다.
'질문 정리' 카테고리의 다른 글
HTTP Content Type과 Retrofit (0) | 2024.01.12 |
---|---|
안드로이드 4대 컴포넌트 정리 (0) | 2023.09.27 |
MVC, MVP, MVVM 패턴에 대한 정리 (1) | 2023.07.31 |
왜 코틀린인가요? (0) | 2023.06.27 |
첫 안드로이드의 벽, RecyclerView 사용 방법 (0) | 2023.05.30 |