1. 계층 모델
1.1 OSI 7계층
OSI 7계층은 네트워크 통신의 각 기능을 계층별로 분리하여 정의한 모델이다. 각 계층은 아래와 같이 역할을 수행한다.
- 물리 계층
- 실제 전송 매체를 통해 비트 단위의 데이터 전송을 담당한다.
- 전기 신호, 광 신호, 무선 주파수 등을 사용하여 데이터 전송이 이루어진다.
- 데이터 링크 계층
- 물리 계층에서 전송된 데이터를 프레임 단위로 관리하며, 오류 검출 및 수정 기능을 수행한다.
- MAC 주소 등을 이용한 노드 간의 통신을 지원한다.
- 네트워크 계층
- 데이터를 패킷 단위로 관리하며, 최적의 경로를 선택해 목적지까지 전달하는 라우팅 기능을 담당한다.
- IP 주소를 사용하여 패킷의 출발지와 도착지를 지정한다.
- 전송 계층
- 종단 간 데이터 전송의 신뢰성과 순서를 보장하기 위한 연결 설정, 데이터 흐름 제어, 오류 복구 등의 기능을 수행한다.
- TCP와 UDP가 이 계층에 해당하는 프로토콜이다.
- 세션 계층
- 통신 세션을 관리하며, 데이터 교환 중 연결을 설정, 유지 및 종료하는 역할을 한다.
- 애플리케이션 간의 대화 제어를 담당한다.
- 표현 계층
- 데이터의 인코딩, 압축, 암호화 등을 처리하여 서로 다른 시스템 간 데이터 형식의 차이를 극복한다.
- 데이터의 구조와 표현 방식을 표준화한다.
- 응용 계층
- 사용자와 직접 상호작용하는 애플리케이션에 네트워크 서비스를 제공한다.
- HTTP, FTP, SMTP 등 다양한 프로토콜이 이 계층에서 운영된다.
1.2 TCP/IP 4계층
TCP/IP 모델은 인터넷 통신의 실제 구현에 초점을 맞춘 모델로, 다음 네 계층으로 구성된다.
- 네트워크 인터페이스 계층
- OSI의 물리 계층과 데이터 링크 계층에 해당하며, 하드웨어를 통한 데이터 전송을 담당한다.
- 인터넷 계층
- OSI의 네트워크 계층에 해당하며, IP 프로토콜을 사용해 데이터 패킷의 주소 지정과 라우팅을 수행한다.
- 전송 계층
- OSI의 전송 계층과 유사하게 데이터 전송의 신뢰성 및 오류 검출/수정 기능을 수행한다.
- TCP와 UDP 프로토콜이 이 계층에서 작동한다.
- 응용 계층
- OSI의 상위 세 계층(세션, 표현, 응용 계층)을 통합한 개념으로, 최종 사용자에게 네트워크 서비스를 제공한다.
- 웹 브라우징, 이메일, 파일 전송 등의 애플리케이션 프로토콜이 이 계층에서 동작한다.
2. TCP와 UDP의 차이점
네트워크 전송 계층에서 사용되는 두 가지 대표적인 프로토콜은 TCP와 UDP이다. 이들은 다음과 같은 특징으로 구분된다.
TCP (Transmission Control Protocol)
- 연결 지향적 프로토콜
- 통신을 시작하기 전, 송신자와 수신자 간에 3-way 핸드쉐이크 과정을 통해 연결을 설정한다.
- 신뢰성 및 순서 보장
- 전송된 데이터의 도착을 확인하고, 손실된 패킷은 재전송한다.
- 데이터의 순서를 보장하여 수신 측에서 올바른 순서로 데이터를 재구성할 수 있다.
- 흐름 제어와 혼잡 제어
- 네트워크 상태에 따라 전송 속도를 조절하여 혼잡을 방지하며, 수신자의 처리 능력에 맞추어 데이터 전송을 조절한다.
UDP (User Datagram Protocol)
- 비연결 지향적 프로토콜
- 연결 설정 없이 데이터를 전송하며, 핸드쉐이크 과정이 없다.
- 신뢰성 및 순서 보장 없음
- 데이터가 도착하지 않거나 순서가 뒤바뀔 수 있으며, 이러한 경우 애플리케이션이 별도로 처리해야 한다.
- 빠른 전송 속도
- 데이터 손실이 일부 발생해도 큰 문제가 없는 경우, 예를 들어 실시간 스트리밍이나 VoIP, 온라인 게임 등에서 사용된다.
3. HTTP와 HTTPS의 차이점 및 HTTPS 보안 제공 방식
HTTP (HyperText Transfer Protocol)
- 평문 데이터 전송
- 암호화 없이 데이터를 전송하므로 중간에 데이터가 노출될 위험이 있다.
- 보안 취약점
- 도청, 데이터 위변조, 중간자 공격(man-in-the-middle attack)에 취약하다.
HTTPS (HTTP Secure)
- SSL/TLS 프로토콜 사용
- SSL/TLS 암호화 기술을 활용하여 클라이언트와 서버 간에 전송되는 데이터를 암호화한다.
- 종단 간 암호화를 통해 데이터의 기밀성을 보장한다.
- 서버 인증
- 서버는 공인된 인증서를 사용하여 자신의 신원을 증명한다.
- 클라이언트는 인증서를 검증하여 신뢰할 수 있는 서버와 통신하고 있음을 확인한다.
- 보안 통신 채널 구축
- 암호화된 통신 채널을 설정함으로써 데이터 도청, 위변조, 중간자 공격을 효과적으로 방지한다.
'CS > 네트워크 - Top-down Approach + @' 카테고리의 다른 글
백엔드 개발자가 알아야 할 기초 보안 - 인증, 인가, OAuth, OpenID Connect (0) | 2025.03.09 |
---|---|
백엔드 개발자를 위한 HTTP 기본 지식 (0) | 2025.03.08 |
HTTP와 네트워크 (0) | 2025.01.15 |
[네트워크] 소켓 통신의 기본 (0) | 2024.11.13 |
쿠키, XSS, CSRF, SOP, CORS (0) | 2024.09.27 |