본문은 “그림으로 공부하는 TCP/IP 구조” 및 각종 자료를 읽고 재구성한 글임을 밝힙니다.
1. 회선 교환 방식 vs. 패킷 교환 방식
1-1. 회선 교환 방식 (Circuit exchange method)
- 데이터 교환 전 일대일 전송로를 만들고, 교환을 마칠 때까지 전송로를 계속 사용하는 방식이다.
- 안정적인 통신 품질을 유지할 수 있다.
- 회선 이용 효율이 낮다.
1-2. 패킷 교환 방식 (Packet exchange method)
회선 이용 효율을 향상할 목적으로 고안된 것이며, 현대 네트워크는 거대한 패킷 교환 네트워크로 되어 있다. 패킷 교환 네트워크는 패킷 교환기(= 네트워크 기기)로 구성되어 있다.
패킷(packet): 데이터를 나누는 작은 단위이다.
패킷의 헤더 정보를 보고 수신 컴퓨터로 패킷을 전달하며, 수신 컴퓨터는 헤더를 보고 원 데이터로 복원한다.
헤더(header): 제어 정보가 포함되어 있는 부분
- 필요한 만큼만 회선을 이용할 수 있고, 같은 회선을 통해 다른 사용자의 데이터도 전송할 수 있다.
- 어딘가에서 패킷이 손실되어도 데이터 전체가 아닌 해당 패킷만 재전송하면 되므로 곧바로 복구가 가능하다.
2. 프로토콜
패킷을 처리하기 위한 규칙으로, 통신에 필요한 기능별로 명확하게 규정되어 있어 PC 제조사/운영체제/유무선 등에 상관 없이 동일하게 패킷을 교환할 수 있다.
2-1. 프로토콜에 결정되어 있는 것
- 물리적 사양
- 송신 상대 특정 (w/ 주소)
- 패킷 전송
- 데이터를 패킷으로 나눈 후, 제어 정보가 포함된 헤더를 붙인다.
- 프로토콜에는 헤더의 어디에서 어디까지 어떤 정보를 포함하고 어떤 순서로 교환하는지 등이 정의되어 있다.
- 패킷 교환기는 헤더의 정보를 기반으로 릴레이처럼 패킷을 전송한다.
- 신뢰성 확립 (에러, 데이터 재전송, 네트워크 자원 가득 차지 않도록)
- 보안 확보 (올바른 상대인지 인증, 통신 암호화)
2-2. 계층 구조
데이터 송신지: 상위 계층부터 순서대로, 계층별 프로토콜에 따라 데이터 처리
→ 패킷 상태로 보내기
데이터 수신지: 하위 계층부터 순서대로, 계층별로 송신지와 동일한 프로토콜을 따라 데이터 처리
→ 원 데이터 복원
2-3. 두 가지 통신 기능 계층 구조 모델
특징
- 만들어진 곳이 다를 뿐, 통신에 필요한 기능을 계층적으로 정리한 점에서 공통점이 있다.
- 각 계층의 역할이 명확하게 구분되어 있으며, 순서대로 처리한다.
- 각 계층은 자신의 처리가 완료되면 다음 계층에 데이터를 전달하고 그 처리에는 관여하지 않는다.
계층 구조의 장점
- 특정 계층의 프로토콜이 다른 프로토콜로 대체된다 하더라도 동일하게 통신할 수 있다.
- 계층별로 문제를 해결하기 쉽다.
[1] TCP/IP 참조 모델 (4계층)
- 링크 계층: 같은 네트워크에 있는 단말과의 연결성 확보
- 인터넷 계층: 다른 네트워크에 있는 단말과의 연결성 확보
- 트랜스포트 계층: 애플리케이션 식별 및 그에 따라 통신 제어
- 애플리케이션 계층: 사용자에게 애플리케이션 제공
[2] OSI 참조 모델 (7계층)
- 물리 계층(L1): 디지털 데이터를 전기 신호나 광 신호, 전파로 변환해 네트워크로 보냄
- 데이터링크 계층(L2): 물리 계층의 신뢰성 확보, 같은 네트워크에 있는 단말과의 연결성 확보
- 네트워크 계층(L3): 다른 네트워크에 있는 단말과의 연결성 확보
- 트랜스포트 계층(L4): 애플리케이션 식별 및 그에 따라 통신 제어
- 세션 계층(L5): 애플리케이션 데이터를 송신하기 위한 논리적 통신로(세션) 관리
- 프레젠테이션 계층(L6): 애플리케이션 데이터를 통신 가능한 방식으로 변환
- 애플리케이션 계층(L7): 사용자에게 애플리케이션 기능 제공
2-4. PDU (Protocol Data Unit)
계층에서 처리하는 데이터의 단위로, 다음과 같이 구성된다.
- 헤더: 제어 정보를 포함
- 페이로드: 데이터 자체
계층별 PDU
계층 계층 이름 PDU 이름 7 애플리케이션 계층 메시지 4 트랜스포트 계층 세그먼트(TCP), 데이터그램(UDP) 3 네트워크 계층 (IP) 패킷 2 데이터링크 계층 프레임 1 물리 계층 비트
2-5. 각 계층이 연계하여 동작하는 구조
[1] 캡슐화 & 비캡슐화
[송신 단말] 캡슐화: 각 계층에서 페이로드에 해당 계층의 헤더를 붙이는 것 (⬇️)
헤더를 붙여서 PDU로 만들어 한 단계 아래 계층으로 전달 → 아래 계층에서는 PDU를 페이로드로 인식
[수신 단말] 비캡슐화: 각 계층에서 PDU로부터 해당 계층의 헤더를 제거하는 것 (⬆️)
아래 계층에서 전달 받은 PDU로부터 헤더 제거 → 페이로드만 위 계층으로 전달 → PDU로 인식
[2] 커넥션 타입 & 커넥션리스 타입
커넥션: 통신 단말 사이에 확립된 논리적인 통신로
- 커넥션 타입(연결형): 데이터 송신 전에 커넥션 확립 → 데이터 교환 → 종료
- 전송 시간이 소요되는 편이다.
- 데이터를 확실하게 전송할 수 있다.
- 커넥션리스 타입(비연결형): 곧바로 데이터를 보내면서 커넥션을 확립한 뒤 마음대로 종료
- 데이터를 확실하게 전송할 수는 없다.
- 전송에 필요한 시간을 줄일 수 있다.
2-6. 인터넷 환경에서의 대표 프로토콜
계층 | 계층 이름 | 프로토콜 이름 |
---|---|---|
7 | 애플리케이션 계층 | HTTP, HTTPS(HTTP를 SSL/TLS로 암호화), QUIC, DNS |
4 | 트랜스포트 계층 | TCP(신뢰성), UDP(실시간성) |
3 | 네트워크 계층 | IP |
1 & 2 | 물리 계층 & 데이터링크 계층 | 이더넷(유선), IEEE802.11(무선) |
3. 네트워크 구성 기기
네트워크 기기는 종류에 따라 처리할 수 있는 범위가 다르다.
3-1. 물리 계층
패킷을 광 신호/전기 신호로 변환, 전파로 변조
- NIC (네트워크 인터페이스, 네트워크 어댑터): 네트워크 단말은 애플리케이션/운영체제가 처리한 패킷을 NIC를 이용해 LAN 케이블이나 전파로 전송
- 리피터: 파형 증폭/정리해서 전송 (최근엔 광섬유 케이블이 보급되면서 많이 사용 X)
- 리피터 허브: 패킷(비트)의 복사본을 그대로 다른 모든 포트에 전송 (최근엔 L2 스위치로 대체)
- 미디어 컨버터: 전기 신호와 광 신호를 서로 교환 (중간에 광 케이블을 이용해 네트워크 연장)
- 액세스 포인트: 패킷을 전파로 변조/복조하는 기기 (무선 - 유선 사이 다리 역할) (ex. 와이파이 라우터)
3-2. 데이터링크 계층
데이터링크 계층
- (1) 물리 계층의 신뢰성을 확보하고 (2) 같은 네트워크에 있는 단말과 연결할 수 있도록 하는 계층이다.
- 해당 계층에서 동작하는 기기는 프레임 헤더에 포함된 MAC 주소(데이터링크 계층에서의 주소)를 기반으로 프레임을 전송한다.
- 브리지: 포트 간 다리 역할 (L2 스위치로 대체)
- 단말에서 받아들인 MAC 주소를 MAC 주소 테이블로 관리 및 전송 처리(= 브리징)
- L2 스위치 (스위칭 허브, 스위치): 많은 포트를 가진 브리지
- 단말에서 받아들인 프레임의 MAC 주소를 MAC 주소 테이블로 관리하고 전송 처리(= L2 스위칭)
- MAC 주소 테이블:
<포트 번호> - <MAC 주소>
(여러 개의 단말이 포트에 연결되어 있음)
3-3. 네트워크 계층
네트워크 계층
- 네트워크와 네트워크를 연결하는 계층이다. (다른 네트워크)
- 해당 계층에서 동작하는 기기는 IP 패킷의 헤더에 포함된 IP 주소(네트워크 계층에서의 주소)를 기반으로 패킷을 전송한다.
- 라우터: IP 패킷의 IP 주소를 보고, 자신이 속한 네트워크를 넘은 범위에 있는 단말로 전달
- 인터넷은 여러 라우터가 그물 형태로 네트워크를 연결한 것이다.
- 기능:
- 라우팅: IP 패킷을 패키지 릴레이하여 목적지로 보내는 것
- 라우팅 테이블: 패킷을 전송할 대상지를 관리하기 위한 테이블
라우팅 프로토콜: 라우터끼리 정보 교환 → 라우팅 테이블을 동적으로 생성하는 프로토콜
ex) RIPv2, OSPF, BGP
- NAT: IP 주소를 변환
- DHCP: 단말의 IP 주소 등을 동적으로 설정
- IPsec VPN: 가상 전용선을 통해 거점이나 사용자 단말 연결
- PPPoE: 거점 사이를 일대일로 연결하는 PPP를 이더넷에서 캡슐화하는 프로토콜
- 라우팅: IP 패킷을 패키지 릴레이하여 목적지로 보내는 것
- L3 스위치: 라우터(라우팅 테이블) + L2 스위치(MAC 주소 테이블)
- 여러 포트가 있으므로 여러 단말을 연결할 수 있다.
- IP 패킷을 라우팅할 수 있다.
- MAC 주소 테이블과 라우팅 테이블을 조합한 정보를 FPGA나 ASIC 등의 패킷 전송 처리 전용 하드웨어에 기록하고, 그 정보를 기반으로 스위칭/라우팅 한다.
3-4. 트랜스포트 계층
트랜스포트 계층
- 애플리케이션을 식별하고, 그 요건에 맞게 통신 제어하는 계층이다.
- 해당 계층에서 동작하는 기기는 세그먼트(TCP) 또는 데이터그램(UDP)의 헤더에 포함된 포트 번호(서비스를 식별하기 위한 번호)에 기반하여 패킷을 전송한다.
- 포트 번호를 통해 어떤 애플리케이션에 데이터를 전달할지 판단한다.
방화벽: 단말 사이에서 교환되는 패킷의 IP 주소나 포트 번호를 보고 통신을 허가하거나 차단한다.
→ 스테이트풀 인스텍션
3-5. 애플리케이션 계층
애플리케이션 계층
- 사용자에게 애플리케이션을 제공하는 계층이다.
- 차세대 방화벽: 방화벽이 진화한 버전으로, 다양한 보안 기능이 추가되었으며 다양한 정보를 애플리케이션 레벨에서 해석
- WAF(Web Application Firewall): 클라이언트-서버 사이에서 교환되는 정보의 움직임을 애플리케이션 레벨에서 검사하고 차단한다.
- 부하 분산 장치 (로드 밸런서, L7 스위치): 서버의 부하를 분산한다.
- 부하 분산 방식을 통해 시스템 전체적으로 처리 가능한 트래픽양을 확장한다.
- 헬스 체크를 통해 정기적으로 서버를 감시함으로써 장애가 발생한 서버를 부하 분산 대상에서 제외한다.
4. 네트워크 형태
대부분의 단말은 LAN에서 WAN으로 이어져, DMZ 상의 공개 서버에 접속한다.
4-1. LAN (Local Area Network)
- 가정이나 기업 등 한정된 범위의 네트워크이다.
- 기업의 경우, 액세스 포인트나 L2 스위치 등에 우선 연결되고, L2 스위치를 집약하는 L3 스위치를 경유해 인터넷 / 사내 서버에 연결된다.
4-2. WAN (Wide Area Network)
- 인터넷 등 거리상 멀리 떨어진 범위의 네트워크이다.
- 종류
- 인터넷: 공중 WAN, 쉽게 이야기하면 “라우터의 집합”
- ISP(인터넷 서비스 제공자)/연구기관/기업 등이 가진 수많은 라우터가 패킷을 운반하고 있다.
ISP마다 AS(Autonomous System) 번호가 할당되는데, 인터넷은 관련 규칙을 규정하고 있다.
ex) 몇 번과 몇 번의 AS 번호를 어떻게 연결하는지, 어떤 AS 번호에 대한 경로를 우선 사용하는지 등
- 폐역 VPN 망: LAN과 LAN을 연결하는 네트워크 (ex. 본사 - 지사)
- VPN이란 Virtual Private Network로, 인터넷상에 가상의 전용선을 만드는 기능이다.
- IPsec 프로토콜을 통해 거점 사이를 peer-to-peer로 연결하고, 통신을 암호화한다.
- 인터넷: 공중 WAN, 쉽게 이야기하면 “라우터의 집합”
4-3. DMZ (DeMilitarized Zone)
- 인터넷에 공개하는 서버를 설치한 네트워크이다.
- 최근에는 클라우드상에 구축하기도 하지만, 여기에서는 데이터 센터 상에 직접 구축하는 경우를 설명한다.
안정적인 가동을 위해 다중화(redundancy)가 필요하다.
동일한 종류의 네트워크 기기를 병렬로 배치함으로써 달성한다.
- 일반적인 구성: L3 스위치로 ISP 인터넷 회선 받기 → 방화벽으로 방어 → 부하 분산 장치로 여러 서버로 트래픽 나눔
5. 새로운 네트워크 형태
- SDN (Software Defined Network)
- CDN (Content Delivery Network)
- 이미지, 동영상, HTML, CSS 등 웹 콘텐츠로 사용되는 다양한 파일을 대량으로 송신하기 위해 최적화된 인터넷 상의 서버 네트워크
- 구성: 오리진 서버(오리지널 웹 콘텐츠 위치) / 에지 서버(그 캐시를 가짐)
- 사용자는 물리적으로 거리가 가까운 에지 서버에 접속 → 에지 서버가 (1) 캐시를 갖지 않았거나 (2) 유효 기간이 만료되었을 때만 오리진 서버에 접속
- 장점:
- 물리적인 거리가 가까우므로 웹 콘텐츠 다운로드 속도 향상
- 서버의 처리 부하 분산
- IoT (Internet of Things)
- 가벼움, 빠른 속도, 적은 전력
- IaaS (Infrastructure as a Service)
- 서버나 네트워크 등의 인프라를 인터넷 상에서 구축하는 클라우드 서비스
- ex) AWS의 Amazon VPC
- 물리 계층을 의식할 필요가 없다.
References
- “그림으로 공부하는 TCP/IP 구조(미야타 히로시 저)”, Ch1. 네트워크 기초