1.5 프로토콜 계층과 서비스 모델#
1.5.1 계층구조#
프로토콜 계층화#
- 네트워크 설계자는 프로토콜을 **layer(계층)**로 조직한다.
- 각 프로토콜은 한 계층에 속한다.
- 한 계층은 상위 계층에 **서비스(service)**를 제공한다.
- 이것을 계층의 **서비스 모델(service model)**이라고 한다.
- 각 계층은 그 계층 내부에서 어떤 동작을 수행하거나, 직접 하위 계층의 서비스를 사용한다.
- 프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 통합으로 나타낼 수 있다.
- 애플리케이션 계층(HTTP, SMTP)과 트랜스포트 계층 : end system의 소프트웨어로 구현
- 물리(physical) 계층과 데이터 링크 계층 : 네트워크 인터페이스 카드(이더넷, 와이파이 인터페이스 카드)
- 네트워크 계층 : 하드웨어와 소프트웨어로 혼합 구현
- n계층 프로토콜은 네트워크를 구성하는 종단 시스템, 패킷 스위치, 그 외의 요소 사이에 분산되있다. ⇒ 각 네트워크 구성요소에는 하나의 n계층 프로토콜이 있다.
- 프로토콜 스택 : 다양한 계층의 프로토콜을 모두 합한 것
- 이 프로토콜 스택에서 애플리케이션 계층부터 다루어 내려가는 것이 top-down approach.
- 5개 계층의 인터넷 프로토콜 스택
애플리케이션 계층#
- 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳
- HTTP(웹 문서 요청과 전송 제공), SMTP(전자메일 전송 제공), FTP(두 종단 시스템 간의 파일 전송 제공) 같은 프로토콜들을 포함
- 이 계층에 있는 DNS(Domain Name Server)가 우리에게 친근한 인터넷 주소를 32비트 네트워크 주소로 변환한다.
- 애플리케이션 계층 프로토콜 : 여러 end system에 분산.
- 한 end system에 있는 app이 다른 end system에 있는 app과 **메시지(정보 패킷)**를 교환하는데 사용
트랜스포트 계층#
- 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송
- 인터넷에는 TCP와 UDP 라는 트랜스포트 프로토콜이 있다.
- TCP : 연결지향형 서비스.
- UDP : 비연결형 서비스. 간단한 서비스.
- 세그먼트(segment) : 트랜스포트 계층 패킷
네트워크 계층#
- 한 호스트에서 다른 호스트로 **datagram(데이터그램)**을 라우팅한다.
- 인터넷 트랜스포트 계층 프로토콜이 보낸 트랜스포트 계층 세그먼트와 목적지 주소를 목적지 호스트의 트랜스포트 계층으로 전달
- IP 프로토콜
- IP 데이터그램의 필드를 정의
- 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지를 정의
- 네트워크 계층을 가진 모든 인터넷 요소는 IP 프로토콜을 수행해야만 한다.
- 인터넷 네트워크 계층은 출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 결정하는 라우팅 프로토콜을 포함한다(많이).
- IP 계층이라고도 불린다.
링크 계층#
- 인터넷의 네트워크 계층은 출발지와 목적지 간 일련의 패킷 스위치(인터넷에서는 라우터)를 통해 데이터그램을 라우트한다.
- 노드에서 노드로 패킷을 이동하기 위해 네트워크 계층은 링크 계층 서비스에 의존한다.
- 노드 간의 이동 과정
- 출발 노드의 네트워크 계층이 데이터그램을 아래 링크 계층으로 보냄
- 링크 계층은 데이터그램을 경로상의 다음 노드에 전달
- 다음 노드의 링크 계층은 데이터그램을 상위 네트워크 계층으로 보냄
- 링크 계층에서 제공하는 서비스는 그 링크에서 채용된 특정 링크 계층 프로토콜에 의해 결정
- 데이터그램은 경로상의 각기 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있다.
- 프레임(frame) : 링크 계층 패킷
물리 계층#
- 링크 계층의 기능은 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것
- 물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것
1.5.2 캡슐화(encapsulation)#
- 호스트 : 다섯 계층을 구현
- 링크 계층 스위치 : 하위 1~2 계층 구현(물리, 링크) ⇒ IP 주소를 인식 못하지만 이더넷 주소는 인식하는 이유다.
- 라우터 : 하위 1~3 계층 구현(물리, 링크, 네트워크)
- 각 계층에서 패킷은 헤더 필드와 **페이로드 필드(payload field)**로 구성된다.
| 계층 | 캡슐화 | 헤더 필드 | 페이로드 필드 | | |
|---|
| 애플리케이션 | 애플리케이션 계층 메시지 | | 애플리케이션 계층 메시지 | | |
| 트랜스포트 | 트랜스포트 계층 세그먼트 | 트랜스포트 계층 헤더 정보 | 애플리케이션 계층 메시지 | | |
| 네트워크 | 네트워크 계층 데이터그램 | 네트워크가 추가한 헤더 | 애플리케이션 계층 메시지 | 트랜스포트 계층 헤더 정보 | |
| 링크 | 링크 계층 프레임 | 링크가 추가한 헤더 | 애플리케이션 계층 메시지 | 트랜스포트 계층 헤더 정보 | 네트워크가 추가한 헤더 |