✒️ 0. 들어가기 전
가장 기본적이고 기초적인 내용이다.
컴퓨터 네트워크 수업을 듣고 기억에 남는 단어는 'OSI 7계층'..?....
머리 속에 요상한 7가지 블럭 두개가 있고, U자로 데이터가 왔다 갔다 하는 흐름 정도만 기억에 남는다.
하지만... 서비스 기업의 단골 중에 단골 질문은 "서버 상에서 데이터가 어떻게 이동하는가?" 에 대한 내용이다.
그러려면 머리 속에 네트워크를 이루는 장치와 그에 대한 이해가 명확히 들어있어야 한다.
그래서 차근차근 알아보자.
✒️ 네트워크를 이루는 장치의 이해
네트워크 기기는 각자의 역할에 따라 계층별로 나눌 수 있다.
여기서 재미있는 점은 상위 계층을 처리하는 기기가 하위 계층도 처리할 수 있다는 거다.
반대는 불가능하다.
예를 들어, 애플리케이션 계층의 로드밸런서는 네트워크 분산 처리도 가능하지만, 물리 계층의 NIC는 그런 고급 작업은 못한다는 것이다.
💡 레이어별 프로토콜, PDU 정리
각 계층을 거칠 때마다 PDU가 변한다.
상위 계층에서 하위 계층으로 내려갈 때마다 헤더가 추가되고, 반대로 올라갈 때는 헤더가 벗겨진다.
마치 양파 껍질을 벗기는 것처럼, 결과적으로 응용 계층은 실제 알맹이인 데이터만 갖게 된다.
예를 들어, 애플리케이션 계층에서 시작한 메시지가 전송 계층에 도달하면 TCP 헤더가 붙어 세그먼트가 되고, 네트워크 계층에서는 IP 헤더가 추가돼 패킷이 된다.
이런 구조 덕분에 각 계층은 자신의 역할에만 충실할 수 있고, 다른 계층의 복잡한 내용은 신경 쓰지 않아도 되는 것이다.
이게 바로 OSI 7계층 모델의 핵심이다.
실제로 네트워크 통신이 일어날 때는 이 과정이 눈 깜짝할 사이에 일어나지만, 이렇게 하나하나 뜯어보면 꽤나 복잡하고 정교한 과정이라는 걸 알 수 있다.
💡 레이어별 네트워크 장치
- 애플리케이션 계층: L7 스위치
- 전송계층 : L4 스위치
- 인터넷 계층(네트워크계층): 라우터, L3 스위치
- 데이터 링크 계층: L2 스위치, 브리지
- 물리 계층: NIC, 리피터, AP
✒️ 1. 애플리케이션 계층
💡 L7 스위치
L7 스위치(로드밸런서)이다.
이 7 Layer 단계의 스위치의 주 업무는 서버의 부하를 분산시키는 것이다.
단순히 IP나 Port만 보고 판단하는 게 아니라 URL, 헤더, 쿠키 등을 기반으로 트래픽을 나눠준다.
게다가 헬스 체크로 서버의 상태를 계속 모니터링하며, 문제가 생긴 서버로는 트래픽을 보내지 않는 역할 또한 한다.
참고로 AWS에서는 이런 L7 스위치 역할을 ALB(Application Load Balancer)가 담당한다.
L4 스위치 급의 로드밸런싱은 NLB(Network Load Balancer)가 맡고 있다.
✒️ 2. 전송 계층
💡 L4 스위치
L4 스위치도 트래픽 분산이 주 업무이다.
하지만 차이점은 IP 주소와 Port 번호만 보고 판단한다.
그래도 TCP, UDP 같은 전송 계층 프로토콜의 헤더를 읽어 우선순위를 정하여 분산을 할 수 있다.
또한 L7처럼 헬스 체크도 가능하다.
✒️ 3. 인터넷 계층
💡 라우터
라우터는 네트워크의 길잡이 역할을 한다.
여러 네트워크 사이에서 최적의 경로를 찾아 패킷을 전달한다.
"패킷 소모 최소화"와 "경로 최적화"가 라우터의 역할이다.
라우팅에 관한 이론적인 내용은 이 포스팅에 있다.
💡 L3 스위치
L3 스위치는 L2 스위치에 라우팅 기능을 얹은 거라고 보면 된다.
라우팅 테이블을 참조해서 IP 패킷에 목적지 IP 주소를 담아 보내는 역할을 한다.
✒️ 4. 데이터링크계층
앞서 TCP계층을 설명할 때 데이터링크계층과 물리계층을 합해서 링크계층으로 설명을 한 적이 있다.
이 링크계층을 쪼개서 데이터링크계층과 물리계층으로 나눌 수 있다.
- 데이터 링크 계층은 ‘이더넷 프레임’을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층을 말한다.
- 물리 계층은 무선 LAN과 유선LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층을 말한다.
여기서 데이터링크계층을 담당하는 장비 2가지를 알아보겠다.
💡 L2 스위치
L2 스위치는 장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리하며
인터넷계층에서 받은 패킷을 기반으로 이더넷프레임을 만들어 목적지MAC주소로 패킷을 보내주는 역할을 한다.
💡 브리지(Bridge)
브리지(bridge)는 두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 통신망 연결 장치를 말한다.
말그대로 두 개의 LAN을 연결해주는 다리 역할을 하는 것!
네트워크 확장이나 서로 다른 LAN을 하나로 묶을 때 사용한다.
✒️ 5. 물리계층
💡 NIC
NIC는 우리가 흔히 LAN 카드라고 부르는 그것이다. PC마다 고유의 MAC 주소를 가지고 있는 이 장치가 바로 NIC이다.
Network Interface Card의 약자인 NIC는 데이터 송/수신을 설명할 때 빼놓을 수 없는 장치이다.
(송신 과정)
1. Application: 데이터를 송신하는 서버 프로세스가 있다.
2. Sockets: 서버 프로세스가 운영체제의 write 시스템 콜을 통해 소켓에 데이터를 전달한다.
3. 네트워크 스택: TCP/UDP 및 IP 계층을 통해 데이터가 처리되고, 흐름 제어 및 라우팅 등의 작업이 수행된다.
4. NIC: 데이터가 NIC(랜 카드)를 통해 외부로 전송된다.
(수신 과정은 역)
💡 리피터
신호 증폭기 역할을 한다. 약해진 신호를 받아서 증폭시켜 다시 내보내는 것.
💡 AP
패킷을 복사하는 장치인데, 이는 무선 네트워크의 핵심이다.
유선 LAN을 무선으로 바꿔주는 장치이다.
(이후 포스팅에서 유선 LAN 과 무선에 대해서 포스트하겠다.)
📝 면접 예상 질문
Q: L7 스위치와 L4 스위치의 주요 차이점은 무엇인가요?
A: L7 스위치는 애플리케이션 계층에서 동작하며 URL, 쿠키 등을 기반으로 트래픽을 분산합니다. L4 스위치는 전송 계층에서 IP와 포트 번호로 부하를 분산합니다.
Q: 로드 밸런서의 헬스 체크란 무엇이며 왜 중요한가요?
A: 헬스 체크는 서버의 상태를 주기적으로 확인하는 과정입니다. 장애 서버를 감지하고 트래픽을 정상 서버로만 보내 서비스의 안정성을 높입니다.
Q: 라우터의 주요 기능은 무엇인가요?
A: 라우터는 서로 다른 네트워크 간 최적의 경로를 선택하여 패킷을 전달합니다. 패킷 소모를 최소화하고 경로를 최적화하는 것이 주 역할입니다.
Q: L2 스위치와 L3 스위치의 차이점은 무엇인가요?
A: L2 스위치는 MAC 주소를 기반으로 동작하며 같은 네트워크 내에서 프레임을 전송합니다. L3 스위치는 IP 주소를 사용해 서로 다른 네트워크 간 패킷 라우팅이 가능합니다.
Q: NIC(Network Interface Card)의 역할은 무엇인가요?
A: NIC는 컴퓨터와 네트워크를 연결하는 하드웨어입니다. 각 NIC에는 고유한 MAC 주소가 있어 네트워크상에서 장치를 식별할 수 있게 해줍니다.
Q: 브리지와 스위치의 차이점은 무엇인가요?
A: 브리지는 두 개의 LAN을 연결하는 간단한 장치입니다. 스위치는 여러 포트를 가진 고성능 브리지로, 동시에 여러 통신을 처리할 수 있습니다.
Q: AP(Access Point)의 주요 기능은 무엇인가요?
A: AP는 유선 네트워크를 무선으로 확장하는 장치입니다. 무선 기기들이 네트워크에 접속할 수 있게 해주는 중계기 역할을 합니다.