참고
면접을 위한 CS 전공지식 노트 https://www.gilbut.co.kr/book/view?bookcode=BN003386
네트워크
컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어
네트워크 기초
네트워크란 노드와 링크가 서로 연결되어 있으며, 리소스를 공유하는 집합
노드란 네트워크 장치, 링크란 유무선 연결
처리량, 지연 시간
처리량(throughput)은 링크 내에서 성공적으로 전달된 데이터의 양. 보통 얼마큼의 트래픽을 처리했는지를 나타냄
bps(bits per second)를 단위로 사용.
트래픽은 특정 시점에 링크 내에 흐르는 데이터의 양
지연 시간(latency)은 요청이 처리되는 시간
네트워크 토폴로지
네트워크 토폴로지(network topology)란 노드와 링크가 배치되어 있는 방식이자 연결 형태
트리 토폴로지
계층형 토폴로지로 트리 형태로 배치된 네트워크 구성. 노드의 추가 삭제가 쉽고, 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼침
버스 토폴로지
중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성. LAN에서 사용
설치 비용이 적고, 신뢰성이 우수하며 중앙 통신 회선에 노드의 추가, 삭제가 쉬움. 하지만 스푸핑이 가능한 문제 보유
스푸핑
스위칭을 마비시키거나 혹은 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것
스위칭
LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 기능
스타 토폴로지
중앙에 있는 노드에 모두 연결된 네트워크 구성
노드를 추가하거나 에러 탐지가 쉽고, 충돌 발생 가능성 적음. 장애가 발생한 노드의 에러를 쉽게 발견할 수 있으며, 장애 노드가 다른 노드에 영향 끼치는 것이 적음
중앙 노드에 장애 발생시 전체 네트워크 사용 불가 및 고가의 설치 비용
링형 토폴로지
각 노드가 양 옆 노드와 연결된 고리형태의 네트워크 구성. 데이터는 노드에서 노드로 이동
노드 수가 증가 되어도 네트워크상 손실이 거의 없고, 충돌 발생 가능성이 적으며, 에러 발생 시 장애 노드를 쉽게 발견할 수 있음
네트워크 구성 변경이 어렵고, 회선에 장애 발생 시 전체 네트워크에 영향
메시 토폴로지
그물망처럼 연결된 네트워크 구성
한 노드에 장애가 발생해도 여러 개의 경로가 존재해 네트워크를 계속 사용 가능, 트래픽 분산 처리 가능
노드의 추가가 어렵고 구축 비용과 운용 비용이 고가
네트워크 성능 분석 명령어
네트워크 병목 현상 원인
네트워크 대역폭, 네트워크 토폴로지, 서버 CPU 및 메모리 사용량, 비효율적인 네트워크 구성
ping, Packet INternet Groper
네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어. 대상 노드의 패킷 수신 상태와 지연율 등을 알 수 있음
ICMP 프로토콜을 통해 동작, 따라서 ICMP를 지원하지 않거나, traceroute를 차단하는 대상을 향해 사용 불가
netstat
접속되어 있는 서비스들의 네트워크 상태를 표시. 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등의 리스트를 표시
주로 서비스의 포트 개방을 확인하기 위해 사용
nslookup
DNS에 관한 내용을 확인하기 위해 사용하는 명령어. 특정 도메인에 매핑된 IP를 확인
tracert(window), traceroute(linux)
목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어. 목적지 노드까지 구간 중 응답 시간이 느린 구간 확인 가능
TCP/IP 4계층 모델
인터넷 프로토콜 스위트(internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
계층 구조
TCP/IP 1 - 4계층: 링크 - 인터넷 - 전송 - 애플리케이션
OSI 1 - 7계층: 물리 - 데이터 링크 - 네트워크 - 전송 - 세션 - 프레젠테이션 - 애플리케이션
애플리케이션 계층
FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층
전송 계층
송신자와 수신자를 연결하는 통신 서비스 제공 및 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
애플리케이션과 인터넷 계층 사이의 데이터 중계 역할. 대표적으로 TCP와 UDP
TCP
패킷 사이의 순서 보장, 연결지향 프로토콜 사용, 신뢰성 구축으로 수신 여부 확인, 가상화선 패킷 교환 방식 사용
UDP
순서 미보장, 수신 여부 미확인, 데이터그램 패킷 교환 방식 사용
가상회선 패킷 교환 방식
각 패킷에 가상회선 식별자가 포함되며, 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식
데이터그램 패킷 교환 방식
패킷이 독립적으로 이동하며, 최적의 경로를 선택. 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며, 도착한 순서가 다를 수 있는 방식
TCP 연결 성립 과정
3-웨이 핸드셰이크(3-way handshake)를 통해 신뢰성 확보
SYN 단계 -> SYN + ACK 단계 -> ACK 단계
SYN 단계: 클라이언트가 서버에 클라이언트 ISN을 담아 SYN 전송(ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호)
SYN + ACK 단계: 서버가 클라이언트의 SYN을 수신하고, 서버의 ISN을 보내며, 승인 번호로 클라이언트의 ISN + 1을 전송
ACK 단계: 클라이언트가 승인 번호로 서버의 ISN + 1 값을 담아 ACK를 서버에 전송
3-웨이 핸드셰이크 이후 신뢰성이 구축되고 데이터 전송 시작. 이 과정 때문에 신뢰성 있는 계층이라고 불림
SYN, SYNchronization
연결 요청 플래그
ACK, ACKnowledgement
응답 플래그
ISN, Initial Sequence Numbers
초기 네트워크 연결 시 할당된 32비트 고유 시퀀스 번호
TCP 연결 해제 과정
연결 해제 시 4-웨이 핸드셰이크(4-way handshake) 발생
1번: 클라이언트가 연결을 해제하려 할 때, FIN으로 설정된 세그먼트 전송. 이후 클라이언트는 FIN_WAIT_1 상태로 진입하고 서버 응답 대기
2번: 서버가 클라이언트에게 ACK 전송. 이후 CLOSE_WAIT 상태로 진입하고 클라이언트가 세그먼트 수신 시 FIN_WAIT_2 상태 진입
3번: 서버가 ACK 전송 후 일정 시간 이후 클라이언트에 FIN 전송
4번: 클라이언트는 TIME_WAIT 상태 진입, 다시 서버로 ACK 전송해서 서버는 CLOSE 상태가 됨. 이후 클라이언트는 일정 시간 대기한 후 연결이 닫히며 클라이언트와 서버의 모든 자원 연결 해제
TIME_WAIT
소켓이 바로 소멸되지 않고, 일정 시간 유지되는 상태. 지연 패킷과 연결 검사를 위해 사용
지연 패킷 발생 대비: 패킷이 뒤늦게 도달하여 이를 처리하지 못하면 데이터 무결성 문제 발생
연결 검사: LAST_ACK 상태에서 연결이 닫힐 시, 새로운 연결 시도 때 장치는 LAST_ACK로 되어 있기 때문에 접속 에러 발생
인터넷 계층
장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용하는 계층. IP, ARP, ICMP 등이 있으며 패킷을 수신할 대상 주소를 지정해 데이터 전달
데이터 수신 여부를 보장하지 않는 비연결형적인 특징
링크 계층
전선, 광섬유, 무선 등 실질적인 데이터 전달과 장치 간에 신호를 주고받는 규칙을 정하는 계층
전이중화 통신, Full Duplex
양쪽 장치가 동시에 송수신할 수 있는 방식. 현대 고속 이더넷이 채용하는 방식
CSMA/CD, Carrier Sense Multiple Access with Collision Detection
데이터를 보낸 이후 충돌이 발생한다면, 일정 시간 이후 재전송하는 방식
전이중화 통신은 양방향 통신이 가능해 충돌 가능성이 없어서 충돌을 감지하거나 방지하는 메커니즘 불필요
반이중화 통신, Half Duplex
양쪽 장치가 서로 통신할 수 있지만, 동시에 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식
둘 이상의 장치가 동시에 전송하면 충돌이 발생하여 메시지가 손실되거나 왜곡될 수 있기 때문에 충돌 방지 시스템 필요
CSMA/CA, Carrier Sense Multiple Access with Collision Avoidance
반이중화 통신 중 하나. 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식
과정 1: 데이터 송신 전 무선 매체 살핌
과정 2, 캐리어 감지: 회선이 비어 있는지 판단
과정 3, IFS, Inter FrameSpace: 랜덤 값을 기반으로 정해진 시간만큼 대기, 만약 무선 매체가 사용 중이면 그 간격을 늘려가며 대기
과정 4: 이후 데이터 송신
이더넷 프레임
데이터 링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러를 검출하고, 캡슐화
구조: Preamble - SFD - DMAC - SMAC - EtherType - Payload - CRC
Preamble: 7바이트, 이더넷 프레임이 시작임을 알림
SFD, Start Frame Delimiter: 1바이트, 다음 바이트부터 MAC 주소 필드가 시작됨을 알림
DMAC, SMAC: 각 6바이트, 수신, 송신 MAC 주소
EtherType: 2바이트, IP 프로토콜 정의(IPv4 혹은 IPv6)
Payload: 전달 받은 데이터
CRC: 4바이트, 에러 확인 비트
계층 간 데이터 송수신 과정
애플리케이션 계층에서 전송 계층으로 request 값들이 캡슐화 과정을 거쳐 전달됨. 이후 링크 계층을 통해 목적지와 통신하고 해당 목적지의 링크 계층으로부터 애플리케이션 계층까지 비캡슐화 과정을 거쳐 데이터가 전송됨
캡슐화 과정
상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고, 해당 계층의 헤더를 삽입
애플리케이션 계층: 데이터
전송 계층: TCP(L4) 헤더 + 데이터
인터넷 계층: IP(L3) 헤더 + TCP(L4) 헤더 + 데이터
링크 계층: 프레임 헤더 + IP(L3) 헤더 + TCP(L4) 헤더 + 데이터 + 프레임 트레일러
세그먼트화 혹은 데이터그램화: 데이터 전달(애플리케이션 계층 -> 전송 계층), 데이터에 TCP(L4) 헤더 추가
패킷화: 데이터 전달(전송 계층 -> 인터넷 계층), 데이터에 IP(L3) 헤더 추가
프레임화: 데이터 전달(인터넷 계층 -> 링크 계층), 데이터에 프레임 헤더와 프레임 트레일러 추가
비캡슐화 과정
링크 계층에서 애플리케이션 계층으로 가며 각 계층의 헤더를 제거하는 과정. 캡슐화된 데이터인 프레임화 된 데이터를 다시 패킷화, 세그먼트/데이터그램화를 거쳐 메시지화
최종적으로 애플리케이션의 PDU인 메시지로 전달됨
PDU
네트워크의 어떤 계층에서 계층으로 데이터가 전달될 때의 한 덩어리. 제어 관련 정보들이 포함된 헤더와 데이터를 의미하는 페이로드로 구성
계층마다 부르는 명칭이 다름
애플리케이션 계층: 메시지
전송 계층: 세그먼트(TCP), 데이터그램(UDP)
인터넷 계층: 패킷
링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)
네트워크 기기
네트워크 기기는 계층별로 처리 범위를 나누며, 상위 계층을 처리하는 기기가 하위 계층을 처리할 순 있지만 반대로 하위 계층을 처리하는 기기가 상위 계층을 처리할 순 없음
애플리케이션 계층 네트워크 기기
L7 스위치
여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비
로드밸런서라고도 하며, 서버의 부하를 분산하는 기기. 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할을 하며 시스템이 처리할 수 있는 트래픽 증가가 목표
URL, 서버, 캐시, 쿠키들을 기반으로 트래픽을 분산 및 바이러스와 같은 불필요한 외부 데이터를 걸러내는 필터링, 응용 프로그램 수준의 트래픽 모니터링 가능
헬스 체크를 이용해 장애가 발생한 서버를 트래픽 분산 대상에서 제외
L4 스위치 vs L7 스위치
L4 스위치 또한 로드밸런서의 하나. L4 스위치는 스트리밍 관련 서비스에 사용할 수 없으며 IP와 포트를 기반으로 트래픽을 분산
반면, L7 로드밸런서는 IP, 포트 외에도 URL, HTTP 헤더, 쿠키 등을 기반으로 트래픽을 분산
헬스 체크, Health Check
로드밸런서는 헬스 체크를 통해 서버의 정상 혹은 비정상을 구분. 헬스 체크란 전송 주기와 재전송 횟수등을 설정한 이후 반복적으로 서버에 요청을 보내는 것
로드밸런서를 이용한 서버 이중화
로드밸런서의 대표적인 기능. 로드밸런서는 2대 이상의 서버를 기반으로 가상 IP를 제공하고 이를 기반으로 장애가 발생한 서버 대신 정상 서버로 서빙하여 안정적인 서비스 운용 가능
인터넷 계층 네트워크 기기
라우터, Router
여러 개의 네트워크를 연결, 분할, 구분시켜주는 역할. 라우팅을 하는 장비
라우팅
다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때, 패킷 소모를 최소화하고 경로를 최적화하여 최소 경로로 패킷을 포워딩하는 것
L3 스위치
L2 스위치 + 라우팅 기능을 갖춘 장비. 라우터로 봐도 무방하며 라우터는 소프트웨어 기반 라우팅과 하드웨어 기반 라우팅으로 구분되는데, 하드웨어 기반 라우팅을 담당하는 장치가 L3 스위치
데이터 링크 계층 네트워크 기기
L2 스위치
장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리, 연결된 장치로부터 패킷이 왔을 때, 패킷 전송 담당
브리지, Bridge
두 개의 근거리 통신망을 상호 접속할 수 있도록 하는 통신망 연결 장치
물리 계층 네트워크 기기
NIC, Network Interface Card
LAN 카드라고 하는 네트워크 인터페이스 카드. 2대 이상의 컴퓨터 네트워크를 구성하는 데 사용
리피터, Repeater
들어오는 약해진 신호를 증폭하여 다른 쪽으로 전달하는 장치. 광케이블이 보급됨에 따라 잘 쓰이지 않게 됨
AP, Access Point
패킷을 복사하는 기기. 유선 LAN을 연결한 후 다른 장치에서 무선 LAN 기술을 사용해 무선 네트워크 연결 가능
IP 주소
ARP, Address Resolution Protocol
컴퓨터 간 통신은 정확히 말하면 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신. ARP란 IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜
ARP를 통해 가상 주소인 IP 주소를 MAC 주소로 변환. 반대로 RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환
홉바이홉 통신
IP 주소를 통해 통신하는 과정. 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것
통신 장치에 있는 라우팅 테이블의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속 이동하는 라우팅 과정을 거쳐 패킷이 최종 목적지까지 도달하는 통신 방식
라우팅 테이블, Routing Table
송신지에서 수신지까지 도달하기 위해 사용되며, 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트. 라우팅 테이블에는 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보 보유
게이트웨이, Gateway
서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터 혹은 소프트웨어
IP 주소 체계
IPv4, IPv6로 나뉨.
IPv4는 32비트를 8비트 단위로 나눈 IP 주소
IPv6는 64비트를 16비트 단위로 나눈 IP 주소
클래스 기반 할당 방식, Classful network addressing
A, B, C, D, E 다섯 개의 클래스로 구분하는 클래스 기반 할당 방식. 앞부분을 네트워크 주소로 뒷부분을 호스트 주소로 놓아 사용
사용하는 주소보다 버리는 주소가 많은 단점으로 인해 DHCP, IPv6, NAT 탄생
DHCP, Dynamic Host Configuration Protocol
IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜. 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷 접속 시마다 자동으로 IP 주소 할당 가능
NAT, Network Address Translation
패킷이 라우팅 장치를 통해 전송되는 동안 패킷이 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법
IPv4 주소 체계는 많은 주소들을 모두 감당하지 못하는 단점이 있고, 이를 해결하기 위해 NAT로 공인 IP와 사설 IP로 나눠 많은 주소 처리
공유기와 NAT
NAT은 여러 대의 호스트가 하나의 공인 IP를 사용하여 인터넷에 접속하기 위해 사용. 인터넷 공유기에 NAT 기능이 탑재되어 있기 때문에 하나의 인터넷 회선에 공유기를 추가함으로써 여러 PC를 연결하여 사용할 수 있음
NAT을 이용한 보안
NAT을 이용하면 내부 네트워크에서 사용하는 IP와 외부 네트워크에서 사용하는 IP를 다르게 유지할 수 있어 내부 네트워크에 대한 보안이 가능
NAT의 단점
NAT은 여러 명이 동시에 인터넷을 접속하게 되므로 실제 접속 호스트 수에 따라 접속 속도가 느려질 수 있음
HTTP
HTTP/1.0
한 연결당 하나의 요청을 처리하도록 설계. 이로 인해 RTT 증가를 유발
서버로부터 파일을 가져올 때마다 3-웨이 핸드셰이크를 계속 열어야 하기 떄문에 RTT가 증가
RTT
패킷 왕복 시간, 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기 까지 걸리는 시간
RTT 증가 해결 방법
RTT 증가로 서버에 부담과 사용자 응답 시간 지연 발생. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 사용
이미지 스플리팅
많은 이미지를 다운로드받게 되면 과부하가 발생
따라서, 많은 이미지가 합쳐 있는 하나의 이미지를 다운로드하고, 이를 기반으로 background-image의 position을 이용하여 이미지를 표기하는 방법
코드 압축
코드를 압축해서 개행 문자, 빈칸을 없애 코드의 크기를 최소화하는 방법
이미지 Base64 인코딩
이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법
서버와의 연결을 열어 이미지에 대한 HTTP 요청을 할 필요가 없어지는 장점과 Base64 문자열 변환 시 크기가 37% 정도 커지는 단점
HTTP/1.1
매번 TCP를 연결하는 것이 아니라, 한 번 TCP 초기화를 한 이후 keep-alive 옵션으로 여러 개의 파일을 송수신할 수 있게 변경.
HTTP/1.0에도 keep-alive가 있지만 표준화 되어 있지 않아 HTTP/1.1부터 표준화되어 기본 옵션으로 설정됨
한 번 3-웨이 핸드섀이크가 발생하면 이후로 발생하지 않는다는 장점과 문서 안에 포함된 다수의 리소스를 처리하려면 요청할 리소스 개수에 비례해 대기 시간이 길어지는 단점
HOL Blocking, Head Of Line Blocking
네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상
무거운 헤더 구조
HTTP/1.1의 헤더는 쿠키와 같은 많은 메타데이터가 들어 있으며, 압축 디지 않아 많은 용량 차지
HTTP/2
SPDY 프로토콜에서 파생된 HTTP/1.x에 비해 지연 시간 감소, 응답 시간 증가, 멀티플렉싱, 헤더 압축, 서버 푸시, 우선순위 요청을 지원하는 프로토콜
멀티플렉싱
여러 개의 스트림을 사용하여 송수신. 특정 스트림의 패킷이 손실되어도 다른 스트림에 영향을 끼치지 않음
단일 연결을 사용해 여러 요청 및 응답을 병렬로 처리 가능. 이로 인해 HTTP/1.x에서 발생하는 HOL Blocking 문제를 해결
스트림, Stream
시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름
헤더 압축
HTTP/1.x의 큰 크기 헤더 문제를 헤더 압축을 통해 해결. 허프만 코딩 압축 알고리즘을 사용하는 HPACK 압축 형식
서버 푸시
HTTP/1.1에서 클라이언트가 서버에 요청을 해야 파일을 다운로드할 수 있던 방식을 HTTP/2는 클라이언트 요청 없이 서버가 리소스 푸시 가능
HTTPS
HTTP/2는 HTTPS 위에서 동작. HTTPS란 신뢰할 수 있는 HTTP 요청으로 애플리케이션 계층과 전송 계층 사이에 SSL/TLS 계층을 넣음
SSL/TLS
버전에 따라 SSL 1.0 - SSL 2.0 - SSL 3.0 - TLS 1.0 - TLS 1.3로 변경되었지만 보통 이를 합쳐 SSL/TLS로 표기
SSL/TLS는 전송 계층에서 보안을 제공하는 프로토콜. 클라이언트와 서버가 통신할 때 메시지를 도청하거나 변조하지 못하게 함
보안 세션을 기반으로 데이터를 암호화. 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘 사용
보안 세션
보안이 시작되고 끝나는 동안 유지되는 세션. SSL/TLS는 핸드셰이크를 통해 보안 세션 생성 및 상태 정보 공유
0-RTT
TLS 1.3은 사용자가 이전에 방문한 사이트에 재방문하면 보안 세션을 만들 때 걸리는 통신을 하지 않아도 됨. 이를 0-RTT라고 함
HTTPS 구축 방법
1: CA에서 구매한 인증키를 기반으로 HTTPS 서비스 구축
2: 서버 앞단의 HTTPS를 제공하는 로드밸런서 배치
3: 서버 앞단에 HTTPS를 제공하는 CDN 배치
HTTPS/3
TCP 위에서 동작하는 HTTPS/2와 달리 QUIC라는 계층 위에서 동작. TCP 기반이 아닌 UDP 기반
멀티플렉싱 기능과 초기 연결 설정 시 지연 시간 감소 장점
초기 연결 설정 시 지연 시간 감소
QUIC은 TCP와 달리 3-웨이 핸드셰이크 과정을 거치지 않음. 첫 연결 설정에 1-RTT만 소요되며 클라이언트가 서버에 어떤 신호를 한 번 주고, 서버도 그 신호에 응답함으로써 본 통신을 시작
순방향 오류 수정 메커니즘, FEC, Forward Error Correction
QUIC는 FEC가 적용됨. FEC는 전송한 패킷이 손실되었다면 수신 측에서 에러를 검출하고 수정하는 방식으로 열악한 네트워크 환경에서도 낮은 패킷 손실률 자랑
'Computer Science' 카테고리의 다른 글
디자인 패턴, 프로그래밍 패러다임 (0) | 2025.04.27 |
---|---|
팀네이버 컨퍼런스 DAN 24, 20년된 Naver Cafe 서비스가 모듈화로 진화 하기 그후 1년 (0) | 2025.02.01 |
객체 지향의 SOLID 원칙 (0) | 2025.01.17 |
Single source of truth (0) | 2024.08.22 |
Glue logic (0) | 2024.08.22 |