[CS]네트워크 계층(TCP/IP, OSI 7계층), 캡슐화/비캡슐화
[CS]네트워크 계층(TCP/IP, OSI 7계층), 캡슐화/비캡슐화
TCP/IP 모델
TCP/IP 모델은 인터넷에서 컴퓨터들이 서로 통신하는 데 사용되는 표준 프로토콜입니다. 실제 인터넷의 기반이 되는 모델로, 4개의 계층으로 구성됩니다.
1. 네트워크 인터페이스 계층 (Network Interface Layer)
- 물리적 네트워크 미디어를 통한 데이터 전송 담당
- 이더넷, Wi-Fi 등의 프로토콜 포함
- 백엔드 개발 시 직접 다루는 경우는 드물다.
2. 인터넷 계층 (Internet Layer)
- 패킷의 라우팅을 담당하는 계층
- IP (Internet Protocol): 출발지에서 목적지까지 패킷 전달
- ICMP: 네트워크 오류 보고 및 진단(ping 등)
- 백엔드 개발 시 IP 주소 체계, 서브넷 마스크 개념이 이 계층에 속함
3. 전송 계층 (Transport Layer)
- 종단 간(end-to-end) 통신 제공
- TCP (Transmission Control Protocol): 신뢰성 있는 연결 지향적 통신
- 연결 설정(3-way handshake)
- 데이터 순서 보장
- 오류 검출 및 복구
- 흐름 제어와 혼잡 제어
- UDP (User Datagram Protocol): 비연결성, 신뢰성이 낮지만 빠른 통신
- 연결 설정 과정 없음
- 순서, 신뢰성 보장 없음
- 실시간 스트리밍, 게임 등에 적합
- 백엔드 개발 시 API 설계를 할 때 TCP/UDP 특성을 이해하고 선택해야 함
4. 응용 계층 (Application Layer)
- 사용자와 가장 가까운 계층으로 다양한 인터넷 서비스 제공
- HTTP/HTTPS: 웹 통신 프로토콜
- FTP: 파일 전송 프로토콜
- SMTP/POP3/IMAP: 이메일 프로토콜
- DNS: 도메인 이름 해석 서비스
- 백엔드 개발 시 응용 계층의 프로토콜을 가장 많이 다룸
OSI 7계층 모델
OSI 모델은 국제 표준화 기구(ISO)에서 개발한 개념적 모델로, 네트워크 통신을 7개의 계층으로 나누어 설명합니다. 실제로는 TCP/IP 모델이 더 널리 사용되지만, OSI 모델은 네트워크 문제를 진단하고 이해하는 프레임워크로 중요합니다.
1. 물리 계층 (Physical Layer)
- 비트 스트림을 전기, 빛, 전파 신호로 변환
- 케이블, 스위치, 허브 등의 하드웨어 포함
2. 데이터 링크 계층 (Data Link Layer)
- 물리적 네트워크 상의 노드 간 신뢰성 있는 전송
- MAC 주소를 이용한 통신
- 이더넷이 대표적인 프로토콜
- 오류 검출 및 수정
3. 네트워크 계층 (Network Layer)
- 다른 네트워크 간의 통신을 위한 경로 결정(라우팅)
- IP가 대표적인 프로토콜
- 논리적 주소(IP) 할당
4. 전송 계층 (Transport Layer)
- 종단 간 통신 및 오류 복구
- TCP, UDP 등이 대표적인 프로토콜
- 세그먼트(TCP) 또는 데이터그램(UDP) 단위로 통신
5. 세션 계층 (Session Layer)
- 통신 세션 구성, 유지, 종료
- 연결 복구 기능 제공
6. 표현 계층 (Presentation Layer)
- 데이터 형식 변환, 암호화, 압축
- JPEG, MPEG, ASCII 등의 인코딩 처리
7. 응용 계층 (Application Layer)
- 사용자와 직접 상호작용하는 계층
- HTTP, FTP, SMTP 등의 프로토콜
TCP/IP 모델과 OSI 모델의 계층 비교:
- TCP/IP 네트워크 인터페이스 계층 = OSI 물리 + 데이터 링크 계층
- TCP/IP 인터넷 계층 = OSI 네트워크 계층
- TCP/IP 전송 계층 = OSI 전송 계층
- TCP/IP 응용 계층 = OSI 세션 + 표현 + 응용 계층
캡슐화와 비캡슐화
네트워크 통신에서 데이터가 한 장치에서 다른 장치로 전송될 때 각 계층을 거치며 발생하는 과정입니다.
캡슐화 (Encapsulation)
- 송신 측에서 상위 계층에서 하위 계층으로 데이터가 전달될 때 각 계층에서 헤더를 추가하는 과정
- 과정:
- 응용 계층: 데이터 생성 후 전송 계층으로 전달
- 전송 계층: TCP/UDP 헤더 추가 (세그먼트/데이터그램 생성) 후 인터넷 계층으로 전달달
- 인터넷 계층: IP 헤더 추가 (패킷 생성) 후 링크 계층으로 전달
- 네트워크 인터페이스 계층: 이더넷 헤더와 트레일러 추가 (프레임 생성)
비캡슐화는 위 이미지의 반대 과정이라 보면 됩니다.
비캡슐화 (Decapsulation)
- 수신 측에서 하위 계층에서 상위 계층으로 데이터가 전달될 때 각 계층에서 해당 헤더를 제거하는 과정
- 과정:
- 네트워크 인터페이스 계층: 이더넷 헤더와 트레일러 제거
- 인터넷 계층: IP 헤더 제거
- 전송 계층: TCP/UDP 헤더 제거
- 응용 계층: 최종 데이터 처리
Leave a comment