어떠한 서비스를 구축할때 우리는 대용량 트래픽을 처리하기위한 방법 중 하나로 로드밸런싱(https://aws.amazon.com/ko/what-is/load-balancing/)을 한다.
로드밸런싱을 제공 하는 요소(소프트웨어 혹은 하드웨어)를 로드밸런서라고 하며, 대표적으로 L4/L7 스위치가 있다.
L4/L7 스위치의 'L'은 OSI 7Layer의 Layer를 의미하며 4/7은 각 계층(4계층,7계층)을 의미한다.
그이유는 스위치들은 각계층을 기반으로 동작하기 때문이다.
단순히 L4/L7의 동작원리를 암기하여 외울순 있겠지만, 각계층이 어떤역할을 하는지 알게된다면, 굳이 외우지 않아도 L1,L2,L3 등등 스위치도 어떻게 동작하는지 유추가 가능할 것 입니다.
그래서 일단, OSI 7Layer의 각 계층에 대해 간단히 알아보며 각 스위치의 동작 원리를 알아보자!
1계층 - 물리계층(Physical Layer)
- 데이터를 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다
- 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송
- 데이터를 전달만 할뿐 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다.
- 프로토콜: RS-232, X.25/X.21
L1 스위치
동작: 단지 받은 패킷을 연결된 모든 디바이스로 전달하는 flooding 기능만 수행
예제: 허브, 리피터
2계층 - 데이터 링크계층(DataLink Layer)
- 맥(MAC) 주소를 가지고 통신
- 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC( Cyclic Redundancy Check) 기반의 오류 제어와 흐름 제어가 필요
- 프로토콜: 이더넷(Ethernet), PPP(Point-to-Point Protocol)
L2 스위치
동작: . 디바이스들에 대한 MAC주소 테이블을 가지고 있죠. L2 스위치에 패킷이 들어오면 목적지 MAC 주소를 확인하고 이 주소를 MAC 주소 테이블과 비교해 해당 디바이스가 연결된 포트로 패킷을 전달
예제: 브리지, 스위치(그냥 '스위치' 라고 하면 일반적으로 L2 스위치)
3계층 - 네트워크 계층(Network Layer)
- 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달 (우리가 자주 듣는 IP 주소가 바로 네트워크 계층 헤더에 속함)
- L2 스위치는 MAC 주소까지만 알았다면, L3 스위치는 MAC 주소뿐만 아니라 IP 주소까지 알고 있다.
- 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행
- 프로토콜: IP(Internet Protocol), ICMP , ARP (Address Resolution Protocol), ICMP(Internet Control Message Protocol)
L3 스위치
동작: L3 스위치란 L2 스위치에 라우팅 기능이 추가된 장비, L3 패킷에서는 목적지 IP 주소를 얻을 수 있는데, 이 IP주소를 이용해 로컬 네트워크와 외부 네트워크를 구분할 수 있어요. 받은 패킷의 목적지 IP 주소를 알 때는 로컬 네트워크의 특정 디바이스로, 목적지 IP 주소를 모를 때는 외부와 연결된 라우터로 전송 -
예제: 라우터, 공유기
4계층 - 전송 계층(Transport Layer)
- 패킷에서 IP정보와 Port 정보를 얻을 수 있음
- 통신을 활성화하기 위한 계층
- 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행
- 프로토콜: TCP, UDP
L4 스위치
동작: L4 스위치의 경우 3~4계층에 속하는 IP 주소 및 TCP/UDP Port 정보를 보고 스위칭
보통 L7 스위치가 L5, L6 기능까지 같이 하기 때문에 5계층, 6계층은 생략
7계층 - 응용 계층(Application Layer)
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
- OSI 7계층 모델에서 최상위 계층으로 사용자가 네트워크 자원에 접근하는 방법을 제공
- 최종적으로 사용자가 볼 수 있는 유일한 계층으로 모든 네트워크 활동의 기반이 되는 인터페이스를 제공
- 프로토콜: HTTP, FTP, SMTP, POP3, IMAP, Telnet
L7 스위치
동작:
- L7 스위치의 경우 3~7계층에 속하는 IP 주소 및 TCP/UDP Port 정보, 패킷 내용까지 모두 보고 스위칭
- 7계층 HTTP의 URL, FTP 쿠키 정보 및 바이러스 패턴을 분석하여 보안에 더 유리하고 정교한 로드 밸런싱이 가능
참고
https://handreamnet.tistory.com/308
https://nhj12311.tistory.com/75
https://jesc1249.tistory.com/26
https://shlee0882.tistory.com/110
http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5
'게으른개발자 > 공부' 카테고리의 다른 글
DB(PostgreSQL) 인덱스와 활용방법 (컴포지트 인덱스, 커버링 인덱스) (0) | 2023.03.13 |
---|---|
gRPC 간단 정리와 예제 (0) | 2023.02.25 |
REST vs. RESTful (0) | 2022.09.13 |
JPA OneToMany 중복조회 (0) | 2022.07.31 |
SSH 터널링을 통한 데이터베이스 백업 방법 (0) | 2022.07.16 |