네트워크 관련 개발을 하다보면 L1, L2, L3, L4, L7 스위치 얘기를 많이 듣게 된다.
L1, L2, L3, L4, L7 스위치는 OSI 7계층에서 각 계층에 해당하는 스위치를 나타내는 말. 1계층에는 스위치가 없지만, L1 스위치는 물리 계층의 허브를 가리킴. L2 스위치는 스위칭 허브(스위치), L3 스위치는 라우터, L4 스위치는 4계층(트랜스포트 계층)의 기술(-> 포트까지 구분해서 부하를 나눌 수 있는 로드밸런싱 기능)을 사용해 로드밸런싱을 하는 라우터,
L7 스위치는 7계층(애플리케이션 계층)의 기술을 사용해 로드밸런싱을 하는 라우터를 말함
L4 스위치 기능에 더 많은 기능이 탑재되어 가격이 비싸다
L7 스위치는 포트뿐만 아니라 애플리케이션 단에 있는 패킷의 데이터를 구분해 부하를 나눌 수 있는 로드밸런싱 기능을 수행한다.
로드밸런싱은 부하를 밸런스있게 나눠주는 기술을 말함.
로드밸런싱은 L4, L7 스위치 수행함.
L4스위치에서 로드밸런싱은 NAT를 이용해 수행한다.
예를 들어 게임이 새로 출시되어 사용자가 많이 몰릴 수 있는 상황이라면
하나의 서버로 감당이 안돼 여러개의 서버를 둔다.
사용자의 게임 클라이언트는 게임 서버에 접속하기 위해 L4스위치에게 IP와 특정 Port로 데이터를 보낸다.
L4스위치는 클라이언트가 보낸 IP와 Port를 보고 즉 트랜스포트 계층까지 정보를 활용해 어떤 서버로 보낼지 결정하고
적절하게 부하를 나눠준다.
ex) 5555포트로 들어온 포트는 기존 게임 서버로 연결하기로 약속, 새로 출시된 게임은 9999번 포트를 사용한다면 이 패킷은 L4 스위치가 로드를 분배해준다.
가장 간단한 방식은 요청이 들어올때마다 서버 여러개중에 나눠서 보내 부하를 분산시키는 것이다.
L7은 조금더 많은걸 참조해 부하를 분산시킨다.
IP와 Port뿐만아니라 애플리케이션의 데이터를 참조해 더 세심하게 트래픽을 분산한다.
하지만 애플리케이션의 암호화 대문에 모든 데이터를 볼 수 없어 일부만 참조,
클라이언트에서 HTTP 요청을 했다면 IP와 Port, 그리고 HTTP 요청 헤더를 보고 판단한다.
만약 클라이언트에서 서버의 주소인 1.2.3.4의 80번 포트로 HTTP GET 메서드로 /users/123을 보냈다면
L7스위치는 포트 번호와 요청 헤더를 보고 웹 서버에 유저를 조회하는 요청이라는 것을 알아내 유저 조회를 담당하는 서버로 보낸다.
반면 IP와 Port는 똑같이 보내더라도 GET 메서드로 /pictures/100 을 보냈다면
L7스위치는 사진을 조회하는 요청이라는 것을 알아내 사진 조회를 담당하는 서버로 보낸다.
L4 스위치에서는 트랜스포트 계층인 포트를 활용해 로드밸런싱을 수행하고 L7 스위치에서는 트랜스포트 계층뿐만 아니라 애플리케이션 계층의 데이터를 활용해 로드밸런싱을 수행함.
'네트워크' 카테고리의 다른 글
프로토콜 (0) | 2024.12.07 |
---|---|
인터넷과 인트라넷 그리고 VPN (0) | 2024.07.31 |
Proxy 서버 (1) | 2024.07.31 |
ARP(Address Resolution Protocol) (1) | 2024.07.08 |
RIP(Routing Information Protocol) (0) | 2024.06.24 |