TCP/IP Model

Hee Suh·2024년 4월 27일
0

[CS] Network

목록 보기
2/8

프로토콜 계층화

네트워크 프로토콜의 설계 구조를 제공하기 위해, 네트워크 설계자는 프로토콜(프로토콜을 구현하는 네트워크 하드웨어와 소프트웨어)을 계층(layer)으로 조직한다.

프로토콜 계층화는 시스템 구성요소에 대해 논의하기 위한 구조화된 방법을 제공한다. 모듈화는 시스템 구성요소의 갱신을 더 쉽게 해준다.

다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택(protocol stack)이라고 한다. TCP/IP 프로토콜 스택은 4계층(Application, Transport, Network, Link)으로 구성된다.

TCP/IP Model

tcp/ip model
  • application-layer 프로토콜은 transport layer의 서비스를 사용하여 일부 애플리케이션 서비스를 구현하기 위해 메시지(message)를 교환한다.

  • transport-layer 프로토콜은 transpoprt-layer 세그먼트(segment)를 생성하기 위해 transport-layer 헤더 HtH_t를 사용하여 application-layer 메시지 MM캡슐화한다.

  • network-layer 프로토콜은 transport-layer 세그먼트 [HtM][H_t | M]와 network-layer 헤더 HnH_n을 사용하여 network-layer 데이터그램(또는 패킷)을 생성한다.

  • link-layer 프로토콜은 link-layer 프레임을 생성하기 위해 link-layer 헤더 HlH_l을 사용하여 네트워크 데이터그램 [Hn[HtM]][H_n | [H_t |M]]캡슐화한다.

Application Layer

Protocols HTTP, FTP, SMTP, DNS, TLS, CDN

애플리케이션 계층은 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다. 애플리케이션 계층 프로토콜은 여러 종단 시스템에 분산되어 있어서 한 종단 시스템에 있는 애플리케이션이 다른 종단 시스템에 있는 애플리케이션과 정보 패킷을 교환하는 데 이 프로토콜을 사용한다. 애플리케이션 계층에서의 이 정보 패킷을 메시지(message)라고 부른다.

두 가지 애플리케이션 아키텍처

Application Architectures

Client-Server Architecture

HTTP, IMAP, FTP

항상 동작하고 있는 host를 server라 부르고, 서버와의 서비스는 client라는 다른 host들로부터 서비스 요청을 받는다.

Peer-to-Peer, P2P Architecture

P2P file sharing [BitTorrent]

항상 켜져 있는 infrastructure server에 최초로 의존한다(혹은 전혀 의존하지 않는다). 대신 애플리케이션은 peer라는 간헐적으로 연결된 host 쌍이 서로 직접 통신하게 한다.

Transport Layer

Protocols TCP, UDP

인터넷의 트랜스포트 계층은 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다. 인터넷에는 TCP와 UDP라는 두 가지 트랜스포트 프로토콜이 있으며 이들은 애플리케이션 계층 메시지를 전달한다. TCP는 애플리케이션에게 연결지향형 서비스를 제공한다. 또한 TCP는 긴 메시지를 짧은 메시지로 나누고 혼합 제어 기능을 제공하여 네트워크가 혼잡할 때 출발지의 전송률을 줄이게 한다. UDP 프로토콜은 애플리케이션에 비연결형 서비스를 제공한다. 이 서비스는 신뢰성, 흐름 제어, 혼잡 제어를 제공하지 않는 아주 간단한 서비스다. 트랜스포트 계층 패킷은 세그먼트(segment)라고 한다.

Cf. 인터넷 문서에서(e.g. RFC) TCP에 대한 PDU(Protocol Data Unit)는 segment, UDP에 대한 PDU는 datagram이라고 표현하기도 하지만, network layer의 datagram과 혼란을 줄이고자 TCP와 UDP 패킷을 모두 segment로 지칭한다.

Network Layer

Protocols IP (IPv4, IPv6)

인터넷의 네트워크 계층은 한 호스트에서 다른 호스트로 IP 데이터그램(datagram)을 라우팅하는 책임을 진다. 출발지(source) 호스트에서 인터넷 트랜스포트 계층 프로토콜은 트랜스포트 계층 세그먼트와 목적지(destination) 주소를 네트워크 계층으로 전달한다. 그런 다음 네트워크 계층은 목적지 호스트의 트랜스포트 계층으로 세그먼트를 운반하는 서비스를 제공한다.

인터넷 네트워크 계층은 두 가지 주요 요소를 갖는다. 이 계층은 IP 데이터그램의 필드를 정의하며 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지를 정의하는 프로토콜인, IP 프로토콜을 갖고 있다. 또한 인터넷 네트워크 계층은 라우팅 프로토콜을 포함한다. 비록 네트워크 계층이 IP 프로토콜과 여러 라우팅 프로토콜을 모두 갖고 있지만, IP가 인터넷을 함께 묶는 역할을 한다는 사실을 반영하여 흔히 IP 계층으로 불린다.

Link Layer

Protocols Ethernet, Wireless LAN

인터넷의 네트워크 계층은 출발지와 목적지 간 일련의 패킷 스위치(라우터)를 통해 데이터그램을 라우트한다. 경로상의 한 노드(호스트 혹은 패킷 스위치)에서 다른 노드로 패킷을 이동하기 위해 네트워크 계층은 링크 계층 서비스에 의존해야 한다. 특히 각 노드에서 네트워크 계층은 데이터그램을 아래 링크 계층으로 보내고 링크 계층은 그 데이터그램을 경로상의 다음 노드에 전달한다. 다음 노드에서 링크 계층은 그 데이터그램을 상위 네트워크 계층으로 보낸다.

데이터그램이 출발지에서 목적지로 가는데 여러 링크를 거치므로 데이터그램은 경로상의 각기 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있다. 네트워크 계층은 각기 다른 링크 계층 프로토콜로부터 다른 서비스를 제공받을 것이다. 링크 계층 패킷은 프레임(frame)이라고 한다.

References

profile
원리를 파헤치는 것을 좋아하는 프론트엔드 개발자입니다 🏃🏻‍♀️

0개의 댓글