블로그 이사합니다
아래에서 확인 가능합니다.
https://code-lab1.com/%EC%8A%A4%EC%9C%84%EC%B9%98/
스위치(Switch)란?
네트워크에서 스위치(Switch)는 컴퓨터 네트워크에서 데이터를 전송하고 연결하는 장비를 뜻한다. 스위치는 OSI 모델의 2계층인 데이터 링크 계층에서 동작하며, 주로 이더넷(Ethernet) 네트워크에서 사용된다.
스위치는 여러 개의 네트워크 장치(컴퓨터, 서버, 프린터 등)를 연결하고 이들 간에 데이터 패킷을 전송하며 데이터의 흐름을 제어한다. 스위치는 주로 MAC 주소를 사용해 연결된 장치들을 식별하고 데이터를 전달한다.
참고)
로드밸런서(Load Balancer)란?
로드 밸런서(Load Balancer)는 네트워크나 서버에 분산된 작업 부하를 공평하게 분배하는 장치이다. 로드 밸런서는 여러 대의 서버나 네트워크 장치에 들어오는 요청을 받아 해당 요청을 처리할 서버로 전달하는 역할을 한다. 이를 통해 서버 부하 분산, 고가용성, 확장성 및 성능 향상을 달성할 수 있다.
로드 밸런서는 주로 웹 서버, 애플리케이션 서버, 데이터베이스 서버 등과 같은 서버 그룹에 사용된다. 클라이언트의 요청이 로드 밸런서에 도착하면 다양한 알고리즘에 따라 이 요청을 처리할 서버로 분배한다. 이를 통해 각 서버의 부하를 분산시켜 전체 시스템의 성능과 가용성을 향상할 수 있다.
이러한 로드 밸런서는 다음과 같은 장점을 가진다.
1. 부하 분산: 로드 밸런서는 서버 그룹에 들어오는 트래픽을 여러 서버로 균등하게 분산하여 각 서버의 부하를 분담한다. 이를 통해 특정 서버의 과부하를 방지하고 시스템 전체의 성능을 향상시킨다.
2. 고가용성: 로드 밸런서는 여러 대의 서버를 관리하므로, 한 대의 서버에 장애가 발생해도 다른 서버로 요청을 전달할 수 있다. 이를 통해 시스템의 가용성을 높일 수 있다.
3. 확장성: 새로운 서버를 시스템에 추가하거나 기존 서버를 제거하는 경우, 로드 밸런서는 자동으로 이를 감지하고 트래픽을 새로운 서버로 분배한다. 이를 통해 시스템의 확장성을 유지하고 유연한 운영이 가능하다.
이러한 로드 밸런서의 역할을 하는 게 L4 스위치와 L7 스위치이다.
참고)
L4 스위치란?
L4 스위치는 L4(Transport Layer)에서 동작하는 기능을 제공하며 로드 밸런싱 역할을 하는 스위치이다.
L4 스위치는 주로 전송 계층(Transport Layer)의 헤더 정보를 분석하여 데이터 패킷을 처리하고 전송 방향을 결정한다. TCP/UDP 패킷의 정보를 분석해 데이터의 전송 방향을 처리하는 것이다. 이때 주로 포트 정보를 활용한다.
L4 스위치는 패킷의 송수신을 모니터링하고 필요에 따라 트래픽을 제어한다. 예를 들어, 애플리케이션의 트래픽 패턴을 분석해 QoS(Quality Of Service) 정책을 적용하거나, 특정 IP주소 혹은 포트로의 접근을 제어할 수 있다.
이러한 L4 스위치는 대규모 네트워크 환경에서 네트워크 성능을 향상하고 부하 분산을 위한 중요한 장치로 사용된다.
L7 스위치란?
L7 스위치는 L7(Application Layer)에서 동작하는 기능을 제공하며 고급 로드 밸런싱과 트래픽 관리에 사용되는 스위치 장비이다.
L7 스위치는 TCP/UDP 패킷의 포트 정보뿐만 아니라 페이로드(payload)까지 분석해 로드밸런싱을 한다. 즉 패킷의 내용들(URL, 캐시, 쿠키)을 분석해 요청을 분배한다. 즉, 응용 계층 수준의 로드 밸런싱이 가능하다.
L7 스위치는 애플리케이션 수준에서 보안 기능을 제공해 줄 수도 있다. 예를 들어 웹 애플리케이션 방화벽(WAF) 기능을 포함하여 악성 요청을 필터링하거나 인증 및 접근 제어를 수행하여 보안을 강화할 수 있다.
즉, L7 스위치는 L4 보다 좀 더 세밀한 수준의 고급 로드 밸런싱과 트래픽 관리를 가능케 한다.
그럼 L7 스위치만 사용하면 되는 거 아냐?
L7 스위치는 L4 스위치의 기능도 포함할 수 있다. 그럼 L4 스위치를 사용하지 않고 L7 스위치만 사용하면 되지 않을까?
물론 그렇지 않다. L7 스위치는 때에 따라 너무 많은 기능을 수행한다고 볼 수도 있다. 예를 들어 단순히 포트 정보만을 이용해서도 충분히 부하 분산이 가능하다면 굳이 L7 계층까지의 정보를 해석하며 자원을 낭비할 필요가 있을까? 비유를 하자면 닭 잡는데 소 잡는 칼을 쓰는 격이다.
따라서, HTTP 요청 등 L7 계층의 해석이 필요한 경우에는 L7 스위치를 사용하고, TCP/UDP 로드밸런싱이 필요하다면 L4 스위치를 사용하면 된다.
참고
1. https://www.techtarget.com/searchnetworking/definition/switch
2. https://www.nginx.com/resources/glossary/load-balancing/
3. https://ko.wikipedia.org/wiki/%EB%B6%80%ED%95%98%EB%B6%84%EC%82%B0
'Computer Science > [네트워크]' 카테고리의 다른 글
[네트워크] NAT(Network Address Translation)란? NAT의 동작 과정, NAT의 종류 (0) | 2023.05.23 |
---|---|
[네트워크] 스위치와 라우터의 차이 (0) | 2023.02.09 |
[네트워크] CDN(Contents Delivery Network)이란? (0) | 2022.08.23 |
[네트워크] NAC(Network Access Control)이란? NAC vs 방화벽(Firewall) (0) | 2022.06.10 |
[네트워크] 웹사이트 접속 과정에 대하여 (네트워크 과목 총 정리) | 주소창에 www.google.com을 입력하면 생기는 일 (1) | 2022.03.12 |