Did you know that you can navigate the posts by swiping left and right?
두 컴퓨터가 네트워킹 하기 위해서는 같은 언어를 사용해야 한다. 마치, 사람과 사람끼리 대화를 하는 것처럼 말이다. 이 언어의 구조를 우리는 OSI(Open Systems Interconnection) 계층 모델로 나타냈다.
OSI 모델은 라우터와 방화벽 같은 하드웨어 적인 것들은 제외하고 통신상 하나의 특정한 면만 볼 수 있게 해주는 표준이다. OSI 모델을 통신의 개념적 계층 즉, 특정한 면들로 나눌 수 있다. OSI 계층 모델에 따라 라우터와 방화벽 등의 하드웨어는 데이터 캡슐화 같은 높은 계층의 상황(문제)은 무시하고 데이터를 전달하는 낮은 계층 (순수하게 0과 1로 이루어진 데이터) 에만 집중할 수 있다.
두 지점 간의 물리적 연결을 담당한다. 물리 계층은 가장 하위 계층으로 전기적 비트 스트림을 주고받는 역할을 담당한다. 비트 스트림 통신을 활성화하고, 유지하고, 비활성화하는 일도 담당한다.
두 지점 간의 실제 데이터 전송을 담당한다. 물리 계층은 단순히 0과 1을 전송하는 것이고, 사실 해석하기 나름이다. 모든 레이어는 다 같은 0과 1로 이루어진 데이터 배열인데, 어떤 레이어”식”으로 해석하냐에 따라 다르게 말해진다. 데이터링크 계층은 에러 보정과 흐름 제어 같은 하이레벨의 기능을 담당한다. 데이터링크 연결을 활성화하고, 유지하고, 비활성화 하는 절차를 담당한다.
전체 7계층의 중간 부분에 위치해 하위 계층과 상위 계층을 잇는 역할을 한다. 네트워크 계층은 주소 지정과 라우팅 기능을 제공한다.
시스템 간의 투명한 데이터 전송 기능을 제공한다. 전송 계층은 데이터 전송의 신뢰성을 보장해주므로 상위 계층들이 데이터 전송에 신경 쓰지 않고 다른 것에 집중할 수 있게 한다.
네트워크 애플리케이션 간에 연결을 맺고 유지하는 일을 담당한다.
데이터를 특정한 문법이나 언어로 애플리케이션에게 제공하는 역할을 담당한다. 프레젠테이션 계층에서 하는 일의 예로 암호화와 데이터 압축이 있다.
애플리케이션의 요구 사항을 처리한다.
데이터가 프로토콜 계층들을 통해 송수신될 때는 패킷(Packet)이라는 작은 조각으로 나눠서 전송된다. 각 패킷은 프로토콜 계층들의 구현 내용을 담고있다. 애플리케이션 계층(L7)에서 OSI 모델에 따라 아래로 내려오면서 각 계층은 L7에서 만들어졌던 순수 Data를 감싸고, 헤더를 추가한다. 이 과정을 캡슐화(Encapsulation)라고 한다. L7에서 만들어졌던 순수한 Data를 L6에 내려오면 Header + Data가 되고 L5로 내려오면 Header + (L6 == Header + Data), L4로 내려오면 Header + (L5 == Header + (L6 == Header + Data)) 이런 식으로 되는 것이다.