네트워크에는 다양한 기기 간 통신을 위해 약속된 구조가 있다.
바로 OSI 7계층과 TCP/IP 4계층이다.
이번 포스팅에서는 OSI 7계층에 대해 다뤄보려고 한다!
OSI 7 계층
(Open Systems Interconnection Reference Model 7 Layers)
국체 표준화 기구, ISO에서 네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델이다.
간략하게 글로 표현하자면 데이터를 송신할 때는 높은 계층에서 낮은 계층으로 전달하고, 데이터가 수신부의 가장 낮은 계층에 도달하면 수신부에서는 낮은 계층에서 높은 계층으로 데이터를 전달한다.
HTTP, FTP 등의 프로토콜을 응용 프로그램의 UI를 통해 제공한다.
데이터를 표준화된 형식으로 변경한다.
세션의 유지 및 해제 등 응용 프로그램 간 통신 제어와 동기화를 한다.
신뢰성 있는 데이터를 전달하기 위한 계층으로, TCP, UDP 같은 전송 방식과 포트(port) 번호 등을 결정한다.
데이터를 송신부에서 수신부까지 보내기 위한 최적 경로를 선택하는 라우팅(routing)을 수행한다. 이때 선택한 최적 경로를 라우트(route)라고 한다. 네트워크 장비로는 라우터(router)가 있다.
데이터 흐름을 관리하며 데이터의 오류 검출 및 복구 등을 수행한다. 브리지(bridge), 스위치(switch), 이더넷(ethernet)이 데이터 링크 계층의 장비에 해당한다.
데이터를 비트(bit) 단위의 0과 1로 변환한 후 장비를 사용해 전송하거나 전기 신호를 데이터로 복원한다. 리피터(repeater), 허브(hub)등이 물리 계층에 해당하는 장비다.
각 계층은 독립적이며 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해 데이터를 가공한다.
제어 정보를 담은 헤더(header) 나 트레일러(trailer) 가 붙는데,
이 과정을 데이터 캡슐화(data capulation) 이라고 한다.
그럼 데이터 캡슐화를 하는 이유가 무엇일까?
그 이유는 수신부의 같은 계층에서 데이터 호환성을 높이고 오류의 영향을 최소화하기 위해서이다.
위 그림과 같이 헤더는 데이터 앞에 붙고, 트레일러는 데이터 뒤에 붙는다.
송신부에서 데이터 캡슐화를 거친 결과물을 수신부로 보내고 수신부는 물리 계층부터 응용 계층까지 거치며 받은 데이터에서 헤더와 트레일러를 분석해 제거하는 역캡슐화를 진행한다.
이 과정에서 각 계층에서는 필요한 제어 정보를 얻는다.
마치 우리 몸이 비타민이나 음식물같은 걸 흡수해가는 절차와 비슷한 것 같다. 😃