Protocol Layers and Their Service Models: 두 판 사이의 차이
| 47번째 줄: | 47번째 줄: | ||
* session: 통신 세션을 설정, 유지하고 종료하는 역할을 하며, 이를 통해 연결된 장치간의 데이터 흐름을 관리한다. | * session: 통신 세션을 설정, 유지하고 종료하는 역할을 하며, 이를 통해 연결된 장치간의 데이터 흐름을 관리한다. | ||
이러한 OSI model은 현재는 거의 사용되지 않는데, 이는 reperesentation layer와 session layer가 application layer에 거의 흡수되었기 때문이다. | 이러한 OSI model은 현재는 거의 사용되지 않는데, 이는 reperesentation layer와 session layer가 application layer에 거의 흡수되었기 때문이다. | ||
===Encapsulation=== | |||
Encapsulation은 네트워크에서 데이터를 전송할 때 각 계층에서 상위 계층의 데이터에 header를 추가하며 하위 계층으로 전달하는 과정을 의미한다. 즉, 각 계층은 상위 계층의 데이터를 Payload로 간주하고, 자신만의 Header를 추가하여 새로운 데이터 단위를 형성한다. 최종적으로 물리 계층에서는 데이터가 Bit로 변환되어 전송된다. 그리고 수신 측에서는 De-encapsulation을 통해서 데이터를 복원하여 최종 사용자에게 전달한다. | |||
이때 각각의 계층에서 사용하는 데이터 단위는 다음 표와 같다. | |||
===항공 시스템의 비유=== | ===항공 시스템의 비유=== | ||
2025년 3월 15일 (토) 13:44 판
상위 문서: 컴퓨터 네트워크
개요
인터넷은 극도로 복잡한 시스템이고, 이를 구현하기 위해서는 고려해야할 component들이 너무 많다. 이러한 복잡성에도 우리는 layer라는 계층적인 구조를 통해서 network structure를 조직할 수 있다.
Protocol layers
인터넷과 같은 복잡한 네트워크 시스템을 체계적으로 설계하고 관리하기 위해서 네트워크 프로토콜은 여러 개의 Layer로 나뉘어 있습니다. 이러한 계층 구조는 네트워크의 동작을 논리적으로 구분하고, 각 계층이 특정한 기능을 수행하도록 한다. 네트워크 프로토콜 계층화의 핵심 개념은 다음과 같다.
- 각 계층은 특정 기능을 담당한다.
- 각 계층은 독립적으로 설계된다.
- 하나의 계층이 변경되더라도, 다른 계층에는 영향을 최소화할 수 있도록 설계된다.
- 예를 들어, 인터넷의 physical layer(광케이블, Wi-Fi 등)이 바뀌어도, 상위 계층인 application layer(웹 브라우저, 이메일 등)는 바뀔 필요가 없다.
- 모듈화(Modularity)와 유연성을 제공한다.
- 네트워크 계층화는 특정 기능을 개별적으로 설계하고, 필요하면 변경할 수 있도록 하는 장점을 제공한다.
- 예를 들어, TCP(신뢰성 있는 연결)와 UDP(빠른 데이터 전송)는 같은 전송 계층에 있지만, 다른 방식으로 작동하며 다양한 애플리케이션에서 선택적으로 사용된다.
이때 인터넷을 구성하는 protocol layer의 집합을 Internet protocol stack이라고 하며 이는 다음과 같이 이루어진다.
| 계층 | 기능 | 예시 |
|---|---|---|
| Application Layer | network를 사용하는 application을 실행한다. | HTTP, SMTP, FTP... |
| Transport Layer | 프로세스와 프로세스 간의 데이터 transfer를 담당한다. | TCP, UDP... |
| Network Layer | Datagram을 source에서 destination까지 routing한다. | IP, routing protocols... |
| Link Layer | 인접한 노드 간의 data transfer를 담당한다. | Ethernet[1], 802.111(WiFi), PPP |
| Physical Layer | data를 물리적으로 전송한다. | 광섬유, 동축 케이블, 무선 신호 등... |
위의 Internet protocol stack을 확장한 ISO/OSI reference model이 있다. 이는 ISO(Internet Standard Organization)에서 제정한 모델로, OSI는 Open System Interconnection의 약자이다. 해당 모델에는 두 가지 계층이 추가된다.
- Presentation Layer: data의 의미를 application들이 해석할 수 있도록 한다.
- 암호화, 압축 등...
- session: 통신 세션을 설정, 유지하고 종료하는 역할을 하며, 이를 통해 연결된 장치간의 데이터 흐름을 관리한다.
이러한 OSI model은 현재는 거의 사용되지 않는데, 이는 reperesentation layer와 session layer가 application layer에 거의 흡수되었기 때문이다.
Encapsulation
Encapsulation은 네트워크에서 데이터를 전송할 때 각 계층에서 상위 계층의 데이터에 header를 추가하며 하위 계층으로 전달하는 과정을 의미한다. 즉, 각 계층은 상위 계층의 데이터를 Payload로 간주하고, 자신만의 Header를 추가하여 새로운 데이터 단위를 형성한다. 최종적으로 물리 계층에서는 데이터가 Bit로 변환되어 전송된다. 그리고 수신 측에서는 De-encapsulation을 통해서 데이터를 복원하여 최종 사용자에게 전달한다.
이때 각각의 계층에서 사용하는 데이터 단위는 다음 표와 같다.
항공 시스템의 비유
항공 시스템은 인터넷 만큼은 아닐지라도 상당히 복잡하다. 항공 시스템은 티켓 발권, 수하물 검사, 수속 절차, 비행기 탑승, 비행기 조종, 항공 교통 관제, 그리고 전 세계적인 항공기 라우팅 시스템을 포함하는 복잡한 시스템이다. 이를 운영하기 위해서는 열거되어있는 모든 구성 요소들을 일련의 과정으로 보아야 한다. 즉, 우리가 비행기를 이용하기 위해서는 티켓을 구매하고, 수하물을 맡기고, 탑승구로 가서 결국 비행기에 탑승한다. 비행기가 이륙하여 목적지로 라우팅된다. 목적지에 도착하면 거꾸로 비행기가 착륙하고 탑승구에서 내리고 수하물을 찾는다.
이것은 항공 시스템이 어느 정도 계층적인 layer 구조를 가지고 있다는 것을 보여준다. 각 계층은 해당 계층 내에서의 특정 작업을 수행하며, 바로 다음 계층이 작업을 이어받아 수행할 수 있도록 한다. 이때 각 계층은 이전 계층에서 수행된 작업에 기반하여 해당 계층의 작업을 수행하지만, 다른 계층에서 어떤 작업이 이루어는 지에 대해서는 관심도 없고, 영향을 줄 수도 없다. 예를 들어서 탑승을 키 순서로 하던 선착순으로 하던 탑승 계층이 하는 기능은 동일하기 때문에 다른 계층은 영향을 받지 않는다. 이러한 layer 구조는 복잡한 시스템을 몇 개의 계층으로 나누어 관리함으로서 각각의 계층에 대한 업데이트와 유지 보수를 더욱 간단하게 한다. 이는 각각의 계층이 서로 영향을 주고 받지 않으므로, 해당 계층에 대해서만 업데이트와 유지 보수를 하면 되기 때문이다. 물론 이로 인한 단점도 존재한다. 이 또한 계층이 서로 영향을 주고 받지 않기 때문이며, 계층 간의 협력이 불가능하여 같은 일을 중복으로 처리하거나, 특정 계층의 기능이 다른 계층에만 존재하는 정보를 필요로 할 수도 있다는 점, 그리고 어떠한 문제가 생겼을 때 이를 더욱 비효율 적으로 해결할 수 있다는 점[2]이 있다.