# 본 글은 인하대학교 단풍나무숲 CS 스터디에 작성한 내용을 그대로 가져온 글입니다.
# 본 내용 중 HTTPS 관련 내용은 제외되었습니다 (추후 다룰 예정).
2. 네트워크
목차
- 네트워크 기기
- IP 주소
- HTTP
3. 네트워크 기기
네트워크를 구성하는 여러 종류의 기기에 대해 다룹니다.
1. 네트워크 기기의 처리 범위
각 계층을 담당하는 기기들이 있다.
- 애플리케이션 계층: L7 스위치
- 인터넷 계층: 라우터, L3 스위치
- 데이터 링크 계층: 브리지, L2 스위치
- 물리 계층: NIC, 리피터, AP
애플리케이션 계층을 처리하는 기기
L7 스위치
기본적으로, 스위치는 여러 장비를 연결하고, 데이터 통신을 중재하며, 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송한다.
- 로드 밸런서라고도 하며, 서버의 부하를 분산함
- 클라이언트 -> (중략) -> 로드 밸런서 -> 여러 대의 서버 와 같은 형태를 가진다.
- URL, 서버, 캐시, 쿠키 등을 기반으로 트래픽을 분산한다.
- 바이러스, 불필요한 외부 데이터 등을 걸러낸다.
- L4 스위치는 IP와 포트를 기반으로 트래픽을 분산하는데, L7 스위치는 IP, 포트, URL, HTTP 헤더, 쿠키 등을 기반으로 트래픽을 분산시킨다.
- 두 스위치 모두 헬스 체크를 통해 서버의 정상/비정상 여부를 분간한다.
인터넷 계층을 처리하는 기기
라우터
- 여러 개의 네트워크를 연결, 분할, 구분시켜 준다.
- 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화한다.
- 경로를 최적화하여 최소 경로로 패킷을 포워딩한다.
- 공유기
L3 스위치
- L2 스위치의 기능에 더해, 라우팅 기능을 갖춘 장비
구분 | L2 스위치 | L3 스위치 |
---|---|---|
참조 테이블 | MAC 주소 테이블 | 라우팅 테이블 |
참조 PDU | 이더넷 프레임 | IP 패킷 |
참조 주소 | MAC 주소 | IP 주소 |
데이터 링크 계층을 처리하는 기기
L2 스위치
- MAC 주소를 기반으로 장치를 관리하며, 이를 위해 MAC 주소 테이블을 사용함
- 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당
- IP 주소는 사용할 수 없음
물리 계층을 처리하는 기기
NIC
- Network Interface Card
- 네트워크 연결을 위해 컴퓨터에 설치하는 확장 카드
4. IP 주소
ARP 통신
IP 주소를 통한 인터넷 계층의 통신이란, IP 주소를 기반으로 MAC 주소를 찾아 통신을 진행하는 과정
- ARP (Address Resolution Protocol)은 IP -> ARP -> MAC로 진행되는 주소 변환 과정의 매개체 역할을 한다.
- RARP: MAC -> ARP -> IP 주소로 진행되는 주소 변환 과정의 매개체
- 가상 주소 (IP)를 실제 주소 (MAC)으로 변환하는 과정이 필요하다.
Hop By Hop 통신
- 출발지로부터 목적지까지 중간 경로를 거쳐 가는 과정을 hop에 비유하여 나타낸 표현
- 라우팅 과정을 통해 라우팅 테이블을 작성하고, 실제로 패킷을 출발지로부터 목적지까지 라우팅 테이블을 따라 포워딩한다.
- 게이트웨이: 서로 다른 네트워크, 프로토콜 간 통신을 중간에서 가능하도록 하는 매개체
IP주소 체계
IP주소는 크게 IPv4와 IPv6로 나뉜다.
- IPv4: 더 옛날에 나온 방식이며, 32비트 값을 8비트 단위로 끊어서 10진수 형태로 표현한다. 예) 255.255.255.0
- IPv6: IPv4의 한계를 극복하기 위해 나타난 방식이지만, IPv4에 비해 보급이 더디다. 64비트를 16비트 단위로 끊어서 16진수 형태로 표현한다. 예) ffff:ffff:ffff:42:3ad2:ff00
IP 주소 체계는 처음에는 클래스 기반 할당 방식 (CIDR; Class Inter-Domain Routing) 방식을 사용했다.
- 클래스 A, B, C는 일대일 통신용, D는 멀티캐스트 통신, E는 예비용으로 선점되었다.
- 클래스 A: 0.0.0.0 ~ 127.255.255.255
- 클래스 B: 128.0.0.0 ~ 191.255.255.255
- 클래스 C: 192.0.0.0 ~ 223.255.255.255
- 맨 왼 쪽의 비트를 '구분 비트'라고 한다.
- 사용하는 주소보다 버리는 주소가 많다는 치명적인 단점이 있다. 이를 해결하기 위해 DHCP, IPv6, NAT가 등장한다.
DHCP
- Dynamic Host Configuration Protocol
- 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 IP주소를 자동으로 할당할 수 있다.
- 많은 라우터와 게이트웨이 장비에 DHCP 기능이 탑재되어 있다.
NAT
- Network Address Translation
- IPv4의 주소는 모든 주소를 전부 감당할 수 없어, 공인 IP와 사설 IP라는 개념이 등장한다.
- 한 네트워크 내의 스위치에 연결된 기기들은 전부 사설 IP를 통해 내부적으로 구분되며, 해당 스위치는 NAT 장치를 통해 공인 IP로 변환되어 인터넷에 연결되는 방식
- 외부에 드러나는 IP 주소를 숨길 수 있어, 보안 면에서 장점을 가진다.
- 사용자가 많을수록 속도가 느려진다는 단점을 가진다.
HTTP
HTTP/1.0
- 한 연결 당 하나의 요청을 처리한다.
- 따라서 요청 하나당 3 way handshake 등의 과정을 거쳐야 하므로, RTT (round-trip time)가 증가한다.
- 이의 해결을 위해 이미지 스플리팅, 코드 압축, base64 인코딩 등을 사용하였다.
HTTP/1.1
- HTTP 1.0의 단점을 보완하기 위해 등장하였다.
- 최초 TCP 연결 이후 keep-alive 옵션을 통해 연결을 유지할 수 있다.
- 해당 옵션은 HTTP/1.0에도 존재하지만, HTTP/1.1부터 표준화가 되어 기본 옵션이 되었다.
- 헤더 내에 쿠키, 메타데이터 등 데이터가 다량 들어있고, 압축이 되지 않아 무겁다는 단점이 존재한다.
HTTP/2
- SPDY에서 파생되었고, HTTP/1.x보다 빠른 응답 시간, 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리 등의 강점을 가진다.
- 멀티플렉싱: 여러 개의 스트림을 사용하여 송수신한다. 특정 스트림의 패킷이 손상되어도, 나머지 스트림은 멀쩡하게 동작한다.
- 헤더 압축: huffman coding 알고리즘을 이용하여, 문자열을 문자 단위로 쪼개어 전체 비트량을 줄이는 방식으로 헤더의 크기를 줄인다.
- 서버 푸시: 기존에는 클라이언트가 서버에 요청을 해야 파일을 다운로드 받을 수 있었지만, HTTP/2에서는 서버가 클라이언트로부터의 요청 없이 리소스를 바로 푸시할 수 있다.
HTTP/3
- 기존의 HTTP와는 다르게 TCP가 아닌 UDP 기반의 프로토콜
- QUIC라는 계층 위에서 동작한다
- 3 way handshake와 같은 과정을 거치지 않기 때문에, 지연 시간 감소라는 이점을 얻었다.
'개발 > 기타' 카테고리의 다른 글
[CS Study] 3. 운영체제 (2) (0) | 2022.09.06 |
---|---|
[CS Study] 3. 운영체제 (1) (0) | 2022.08.30 |
[CS Study] 2. 네트워크 (1) (0) | 2022.08.08 |
[CS Study] 1. 디자인 패턴과 프로그래밍 패러다임 (2) (0) | 2022.08.01 |
[CS Study] 1. 디자인 패턴과 프로그래밍 패러다임 (1) (0) | 2022.07.24 |
댓글