Intro
네트워크 파트가 백엔드 개발자에게 왜 중요할까? 인프라 자체를 이해하는 데 네트워크 지식을 필요로 한다. 프로그래밍 실력 만큼이나 중요한 건 인프라에 대해 이해하는 것이라 생각한다.
네트워크 파트는 총 세 파트로 나뉜다.
- Part 1 : 기초 네트워크 지식
- Part 2 : TCP/IP 4계층 VS OSI 7 계층
- Part 3 : IP 주소
- Part 4 : HTTP
네트워크 기초 용어 정리
Node, Link
- Node : 서버, 라우터, 스위치 등 네트워크 장치
- Link : 유선 또는 무선으로 연결 된 상태
Throughput, Latency
- Throughput : 링크를 통해 전달되는 단위 시간 당 데이터(bit per second)
- Latency : 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간
Network Topology
- Tree
- 노드의 추가 및 삭제가 쉬움
- 특정 노드에 트래픽이 집중되면 하위 노드에 영향을 끼칠 수 있음
- Bus
- LAN 에서 사용함
- 설치가 쉽고 신뢰성이 우수함
- 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움
- 스푸핑에 취약함
- Star
- 노드 추가 쉬움
- 에러 탐지 쉬움
- 패킷 충돌 가능성 낮음
- 중앙에 에러가 생기면 모든 노드가 영향을 받음
- Ring
- 노드 수가 증가되어도 네트워크 상 손실이 없음
- 충돌 발생 가능성이 적음
- 노드의 고장을 쉽게 찾을 수 있음
- 네트워크 구성 변경이 어려움
- 회선에 장애가 발생하면 전체 네트워크에 영향을 끼침
- Mesh
- 트래픽 분산처리가 가능
- 노드 하나가 에러가 생겨도 장애가 전체로 퍼지지 않음
- 노드 추가가 어려움
- 구축 비용과 운영 비용이 많이 듬
- Bottle Neck
- 하나의 구성요소로 인해 전체 시스템의 성능이나 용량이 제한을 받는 상황
- Topology에 따라 적절한 대처법을 적용해야 함.
네트워크 분류
- LAN
- 근거리 통신망
- 같은 건물과 같은 좁은 공간에서 운용
- 전송 속도가 빠르고 혼잡하지 않음
- MAN
- 도시와 같은 넓은 지역에서 운영 됨
- 전송 속도는 중간이며 혼잡함
- WAN
- 광역 네트워크. 국가나 대륙 단위로 운영.
- 전송 속도는 낮으며 가장 혼잡함
네트워크 성능 분석 방법
- Bottle neck의 원인
- 네트워크 대역폭
- 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성
- 이러한 원인을 분석하기 위해 사용하는 명령어
- ping
- 특정 노드에 직접 패킷을 전송함
- Latency를 확인 할 수 있음
- 노드 간 링크가 정상적인 지 확인 할 수 있음
- TCP/IP 프로토콜 중 ICMP 프로토콜을 사용
- 네트워크 정책 상 ICMP 를 차단하는 노드에 전송할 수 없음
- netstat
- 접속 되어 있는 서비스들의 네트워크 상태를 표시함
- 서비스 포트가 열려있는 지 확인하는 데 주로 사용함
- nslookup
- tracert
- 목적지 노드까지 네트워크 경로를 확인할 때 사용함.
네트워크 기기 정리
- 로드 밸런서
- 서버의 부하를 분산하는 기기
- 서버가 여러대가 있을 때 전체 시스템이 처리할 수 있는 트래픽을 늘려주는 역할
- 종류
- L4, L7
- 각 각 Layer 4(Transport Layer), Layer 7(Application Layer)를 담당해서 붙은 이름
- L7 스위치는 URL, 서버, 캐시, 쿠키 등을 기반으로 트래픽을 분산함.
- Application Layer에서 작동함으로 애플리케이션 수준의 트래픽 모니터링도 가능함
- L4 스위치는 Transport Layer에서 작동함으로 IP 와 포트를 기반으로 트래픽을 분산함. 메시지들을 따로 인식하지는 못함.
- 로드밸런서는 주기적으로 헬스체크를 통해 서버의 상태를 확인함.
- 비정상적인 서버가 있다면, 트래픽 분산 대상에서 제외시킴
- Router
- 여러 개의 네트워크를 연결, 분할, 구분 시켜주는 역할
- 다른 네트워크에 존재하는 장치끼리 데이터를 주고받을 때 경로를 최적화 하는 역할을 함
- L2 스위치
- Layer 2 (DataLink Layer) 에서 데이터를 처리함.
- 장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리함.
- 연결 된 장치로부터 패킷이 왔을 때 패킷 전송을 담당
- L3 스위치
- 사실상 라우터 역할을 하는 장비
- 소프트웨어 기반 라우팅이 아닌 하드웨어 기반 라우팅
- Layer 3 (Network Layer) 에서 데이터를 처리함
- IP 패킷, IP 주소를 참조하여 라우팅 처리를 함
- 브릿지
- 두 개의 LAN을 상호 접속할 수 있도록 하는 통신망 연결 장치
- 포트와 포트 사이의 다리 역할을 하며 장치에서 받아 온 MAC 주소를 MAC 주소 테이블로 관리함
Outro
전공 시간에 참 많은 지식들을 배웠지만 실무에서 자주 쓰이는 것 들을 위주로 정리 해 보았다.
다음 포스팅은 TCP/IP 4계층, OSI 7계층에 대해 써 보도록 하겠다.
정말 중요하고 인프라를 이해하기 위해서 몰라서는 안 되는 지식.