프로토콜 계층 구조 (Protocol Layers)
계층화(모듈화)의 목적
- 복잡한 네트워크를 명시적 구조로 표현하여 복잡한 시스템의 구성 요소와 그 관계를 식별할 수 있게 해줌
- 각 계층은 하위 계층의 서비스를 이용하고, 상위 계층에 서비스 제공
Internet Protocol Stack
- Application: FTP, SMTP, HTTP
- Transport: TCP, UDP
- Network: IP, Routing protocol
- Link: Ethernet, WiFi, PPP 등
- Physical: bit 전송

ISO/OSI 7계층
- Presentation, Session 계층 추가
- Presentation: 어플리케이션이 데이터의 의미를 해석할 수 있도록 허용 (암호화, 압축 등)
- Session: 동기화, 데이터 교환/복구
- missing시에 어플리케이션 레이어에서
구현 필요


프로토콜 스택
- 프로토콜 스택의 각 계층은 하위 계층에서 제공하는 도구를 사용
- ex) HTTP는 TCP/IP를 사용, TCP/IP는 네트워크 계층을 사용
- Python과 같은 프로그래밍 언어는 다양한 계층에서의 연산을 지원하지만, 고수준 네트워크 프로토콜 혹은 외부 라이브러리는 HTTP나 TCP에서 일어나는 일을 확인하기 어려움
- 가능한 표준 라이브러리나 “인증된“ 3rd party 라이브러리를 사용
Encapsulation (캡슐화)

- 각 계층에서 헤더를 추가하며 데이터가 전송됨
- 예: Application 메시지 → Segment → Datagram → Frame
Geocoding 예제 (API 사용)