Protocol Layers and Their Service Models: 두 판 사이의 차이

youngwiki
5번째 줄: 5번째 줄:


==Protocol layers==
==Protocol layers==
 
인터넷과 같은 복잡한 네트워크 시스템을 체계적으로 설계하고 관리하기 위해서 네트워크 프로토콜은 여러 개의 Layer로 나뉘어 있습니다. 이러한 계층 구조는 네트워크의 동작을 논리적으로 구분하고, 각 계층이 특정한 기능을 수행하도록 한다. 네트워크 프로토콜 계층화의 핵심 개념은 다음과 같다.
# 각 계층은 특정 기능을 담당한다.
# 각 계층은 독립적으로 설계된다.
#* 하나의 계층이 변경되더라도, 다른 계층에는 영향을 최소화할 수 있도록 설계된다.
#* 예를 들어, 인터넷의 physical layer(광케이블, Wi-Fi 등)이 바뀌어도, 상위 계층인 application layer(웹 브라우저, 이메일 등)는 바뀔 필요가 없다.
# 모듈화(Modularity)와 유연성을 제공한다.
#* 네트워크 계층화는 특정 기능을 개별적으로 설계하고, 필요하면 변경할 수 있도록 하는 장점을 제공한다.
#* 예를 들어, TCP(신뢰성 있는 연결)와 UDP(빠른 데이터 전송)는 같은 전송 계층에 있지만, 다른 방식으로 작동하며 다양한 애플리케이션에서 선택적으로 사용된다.


===항공 시스템의 비유===
===항공 시스템의 비유===

2025년 3월 15일 (토) 13:05 판

상위 문서: 컴퓨터 네트워크

개요

인터넷은 극도로 복잡한 시스템이고, 이를 구현하기 위해서는 고려해야할 component들이 너무 많다. 이러한 복잡성에도 우리는 layer라는 계층적인 구조를 통해서 network structure를 조직할 수 있다.

Protocol layers

인터넷과 같은 복잡한 네트워크 시스템을 체계적으로 설계하고 관리하기 위해서 네트워크 프로토콜은 여러 개의 Layer로 나뉘어 있습니다. 이러한 계층 구조는 네트워크의 동작을 논리적으로 구분하고, 각 계층이 특정한 기능을 수행하도록 한다. 네트워크 프로토콜 계층화의 핵심 개념은 다음과 같다.

  1. 각 계층은 특정 기능을 담당한다.
  2. 각 계층은 독립적으로 설계된다.
    • 하나의 계층이 변경되더라도, 다른 계층에는 영향을 최소화할 수 있도록 설계된다.
    • 예를 들어, 인터넷의 physical layer(광케이블, Wi-Fi 등)이 바뀌어도, 상위 계층인 application layer(웹 브라우저, 이메일 등)는 바뀔 필요가 없다.
  3. 모듈화(Modularity)와 유연성을 제공한다.
    • 네트워크 계층화는 특정 기능을 개별적으로 설계하고, 필요하면 변경할 수 있도록 하는 장점을 제공한다.
    • 예를 들어, TCP(신뢰성 있는 연결)와 UDP(빠른 데이터 전송)는 같은 전송 계층에 있지만, 다른 방식으로 작동하며 다양한 애플리케이션에서 선택적으로 사용된다.

항공 시스템의 비유

항공 시스템은 인터넷 만큼은 아닐지라도 상당히 복잡하다. 항공 시스템은 티켓 발권, 수하물 검사, 수속 절차, 비행기 탑승, 비행기 조종, 항공 교통 관제, 그리고 전 세계적인 항공기 라우팅 시스템을 포함하는 복잡한 시스템이다. 이를 운영하기 위해서는 열거되어있는 모든 구성 요소들을 일련의 과정으로 보아야 한다. 즉, 우리가 비행기를 이용하기 위해서는 티켓을 구매하고, 수하물을 맡기고, 탑승구로 가서 결국 비행기에 탑승한다. 비행기가 이륙하여 목적지로 라우팅된다. 목적지에 도착하면 거꾸로 비행기가 착륙하고 탑승구에서 내리고 수하물을 찾는다.

이것은 항공 시스템이 어느 정도 계층적인 layer 구조를 가지고 있다는 것을 보여준다. 각 계층은 해당 계층 내에서의 특정 작업을 수행하며, 바로 다음 계층이 작업을 이어받아 수행할 수 있도록 한다. 이때 각 계층은 이전 계층에서 수행된 작업에 기반하여 해당 계층의 작업을 수행하지만, 다른 계층에서 어떤 작업이 이루어는 지에 대해서는 관심도 없고, 영향을 줄 수도 없다. 예를 들어서 탑승을 키 순서로 하던 선착순으로 하던 탑승 계층이 하는 기능은 동일하기 때문에 다른 계층은 영향을 받지 않는다. 이러한 layer 구조는 복잡한 시스템을 몇 개의 계층으로 나누어 관리함으로서 각각의 계층에 대한 업데이트와 유지 보수를 더욱 간단하게 한다. 이는 각각의 계층이 서로 영향을 주고 받지 않으므로, 해당 계층에 대해서만 업데이트와 유지 보수를 하면 되기 때문이다. 물론 이로 인한 단점도 존재한다. 이 또한 계층이 서로 영향을 주고 받지 않기 때문이며, 계층 간의 협력이 불가능하여 같은 일을 중복으로 처리하거나, 특정 계층의 기능이 다른 계층에만 존재하는 정보를 필요로 할 수도 있다는 점, 그리고 어떠한 문제가 생겼을 때 이를 더욱 비효율 적으로 해결할 수 있다는 점[1]이 있다.

각주

  1. 1번 layer에서 문제가 생겼을 때 2번 layer에서 더욱 간단하게 고칠 수 있음에도 1번 layer에서 고쳐야만 하는 경우 등