-
[Network]프로토콜 계층화란?CS/Network 2022. 7. 14. 13:42
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와 같은 애플리케이션 계층과 트랜스포트 계층 프로토콜은 대부분 종단 시스템(인터넷에 연결된 컴퓨터, 스마트폰과 같은 호스트)의 소프트웨어로 구현된다.
- 물리 계층과 데이터 링크 계층은 특정 링크상에 통신을 다루는 책임이 있으므로 링크와 관련된 네트워크 인터페이스 카드로 구현된다(ex. 이더넷, WiFi 인터페이스 카드)
- 네트워크 계층은 하드웨어와 소프트웨어로 혼합 구현된다.
3. Protocol Stack, 프로토콜 스택
다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택이라고 한다. 인터넷 프로토콜 스택은 5개 계층으로 구성된다. 애플리케이션 - 트랜스포트 - 네트워크 - 링크 - 물리 순서로 Top-down 방식으로 구성되어 있다. 프로토콜 스택 중에서 가장 많이 쓰이는 계층은 TCP/IP 모델이다.
TCP/IP 계층의 물리 계층과 데이터 링크 계층을 합쳐 4계층으로 설명하는 글도 많다. Computer Networking, A top-down approach, 7th Ed.을 참조하여 쓴 글이므로 나는 5계층으로 공부했다.
💡 TCP/IP 계층은 4계층인가 5계층인가?
https://www.quora.com/Does-the-TCP-IP-model-have-4-or-5-layers-Sometimes-I-am-coming-across-5-layers-TCT-IP-model-on-the-interne- 물리 계층
- 링크 계층의 기능이 전체 프레임(링크 계층 패킷)을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이라면, 물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것이다.
- 물리 계층의 프로토콜들은 링크에 의존하고 더 나아가 링크의 실제 전송 매체(광케이블, 꼬임쌍선)에 의존한다.
- 예를 들어 이더넷은 여러가지 물리 계층 프로토콜을 갖고 있다.
- 통신 단위(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.
'CS > Network' 카테고리의 다른 글
[Network]다중화와 역다중화란 무엇인가? (0) 2022.07.26 [Network]애플리케이션 계층과 HTTP (0) 2022.07.26 [Network]패킷 교환과 회선 교환이란? (0) 2022.07.25 [Network]웹 브라우저의 주소창에 URL을 입력하면 일어나는 일 (0) 2022.07.24 [Network]DNS의 동작 구조 (0) 2022.07.24