프로토콜을 알아보기 전에 네트워크의 기능을 알아봐야하는데
네트워크의 기능은 아래와 같다.
- 애플리케이션 목적에 맞는 통신 방법 제공
- 신뢰할 수 있는 데이터 전송 방법 제공
- 네트워크 간의 최적의 통신 경로 결정
- 목적지로 데이터 전송
- 노드 간 데이터 전송
이런 여러개의 기능을 준수하며 통신 기능이 제대로 작동하기 위해
통신자 간에 약속된 규칙/규약이 있어야하는데 이것을 프로토콜이라고 한다.
위에서 설명한 프로토콜을 구현할 때 하나의 프로토콜에서 5개의 기능을 모두 구현하는 것은 비효율적이라고 할 수 있다.
그렇기 때문에 OSI 7계층처럼 모듈화를 해야한다.
모듈화의 종류는 대표적으로는 2가지가 있는데 아래와 같다.
OSI 7계층은 위에서 기술한 네트워크 기능을 7단계로 쪼개 구현한 것이다.
또한, OSI 7계층은 아래 계층의 기능을 이용해 기능을 구현하는 방식을 가지고 있다.
애플리케이션 목적에 따라 HTTP, DNS, SMTP, FTP와 같은 통신 방식을 제공한다.
애플리케이션 통신 간에서 데이터 포맷 형식을 관리한다.
애플리케이션 통신 간에서 세션을 관리함
애플리케이션 통신 간에서 목적지로 데이터를 전송함
TCP : 안전하고 신뢰할 수 있는 데이터만 전송
UDP : 아무튼 모든 데이터 전송
IP를 통한 호스트로의 전송을 담당함
또한, 네트워크 간 최적의 경로를 계산함
MAC 주소를 통해직접 연결된 노드 간의 통신 담당
bits 값으로 데이터 전송
엔드 노드에서 application layer부터 physical layer까지 캡슐화를 하고
physical layer에서 bits를 통해 라우터로 전송된 후,
network layer까지 비캡슐화하여 경로를 설정하고 다시 physical layer까지 캡슐화하여
다음 라우터들을 거쳐 같은 과정을 반복한다.
그리고 목적지 엔드 노드까지 도달하면 application layer까지
비캡슐화하여 데이터 전송을 끝낸다.
tcp/ip에서는 OSI 7계층의
application layer, presentation layer, senssion layer
를 application layer 하나로 담당하고
datalink layer, physical layer를
datalink layer 하나로 담당한다.