다음과 같은 7개의 계층으로 되어있다.
같은 네트워크에 있는 컴퓨터끼리는 쉽게 통신할 수 있으나, 네트워크와 네트워크를 연결하기 위해서는 장비가 필요하다.
이때 네트워크와 네트워크를 연결하는 장비를 Router(라우터)라고 한다. 이 라우터를 이용해서 목적지까지 정보를 전송한다.
왜 이렇게 층을 7개나 두었을까?
예를 들어 택배를 배송하는 과정에 빗대어 보자.
택배를 맡기면 각 지역에 있는 서브터미널에 택배가 도착하고, 서브터미널에 모인 택배는 허브터미널이라는 대형 터미널에 도착한다.
각 지역에서 보낸 택배들이 허브터미널에 모이고, 이 허브 터미널에 모인 택배를 각 택배의 배송 지역과 가까운 서브 터미널로 운송한다.
그 후 서브 터미널에서 배송지로 전달이 되는 것이다.
이번엔 다른 예를 들어 설명해보자.
A가 서류작업을 하여 B에게 배송을 해야하는 상황이다.
A가 B가 있는 곳으로 직접 배송을 하러 간다면 단순명쾌하겠지만, A는 다른 서류작업도 병행해야하므로 배송작업은 분업화할 것이다.
A가 서류를 비서에게 맡기면 비서는 서류를 봉투에 집어넣고 봉투의 겉면에만 배송받는 이의 정보를 적어놓는다. 이때 전달하는 서류가 분실되면 안되기 때문에 비서는 맡겨지는 서류에 번호를 매긴다.
그 후 이 서류봉투를 배송부서에 맡기게 되면 배송부서는 송장의 구체적인 정보를 적어서 택배회사에 보낸다.
여기까지의 분업화를 보면 A는 서류작업을, 비서는 서류를 봉투에 넣고 봉투에 받는 이의 정보와 번호 매김, 배송부서가 구체적인 송장 정보를 적어 택배회사에 보내는 작업으로 분할되어있다. 이러한 분할 작업을 네트워크에서는 각 작업을 계층화 한것으로 보면 된다.
이후 택배가 배송이 되는 과정을 보자.
택배가 전달되어 B가 있는 배송부서로 도착한다. 배송부서에서는 해당 건물의 우편주소와 송장정보의 일치의 확인 후 B건물의 비서에게 서류봉투를 전달한다. 비서는 B에게 전달할 서류봉투임과 서류에 매겼던 번호를 확인한다. 이 번호는 비서들끼리 약속된 규약이고, 만약 택배가 분실되었을 경우 비서측에서 확인 가능하다. B측 비서는 서류봉투를 확인하고 A측 비서에게 서류의 수신을 통보한다.
만약 5번 서류가 분실되어 B비서 측에서 5번 패킷을 분실했다고 A측 비서에게 통보할 경우, A측 비서가 5번에 해당하는 서류를 다시 마련하여 택배 전송과정을 거쳐 보낸다.
이러한 택배 배송과정에서 택배 차량이 B건물까지 이동되는 과정도 알아서 되는 것이라 생각하면 안된다.
만약 지하철이라고 생각한다면, a역에서 목적지인 g역으로 간다고 해보자. a역에서 출발하여 g로 도착하는 방법은 여러가지가 있지만, 빨간표시된 경로로 이동한다고 했을 때, a역에서 b역까지 이동하고 c역을 향해서 가야한다는 정보, c역까까지 이동 후 g역을 향한 경로로 가야한다는 정보들이 중간중간에 필요하다. 마찬가지로 인터넷에도 이러한 과정이 있다.
네트워크에서 위와같이 필요한 정보들은 header(헤더)에 포함된다. 헤더는 애플리케이션 계층에서 처리하고, 필요에 따라 붙을 수도 붙이지 않을 수도 있다. 그 하위 계층들에서는 헤더와 같은 상위 계층의 정보는 건드리지 않고 각 모듈별로 정보를 추가한다.
택배를 보낼 때 안의 내용을 보지않고 송장의 정보만 보는 것처럼, 데이터를 보낼 때도 라우터는 필요한 정보만 확인한다. 데이터가 도착하면 각 계층 모듈이 필요한 정보만을 뜯어보고, 나머지 알맹이 정보를 상위 계층으로 보낸다.
네트워크와 네트워크를 연결하는 방식에는 크게 두 가지 방식이 있다.
Circuit Switching Network (중앙제어 전달 방식)과 Packet Switching Network (목적지 주소 전달 방식) 이 있다.
서킷 스위칭 네트워크는 중앙에서 전송에 필요한 경로를 설정하는 방식이고, 패킷 스위칭 네트워크는 지정된 경로없이 목적지만이 지정되어있고 경로는 스스로 찾아가는 방식이다. 현 인터넷은 패킷 스위칭 네트워크를 사용하고 있다.
Circui Switching Network는 미리 경로 설정하는 하는 단계를 거치고, 한 번 설정된 경로는 연결이 끝날 때 까지 바뀌지 않는다.
'개발 · 컴퓨터공학' 카테고리의 다른 글
UNIX의 역사 (0) | 2021.09.02 |
---|---|
네트워크 프로그래밍 - OSI 7 계층의 구성 (0) | 2021.09.01 |
Lerp와 LerpUnclamped는 뭐가 다른가? (difference of Lerp and unclamped lerp) (0) | 2021.08.16 |
Animation Component AddClip이 되지 않는 문제 - The animation state "~" could not be played because it couldn't be found! (0) | 2021.05.24 |
A* Pathfinding Project Asset - Grid Graph에서 갈 수 없는 노드 체크하기 (0) | 2021.04.25 |