본문 바로가기
CS/네트워크

네트워크 기기

by 우다다캣 2022. 11. 6.

 네트워크 기기는 TCP / IP 계층(또는 OSI 7계층)별로 처리 범위를 나눌 수 있습니다. 이 때 상위 계층을 처리하는 기기는 하위 계층의 프로토콜도 처리할 수 있지만 그 반대는 불가능합니다.

애플리케이션 계층 : L7 스위치
인터넷 계층 : 라우터, L3 스위치
데이터 링크 계층 : L2 스위치, 브리지
물리 계층 : NIC, 리피터, AP

 

스위치란?

 네트워크 스위치는 2개 이상의 장치를 연결해서 서로 통신하고 리소스를 공유할 수 있게 해주는 장비입니다. OSI 7계층의 각 계층에서 사용하는 스위치에 따라 스위치 명칭이 달라집니다. 예를들어 3계층(네트워크 계층)에서 사용하는 스위치는 L3 스위치, 7계층(애플리케이션 계층)에서 사용하는 스위치는 L7 스위치로 불립니다.

 

애플리케이션 계층

L7 스위치

 L7 스위치는 주로 L5, L6 기능까지 같이 하는 스위치로, 로드밸런싱을 통해 서버의 부하를 분산합니다. 애플리케이션 계층인 URL, FTP, 캐시, 쿠키 등을 기반으로 트래픽을 분산해서 서버에 전송합니다.

 

 

L4 스위치 vs L7 스위치

 L4 스위치 역시 L7 스위치와 동일하게 로드밸런서 역할을 합니다. 다만 L4 스위치는 3~4계층(인터넷 계층)에 속하는 IP주소, TCP/UDP 포트 정보를 기반으로 트래픽을 분산하지만, L7 스위치는 IP주소와 포트 정보 외에도 URL, HTTP 헤더, 패킷 내용 등을 모두 사용해 트래픽 분산이 가능합니다.

 

 따라서 L7 스위치가 보안에 더 유리하고, 더 정교한 로드 밸런싱이 가능합니다. L7 스위치는 데이터 분석을 통해 DDoS 공격을 방어하기도 하고, 감염 패킷 필터링 등의 기능도 제공합니다.

 

헬스 체크

 헬스 체크는 전송 주기와 재전송 횟수 등을 설정해서 반복적으로 서버에 요청을 보내는 것을 말합니다. 주로 로드밸런싱 서비스를 제공하는 여러 대의 서버의 상태를 점검하기 위해 로드 밸런서 역할을 하는 L4, L7 스위치에서 진행합니다.

 

 L4 스위치에서 진행하는 헬스 체크로는 TCP(UDP) 헬스 체크가 있습니다. TCP 헬스 체크는 TCP에서 제공되는 서비스 포트를 이용해 서버의 상태를 검사하는 작업으로, 이미 지정된 포트를 사용하는 FTP, HTTP, Telnet 등과 개발자가 사용할 수 있는 범위의 포트 번호를 이용해서 점검을 진행합니다. TCP의 경우 3 way handshake를 이용해서 서버의 응답 유무에 따라 서비스 가능 여부를 판단합니다.

 

 L7 스위치에서 진행하는 헬스 체크는 Script를 이용해서 헬스 체크를 진행하는 스크립트 헬스 체크가 있습니다. 말 그대로 스크립트로 작성된 순서에 따라 서버로 메시지를 전송하고, 그에 따른 응답 메시지 유무에 따라 서버의 서비스 가능 여부를 판단합니다. 주로 서버와 TCP 세션을 맺고 Request 메시지를 전송해서 응답 코드를 확인하는 방식으로 진행합니다.

 

서버 이중화

 로드밸런서의 대표적인 기능으로 서버 이중화가 있습니다. 서버 이중화란 운영중인 서비스의 안정성을 위해서 각종 자원을 이중, 또는 그 이상으로 구성하는 것을 의미합니다. 이렇게 서버를 2개 이상으로 구성하면 하나의 서버에 장애가 발생하더라도 다른 서버를 통해 서비스를 지속할 수 있습니다. 또한, 대량의 트래픽을 여러 대의 서버로 분산하여 하나의 서버에 부하가 집중되지 않도록 할 수 있습니다.

 

 로드밸런서는 사용자들에게 가상 IP를 제공하고, 이 가상 IP로 들어온 트래픽을 뒷단의 사용 가능한 서버들로 분산해서 서빙합니다.

 

 

 서버 이중화 시 반드시 갖추어야 할 기능으로는 데이터 복제 기능, 장애 감시 기능이 있습니다.

 1번 서버에 장애가 발생하면 2번 서버가 1번 서버를 대신해서 바로 서비스 하기 위해서는 두 서버의 데이터가 항상 100% 동일해야 합니다. 따라서 두 서버간 데이터를 동일하게 맞추기 위해서는 데이터 복제(Data Replication) 기능이 반드시 필요합니다.

 또한, 언제 어떤 서버에서 장애가 발생할 지 모르니 사용 중인 서버들을 항상 감시하고 있어야 합니다.

 

인터넷 계층

라우터

 라우터는 여러 개의 네트워크를 연결, 분산, 구분시켜주는 역할을 합니다. 스위치가 서로 다른 장치들을 연결하는 역할을 한다면, 라우터는 서로 다른 네트워크를 연결하는 역할을 합니다.

 

 라우터는 다음과 같은 차례로 동작을 합니다.

1. 경로 지정 : 다양한 경로를 수집한 후 최적의 경로를 라우팅 테이블에 저장합니다. 이후 패킷이 들어오면 목적지 IP주소에 도달하는 경로를 라우팅 테이블에서 확인해서 최선의 경로로 패킷을 보냅니다.

2. 브로드캐스트 컨트롤 : 들어온 패킷의 목적지 IP 주소가 라우팅 테이블에 없으면 패킷을 버립니다. 라우터는 직접 연결되어 있는 네트워크 정보를 제외하고 경로 습득 설정을 하지 않으면 해당 경로로는 패킷을 포워딩할 수 없습니다.

3. 프로토콜 변환 : 패킷 포워딩 과정에서 기존의 2계층 헤더 정보를 제거한 후 새로운 2계층 헤더를 만듭니다. 이를 통해서 서로 다른 프로토콜로 구성된 네트워크를 연결할 수 있습니다.

 

L3 스위치

 L3 스위치는 L2 스위치의 기능과 라우팅 기능을 갖춘 장비입니다. 과거에는 라우터는 소프트웨어 기반의 라우팅을, 스위치는 하드웨어 기반의 라우팅을 하는 것으로 나눠졌지만 최근에는 기술의 발전으로 라우터와 L3 스위치를 구분하기 어렵습니다. 따라서 라우터와 L3 스위치를 동일하게 생각해도 무방합니다.

 

데이터 링크 계층

L2 스위치

 L2 스위치는 장치들의 MAC 주소를 테이블로 관리하며, 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당합니다. IP 주소를 이해하지 못하기 때문에 IP 주소를 기반으로 하는 라우팅은 불가능하며, 단순히 패킷의 MAC 주소를 읽어서 스위칭합니다.

 

 L2 스위치는 다음과 같은 기능을 갖습니다.

러닝(Learning) : 출발지의 주소가 MAC 테이블에 없으면 출발지의 MAC 주소를 저장합니다.
플로딩(Flooding) : 목적지의 주소가 MAC 테이블에 없으면 전체 포트에 패킷을 전달합니다.
필터링(Filtering) : 출발지와 목적지가 동일 네트워크에 존재한다면 다른 네트워크로의 전파를 차단합니다.
에이징(aging) : MAC 테이블의 주소를 일정 시간 후 삭제합니다.

 

브리지

 브리지(bridge)는 두 개의 근거리 통신망(LAN)을 연결시켜주는 장치고, LAN을 확장하는 장치입니다. 스위치와 비슷하게 MAC 주소를 MAC 주소 테이블로 관리합니다.

 

 스위치는 하드웨어 기반, 브리지는 소프트웨어 기반 장치입니다. 스위치의 속도가 훨씬 빠르고, 스위치가 다중 포트 브리지를 지원하기 때문에 오늘날에는 순수 브리지는 잘 사용하지 않습니다.

 

물리 계층

NIC

 네트워크 인터페이스 카드(NIC, Network Interface Card)는 LAN 카드라고도 하며, 2대 이상의 컴퓨터 네트워크를 구성하는데 사용합니다. NIC는 궁극적으로 데이터링크 계층용 프로토콜을 구현하며, 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경합니다. 각 NIC(LAN 카드)에는 각 장치를 구별하기 위한 하드웨어 주소인 MAC(Media Access Control) 주소가 지정되어 있습니다.

 

리피터

 리피터(repeater)는 전송되는 신호가 선로의 특성이나 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해진 경우에 원래 신호 형태로 다시 증폭해서 전송하는 역할을 합니다. 이를 통해 패킷을 더 멀리까지 보낼 수 있지만, 광케이블이 보급되면서 현재는 잘 쓰이지 않는 장치입니다.

 

AP

 AP(Access Point)는 무선 랜을 구성하는 장치 중 하나로, 패킷을 복사해서 유선 랜과 무선 랜을 연결시켜주는 장치입니다. 무선 랜을 강조하기 위해 AP를 WAP(Wireless Access Point)라고도 부릅니다.

 일반적으로 유선망을 거치는 라우터에 연결되며, 컴퓨터나 프린터와 같은 무선 장치와 유선 장치 간 데이터를 와이파이 등의 무선 LAN 기술을 이용해 중계합니다. 

 

참고자료

면접을 위한 CS 전공지식노트 - 주홍철

https://www.juniper.net/kr/ko/research-topics/what-is-a-network-switch.html

https://siahn95.tistory.com/entry/Network%EC%9E%A5%EB%B9%84-L1-L2-L3-L4-L5-L6-L7-%EC%8A%A4%EC%9C%84%EC%B9%98%EB%9E%80

https://jesc1249.tistory.com/6

https://pythontoomuchinformation.tistory.com/475

https://catsbi.oopy.io/225439bd-ec84-4e16-aeca-0dfcb9954ea6

http://wiki.hash.kr/index.php/L2_%EC%8A%A4%EC%9C%84%EC%B9%98

http://www.ktword.co.kr/test/view/view.php?m_temp1=4842 

https://butter-shower.tistory.com/108

https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%84%A0_%EC%95%A1%EC%84%B8%EC%8A%A4_%ED%8F%AC%EC%9D%B8%ED%8A%B8

'CS > 네트워크' 카테고리의 다른 글

HTTP의 발전 (HTTP/1.0에서 HTTP/3.0까지)  (1) 2022.11.21
홉바이홉 통신, ARP  (2) 2022.11.13
네트워크 기초  (1) 2022.10.31
[HTTP] URI와 URL  (0) 2022.08.19
[HTTP] IP / TCP / DNS  (0) 2022.07.08