1.5 프로토콜 계층과 서비스 모델
계층 구조
계층 구조는 크고 복잡한 시스템의 잘 정의된 특정 부분을 논의 할 수 있게 해준다. 시스템이 계층 구조를 가질 때, 그 계층이 제공하는 서비스의 구현을 변경하는 것은 매우 쉽다. 한 계층이 상위 계층에 같은 서비스를 제공하고 하위 계층의 서비스를 이용하는 한, 어떤 한 계층의 구현이 변하더라도 시스템의 나머지 부분은 변하지 않는다.
프로토콜 계층화
네트워크 프로토콜의 설계 구조를 제공하기 위해, 네트워크 설계자는 프로토콜을 계층(layer)으로 조직한다.
한 계층이 상위 계층에 제공하는 서비스(service)에 관심을 갖고, 이것을 계층의 서비스 모델(service model)이라고 한다.
각 계층은 계층 내부에서 어떤 동작을 수행하거나, 직접 하위 계층의 서비스를 사용한다.
모듈화는 시스템 구성요소의 갱신을 더 쉽게 해준다.
계층화를 반대하는 사람들도 존재한다. 그 이유는 다음과 같다.
- 한 계층이 하위 계층과 기능적으로 중복된다.
- 많은 프로토콜 스택이 링크와 종단 시스템 두 곳 모두에서 오류 복구 기능을 제공한다.
- 어느 한 계층에서의 기능이 다른 계층에만 존재하는 정보를 필요로 할 수도 있다.
다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택(protocol stack)이라고 한다.
인터넷 프로토콜 스택은 위에서부터 아래로, 애플리케이션, 트랜스포트, 네트워크, 링크, 물리 계층으로 구성된다.
애플리케이션 계층
애플리케이션 계층은 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다. HTTP. STMP, FTP 등의 프로토콜이 존재한다.
애플리케이션에서 교환하는 정보 패킷을 메시지(message)라고 한다.
트랜스포트 계층
클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다. 인터넷에는 TCP, UDP 두 프로토콜이 존재한다.
TCP
- 연결 지향형 서비스
- 목적지로의 애플리케이션 메시지 전달 보장 및 흐름 제어
- 긴 메시지를 짧은 메시지로 나누고 혼잡 제어 기능을 제공한다.
UDP
- 비연결형 서비스 제공
- 신뢰성, 흐름제어, 혼잡 제어를 제공하지 않음
트랜스 포트 계층 패킷을 세그먼트(segement)라고 한다.
네트워크 계층
한 호스트에서 다른 호스트로 데이터그램(datagram)을 라우팅하는 책임을 진다.
트랜스 포트 계층의 프로토콜은 세그먼트와 목적지 주소를 네트워크 계층으로 전달한다. 네트워크 계층은 목적지 호스트의 트랜스포트 계층으로 세그먼트를 운반하는 서비스를 제공한다.
출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 결정하는 라우팅 프로토콜을 포함한다.
링크 계층
경로상의 한 노드에서 다른 노드로 패킷을 이동하기 위해 네트워크 계층은 링크 계층 서비스에 의존해야 한다.
링크 계층에서 제공하는 서비스는 그 링크에서 채용된 특정 링크 계층 프로토콜에 의해 결정된다.
링크 계층의 프로토콜은 이더넷, 와이파이 그리고 케이블 접속 네트워크의 DOCSIS 프로토콜 등이 있다.
데이터그램이 출발지에서 목적지로 가는데 여러 링크를 거치므로 데이터그램은 경로상의 각기 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있다.
링크 계층의 패킷을 프레임(frame)이라고 한다.
물리 계층
링크 계층의 기능이 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이라면 물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것이다.
물리 계층은 링크 계층에 의존하고, 링크 계층의 실제 전송 매체(ex, 꼬임쌍선, 단일 모드 광케이블)에 의존한다.
캡슐화
링크 계층 스위치는 1,2(물리, 링크) 계층을 구현한다. 라우터는 1,2,3(물리, 링크, 네트워크) 계층을 구현한다. 인터넷 라우터들은 IP 프로토콜(3계층)을 구현할 수 있지만 링크 계층 스위치는 그렇게 할 수 없다.
각 계층에서의 패킷은 헤더 필드와 페이로드 필드(payload field)라는 두가지 형태의 필드를 갖는다. 페이로드는 일반적으로 그 계층 상위로부터의 패킷이다.
'네트워크' 카테고리의 다른 글
DNS (1) | 2024.01.22 |
---|---|
웹과 HTTP (0) | 2024.01.15 |
네트워크 애플리케이션의 원리 (1) | 2024.01.10 |
컴퓨터와 네트워크 인터넷 (1) | 2024.01.05 |
HTTP Method PUT, PATCH (0) | 2020.05.25 |