42 분 소요

네트워크 용어 :

네트워크, TCP/IP 4계층 모델, 네트워크 기기, IP 주소, HTTP

1. 개념 구조화

CS기초-네트워크

CS기초-네트워크

2. 개념 사전

KOR ENG Meaning
네트워크 Network - 노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합
- 노드 : 서버, 라우터, 스위치 등 네트워크 장치
- 링크 : 유선 또는 무선
- 좋은 네트워크 = 많은 처리량 + 짧은 지연시간 + 적은 장애 빈도 + 좋은 보안
처리량 Throughput - 링크 내에서 성공적으로 전달된 데이터의 양 = 처리된 트래픽의 양
- 단위 : bps(bits per second)로 초당 전송/수신되는 비트 수
- 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생한 에러, 하드웨어 스펙에 영향 받음
트래픽 Traffic - 특정 시점에 링크 내에 흐르는 데이터의 양
대역폭   - 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
지연 시간 Latency - 요청이 처리되는 시간, 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간
- 매체 타입(유/무선), 패킷 크기, 라우터의 패킷 처리 시간에 영향 받음
네트워크 토폴로지 Network topology - 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태
트리 토폴로지 Tree topology - 계층형 토폴로지, 트리 형태로 배치한 네트워크 구성
- 장점 : 노드 추가/삭제 쉬움
- 단점 : 특정 노드에 트래픽 집중될 때 하위 노드에 영향 끼침
버스 토폴로지 Bus topology - 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성
- 근거리 통신망(LAN)에서 사용
- 장점 : 설치 비용이 적고 신뢰성이 우수, 중앙 통신 회선에 노드 추가/삭제 쉬움
- 단점 : 스푸핑이 가능함
스푸핑 Spoofing - LAN상에서 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것
- 스위칭 : 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 기능
스타 토폴로지 Star topology - 성형 토폴로지, 중앙에 있는 노드에 모두 연결된 네트워크 구성
- 장점 : 노드 추가, 에러 탐지 용이, 패킷의 충돌 가능성이 적음, 장애 노드가 다른 노드에 영향 적음
- 단점 : 중앙 노드에 장애 발생 시 전체 네트워크 사용 불가, 설치 비용 고가
링형 토폴로지 Ring topology - 각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신하는 구성
- 데이터는 노드에서 노드로 이동, 각각의 노드는 고리 모양의 길을 통해 패킷 처리
- 장점 : 노드 수 증가되어도 네트워크상 손실 거의 없음, 충돌 가능성 적음, 노드 고장 발견 용이
- 단점 : 네트워크 구성 변경이 어려움, 회선에 장애 발생 시 전체 네트워크 영향
메시 토폴로지 Mesh topology - 망형 토폴로지, 그물망처럼 연결되어 있는 구조
- 장점 : 한 단말 장치에 장애 발생해도 여러 경로가 있어 네트워크 계속 사용 가능, 트래픽 분산 처리
- 단점 : 노드의 추가가 어려움, 구축 비용과 운용 비용 고가
병목 현상 Bottleneck - 토폴로지는 병목 현상을 찾을 때 중요한 기준이 됨
- 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
- 원인 : 대역폭, 토폴로지, 서버 CPU, 메모리 사용량, 비효율적인 네트워크 구성
네트워크 분류   - 규모 기반으로 LAN, MAN, WAN으로 분류
LAN Local Area Network - 근거리 통신망, 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영
- 전송 속도 빠르고 혼잡하지 않음
MAN Metropolitan Area Network - 대도시 지역 네트워크, 도시 같은 넓은 지역에서 운영
- 전송 속도 평균이고 LAN보다 혼잡함
WAN Wide Area Network - 광역 네트워크, 국가 또는 대륙 같은 더 넓은 지역에서 운영
- 전송 속도 낮고 MAN보다 혼잡함
네트워크 성능 분석 명령어   - 사용자가 서비스로부터 데이터 가져오지 못함 → 네트워크 관련 테스트, 무관한 테스트 → 네트워크 문제점 (병목 현상) 확인 → 네트워크 성능 분석
- 명령어 : ping, netstat, nslookup, tracert, ftp, tcpdump 등
- 분석 프로그램 : wireshark, netmon 등
ping Packet INternet Groper - 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
- 해당 노드의 패킷 수신 상태와 도달하기까지의 시간 등 알 수 있음
- TCP/IP 중 ICMP 프로토콜 통해 동작하기에 ICMP나 traceroute 차단하는 대상의 경우 테스팅 불가
- ping [IP주소/도메인 주소]
- ping www.google.com -n 12
netstat   - 접속되어 있는 서비스들의 네트워크 상태를 표시하거나, 서비스의 포트가 열렸는지 확인하는 명령어
- 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 알 수 있음
nslookup   - DNS에 관련된 내용을 확인하는, 특정 도메인에 매핑된 IP를 확인하는 명령어
tracert   - 목적지 노드까지 네트워크 경로를 확인하는 명령어
- 목적지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등 확인
ftp   - 대형 파일을 전송하여 테스팅하는 명령어
tcpdump   - 노드로 오고 가는 패킷을 캡처하는 명령어
네트워크 프로토콜   - 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
- IEEE/IETF 표준화 단체가 정함
- IEEE 802.3 은 유선 LAN 구축 시 쓰이는 프로토콜로 제조사가 다른 장치도 서로 데이터 수신 가능
- HTTP 프로토콜을 통해 노드들은 웹 서비스 기반으로 데이터 주고 받기 가능
TCP/IP 4계층 모델   - 네트워크에서 사용되는 통신 프로토콜의 집합
- 프로토콜의 네트워킹 범위에 따라 계층들은 4개의 추상화 계층으로 구성됨
인터넷 프로토콜 스위트 Internet protocol suite - 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
- TCP/IP 4계층 모델, OSI 7계층 모델로 설명함
- 각 계층은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계됨
OSI 7계층   - [애플리케이션 - 프레젠테이션 - 세션] → [전송] → [네트워크] → [데이터 링크 - 물리]
TCP/IP 4계층   - [애플리케이션] → [전송] → [인터넷] → [링크]
애플리케이션 계층 Application - FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층
- 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층
FTP File Transfer Protocol - 장치 간의 파일 전송하는 데 사용되는 표준 통신 프로토콜
SSH Secure SHell - 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
HTTP HyperText Transfer Protocol - World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
SMTP Simple Mail Transfer Protocol - 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
DNS Domain Name System - 도메인 이름과 IP 주소를 매핑해주는 서버
- IP 주소가 바뀌어도 사용자들에게 똑같은 도메인 주소로 서비스 가능
- DNS 쿼리 → [Root DNS] → [.com DNS] → [.naver DNS] → [.www DNS]
전송 계층 Transport - TCP, UDP등 송신자와 수신자를 연결하는 통신 서비스 제공하는 층
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 제공
- 애플리케이션과 인터넷 계층 사이에 데이터 전달될 때 중계 역할
- TCP : 패킷 사이의 순서 보장, 연결지향 프로토콜로 신뢰성 구축하여 수신 여부 확인하는 ‘가상회선 패킷 교환 방식’ 사용
- UDP : 패킷 사이의 순서 보장X, 수신 여부 확인X, 데이터만 주는 ‘데이터그램 패킷 교환 방식’ 사용
가상회선 패킷 교환 방식 Virtual Circuit Approach - 각 패킷에는 가상회선 식별자가 포함
- 모든 패킷을 전송하면 가상회선이 해제 → 전송된 순서대로 패킷이 도착
데이터그램 패킷 교환 방식 Datagram Approach - 패킷이 독립적으로 이동하며 최적의 경로를 선택하여 이동
- 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송되어 도착 순서가 다를 수 있음
TCP 연결 성립 과정 3-way handshake - TCP는 ‘3-웨이 핸드셰이크’ 작업으로 신뢰성을 구축하고 데이터 전송 시작
- (1) SYN : 클라이언트 —(클라이언트의 ISN)–→ 서버
- (2) SYN+ACK : 서버가 클라이언트의 SYN 수신, 서버 —(서버의 ISN, 승인번호)–→ 클라이언트
- (3) ACK : 클라이언트 —(승인번호=서버의 ISN+1)–→ 서버
SYN SYNchronization - 연결 요청 플래그
ACK ACKnowledgement - 응답 플래그
ISN Initial Sequence Numbers - 초기 네트워크 연결 시 할당된 32비트 고유 시퀀스 번호
TCP 연결 해제 과정 4-way handshake - (1) 클라이언트 —(FIN으로 설정된 세그먼트)–→ 서버 / 클라이언트=FIN_WAIT_1
- (2) 서버 —(ACK)–→ 클라이언트 / 서버=CLOSE_WAIT / 클라이언트=FIN_WAIT_2
- (3) 서버 —(FIN)–→ 클라이언트 / 서버=LAST_ACK
- (4) 클라이언트=TIME_WAIT / 클라이언트 —(ACK)–→서버 / 서버=CLOSE / 일정 시간 뒤에 클라이언트=CLOSE / 클라이언트와 서버의 모든 자원 연결 해제
TIME_WAIT   - 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태
- 클라이언트가 바로 연결을 닫지 않고 일정 시간 뒤에 닫아야 하는 이유
- (1) 지연 패킷이 발생할 경우를 대비하기 위함, 뒤늦게 도달한 패킷을 처리하지 못하면 데이터 무결성에 문제 발생
- (2) 두 장치가 연결이 닫혔는지 확인하기 위함, LAST_ACK 상태에서 닫히게 되면 새로운 연결 시 접속 오류 발생
- OS마다 다르게 설정, 우분투=60초, 윈도우=4분
데이터 무결성 Data Integrity - 데이터의 정확성과 일관성을 유지하고 보증하는 것
인터넷 계층 Internet - IP, ARP, ICMP등 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
- 패킷을 수신해야 할 상대의 주소를 지정하여 데이터 전달
- 상대가 제대로 받았는지 보장하지 않는 비연결형적 특징
링크 계층 Link - 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층
- 네트워크 접근 계층
- 물리 계층 : 무선 LAN과 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
- 데이터 링크 계층 : 이더넷 프레임을 통해 에러 확인, 흐름 제어, 접근 제어 담당 계층
유선 LAN(IEEE802.3)   - 유선 LAN을 이루는 이더넷은 IEEE802.3 프로토콜 따름
- 전이중화 통신 사용
전이중화 통신 Full duplex - 양쪽 장치가 동시에 송수신할 수 있는 방식
- 송신로와 수신로로 나눠서 데이터를 주고받으며 현대의 고속 이더넷이 통신하는 방식
CSMA/CD Carrier Sense Multiple Access with Collisioin Detection - 반이중화 통신 중 하나
- 데이터를 보낸 이후 충돌이 발생한다면 일정 시간 이후 재전송하는 방식
- 한 경로를 기반으로 데이터를 보내기에 충돌에 대비해야 했음
유선 LAN 이루는 케이블   - TP 케이블, 광섬유 케이블이 대표적
트위스트 페어 케이블 Twisted Pair cable - 하나의 케이블처럼 보이지만 8개의 구리선을 두 개씩 꼬아서 묶은 케이블
- UTP 케이블 : 구리선을 실드 처리하지 않고 덮은 케이블, 많이 보임, LAN 케이블
- STP 케이블 : 구리선을 실드 처리하고 덮은 케이블
광섬유 케이블   - 광섬유로 만든 케이블
- 레이저를 이용해서 통신하기 때문에 구리선과 비교할 수 없을 만큼 장거리 및 고속 통신 가능
- 보통 100Gbps 데이터 전송, 한 번 들어간 빛이 내부에서 계속 반사하며 전진해서 끝까지 가는 원리
- 코어 : 빛의 굴절률이 높은 부분
- 클래딩 : 빛의 굴절률이 낮은 부분
무선 LAN(IEEE802.11) Wireless Local Area Network - 무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술
- 반이중화 통신 사용(수신과 송신에 같은 채널을 사용)
반이중화 통신 Half duplex - 양쪽 장치는 서로 통신 가능, 동시 통신은 불가능, 한 번에 한 방향만 통신
- 장치가 신호를 수신하기 시작하면 응답 전에 전송 완료될 때까지 대기해야 함
- 둘 이상의 장치가 동시에 전송하여 충돌 발생하면 메시지 손실/왜곡 있을 수 있어서 충돌 방지 시스템 필요
CSMA/CA Carrier Sense Multiple Access with Collision Avoidance - 반이중화 통신 중 하나
- 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌 방지
- (1) 데이터 송신 전에 무선 매체 살핀다
- (2) 회선이 비어있는지 판단한다(캐리어 감지)
- (3) IFS(Inter FrameSpace) : 랜덤 값을 기반으로 정해진 시간만큼 기다리고 무선 매체가 사용 중이면 간격을 늘려가며 기다린다
- (4) 이후에 데이터를 송신한다
무선 LAN을 이루는 주파수   - 비유도 매체인 공기에 주파수를 쏘아 무선 통신망 구축하는데 주파수 대역 2.4GHz/5GHz 사용
- 2.4GHz : 장애물에 강한 특성, 전자레인지/무선 등 전파 간섭 일어나는 경우 많음
- 5GHz : 사용할 수 있는 채널 수 많음, 동시 사용 가능, 전파 환경 깨끗함
와이파이 Wifi - 전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술
- 무선 접속 장치(Access Point)인 공유기가 있어야 함
- 공유기는 유선 LAN에 흐르는 신호를 무선 LAN으로 바꿔줌
- 이 외에도 무선 LAN을 이용해 블루투스, 지그비 등의 기술이 있음
BSS Basic Service Set - 기본 서비스 집합, 동일 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조
- 근거리 무선 통신 제공
- 하나의 AP만을 기반으로 구축
ESS Extended Service Set - 하나 이상의 연결된 BSS 그룹
- 장거리 무선 통신 제공
- BSS보다 더 많은 가용성과 이동성 지원
- 사용자는 한 장소에서 다른 장소로 이동하며 중단 없이 네트워크에 계속 연결 가능
이더넷 프레임   - 데이터 링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러 검출, 캡슐화
- 구조 : Presemble|SFD|DMAC|SMAC|EtherType|Payload|CRC
- Presemble(7) : 이더넷 프레임이 시작임을 알림
- SFD(1) : 다음 바이트부터 MAC 주소 필드가 시작됨을 알림
- DMAC, SMAC(6, 6) : 수신, 송신 MAC 주소를 말함
- EtherType(2) : 데이터 계층 위의 계층인 IP 프로토콜 정의 (IPv4, IPv6)
- Payload : 전달 받은 데이터
- CRC(4) : 에러 확인 비트
MAC 주소   - 컴퓨터나 노트북 등 각 장치에 네트워크에 연결하기 위한 장치인 LAN 카드가 있는데, 이를 구별하기 위한 식별번호
계층 간 데이터 송수신 과정   - A컴퓨터에서 HTTP를 통해 웹 서버에 있는 데이터 요청
- A애플리케이션–(캡슐화)-→A링크-→B링크–(비캡슐화)-→B애플리케이션
캡슐화 과정 Encapsulation - 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함 → 해당 계층의 헤더를 삽입
- 애플리케이션 : 데이터
- 전송 : TCP(L4) 헤더 + 데이터 = 세그먼트화
- 인터넷 : IP(L3) 헤더 + TCP(L4) 헤더 + 데이터 = 패킷화
- 링크 : 프레임 헤더 + IP(L3) 헤더 + TCP(L4) 헤더 + 데이터 + 프레임 트레일러 = 프레임화
비캡슐화 과정 Decapsulation - 하위 계층에서 상위계층으로 가며 각 계층의 헤더 부분 제거
- 링크 : 프레임화된 데이터
- 인터넷 : 프레임화된 데이터 → 패킷화
- 전송 : 패킷화된 데이터 → 세그먼트화
- 애플리케이션 : 세그먼트화된 데이터 → 메시지화
PDU Protocol Data Unit - 네트워크의 특정 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위로 계층별로 명칭이 다름
- PDU = 제어 관련 정보 포함된 헤더 + 데이터 의미하는 페이로드
- 애플리케이션 : 메시지
- 전송 : 세그먼트(TCP) / 데이터그램(UDP)
- 인터넷 : 패킷
- 링크 : 프레임(데이터링크 계층), 비트(물리 계층)
네트워크 기기   - 네트워크 계층별로 처리 범위 구분
- 상위 계층 처리 기기는 하위 계층 처리 가능하지만 반대는 불가능
- 예) L7스위치는 애플리케이션 포함 하위 계층 처리 가능
계층별 네트워크 기기   - 애플리케이션 : L7 스위치
- 인터넷 : 라우터, L3 스위치
- 데이터 링크 : L2 스위치, 브리지
- 물리 : NIC,리피터, AP
스위치 Switch - 여러 장비를 연결 및 데이터 통신 중재하고, 목적지가 연결된 포트로만 전기 신호를 보내 데이터 전송하는 통신네트워크 장비
L7 스위치 Layer 7 Switch - L7 스위치(=로드밸런서)는 서버의 부하를 분산하는 기기
- 역할 : 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할
- 목표 : 시스템이 처리할 수 있는 트래픽 증가
- IP, 포트, URL, HTTP 헤더, 서버, 캐시, 쿠키 등 기반으로 트래픽 분산
- 바이러스,불필요한 외부 데이터 등 필터링
- 응용 프로그램 수준의 트래픽 모니터링, 정기적인 헬스체크를 통해 서버 장애여부 감시
- 클라우드 서비스에서 L7 스위치 활용한 로드밸런싱은 ALB 컴포넌트
L4 스위치 Layer 4 Switch - 전송 계층을 처리하는 기기로 IP와 포트 기반으로 트래픽 분산
- 스트리밍 관련 서비스에서 사용 불가
- 클라우드 서비스에서 L4 스위치 활용한 로드밸런싱은 NLB 컴포넌트
헬스 체크 Health check - L7 / L4 스위치가 서버의 상태를 판별하는데 사용
- 전송 주기와 재전송 횟수 등 설정 이후 반복적으로 서버에 요청 보내는 것
- TCP, HTTP 등 다양한 방법으로 요청 보내며 잘 이루어지면 정상적인 서버로 판별
- 예) TCP 요청 → 3-웨이 핸드셰이크 → 정상 서버
로드밸런서로 서버 이중화   - 서비스 안정적 운용을 위해 2대 이상의 서버 필수
- 사용자가 가상 IP로 접근 → 로드밸런서 → 사용 가능한 서버 IP로 서빙
라우터 Router - 역할 : 여러 개의 네트워크를 연결, 분할 ,구분
- 라우팅 장비
- 라우팅 : IP 주소를 찾아가는 과정, 다른 네트워크 장치끼리 서로 데이터 주고받을 때 패킷 소모 최소화하고 경로 최적화해서 최소 경로로 패킷을 포워딩하는 것
L3 스위치 Layer 3 Switch - L2 스위치 기능 + 라우팅 기능
- 하드웨어 기반의 라우팅을 담당하는 장치
- 참조 테이블 : 라우팅 테이블
- 참조 PDU : IP 패킷
- 참조 주소 : IP 주소
L2 스위치 Layer 2 Switch - 역할 : 연결된 장치로부터 패킷이 오면 패킷 전송
- 장치들의 MAC 주소를 MAC 주소 테이블로 관리
- 패킷의 MAC 주소를 읽고 스위칭, MAC 주소 테이블에 목적지가 없으면 전체 포트에 전달
- IP 주소 기반 라우팅 불가능
- 참조 테이블 : MAC 주소 테이블
- 참조 PDU : 이더넷 프레임
- 참조 주소 : MAC 주소
브리지 Bridge - 역할 : 포트와 포트 사이의 다리
- 두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 통신망 연결 장치
- 서로 다른 LAN 등으로 이루어진 하나의 통신망 구축 시 사용
- 장치에서 받아온 MAC 주소를 MAC 주소 테이블로 관리
NIC Network Interfae Card - LAN 카드, 2대 이상의 컴퓨터 네트워크 구성 시 사용
- 네트워크와 빠른 속도로 데이터 송수신하도록 컴퓨터 내에 설치하는 확장 카드
- 각 LAN 카드에는 각각을 구분하기 위한 고유 식별번호인 MAC 주소가 있음
리피터 Repeater - 들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치
- 패킷이 더 멀리 갈 수 있지만 광케이블 보급으로 잘 쓰이지 않음
AP Access Point - 패킷을 복사하는 기기
- 유선 LAN을 AP에 연결 → 다른 장치에서 무선 LAN 사용해 무선 네트워크 연결
IP 주소 IP address - 인터넷 계층에서 사용
- 인터넷에서 사용하는 네트워크 주소
- 컴퓨터와 컴퓨터 간 통신 : IP 주소 –(ARP)-→ MAC 주소 검색 -→ MAC 주소로 통신
ARP Address Resolution Protocol - IP와 MAC 주소의 다리 역할을 하는 프로토콜
- 논리적 주소(IP)를 물리적 주소(MAC)로 변환
- 장치 A –(ARP Request 브로드캐스트)-→ B, C, D –(ARP Reply 유니캐스트)-→ A
RARP Reverse Address Resolution Protocol - 물리적 주소(MAC)을 논리적 주소(IP)로 변환
브로드캐스트 Broadcast - 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식
유니캐스트 Unicast - 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식
홉바이홉통신   - IP 주소로 통신하는 과정
- 각 패킷이 여러 개의 라우터를 건너가는 모습
- 수많은 서브네트워크 안에 라우터의 라우팅 테이블IP 기반으로 패킷을 여러 번 전달하면서 라우팅 수행 후 최종 목적지까지 패킷 전달
라우팅 테이블 Routing table - 송신지에서 수신지까지 도달하기 위해 사용
- 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기위해 거쳐야 할 다음 라우터 정보 포함
- netstat -r 명령어로 확인 가능 (IPv4 경로 테이블 / IPv6 경로 테이블)
게이트웨이 Gateway - 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 SW
- 네트워크 접속에 있어서 톨게이트로 라우팅 테이블로 확인 가능
- 서로 다른 네트워크상의 통신 프로토콜 변환
IP 주소 체계   - IPv4 : 32비트를 8비트 단위로 표기 → 123.45.67.89
- IPv6 : 64비트를16비트 단위로 표기 → 2001:db8::ff00:42:8329
클래식 기반 할당 방식 Classful network addressing - A, B, C, D, E 5개 클래스로 구분
- 클래스 A, B, C → 일대일 통신(네트워크 주소 + 호스트 주소)
- 클래스 D → 멀티캐스트 통신(브로드캐스트용 주소)
- 클래스 E → 예비용 주소
구분 비트   - 맨 왼쪽에 있는 비트
- 클래스 A 범위(0) : ~ 01111111.11111111.11111111.11111111
- 클래스 B 범위(10) : ~ 10111111.11111111.11111111.11111111
- 클래스 C 범위(110) : ~ 11011111.11111111.11111111.11111111
클래스 기반 할당 방식의 주소 구성   - 네트워크 구별 주소 + 호스트 주소 + 브로드캐스트용 주소
- 브로드캐스트용 주소 : 네트워크에 속한 모든 컴퓨터에 데이터를 보내는 브로드캐스트 주소
- 예) 클래스 A = 12.0.0.0 + 12.0.0.1 ~ 12.255.255.254 + 12.255.255.255
- 클래스 기반 할당 방식은 사용 주소보다 버리는 주소가 많은 단점으로 이를 해소하기 위해 DHCP, IPv6, NAT 가 나옴
DHCP Dynamic Host Configuration Protocol - IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜
- 인터넷 접속마다 자동으로 IP 주소 할당
- 많은 라우터와 게이트웨이 장비에 해당 기능 있음
- DHCP 통해 대부분의 가정용 네트워크에서 IP 주소 할당
NAT Network Address Translation - 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법
- 여러 사설 IP를 NAT 장치를 통해 하나의 공인 IP로 변경 후 외부 인터넷에 요청
- IPv4 주소 체계는 많은 주소들을 감당하지 못하기에 NAT로 공인 IP와 사설 IP로 구분해 주소 처리
- ICS, RRAS, Netfilter 등의 SW로 NAT 구현
- 공인 IP와 사설 IP가 다르므로 내부 네트워크에 대한 보안성이 어느 정도 있음
- 단점 : 실제 접속하는 호스트 숫제에 따라 접속 속도 느려질 수 있음
NAT 와 공유기   - NAT는 하나의 공인IP 주소를 사용해 여러 대의 호스트가 인터넷에 접속하기 위해 사용
- 인터넷 공유기에 NAT 기능이 탑재되어 있음
IP 주소로 위치 추적   - IP 주소는 네트워크 주소로 동/구까지 위치 추적 가능
HTTP   - 전송 계층 위에 있는 애플리케이션 계층으로서 웹 서비스 통신에 사용됨
- HTTP/1.0 ~ HTTP/3
HTTP/1.0   - 기본적으로 한 연결당 하나의 요청을 처리하도록 설계
- 단점 : 서버로부터 파일을 가져올 때마다 TCP 3-웨이 핸드셰이크 계속 열어야 함 → RTT 증가
RTT Round Trip Time - 패킷 왕복 시간
- 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간
RTT 증가 해결 방법   - 매번 연결 마다 RTT 증가 → 서버 부담 및 사용자 응답 시간 증가
- 해결 : 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 사용
이미지 스플리팅   - 많은 이미지가 합쳐 있는 하나의 이미지 다운로드 → background-image의 position 이용해서 이미지 표기
코드 압축   - 코드 압축해서 개행 문자, 빈칸 없애고 코드의 크기를 최소화하는 방법
이미지 Base64 인코딩   - 이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법
- 인코딩 : 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상,저장 공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식
- 장점 : 서버와의 연결을 열고 이미지에 대해 서버에 HTTP 요청할 필요 없음
- 단점 : Base64 문자열로 변환 시 37% 정도 크기가 더 커짐
HTTP/1.1   - 매번 TCP 연결하지 않고 한 번 TCP 초기화 → keep-alive 옵션으로 여러 개 파일 송수신
- 단점 : 문서 안에 포함된 다수의 리소스(이미지, 동영상, css 파일 등)를 처리하려면 요청하는 리소스 개수에 비례해 대기 시간이 길어짐, 또한 헤더에 쿠키 등 많은 메타데이터가 있지만 압축이 되지 않아 무거운 헤더 구조임
HOL Blocking Head Of Line Blocking - 네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상
HTTP/2   - 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리 지원하는 프로토콜
- HTTP/1.x보다 지연시간 및 응답시간 감소
멀티플렉싱   - 여러 개의 병렬적인 스트림들을 사용하여 송수신하는 것
- 특정 스트림의 패킷이 손실되었다고 해도 나머지 스트림은 멀쩡하게 동작 가능
- 스트림 : 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름
- 애플리케이션에서 받아온 메시지를 독립된 프레임으로 조각 → 서로 송수신 → 조립
- 단일 연결을 사용하여 병렬로 여러 요청 받고 응답 가능해서 HOL Blocking 단점 해결
헤더 압축   - 허프만 코딩 압축 알고리즘 사용해서 헤더를 HPACK 압축 형식으로 압축
- 허프만 코딩 : 문자열을 문자 단위로 쪼개 빈도수를 세어 빈도가 높은 정보는 적은 비트 수를 사용해서 표현, 빈도가 낮은 정보는 비트 수를 많이 사용하여 표현해서 전체 데이터의 표현에 필요한 비트양을 줄이는 원리
- HTTP/1.x의 무거운 헤더 구조 단점 해결
서버 푸시   - HTTP/1.1는 클라이언트가 서버에 요청해야 파일 다운 가능
- HTTP/2는 클라이언트 요청 없이 서버가 바로 리소스 푸시 가능
- 예) HTML 파일 요청하면 HTML안에 있던 css 파일까지 서버가 푸시해서 미리 줄 수 있음
HTTPS   - 애플리케이션 계층과 전송 계층 사이에 신뢰 계층(SSL/TLS)를 넣은 신뢰 가능한 HTTP 요청
- 이를 통해 통신을 암호화
- HTTP/2는 HTTPS 위에서 동작
SSL/TLS Secure Socket Layer /Transport Layer Security Protocol - 전송 계층에서 보안을 제공하는 프로토콜
- 클라이언트와 서버가 통신할 때 사용해서 제3자가 메시지 도청/변조하는 것을 방지
- 보안 세션을 기반으로 데이터 암호화
보안 세션   - 보안이 시작되고 끝나는 동안 유지되는 세션
- SSL/TLS는 핸드셰이크를 통해 보안 세션 생성하고 상태 정보 등 공유
- 보안 세션 생성 시 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘 사용됨
- 세션 : 운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간
TLS 핸드셰이크   - 단 한번의 1-RTT 이후에 데이터 송수신
- TLS 1.3 : 사용자가 이전에 방문한 사이트로 재방문 시 0-RTT
- (1) 클라이언트 –(cypher suites)-→ 서버
- (2) 서버는 받은 사이퍼 슈트의 암호화 알고리즘 리스트 제공 가능한지 확인
- (3) 제공가능하면 서버에서 클라이언트로 인증서 보내는 인증 메커니즘 시작
- (4) 이후 해싱 알고리즘 등으로 암호화된 데이터 송수신 시작
사이퍼 슈트 Cypher suites - 프로토콜, AEAD 사이퍼 모드, 해싱 알고리즘이 나열된 규약으로 5개 있음
- 예) TLS_AES_128_GCM_SHA256 = TLS + AES_128_GCM + SHA256
AEAD 사이퍼 모드 Authenticated Encryption with Associated Data - 데이터 암호화 알고리즘
- 예) AES_128_GCM = 128비트의 키를 사용하는 표준 블록 암호화 기술 + 병렬 계산에 용이한 암호화 알고리즘 GCM
인증 메커니즘   - CA(Certificate Authorities)에서 발급한 인증서 기반으로 이루어짐
- CA는 신뢰성이 엄격히 공인된 기업들만 가능(Comodo GoDaddy GlobalSign, 아마존 등)
- 안전한 연결을 시작하는 데 있어 필요한 공개키를 클라이언트에 제공
- 사용자가 접속한 서버가 신뢰할 수 있는 서버임을 보장
- 서비스 정보 + 공개키 + 지문 + 디지털 서명 등
CA 발급 과정   - 자신의 사이트 정보와 공개키를 CA에 제출 → 공개키를 해시한 값(지문)을 사용하는 CA의 비밀 키 등 기반으로 CA 인증서 발급
암호화 알고리즘   - 키 교환 암호화 알고리즘으로 ECDHE, DHE 사용
- ECDHE(Elliptic Curve Diffie-Hellman Ephermeral) : 대수곡선 기반
- DHE(Diffie-Hellman Ephermeral) : 모듈식 기반
- 두 알고리즘 모두 디피-헬만 방식 근간으로 만들어짐
디피-헬만 키 교환 암호화 알고리즘 Diffie-Hellman key exchange - 암호키를 교환하는 하나의 방법
- y = g**x mod p
- g, x, p → y 구하기 쉬움
- g, y, p → x 구하기 어려움
- PSK(Public Shared Key) : 공통의 암호 키
- PSK = 공개 값 공유 → 공개값 + 각자의 개인키 → 혼합 값 공유 → 혼합 값 + 각자의 개인키
- 악의적인 공격자가 개인키/공개키를 가지고 있어도 PSK 가 없으면 액션 불가능
해싱 알고리즘   - 데이터를 추정하기 힘든 더 작고, 섞여 있는 조각으로 만드는 알고리즘
- SSL/TLS는 해싱 알고리즘으로 SHA-256, SHA-384 사용
SHA-256 알고리즘   - 해시 함수의 결괏값이 256비트인 알고리즘
- 비트 코인과 같은 블록체인 시스템에서도 사용
- 해싱을 해야 할 메시지에 1을 추가하는 등 전처리된 메시지를 기반으로 해시 반환
해시 Hash - 다양한 길이의 데이터를 고정된 길이 데이터로 매핑한 값
해싱 Hashing - 임의의 데이터를 해시로 바꿔주는 일, 해시 함수가 담당
해시 함수 Hash function - 임의의 데이터를 입력으로 받아 일정한 길이의 데이터로 바꿔주는 함수
SEO Search Engine Optimization - 검색 엔진 최적화로 검색엔진으로 사이트 검색 시 상단 노출시키는 방법
- 모든 사이트 요소가 동일하면 HTTPS 서비스가 SEO 순위 더 높음
- 방법 : 캐노니컬 설정,메타 설정, 페이지 속도 개선, 사이트맵 관리 등
캐노니컬 설정   - 사이트 link에 캐노니컬 설정
- 예)
메타 설정   - html 파일의 가장 윗부분인 메타를 잘 설정
페이지 속도 개선   - 서비스 접속 시간 등 관리
- 구글의 PageSpeedInsights를 통해 서비스 리포팅 주기적으로 받고 관리 필요
사이트맵 관리   - 사이트맵(sitemap.xml)을 정기적으로 관리
- 사이트맵 제너레이터 사용 / 직접 코드로 구축
- xml 설명 : 유튜브 ‘ 큰돌의 터전
- 대표적인 데이터포맷 XML’ 참고
HTTPS 구축 방법   - CA에서 구매한 인증키 기반으로 HTTPS 서비스 직접 구축
- 서버 앞단의 HTTPS 제공하는 로드밸런서 둬서 구축
- 서버 앞단에 HTTPS 제공하는 CDN 둬서 구축
HTTP/3   - World Wide Web에서 정보 교환하는 데 사용되는 HTTP 세 번째 버전
- HTTP/2 는 TCP 기반으로 돌아감
- HTTP/3 은 UDP 기반의 QUIC 계층 위에서 돌아감
- QUIC은 TCP를 사용하지 않기 때문에 통신 시작 시 3-웨이 핸드셰이크 과정 거치지 않음
- 멀티플렉싱 지원하며 초기 연결 설정 시 지연 시간 감소
- QUIC은 첫 연결 설정에 1-RTT 만 소요(클–[신호]-→서버–[응답]-→클–→본 통신 시작)
FEC Forward Error Correction - QUIC은 순방향 오류 수정 메커니즘이 적용됨
- 전송한 패킷이 손실되었따면 수신 측에서 에러를 검출하고 수정하는 방식
- 열악한 네트워크 환경에서도 낮은 패킷 손실률

REFERENCES