프로토콜이란 무엇인가?
일상 생활에서 지켜야 하는 약속이 있듯이, 네트워크에서 문제 없이 통신하려면 약속(규칙)을 지켜야 한다. 예를 들어, 언어가 서로 다른 외국인들이 대화를 하려고 하면 서로 알아들을 수 없기 때문에 곤란함을 겪을 것이다. 하지만, 서로 알아들을 수 있는 언어를 정해놓고 대화를 한다면 문제가 없을 것이다.
이처럼 네트워크에서도 컴퓨터 간에 정보를 주고 받을 때 통신 방법에 대한 규칙을 정해 놓는데 이를 프로토콜(protocol)이라고 한다. 편지를 예로 들면, 편지를 쓰고 편지를 우체통에 넣을 때 주소를 적지 않거나 우표를 붙이지 않은 채로 넣게되면 편지를 어디로 보내야 할 지 알 수 없으므로 우편 배달부는 곤란해진다.
따라서, 이런 곤란한 상황이 발생하지 않도록 몇 가지 규칙을 정해야 한다. 규칙에는 편지를 쓰는 규칙, 편지를 보내는 규칙, 우체국의 규칙 등 여러 규칙이 있는데 서로 독립적인 여러 규칙을 거쳐야 한다.
통신 규격 - OSI 모델
지금은 상상도 할 수 없지만 예전에는 같은 회사의 컴퓨터끼리만 통신이 가능했다고 한다. 즉, A 사의 컴퓨터와 B 사의 컴퓨터와는 통신할 수 없었다. 이런 곤란한 상황이 발생하지 않도록 공통으로 사용할 수 있는 표준 규격을 정해야 했다. 네트워크에서는 국제 표전화기구(ISO)의 OSI 모델과 TCP/IP 모델과 같이 데이터를 주고받기 위한 통신 규격이 정해져 있다.
컴퓨터에서 컴퓨터로 데이터를 송, 수신 할 때 컴퓨터 내부에서는 여러 가지 일을 한다. 이 때, OSI 모델을 적용한다면 일곱 개의 계층(레이어)에서 일을 하게 된다.
통신규격 - TCP/IP 모델
TCP/IP 모델은 인터넷 모델이라고도 하며, 아래 그림과 같이 OSI 모델에서 응용, 표현, 세션 계층이 TCP/IP 모델에서 응용으로 합쳐지고 물리, 데이터 링크 계층이 네트워크 접속 계층으로 합쳐져 일곱 개의 계층에서 네 개의 계층으로 줄었다. 그리고 각각 계층에는 다양한 프로토콜들이 존재한다.
데이터 전송
OSI 모델 통신 규격으로 데이터 전송하는 과정을 살펴보면 다음과 같다. 데이터를 전송(송신)하는 쪽은 상위 계층에서 하위 계층으로 데이터를 전달한다. 데이터를 받는(수신) 쪽은 하위 계층에서 상위 계층으로 각 계층을 통해 전달된 데이터를 받게 된다. 이 때, 각 계층은 독립적이므로 데이터가 전달되는 동안에 다른 계층의 영향을 받지 않는다.
캡슐화와 역캡슐화
데이터를 송수신 할 때에 주의할 점이 있다. 데이터를 보내려면 데이터의 앞 부분에 필요한 정보를 붙여 다음 계층으로 보내야 하는데, 이 정보를 헤더라고 한다. (1장에서 패킷은 헤더, 데이터, 트레일러로 이루어져 있다고 했는데, 그 헤더를 말한다.) 헤더에는 데이터를 전달받을 상대방에 대한 정보도 포함되어 있어야 한다. 즉, 헤더는 데이터의 내용이나 성격을 식별 또는 제어하는 데 사용한다.
이처럼 데이터를 전송하는 쪽에서 상위 계층의 통신 프로토콜 정보를 헤더에 담아 데이터에 붙여 나가는 것을 캡슐화(encapsulation)이라고 하고 데이터를 받는 쪽에서 헤더를 제거하는 것을 역캡슐화(decapsulation)라고 한다.
송신 측에서 웹 사이트에 접속하려고 한다고 가정해본다.
[캡슐화]
1. ①과 같이 응용 계층에서는 웹 사이트를 접속하기 위한 요청 데이터가 만들어 진다.
2. ②와 같이 전송 계층에 전달 된다. 이 때, 신뢰할 수 있는 통신이 이루어지도록 데이터에 헤더를 붙인다.
3. ③과 같이 전송 계층에서 만들어진 데이터를 다른 네트워크와 통신하기 위해 헤더를 붙인다.
4. ④와 같이 네트워크 계층에서 만들어진 데이터를 물리적 통신 채널을 연결하고 통신하기 위해 헤더와 트레일러를 붙인다.
데이터 링크 계층에서 만들어진 데이터는 최종적으로 전기 신호로 변환돼서 수신 측에 도착한다.
[역캡슐화]
5. ⑥과 같이 데이터 링크 계층의 헤더와 트레일러를 제거하고 데이터를 전달한다.
6. ⑦~⑨와 같이 각 계층의 헤더를 제거하면서 수신 측으로 데이터를 전달한다.
이와 같이 데이터 한 개를 전달하는 데에 네트워크 통신의 내부에서는 여러 규칙을 통해 문제 없이 데이터를 전달해야 한다.
'네트워크 > 기초' 카테고리의 다른 글
6. 네트워크 계층 - 1 (목적지에 데이터 전달) (0) | 2020.10.07 |
---|---|
5. ARP(데이터 링크와 네트워크의 다리) (0) | 2020.10.06 |
4. 데이터 링크 계층(랜에서 데이터 전송) (0) | 2020.10.05 |
3. 물리 계층(데이터를 전기적 신호로 변환) (0) | 2020.09.28 |
1. 네트워크란? (0) | 2020.08.26 |