안녕, 리뷰어. 나는 뫙대🛠️
CS에 대한 개념이 0에 수렴해 공부를 시작합니다. 네트워크 공부는 '혼자 공부하는 네트워크'를 기반으로 합니다. 이번 글에서는 네트워크 심화에 대해 다룹니다.
- 저자
- 강민철
- 출판
- 한빛미디어
- 출판일
- 2024.04.12
안정성
고가용성*(HA, High Availability)이 높으면 안정적인 시스템. 일반적으로 99.999% 이상일 때 안정적이라 평가
*가용성은 안정성의 정도. 업타임/(업타임+다운타임)
→ 다운타임을 낮추고 가용성을 높이기 위해서는 결함 감내fault tolerance가 중요
| 가용성(%) | 1년간 다운타임 | 한 달간 다운타임 | 한 주간 다운타임 |
| 99.999(파이브 나인스) | 5.26분 | 26.3초 | 6.05초 |
| 99.9999(식스 나인스) | 31.56초 | 2.63초 | 0.604초 |
| 99.99999(세븐 나인스) | 3.16초 | 0.262초 | 0.0604초 |
결함 감내 기술
- 이중화: 단일 장애점(SPOF, Single Point Of Failure)을 대비해 백업 마련.
- 액티브/스탠바이active-standby: 가동 상태-대기 상태. 액티브 시스템 장애 발생 시 페일오버failover를 통해 스탠바이 시스템으로 자동 전환 → 안전하지만 성능성 큰 변화 X
- 액티브/액티브active-active: 가동 상태-가동 상태 → 부하 분산 등 성능상 이점이 있지만 문제 발생 시 부하 급증으로 추가 문제 발생 가능성 有
- 다중화: 이중화 기술 확장
이중화/다중화 사례
티밍teaming: 윈도우
본딩bonding: 리눅스
→ 여러 개의 NIC를 이중화/다중화해 하나의 인터페이스처럼 보이게 하는 기술
- 로드 밸런싱: 고른 트래픽traffic 분배
- 로드 밸런서: 이중화/다중화된 서버와 클라이언트 사이에 위치 e.g. 스위치: L4, L7. 소프트웨어: HAProxy, Envoy, Ngnix 등
- 로드 밸런싱 알고리즘: 부하 대상 선택. 가중치weighted 부여 가능
- 라운드 로빈 알고리즘: 서버를 돌며 부하 전달
- 최소 연결 알고리즘: 연결이 적은 서버부터 우선적으로 부하 전달
- etc. 무작위 선택, 해시Hash 이용 선택, 응답 시간이 가장 짧은 서버 선택
- 서버 상태 검사: 헬스 체크health check
중간 대리자 프록시Proxy
포워드foward 프록시: 클라이언트가 선택한 메시지 전달 대리자
리버스reverse 프록시 i.e. 게이트웨이: 아웃바운드 연결에 대해 오리진 서버 역할을 하지만, 수신된 요청을 변환해 다른 인바운드 서버로 전달하는 중개자 역할
*인바운드inbound는 오리진 서버를 향하는 메시지, 아웃바운드outbound는 클라이언트를 향하는 메시지
안전성
암호화encryption와 복호화decryption
- 대칭 키 암호화: 동일한 암호 키 사용 → 키 유출 가능. 안전성은 떨어지나 부하가 적음
- 공개 키 암호화 i.e. 비대칭 키 암호화: 암호화하는 공개 키와 복호화하는 개인 키 쌍 사용 → 안전하나 시간과 부하가 상대적으로 많음
→ 함께 사용: 공개 키로 세션 키 암호화, 개인 키로 세션 키 암호화
공개 키 인증서public key certificate
공개 키와 공개 키의 유효성을 입증하기 위한 전자 문서. 인증 기관(CA, Certification Authority)의 서명 값signature*으로 인증서 검증
*인증서에 내용에 대한 해시 값을 CA의 개인 키로 암호화. 변조modulation 여부 검사
HTTPS(HTTP over TLS)
HTTP 메시지를 안전하게 송수신하기 위해 개발된 프로토콜. 인증과 암호화를 수행하는 SSL(Secure Sockets Layer)/TLS(Transport Layer Security)를 기반으로 암호화 통신. 크게 3단계를 거쳐 송수신
- TCP 3-Way Handshake
- TLS Handshake
- Exchange Encrypted Message
| 송수신 방향 | 메시지 | 메시지 정보 | TLSv1.2 |
| Client → Server | Client Hello | TLS 정보, 암호 스위트* 등 제시 | Client Hello+Client Key Exchange |
| Server → Client | Server Hello | 선택한 정보 | Server Hello |
| Server → Client | Encrypted Extentions | ALPN 등 서버의 추가 확장 정보 | - |
| Server → Client | Certificate | 인증서 | Certificate |
| Server → Client | CertificateVerify | 검증을 위한 디지털 서명 | - |
| Server → Client | Finished | TLS Handshake 완료 | Done→Change Cipher Spec+Finished |
| Client → Server | Finished | TLS Handshake 완료 | Change Cipher Spec+Finished |
| 양방향 | Application Data | 암호화된 메시지 | Application Data |
*암호 스위트는 사용 가능한 암호화 방식과 해시 함수를 담은 정보
**해당 표는 TLS 1.3 버전 기반
[혼자 공부하는 네트워크] 06 실습으로 복습하는 네트워크 - 와이어샤크
안녕, 리뷰어. 나는 뫙대🛠️ CS에 대한 개념이 0에 수렴해 공부를 시작합니다. 네트워크 공부는 '혼자 공부하는 네트워크'를 기반으로 합니다. 이번 글에서는 와이어샤크에 대해 다룹니다. 혼자
noeyahmig.tistory.com
무선 네트워크
- 연결 매체: 전파 → 3kHz부터 3THz 사이의 진동수를 갖는 전자기파
- 주파수 대역
*무선 LAN 표준 규격은 IEEE 802.11표준 규격* 주파수 대역 전송 속도 IEEE 802.11a 5GHz 54Mbps IEEE 802.11g 2.4GHz 54Mbps IEEE 802.11n 2.4/5GHz 450bps IEEE 802.11ac 5GHz 6.9Gbps IEEE 802.11ax 2.4/5/6GHz 9.6Gbps IEEE 802.11be 2.4/5/6GHz 46.1Gbps - 기술: Wi-Fi → 주파수에 따른 회절성을 기준으로 와이파이 속도가 달라짐
e.g. 2.4GHz: 도달 거리↑, 속도•장애물 영향↓ 5GHz: 도달 거리↑, 속도•장애물 영향↓- 채널: 하위 주파수 대역. 주파수 대역 내 통신 경로 → 채널 간 간섭이 많을 시 성능 저하
- 장비: AP(Access Point) → 인프라스트럭처 모드의 핵심
- 서비스 셋: AP와 여러 장치들의 집합. SSID로 식별
e.g. 하나의 AP로 구성된 BSS(Basic Service Set), 여러 AP로 구성된 ESS(Extended Service Set) - 비컨 프레임: 존재를 알리기 위한 브로드캐스트 메시지
- 서비스 셋: AP와 여러 장치들의 집합. SSID로 식별
끝. 네트워크 문제를 풀며 복습할 것.
🤔 로드 밸런싱이 트래픽을 분산시키기 위함이라면 이중화보다 다중화된 서버에서 더 효율적일까.
'CS > 네트워크' 카테고리의 다른 글
| [혼자 공부하는 네트워크] 06 실습으로 복습하는 네트워크 - 와이어샤크 (0) | 2025.05.26 |
|---|---|
| [혼자 공부하는 네트워크] 05 응용 계층 - HTTP (1) | 2025.05.20 |
| [혼자 공부하는 네트워크] 05 응용 계층 - DNS (0) | 2025.05.19 |
| [혼자 공부하는 네트워크] 04 전송 계층 - UDP (0) | 2025.05.13 |
| [혼자 공부하는 네트워크] 04 전송 계층 - TCP (1) | 2025.05.13 |

