인터넷은 매우 복잡하다. 하지만 이렇게 복잡한 인터넷 네트워크 구조도 결국 조직화 되었다.
우리가 이용하는 항공 시스템을 생각해보자.
비행기에 수하물을 보내서 이동시키는 과정은 다음과 같다.
네트워크에서 우리가 전송하려는 메시지를 수하물이라고 생각하면 될 것 같다.
수하물을 공항에서 검사 후 비행기에 태운다. == 호스트에서 데이터를 접속 네트워크에 보낸다.
비행기가 이륙한다. == 데이터가 통신 링크를 통해서 다음 라우팅 지점으로 향한다.
비행기가 관제탑의 지시를 받아 방향을 전환 한다. == 데이터의 헤더에 있는 정보를 통해서 라우터는 데이터의 다음 링크를 정해준다.
비행기가 착륙해서 수하물을 내려준다. == 도착지 호스트가 데이터를 받는다.
위와 같이 우리가 사용하는 시스템이 네트워크에도 비슷하게 적용되고 있음을 알 수 있다.
항공 시스템에서 각각의 기능을 하나의 계층이라고 할 수 있고, 인터넷 네트워크 구조에서도 각각의 프로토콜을 계층이라고 할 수 있다. 계층 간에는 서로에게 서비스를 제공하고 이를 계층의 서비스 모델이라고 한다.
다시 인터넷 네트워크로 돌아와서, 프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 통합으로 구현할 수 있다.
인터넷 프로토콜 5계층
HTTP(웹 문서 요청 및 전송)와 SMTP(전자메일 전송), FTP(파일 전송 시스템)같은 애플리케이션 계층 프로토콜은 대부분 호스트의 소프트웨어로 구현된다. 애플리케이션 계층 프로토콜은 여러 호스트에 분산되어 있어서 서로 정보를 교환할 때 메시지 라고 불리는 패킷을 사용한다.
트랜스포트 계층은 클라이언트와 서버간의 애플리케이션 계층 메시지(패킷)를 전송하는 서비스를 담당한다. 인터넷에는 TCP, UDP 라는 2가지의 트랜스포트 프로토콜이 있다. TCP는 혼잡제어 및 메시지 전달을 보장하는 상대적으로 느리지만 안정적인 서비스이고, UDP는 혼잡, 흐름제어 및 신뢰성을 보장하지 않는 아주 간단하고 빠른 서비스이다.
혼잡 제어 : 혼잡 제어는 전자 통신 네트워크로 들어가는 정보 소통량을 조절하여 네트워크가 혼잡해지지 않게 조절하는 것을 말한다. 예를 들어, 정보 소통량이 과다한 것을 감지하여 패킷을 적게 보내면 혼잡 붕괴 현상이 일어나는 것을 막을 수 있다.
네트워크 계층은 호스트간의 데이터그램을 라우팅하는 서비스를 제공한다. 이 계층은 IP 데이터그램 필드를 정의한다. 호스트와 라우터가 IP필드에 어떻게 동작하는지 정의하는 프로토콜을 갖고있는데 이 프로토콜이 바로 IP 프로토콜이다.
링크 계층은 출발지와 목적지간의 일련의 패킷 스위치를 통해서 데이터를 라우팅한다. 패킷 스위치에서 다음 링크로 패킷을 이동시키기 위해서 네트워크 계층은 링크 계층의 서비스에 의존해야한다. 링크 계층 프로토콜의 예로는 이전 포스팅에서 다루었던 케이블 네트워크의 DOCSIS 프로토콜이 있다.
링크계층의 기능이 전체 데이터 프레임을 한 네트워크에서 이웃 네트워크로 이동시키는 것이라면 물리 계층은 데이터 내부의 각 비트를 다음 노드로 이동시키는 것이다. 물리 계층의 프로토콜들은 링크계층과 링크의 구성요소(광케이블, 꼬임쌍선)들에 의존한다.
항공 시스템에서 시스템을 구성하는 다양한 기능들이 역할 별로 분리될 수 있는 것처럼 인터넷 프로토콜도 네트워크를 구성하는 호스트, 패킷 스위치, 통신 링크 등으로 분산되었다.
캡슐화
Source HOST
- 메시지를 전송하는 호스트의 애플리케이션 계층에서 메시지가 만들어진다.
- 메시지를 받은 트랜스포트 계층에서 자신의 헤더(오류 검출 비트, 목적지)를 추가해 캡슐화를 시킨다. 이를 세그먼트라고 부르며 네트워크 계층으로 보낸다.
- 네트워크 계층은 송신 호스트와 수신 호스트의 주소 정보를 헤더에 추가하여 네트워크 계층 데이터그램을 만든다.
- 이는 링크계층으로 전달되고 링크계층도 자신의 헤더 정보를 추가해서 링크 계층 프레임을 만든다.
- 각 계층에서 패킷은 헤더와 페이로드 필드라는 2가지 형태의 필드를 갖는다.
- 페이로드 필드는 일반적으로 현재 계층 상위로부터의 패킷이다.
- 캡슐화가 완료된 데이터가 물리계층(꼬임쌍선, 광케이블)을 이용해서 링크 계층 스위치(접근(access) 네트워크)로 전달된다.
링크 계층 스위치
- 물리, 링크 계층으로만 구성된다.
- 물리 계층을 통해서 받은 링크 데이터의 헤더를 보고 전송될 링크를 결정한다.
- 다시 물리 계층을 통해서 다음 라우터로 데이터를 전송한다.
- IP 프로토콜을 이해하고 구현하지 못한다.
- 이더넷 주소 같은 링크 계층 주소를 인식할 수 있다.
라우터
- IP 프로토콜을 통해서 목적지로 가는 방향을 정할 수 있다.
- 데이터그램 헤더와 프레임 헤더를 바탕으로 데이터가 전송된다.
Dest HOST
- source host와 반대로 물리계층에서부터 데이터를 받아서 상위 계층으로 데이터를 올려보낸다.
- 트랜스포트 계층에서 데이터의 오류를 검사하고 TCP 또는 UDP 프로토콜에 따라서 애플리케이션 계층으로 데이터를 보낼지 말지를 결정한다.
'CS > Network' 카테고리의 다른 글
[Network] 트랜트포트 계층 : TCP 연결 (연결 지향형) (0) | 2021.09.24 |
---|---|
[Network] 트랜스포트 계층 : 다중화와 역다중화 (0) | 2021.09.17 |
[Network] 트랜스포트 계층 : 개요(Intro) (0) | 2021.09.16 |
[Network] 네트워크 코어 (0) | 2021.09.06 |
[Network] 인터넷이란? Intro (0) | 2021.09.06 |