Session Layer (세션 계층)
● OSI 7계층 모델의 5번째 계층, 주로 응용 프로그램 간의 통신 세션을 설정, 관리, 종료하는 역할을 담당
● 데이터 전송 과정에서 연결을 유지하고 동기화하며, 오류 발생 시 복구를 지원
● 주요 기능 :
○ 세션 관리 : 세션 설정, 유지 및 종료를 담당
○ 동기화 : 데이터 전송 중 체크포인트를 설정하여 오류 발생 시 복구를 지원
○ 대화 제어 : 반이중(Half-Duplex), 전이중(Full-Duplex) 등의 통신 모드 관리
Half Duplex?
- Sender와 Receiver 사이의 통신은 한번에 하나식이지만 '쌍방향'으로 이루어짐
- Sender와 Recevier는 정해진 시간 안에 정보를 전송하고 수신
→ 대표적으로 무전기 같은 느낌
Full-Duplex?
- Sender와 Recevier 사이의 통신은 '동시에' 일어남
- 동시에 정보를 전송하고 수신
→ 스마트폰을 생각하면 된다.
○ 인증 및 권한 부여 : 사용자 인증과 권한 확인 과정을 처리
● 프로토콜 :
○ SMB(Server Message Block) - 예) 프린터 연결에 사용
○ PPTP(Point-to-Point Tunneling Protocol) - 예) 가상 사설망(VPN)
○ SIP(Session Initiation Protocol) - 예) 인터넷 전화(VoIP) = Zoom 등
Presentation Layer (표현 계층)
● OSI 7계층 모델의 6번째 계층, 데이터의 형식과 표현 방식을 담당
● 데이터를 네트워크에서 이해할 수 있는 형식으로 변환 or 사용자 친화적인 형식으로 변환
● 데이터를 암호화하거나 압축하는 기능 제공
● 주요 기능 :
○ 데이터 변환 : 서로 다른 시스템 간 데이터 형식을 변환
○ 암호화/복호화 (encode/decode) : 데이터를 안전하게 전송하기 위해 암호화, 수신 시 복호화
→ JWT, SHA256
○ 압축/압축 해제 : 데이터 크기를 줄여 전송 효율성 UP!
→ 알집, 반디집 등
● 프로토콜 :
○ SSL(Secure Sockets Layer)
- SSL handshake : 클라이언트와 서버가 연결을 설정할 때, SSL handshake 과정을 통해
암호화 알고리즘과 세션 키를 협상
- 인증 : 서버는 디지털 인증서를 제공하여 자신의 신원을 증명
- 암호화된 데이터 전송 : 세션 키를 사용하여 클라이언트와 서버 간 데이터를 암호화하여 전송
- 이 SSL 방식이 HTTPS의 'S' 부분의 보안을 담당하는 프로토콜이다
- 사용하면 뭐가 좋은가?
→ 데이터 암호화로 전송 중 데이터 보호하여 외부에서 읽을 수 없음
→ 클라이언트가 신뢰할 수 있는 서버와 통신하고 있음을 확인
→ 데이터가 전송 중 변경되지 않았음을 보장
○ TSL(Transport Layer Security)
- 클라이언트와 서버가 서로 지원하는 TLS 버전 및 암호화 알고리즘 협상
- 디지털 인증서를 통해 서버의 신원 확인
- 세션 키 생성하여 암호화된 통신 채널을 설정
- 강력한 암호화 제공 = AES, SHA-256 등 최신 암호화 알고리즘 지원
- 디지털 인증서를 통해 서버와 클라이언트를 인증, 데이터 위/변조로부터 보호
- 세션 키 유출되도 과거의 통신 내용 보호
- SSL의 후속 프로토콜이기 때문에 HTTP'S' 에서 사용
○ JPEG/GIF/PNG : 이미지 확장자
Application Layer (응용 계층)
● OSI 7계층 모델의 7번째 계층, 사용자와 네트워크 간의 인터페이스 제공
● 사용자가 네트워크 서비스를 직접 사용할 수 있도록 지원
● 이메일 송수신, 파일 전송, 웹 브라우징 등 다양한 서비스 제공
● 주요 기능 :
○ 서비스 제공 : 응용 프로그램(Application)에 네트워크 서비스 제공
○ 프로토콜 선택 : 통신에 적합한 프로토콜을 결정하고 사용
○ 데이터 전달 : 데이터를 사용자 친화적인 형식으로 전달
● 프로토콜 :
○ HTTP/HTTPS (Hyper Text Transfer Protocol / Hyper Text Transfer Protocol Secure)
○ HTTP는 웹 브라우저와 웹 서버 간에 데이터를 주고받기 위한 응용 계층 프로토콜.
→ 웹(WWW) 기반
- 클라이언트(웹 브라우저)가 요청(Request) 보내면 서버가 응답(Response)을 반환
- 주로 HTML, 이미지, 동영상 등 웹 콘텐츠 전송
- 상태 비저장 프로토콜(Stateless) : 각 요청 독립적으로 처리, 이전 요청 정보 기억하지 않음
- 기본적으로 TCP 포트 80 사용
○ HTTPS는 HTTP에 보안 기능 추가한 프로토콜, 데이터 암호화하여 안전한 통신을 제공
- SSL/TLS 암호화 프로토콜 사용하여 데이터를 암호화
- 클라이언트와 서버 간의 인증서를 통해 신뢰성 확인, 공개키, 개인키 사용해 안전한 연결 설정
- 데이터 암호화 및 무결성 보장
- 포트 번호 443 사용
- 대표적인 사용처 : 온라인 쇼핑몰, 금융 서비스 등
○ DNS(Domain Name System)
- 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 시스템
→ 예) www.naver.com, www.google.com
- 사용자가 브라우저에 도메인 이름 입력하면 DNS 서버가 해당 도메인의 IP 주소를 찾아 반환
- 반환된 IP 주소를 통해 사용자는 해당 서버에 접속 가능
- 계층적 구조 : 루트 도메인(.), 최상위 도메인(TLD), 하위 도메인으로 구성
→ www . example . com
- 캐싱(Caching) : 자주 요청되는 DNS 정보 저장하여 성능 향상
- 분산 시스템 : 전 세계적으로 분산된 DNS 서버를 통해 안정성과 가용성 보장
○ FTP(File Transfer Protocol)
- 네트워크를 통해 파일을 전송하기 위한 표준 프로토콜
- 주로 클라이언트와 서버 간의 파일 업로드 및 다운로드에 사용
→ github에서 패키지를 install 할 때 등
- 평문 전송 : 기본 FTP는 데이터를 암호화하지 않아 보안에 취약
세 계층 간의 관계
● 이 세 계층은 상호 의존적이기 때문에 한 번에 정리해보았다.
- 응용 계층은 사용자가 요청한 데이터를 처리하고 네트워크로 전달하기 위해 표현 계층에 의존
- 표현 계층은 데이터를 적절히 변환 및 암호화하여 세션 계층으로 전달
- 세션 계층은 데이터 전송을 위한 논리적 연결을 설정하고 관리하여 안정적인 통신을 보장
→ 이 모든 것은 사용자와 네트워크 간의 원할한 상호작용과 데이터 전달을 위해!
'IT > Network' 카테고리의 다른 글
[Network] Load Balancing (0) | 2025.01.10 |
---|---|
[Network] 대칭키/비대칭키 암호화 (0) | 2025.01.09 |
[네트워크] OSI 7 계층 - 전송 계층 (1) | 2024.12.20 |
[네트워크] 서브넷 마스크 (0) | 2024.12.17 |
[네트워크] TCP/IP (2) | 2024.12.16 |