과거에는 모든 기기간 통신이 자유롭지 못했고, 같은 회사끼리만 통신이 가능했었습니다. 이러한 시절엔 통신은 편리한 점보다 번거로운 점들이 많았는데요. 이러한 점들을 해결하고자 표준 모델이 등장하게 되었습니다.
ISO(International Organization for Standardiztion, 국제 표준화 기구)
라는 기관에서 컴퓨터의 통신 표준 규격을 정하기 위해 만든 모델이 OSI 표준 모델
입니다.
OSI 모델
은 OSI 7 Layer
라고도 하며 이름 그대로 7개의 층으로 이루어진 모델입니다. 이 모델은 컴퓨터가 데이터를 송수신하는 과정을 7개의 층으로 나뉘어서 하는 것을 표현한 모델입니다.
전송할 때는 7계층에서 시작해서 1계층으로 수행되고, 수신할 때는 1계층에서 시작해서 7계층으로 내려오며 단계를 거치게 됩니다.
각 계층에 대해서는 포스트를 따로 파서 자세히 다룰예정이지만 간략하게 소개하겠습니다.
물리 계층(Physical)
는 시스템 간의 물리적 연결과 전기 신호에 대한 변환과 제어를 수행합니다.
데이터 링크 계층(Data Link)
은 네트워크 기기 간의 데이터 전송 및 물리 주소를 결정합니다. 즉, 에러/흐름/접근을 제어합니다.
네트워크 계층(Network)
은 다른 네트워크와 통신하기 위한 경로를 설정하고 논리 주소를 결정합니다. 또 라우팅(Routing)
이라는 패킷을 최종 목적지 경로로 설정하는 역할도 합니다.
전송 계층(Transport)
은 신뢰성있는 송수신을 구현하는 계층입니다. 네트워크 계층에서 설정된 라우팅된 패킷을 전송합니다. 또한 연결과 종단간(end to end) 흐름을 제어합니다.
세션 계층(Session)
은 세션을 체결하고 통신 방식을 결정합니다.
표현 계층(Presentation)
은 데이터를 번역해서 표현하는 방식을 결정합니다. 이 외에 데이터 압축, 암호화, 복호화도 수행합니다.
응용 계층(Application)
은 사용자와 직접 상호작용하는 층으로 우리가 사용하는 응용 프로그램들이 동작하는 계층입니다.
TCP/IP
모델은 OSI 모델
을 4개의 층으로 줄인 모델입니다. 기존의 7층에서 몇가지 층들을 하나로 묶어서 4개의 층으로 줄였습니다.
- 네트워크 접속 계층: 물리 계층과 데이터 링크 계층의 혼합
- 인터넷 계층: 네트워크 계층
- 전송 계층: 전송 계층
- 응용 계층: 세션, 표현, 응용 계층의 혼합
이미지 출처 - http://www.ktword.co.kr/test/view/view.php?m_temp1=205
데이터를 보낼 때는 수신지까지 가는데 필요한 정보들을 붙여서 1계층 부터 7계층까지 보냅니다. 이때 붙이는 정보를 헤더(header)
라고 합니다. 이 데이터에 헤더를 붙이는 과정을 캡슐화
라고 합니다.
헤더는 매 계층마다 붙게 됩니다. TCP/IP 모델 기준으로 총 4개의 계층을 통과하니 각 계층에 대한 4개의 헤더가 붙게 됩니다.
데이터 링크층에서는 물리적 통신 채널 연결을 위해 트레일러
라고 하는 것을 데이터의 마지막 부분에 붙입니다.
반대로 데이터를 받을때는 캡슐화된 정보를 하나하나씩 해석해서 응용 프로그램까지 도착하므로 이 과정을 역캡슐화
라고 부릅니다. 역캡슐화는 한 층 한 층 통과할 때마다 헤더(와 트레일러)를 떼어 내고 응용 계층에 도착하면 데이터만 남게 되어 우리한테 보여지는 것 입니다.
이번 포스트에서는 OSI, TCP/IP 계층에 대한 설명을 간략하게 했습니다. 다음 포스트에선 이들 계층에 대한 좀 더 자세한 내용을 다뤄보려고 합니다.