
네트워크의 기초
네트워크
⇒ node와 link가 서로 연결되어 있으며 리소스를 공유하는 집합
- node → 서버, 라우터, 스위치
- link → 유선, 무선
- 많은 처리량, 지연 시간 적음, 장애 빈도 적음, 좋은 보안 ⇒ 좋은 네트워크
처리량 throughput
⇒ link 내에서 성공적으로 전달된 데이터의 양
- 많은 트래픽을 처리한다 = 많은 처리량을 가진다
- 단위: bps bits per secend
처리량 vs 트랙픽
- 트래픽이 많아졌다 == 흐르는 데이터가 많아졌다.
- 처리량이 많아졌다 == 처리되는 트래픽이 많아졌다.
대역폭 bandwidth
⇒ 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
지연 시간 latency
⇒ 요청이 처리되는 시간
⇒ 어떤 메시지가 두 장치 사이를 왕복하는데 걸리는 시간
- 무선/유선, 패킷 크기, 라우터의 패킷 처리 시간에 따라 결정이 됨.

네트워크 토폴로지 network topology
⇒ 노드와 링크가 어떻게 배치되어 있는지에 대한 방식 +연결 형태

트리 토폴로지 tree topology
⇒ 계층형 토폴로지
- node의 추가, 삭제가 쉬움
- 특정 node에 traffic이 집중될 때는 하위 node에 영향을 끼칠 수 있음
버스 토폴로지 bus topology
⇒ 중앙 통신 회선 하나에 여러 개의 node가 연결되어 공유하는 네트워크 구성
- LAN 근거리 통신망에 사용
- 설치 비용 적음
- 신뢰성 우수
- 중앙 통신 회선에 node를 추가 및 삭제가 쉬움
- 단점: 스푸핑이 가능함
스푸핑
⇒ LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능 마비시키거나 속여서 특정 node에 해당 패킷이 오도록 처리하게 함

스타 토폴로지 star topology
== 성형 토폴로지, 중앙에 있는 노드에 모두 연결된 형태
- node 추가 및 에러 탐지가 쉬움
- 패킷의 충돌 발생 가능성이 적음
- 어떤 node에 장애 발생해도 쉽게 에러 발견 가능함
- 장애 node가 중앙 node 아니면 다른 노드에 영향 끼치는게 적음
- 단점: 중앙 노드에 장애 발생하게 되면 → 네트워크 사용 불가, 설치 비용이 많음
링형 토폴로지 ring topology
⇒ 각각의 노드가 양 옆의 두 노드와 연결되어 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성
- 노드 수 증가돼도 네트워크 손실 거의 X
- 충돌 발생 가능성 X
- 노드 고장 쉽게 발견
- 단점: 네트워크 구성 변경 어려움, 회선 장애 발생하면 → 전체 네트워크에 영향끼침
메시 토폴로지 mesh topology
== 망형 토폴로지, 그물망처럼 연결되어 있는 구조
- 하나의 단말 장애 발생해도 네트워크 계속 사용 가능함 (여러 개의 경로 때문)
- 트래픽 분산 처리 가능
- 단점: 노드 추가가 어려움, 구축 및 운용 비용이 비쌈
병목 현상 bottleneck
⇒ 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
- 토폴로지가 중요한 이유 → 병목 현상을 찾을 때 중요한 기준이 됨
네트워크 분류
⇒ 규모를 기반으로 분류함
- LAN Local Area Network → 사무실, 개인용
- MAN Metropolitan Area Network → 도시 정도의 규모
- WAN Wide Area Network → 세계 규모
LAN Local Area Network
⇒ 근거리 통신망, 전송 속도 빠름, 혼잡 X
MAN Metropolitan Area Network
⇒ 대도시 지역 네트워크, 전송 속도 평균, LAN보다는 혼잡함
WAN Wide Area Network
⇒ 광역 네트워크, 전송 속도 낮음, MAN보다 혼잡함
네트워크 성능 분석 명령어
코드상에는 문제가 없는데 사용자가 서비스로 부터 데이터를 가져오지 못하는 상황은 네트워크 병목 현상일 가능성이 있음
병목현상 주된 원인
- 네트워크 대역폭
- 네트워크 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성
성능 분석 명령어
ping Packet INternet Groper
⇒ 네트워크 상태를 확인하려는 대상 노드한테 일정 크기의 패킷을 전송하는 명령어
- TCP/IP 프로토콜 중에 ICMP 프로토콜을 통해 동작
netstat
⇒ 접속되어 있는 서비스들의 네트워크 상태를 표시하는데 사용
- 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 리스트 보여줌
- 서비스의 포트가 열려 있는지 확인할 때 사용함
nslookup
⇒ DNS에 관련된 내용 확인하기 위해 쓰는 명령어
- 특정 도메인에 매핑된 IP 확인하기 위해 사용함
**tracert (**Linux = traceroute)
⇒ 목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어
- 목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 확인
네트워크 프로토콜 표준화
네트워크 프로토콜
⇒ 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
- IEEE or IETF라는 표준화 단체가 이를 정함
- IEEE802.3 = 유선 LAN 프로토콜
- HTTP = 웹 서비스 기반으로 데이터 주고 받을 수 있도록 서로 약속된 인터페이스
TCP/IP 4계층 모델
internet protocol suite
⇒ 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 집합
- 보통 TCP/IP 4계층 or OSI 7계층 모델로 설명함
계층 구조
- 이 계층들은 추상화 계층들임

- 계층이 변경되면 다른 계층이 영향 받지 않도록 설계 (ex. 전송 계층에서 TCP → UDP 변경)
애플리케이션 계층
FTP HTTP SSH SMTP DNS
- 응용 프로그램이 사용되는 프로토콜 계층
- ex. 웹, 이메일
FTP File Transfer Protocol
장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜
SSH Secure SHell
보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
HTTP HyperText Transfer Protocol
WWW world wide web을 위한 데이터 통신의 기초이자 웹 사이트 이용하는데 쓰는 프로토콜
SMTP Simple Mail Transfer Protocol
전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
DNS Domain Name System
도메인 이름과 IP 주소를 매핑해주는 서버
전송 계층
송신자와 수신자를 연결하는 통신 서비스를 제공하며 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공할 수 있으며 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할을 함
ex) UDP, TCP
가상회선 패킷 교환 방식
각 패킷에는 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식
데이터그램 패킷 교환 방식
패킷이 독립적으로 이동하며 최적의 경로를 선택하여 가는데, 하나의 메세지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 순서가 다를수 있는 방식
TCP 연결 성립 과정
⇒ TCP는 신뢰성을 확보할 때 3-웨이 핸드 셰이크 라는 작업을 진행
- SYN 단계: 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다. ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호를 말하며 이는 장치마다 다를 수 있다.
- SYN + ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1 을 보낸다.
- ACK 단계: 클라이언트는 서버의 ISN +1한 값인 승인번호를 담아 ACK를 서버에 보낸다.
- 이렇게 3-웨이 핸드셰이크 과정 이후 신뢰성이 구축되고 데이터 전송을 시작한다.
TCP 연결 해제 과정
⇒ 4-웨이 핸드셰이크 과정 발생
- 먼저 클라이언트가 연결을 닫으려고 할때 FIN으로 설정된 세그먼트를 보냅니다. 그리고 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다린다.
- 서버는 클라이언트로 ACK라는 승인 세그먼트를 보냅니다. 그리고 CLOSE_WAIT 상태에 들어갑니다. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다.
- 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보냅니다.
- 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 CLOSED 상태가 됩니다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제됩니다.
- TIME_WAIT이 중요한 이유는 지연 패킷이 발생할 경우를 대비하기 위함이다. 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생
- 두번째 두 장치가 연결이 닫혔는지 확인하기 위해서입니다. 만약 LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK로 되어 있기 때문에 접속 오류가 나타나게 될 것
인터넷계층
장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층. IP,ARP,ICMP 등이 있으며 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달.
링크계층
전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층
전이중화 통신
양쪽 장치가 동시에 송수신할 수 있는 방식을 말한다. 현대의 고속 이더넷은 이 방식을 기반으로 통신.
CSMA/CD
이 방식은 데이터를 보낸 이후 충돌이 발생한다면 일정 시간 이후 재전송하는 방식을 말한다. 이는 하나의 경로를 기반으로 데이터를 보내기 때문에 데이터를 보낼 때 충돌에 대비해야 했기 때문이다.
유선LAN을 이루는 케이블
유선 LAN을 이루는 케이블로는 TP 케이블이라고 하는 트위스트 페어 케이블과 광섬유 케이블이 대표적이다.
트위스트 페어 케이블
하나의 케이블처럼 보이지만 실제로는 여덟개의 구리선을 두 개씩 꼬아서 묶은 케이블을 지칭한다.
광섬유 케이블
레이저를 이용해서 통신하기 때문에 구리선과는 비교할 수 없을 만큼의 장거리 및 고속 통신이 가능합니다.
유리나 플리스틱 섬유로 제작해서 한 번 들어간 빛이 내부에서 계속 적으로 반사하며 전진하여 반대편 끝까지 가는 원리를 이용한 것 입니다.
반이중화 통신
양쪽 장치로는 서로 통신할 수 있지만, 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식을 말한다.
CMSA/CA
반이중화 통신 중 하나로 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식을 사용한다.
- 데이터를 송신하기 전에 무선 매체를 살핍니다.
- 캐리어 감지: 회선이 비어 있는지를 판단합니다.
- IFS(Inter FrameSpace):랜덤 값을 기반으로 정해진 시간만큼 기다리며, 만약 무선 매체가 사용 중이면 점차 그 간격을 늘려가며 기다립니다.
- 이후레 데이터를 송신합니다.
무선 LAN을 이루는 주파수
무선 LAN은 무선 신호 전달 방식을 이용하야ㅕ 2대 이상의 장치를 연결하는 기술입니다.
비유도 매체인 고익에 주파수를 쏘아 무선 통신망을 구축하는데, 주파수 대역은 2.4GHz 대역 또는 5GHz 대역 중 하나를 써서 구축합니다. 2.4GHz는 장애물에 강한 특성을 가지고 있지만 전자레인지, 무선 등 전파 간섭이 일어나는 경우가 많고 5GHz 대역은 사용할 수 있는 채널 수도 많고 동시에 사용할 수 있기 떄문에 상대적으로 깨끗한 전파 환경을 구축할 수 있습니다. 그렇기 때문에 보통은 5GHz 대역을 사용하는 것이 좋습니다.
와이파이
전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술로, 이를 사용하려면 무선 접속 장치가 있어야 합니다. 이를 공유기라고 하며 유선 신호를 무선 신호로 바꾸어 신호가 닿는 범위 내에서 무선 인터넷을 사용할 수 있게 됩니다.
BBS
기본 서비스 집합을 의미하며, 단순 공유기를 통해 네트워크에 접속하는 것이 아닌 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조를 말한다. 근거리 무선 통신을 제공하고 하나의 AP만을 기반으로 구축이 되어 있어 사용자가 한 곳에서 다른 곳으로 자유롭게 이동하며 네트워크에 접속하는 것은 불가능합니다.
ESS
하나 이상의 연결된 BSS 그룹입니다. 장거리 무선 통신을 제공하며 BSS보다 더 많은 가용성과 이동성을 지원합니다. 즉, 사용자는 한 장소에서 다른 장소로 이동하며 중단 없이 네트워크에 계속 연결할 수 있다.
이더넷 프레임
구조
Preamble - SFD - DMAC, SMAC - EherType -Payload - CRC
Preamble: 이더넷 프레임이 시작임을 알립니다.
SFDDMAC, SMAC: 다음 바이트부터 MAC 주소 필드가 시작됨을 알립니다.
EherType: 데이터 계층 위의 계층인 IP프로토콜을 정의합니다. 예를 들어 IPv4, IPv6가 된다.
Payload: 전달받은 데이터
CRC: 에러 확인 비트
계층 간 데이터 송수신 과정
애플리케이션 계층에서 전송 계층으로 필자가 보내는 요청 값들이 캡슐화 과정을 거쳐 전달되고, 다시 링크 계층을 통해 해당 서버와 통신을 하고, 해당 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송된다.
캡슐화 과정
상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정을 말합니다.
비캡슐화 과정
하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정을 말합니다.
PDU
네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 떄 한덩어리의 단위를 PDU라고 합니다.
PDU는 제어 관련 정보들이 포함된 헤더, 데이터를 의미하는 페이로드로 구성되어 있으며 계층마다 부르는 명칭이 다릅니다.
- 애플리케이션 계층: 메세지
- 전송 계층: 세그먼트
- 인터넷 계층: 패킷
- 링크 계층: 프레임, 비트
네트워크 기기
네트워크 기기의 처리 범위
네트워크 기기는 계층별로 처리 범위를 나눌 수 있습니다. 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있습니다. 그리고 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가합니다.
- 애플리케이션 계층: L7 스위치
- 인터넷 계층: 라우터, L3 스위치
- 데이터 링크 계층: L2 스위치, 브리지
- 물리 계층: NIC,리피터,AP
애플리케이션 계층을 처리하는 기기
L7 스위치
스위치는 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비.
로드밸런서라고 하며, 서부의 부하를 분산하는 기기입니다. 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할을 하며 시스템이 처리할 수 있는 트채픽 증가를 목표로 합니다.
L4 스위치와 L7 스위치의 차이
로드밸런서로는 L4도 존재한다. L4 스위치는 전송 계층을 처리하는 기기로 스트리밍 관련 서비스에는 사용할 수 없으며 메세지를 기반으로 인식하지 못하고 IP와 포트를 기반으로 트래픽을 분산합니다.
헬스 체크
L4 스위치 또는 L7 스위치 모두 헬스 체크를 통해 정상적인 서버 또는 비정상적인 서버를 판별하는데, 헬스 체크는 전송 주기와 재전송 횟수 등을 설정한 이후 반복적으로 서버에 요청을 보내는 것을 말합니다.
로드밸런서를 이용한 서버 이중화
대표적인 기능으로 서버 이중화를 들 수 있습니다. 서비스를 안정적으로 운용하기 위해서는 2대 이상의 서버는 필수적입니다. 에러가 발생하여 서버 1대가 종료되더라도 서비스는 안정적으로 운용되어야 하기 떄문이다.
인터넷 계층을 처리하는 기기
라우터, L3 스위치가 존재한다
라우터
여러 개의 네트워크를 연결, 분할, 구분시켜주는 역할을 하며 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화하고 경로를 최적화하여 최소 경로로 패킷을 포워딩 하는 라우팅을 하는 장비.
L3 스위치
L2스위치 기능과 라우터의 기능을 갖춘 장비를 말한다. 라우터는 소프트웨어와 하드웨어로 나누어지고 하드웨어 기반의 라우팅을 담당하는 장치를 L3 스위치라고 한다.
데이터 링크 계층을 처리하는 기기
L2 스위치
MAC 주소를 MAC주소 테이블을 통해 관리하며, 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당한다.
브리지
두 개의 근거리 통신망을 상호 접속할 수 있도록 하는 통신망 연결 장치로, 포트와 포트 사이의 다리 역할을 하며 장치에서 받아온 MAC주소를 MAC 주소 테이블로 관리합니다.
물리 계층을 처리하는 기기
NIC, 리피터, AP
NIC
LAN 카드라고 네트워크 인터페이스 카드는 2대 이상의 컴퓨터 네트워크를 구성하는 데 사용하며, 네트워크와 빠른 속도로 데이터를 송수신 할 수 있도록 컴퓨터 내에 설치하는 확장 카드입니다.
리피터
들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치를 말한다.
AP
패킷을 복사하는 기기.
IP주소
ARP
컴퓨터 컴퓨터 간의 통신은 흔히들 IP주 주소 기반으로 통신한다고 알고 있지만 정확히 이야기하자면 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신한다.
ARP란 IP주소로부터 MAC주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜.
ARP를 통해 가상 주소인 IP주소를 MAC주소로 변환. (반대 RARP)
홉바이홉 통신
⇒ IP 주소를 통해 통신하는 과정
홉은 건너뛰는 모습을 의미한다. 이는 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것이다. 라우팅을 수행하며 최종 목적지까지 패킷을 전달한다.
라우팅 테이블
송신지에서 수신지까지 도달하기 위해 사용되며 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트를 뜻한다. 라우팅 테이블에는 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 가지고 있다.
게이트웨이
서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어를 일컫는다.
IP 주소 체계
IP주소는 IPv4 와 IPv6 로 나뉜다. v4는 32비틑 8비트 단위로 점을 찍어 표기하며, 123.45.67.89 같은 형식으로 나타낸다. v6는 64비트를 16비트 단위로 점을 찍어 표기한다.
클래스 기반 할당 방식
IP 주소 체계는 과거를 거쳐 발전해오고 있으며 처음에는 A, B, C, D, E 다섯 개의 클래스로 구분하는 클래스 기반 할당 방식을 사용. 앞에 있는 부분을 네트워크 주소, 그 뒤에 있는 부분을 컴퓨터에 부여하는 주소인 호스트 주소로 놓아서 사용.
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
IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜. 이 기술을 통해 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 자동으로 IP 주소를 할당할 수 있다.
NAT
라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법이다. IPv4 주소 체계만으로는 많은 주소들을 모두 감당하지 못하는 단점이 있는데, 이를 해결하기 위해 NAT로 공잉 IP와 사설 IP로 나눠서 많은 주소를 처리한다.
공유기와 NAT
NAT을 쓰는 이유는 주로 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함
NAT를 이용한 보안
NAT를 이용하면 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 IP 주소를 다르게 유지할 수 있기 때문에 내부 네트워크에 대한 어느 정도의 보안이 가능해진다.
NAT 단점
여러 명이 동시에 인터넷을 접속하게 되므로 실제로 접속하는 호스트 숫자에 따라서 접속 속도가 느려질 수 있다는 단점이 있다.
IP 주소를 이용한 위치 정보
IP 주소는 인터넷에서 사용하는 네트워크 주소이기 때문에 이를 통해 동 또는 구까지 위치 추적이 가능하다.
HTTP
HTTP/1.0
HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT 증가를 불러오게 되었습니다. (RTT: 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간)
RTT의 증가를 해결하기 위한 방법
이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용하곤 했다.
이미지 스플리팅
많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지를 다운로드 받고, 이를 기반으로 background-image의 position을 이용하여 이미지를 표기하는 방법이다.
코드압축
코드를 압축해서 개행 문자, 빈칸을 없애서 코드의 크기를 최소화하는 방법.
이미지 Base64 인코딩
이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법이다. 이 방법을 사용하면 서버와의 연결을 열고 이미지에 대해 서버에 HTTP 요청을 할 필요가 없다는 장점이 있다.
HTTP/1.1
매번 TCP 연결을 하는 것이 아니라 한번 TCP 초기화를 한 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신할 수 있게 바뀌었습니다.
HOL Blocking
네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상.
무거운 헤더 구조
헤더에는 쿠키 등 많은 메타데이터가 들어 있고 압축이 되지 않아 무거웠습니다.
HTTP/2
SPDY 프로토콜에서 파생된 HTTP/1.x 보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜.
멀티플렉싱
여러 개의 스트림을 사용하여 송수신한다는 것입니다. 이를 통해 특정 스트림의 패킷이 손실되었다고 하더라도 해당 스트림에만 영향을 미치고 나머지 스트림은 멀쩡하게 동작할 수 있다.
헤더 압축
/1.x에는 크기가 큰 헤더라는 문제가 있습니다. 이를 /2에서는 헤더 압축을 써서 해결하는데, 허프만 코딩 압축 알고리즘을 사용하는 HPACK 압축 형식을 가집니다.
허프만 코딩
문자열을 문자 단위로 쪼개 빈도수를 세어 빈도가 높은 정보는 적은 비트 수를 사용하여 표현하고, 빈도가 낮은 정보는 비트수를 많이 사용하여 표현해서 전체 데이터의 표현에 필요한 비트양을 줄이는 원리이다.
서부 푸시
/1.1에서는 클라이언트가 서버에 요청을 해야 팦일을 다운로드받을 수 있었다면, /2는 클라이언트 요청 없이 서버가 바로 리소스를 푸시할 수 있습니다.
HTTPS
/2는 HTTPS 위에서 동작합니다. HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층에 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청을 말합니다. 이를 통해 통신을 암호화 합니다.
SSL/TSL
SSL은 1.0부터 시작해서 SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.3까지 버전이 올라가며 마지막으로 TLS로 명칭이 변경되었으나, 보통 이를 합쳐 SSL/TLS로 많이 부릅니다. 이 책에서는 최신 TLS 버전인 TLS1.3 을 기반으로 설명합니다.
SSL/TLS은 전송 계층에서 보안을 제공하는 프로토콜입니다. 클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제3자가 메시지를 도청하거나 변조하지 못하도록 합니다. 프로토콜을 통해 공격자가 서버인 척하며 사용자 정보를 가로채는 네트워크상의 인터셉터를 방지할 수 있다.
보안세션
보안이 시작되고 끝나는 동안 유지되는 세션을 말하고, SSL/TLS는 핸드셰이크를 통해 보안 세션을 생성하고 이를 기반으로 상태 정보 등을 공유합니다.
클라이언트에서 사이퍼 슈트를 서버에 전달하면 서버는 받은 사이퍼 슈트의 암호화 알고리즘 리스트를 제공할 수 있는지 확인합니다. 제공할 수 있다면 서버에서 클라이언트를 인증서를 보내는 인증 메커니즘이 시작되고 이후 해싱 알고리즘 등으로 암호화된 데이터 송수신이 시작됩니다.
사이퍼 슈트
프로토콜, AEAD 사이퍼 모드, 해싱 알고리즘이 나열된 규약을 말하며, 다섯 개가 있다
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_CCM_8_SHA256
프로토콜 - 사이퍼 모드 - 해싱 알고리즘 순서이다.
AEAD 사이퍼 모드
데이터 암호화 알고리즘이며, 예를 들어 AES_128_GCM 이라는 것은 128비트의 키를 사용하는 표준 블록 암호화 기술과 병렬 계산에 용이한 암호화 알고리즘 GCM이 결합된 알고리즘을 뜻한다.
인증 메커니즘
CA에서 발급한 인증서를 기반으로 이루어진다. CA에서 발급한 인증서는 안전한 연결을 시작하는 데 있어 필요한 공개키를 클라이언트에 제공하고 사용자가 접속한 서버가 신뢰할 수 있는 서버임을 보장합니다. 인증서는 서비스 정버, 공개키, 지문, 디지털 서명 등으로 이루어져 있다.
CA 발급 과정
자신의 서비스가 CA 인증서를 발급받으려면 자신의 사이트 정보와 공개키를 CA에 제출해야 한다. 이후 CA는 공개키를 해시한 값인 지문을 사용하는 CA의 비밀키 등을 기반으로 CA 인증서를 발급한다.
암호화 알고리즘
키 교환 알고리즘으로는 대수곡선 기반의 ECDHE 또는 모듈식 기반의 DHE를 사용합니다. 둘다 디피-헬만 방식을 근간으로 만들어졌다.
디피-헬만 키 교환 암호화 알고리즘
암호키를 교환하는 하나의 방법입니다.
y=g^x mod p
SHA-256 알고리즘
해시 함수의 결괏값이 256비트인 알고리즘이며 비트 코인을 비롯한 많은 블록체인 시스템에서도 씁니다. SHA-256 알고리즘은 해싱을 해야 할 메시지에 1을 추가하는 등 전처리를 하고 전처리된 메시지를 기반으로 해시를 반환합니다.
SEO에도 도움이 되는 HTTPS
구글은 SSL 인증서를 강조해왔고 사이트 내 모든 요소가 동일하다면 HTTPS 서비스를 하는 사이트가 그렇지 않은 사이트보다 SEO 순위가 높을 것이라고 공식적으로 밝혔다.
SEO는 검색엔진 최적화를 뜻하며 사용자들이 구글, 네이버 같은 검색엔진으로 웹 사이트를 검색했을 때 그 결과를 페이지 상단에 노출시켜 많은 사람이 볼 수 있도록 최적화하는 방법을 의미합니다. 서비스를 운영한다면 SEO 관리는 필수이다.
메타 설정
html 파일의 가장 윗부분인 메타를 잘 설정해야 한다.
페이지 속도 개선
사이트의 속도는 빨라야한다.
사이트맵 관리
정기적으로 관리하는 것은 필수이다. 사이트맵 제너레이터를 사용하거나 직접 코드를 만들어 구축해도 된다.
HTTPS 구축 방법
크게 3가지가 있다. 직접 CA에서 구매한 인증키를 기반으로 HTTPS 서비스를 구축하거나, 서버 앞단의 HTTPS를 제공하는 로드밸런서를 두거나, 서버 앞단에 HTTPS를 제공하는 CDN을 둬서 구축한다.
HTTPS/3
HTTP의 세번째 버전으로 QUIC라는 계층 위에서 돌아가며, UDP 기반으로 돌아간다.
초기 연결 설정 시 지연 시간 감소
QUIC은 TCP를 사용하지 않기 때문에 통신을 시작할 때 번거로운 3-웨이 핸드셰이크 과정을 거치지 않아도 된다.
QUIC은 첫 연결 설정에 1-RTT만 소요된다. 클라이언트가 서버에 어떤 신호를 한 번 주고, 서버도 거기에 응답하기만 하면 바로 본 통신을 시작할 수 있다.
'CS 공부' 카테고리의 다른 글
[면접을 위한 CS 전공 지식 노트] 4주차 - 4장 데이터베이스 (0) | 2025.04.16 |
---|---|
[면접을 위한 CS 전공 지식 노트] 3주차 - 3장 운영체제 (0) | 2025.04.09 |
[CS 스터디] 1주차 회고 (0) | 2025.03.27 |
[면접을 위한 CS 전공 지식 노트] 1주차 - 1장 디자인 패턴 & 프로그래밍 패러다임 (0) | 2025.03.26 |
- 네트워크
- 처리량 throughput
- 네트워크 토폴로지 network topology
- 트리 토폴로지 tree topology
- 버스 토폴로지 bus topology
- 스타 토폴로지 star topology
- 링형 토폴로지 ring topology
- 메시 토폴로지 mesh topology
- 병목 현상 bottleneck
- 네트워크 분류
- LAN Local Area Network
- MAN Metropolitan Area Network
- WAN Wide Area Network
- 네트워크 성능 분석 명령어
- 병목현상 주된 원인
- 성능 분석 명령어
- 네트워크 프로토콜 표준화
- internet protocol suite
- 계층 구조
- 애플리케이션 계층
- 전송 계층
- 인터넷계층
- 링크계층
- PDU
- 네트워크 기기
- 네트워크 기기의 처리 범위
- 애플리케이션 계층을 처리하는 기기
- 인터넷 계층을 처리하는 기기
- 데이터 링크 계층을 처리하는 기기
- 물리 계층을 처리하는 기기
- IP주소
- ARP
- 홉바이홉 통신
- IP 주소 체계
- IP 주소를 이용한 위치 정보
- HTTP
- HTTP/1.0
- HTTP/1.1
- HTTP/2
- 헤더 압축
- HTTPS
- HTTPS/3