[네트워크/CS]프로토콜 계층화란?
0. 시작하기에 앞서 데이터그램은 어떤 레이어의 PDU인가?
데이터그램을 전송 계층의 PDU라고 설명한 블로그를 많이 봤다. 전송 계층의 TCP, UDP 프로토콜의 차이가 패킷 교환 방식, 데이터그램 교환방식이기 때문이다.
Computer Networking: A Top-down Approach 에서는 용어의 혼란을 줄이고자 TCP, UDP 패킷을 모두 세그먼트로 지칭하고 네트워크 계층의 패킷을 데이터그램이라고 표현한다. (p175)
구글에서 ‘datagram is’ 만 검색해도 같은 주제에 대한 질문이 가장 상위에 노출된다.
데이터그램은 두 계층에서 모두 사용되며 네트워크 계층의 PDU는 IP 데이터그램이며, 전송 계층의 UDP 프로토콜의 PDU는 UDP 데이터그램이라고 한다.
1. Protocol, 프로토콜
- 사람의 프로토콜에서는 상대방과 의사소통하기 위해 먼저 인사를 한다. “안녕”이라고 인사하면 그에 대한 일반적인 응답 역시 “안녕”이다. 만약 부정적인 응답(”한국말 못해요”, 귀찮게 하지마”)이 돌아온다면 더 이상 의사소통이 진행되지 않는다.
- 사람 프로토콜에서 우리가 보내는 특정한 메시지가 있고, 수신된 응답 메시지 혹은 다른 상황에 대응해서 취하는 특정 행동이 있다.
- 네트워크 프로토콜은 사람 간의 프로토콜과 유사하다. 프로토콜이란 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서부터 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.
2. Protocol layer, 프로토콜 계층화
- 네트워크 설계자는 프로토콜을 계층으로 조직한다. 프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 통합으로 구현할 수 있다.
- HTTP, SMTP와 같은 애플리케이션 계층(application layer) 프로토콜과 트랜스포트 계층(transport layer)은 대부분 종단 시스템(인터넷에 연결된 컴퓨터, 스마트폰과 같은 호스트)의 소프트웨어로 구현된다.
- 물리 계층(physical layer)과 데이터 링크 계층(data link layer)은 특정 링크상에 통신을 다루는 책임이 있으므로 링크와 관련된 네트워크 인터페이스 카드로 구현된다(ex. 이더넷, WiFi 인터페이스 카드)
- 네트워크 계층(network layer)은 하드웨어와 소프트웨어로 혼합 구현된다.
3. Protocol Stack, 프로토콜 스택
다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택이라고 한다. 인터넷 프로토콜 스택은 5개 계층으로 구성된다. 애플리케이션 - 트랜스포트 - 네트워크 - 링크 - 물리 순서로 Top-down 방식으로 구성되어 있다. 프로토콜 스택 중에서 가장 많이 쓰이는 계층은 TCP/IP 모델이다.
마찬가지로 TCP/IP 계층의 물리 계층과 데이터 링크 계층을 합쳐 4계층으로 설명하는 글도 많다. Computer Networking, A top-down approach, 7th Ed.을 참조하여 쓴 글이므로 나는 5계층으로 공부했다.
- 물리 계층
- 링크 계층의 기능이 전체 프레임(링크 계층 패킷)을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이라면, 물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것이다.
- 물리 계층의 프로토콜들은 링크에 의존하고 더 나아가 링크의 실제 전송 매체(광케이블, 꼬임쌍선)에 의존한다.
- 예를 들어 이더넷은 여러가지 물리 계층 프로토콜을 갖고 있다.
- 통신 단위(PDU) - bit
- 링크 계층
- 인터넷의 네트워크 계층은 출발지와 목적지 간 일련의 패킷 스위치(라우터)를 통해 데이터그램을 라우트한다. 경로상의 한 노드에서 다른 노드로 패킷을 이동하기 위해, 네트워크 계층은 링크 게층 서비스에 의존한다.
- 이더넷, 와이파이, 케이블 접속 네트워크의 DOCSIS 프로토콜이 있다.
- 데이터그램이 출발지에서 목적지로 가는 동안 여러 링크를 거치기 때문에 경로상의 서로 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있다. (하나의 링크에서는 이더넷에 의해 다뤄지고 다음 링크에서는 PPP에 의해 다뤄질 수 있다.)
- 통신 단위(PDU) - 프레임
- 네트워크(인터넷) 계층
- 호스트에서 다른 호스트로 데이터그램(datagram)을 라우팅한다. 메일 서비스를 이용하기 위해 목적지의 주소가 적힌 편지를 전달하는 것처럼, 출발지 호스트에서 트랜스포트 계층 프로토콜(TCP/UDP)은 트랜스포트 계층 세그먼트(트랜스포트 계층 패킷)와 목적지 주소를 네트워크 계층으로 전달한다.
- 그 다음에 네트워크 계층은 목적지 호스트의 트랜스포트 계층으로 세그먼트를 운반하는 서비스를 제공한다.
- IP 데이터그램의 필드를 정의하며 종단 시스템과 라우터가 이 필드에 어떻게 동작하는 지를 정의하는 IP 프로토콜을 갖고 있다.
- 통신 단위(PUD) - 패킷 / 데이터그램
- 트랜스포트(전송) 계층
- 인터넷의 트랜스포트 계층은 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다.
- TCP와 UDP 두 가지 종류가 있다.
- TCP는 애플리케이션에게 연결지향형 서비스를 제공한다. 해당 서비스에서는 목적지까지 애플리케이션 계층의 메시지 전달 보장과 흐름 제어를 제공한다. 긴 메시지를 짧은 메시지로 나누고 혼잡제어 기능을 제공한다.
- UDP는 비연결형 서비스를 제공한다. 신뢰성, 흐름제어, 혼잡제어를 제공하지 않는 아주 간단한 서비스이다.
- 통신 단위(PDU) - 세그먼트
- 애플리케이션 계층
- 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다. 인터넷의 애플리케이션 계층은 HTTP, SMTP, FTP 같은 프로토콜을 포함한다.
- 애플리케이션 계층 프로토콜은 여러 종단 시스템에 분산되어 있어서, 한 종단 시스템에 있는 애플리케이션이 다른 종단 시스템에 있는 애플리케이션과 정보 패킷(메시지라고 부름)을 교환하는 데 이 프로토콜을 사용한다.
- 통신 단위(PDU) - 메시지
4. OSI 7 계층
TCP/IP 모델은 유일한 프로토콜 스택이 아니다. 1970년대에 제안된 OSI 7 계층도 있다.
- 물리 계층
- 전기적, 기계적 기능적 특성을 이용해 통신 케이블로 데이터를 전송한다.
- 물리 계층에서는 데이터를 전달할 뿐, 어떤 데이터인지, 어떤 오류가 있는지는 신경 쓰지 않는다
- 장비 - 통신 케이블, 리피터, 허브
- 데이터 링크 계층
- 물리 게층에서 받은 데이터를 신뢰할 수 있는 링크로 변환하여 전송한다.
- 데이터가 오류나 손실 없이 전송되는 것을 보장하기 위해 흐름 제어, 오류 제어, 순서 제어 등의 기능을 수행하고 프레임 단위로 전송한다.
- 장비 - 스위치(L2), 브릿지, 랜카드
- 네트워크 계층
- 단말기 간의 데이터 전송을 위해 최적의 경로를 찾아주는 역할을 한다. 즉, 종단 노드간의 라우팅을 담당한다.
- 최종 목적지 노드까지 가기 위해 노드에 대한 논리적 주소인 IP 주소를 사용하여 네트워크 설정, 유지, 해제 등의 역할을 한다.
- 장비 - 스위치(L3), 라우터
- 트랜스포트(전송) 계층
- 세션을 맺고 있는 사용자 간에 신뢰성 있는 데이터 통신을 보장한다. (process to process)
- 데이터의 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어 등의 기능을 담당한다.
- 장비 - 게이트웨이
- 세션 계층
- 응용 프로그램 간의 논리적 연결인 세션을 관리하여 연결 접속 및 동기 제어의 역할을 한다.
- 세션을 생성, 유지, 종료, 복구하여 대화 제어를 하며 데이터를 전송한다.
- 프레젠테이션(표현) 계층
- 데이터 형식 설정과 부호 교환(인코딩, 디코딩), 암호화 및 복호화 기능을 한다.
- 애플리케이션(응용 계층)
- 사용자와 네트워크 간의 연결을 담당하며 데이터를 생성하는 역할을 한다.
- 장비 - 스위치(L7)
출처
Computer Networking, A top-down approach, 7th Ed.
댓글남기기