[네트워크] 프로토콜과 OSI 7계층
프로토콜 = 규약
프로토콜은 우리가 통신을 할 때 일종의 약속을 해놓은 규약을 뜻한다. 인터넷이라는 네트워크 망에서 너도 나도 다른 방식으로 소통하려한다면 매우 비효율적일 것이다. 그래서 국제표준화기구가 컴퓨터의 통신 기능을 계층 구조로 나눠서 정리한 모델로 OSI 7계층을 모델로 제시해놓았다. 우리가 웹 브라우저에서 http://naver.com 이라고 적었다면 http가 프로토콜이라고 할 수 있다.
OSI 7계층
응용계층 (제 7계층)
애플리케이션별로 서비스를 제공하는 방법을 규정 (애플리케이션 프로토콜 HTTP 등)
표현 계층 (제 6계층)
애플리케이션 데이터를 통신에 적합한 형태로 변환하는 방법을 규정 (위와 동일)
세션 계층 (제 5계층)
데이터를 흘려보내는 논리적인 통신로(커넥션)의 확립과 연결 끊기에 대해 규정 (이 또한 HTTP를 예로 들 수 있다)
전송 계층 (제 4계층)
데이터를 통신 상대에게 확실하게 전달하는 방법을 규정 (TCP, UDP)
네트워크 계층 (제 3계층)
동일 또는 다른 네트워크의 기기와 연결하기 위한 주소와 경로의 선택 방법을 규정 (IP, ICMP, ARP)
데이터링크 계층 (제 2계층)
직접 연결된 기기 사이에 논리적인 전송로(데이터링크)를 확립하는 방법을 규정 (이더넷)
물리 계층 (제 1계층)
네트워크 케이블의 재질이나 커넥터 형식, 핀의 나열 방법 등 물리적인 요소를 모두 규정 (이더넷)
TCP, UDP, IP, ICMP, ARP에 대해서는 추후에 개념정리를 한번 더 해야할 필요가 있다.
각 계층은 전혀 다른 역할을 갖고 있고 따로 작동한다. 이것을 통해 트러블 발생시 증상으로 어떤 계층 문제인지 파악 가능하다.
프로토콜
프로토콜의 역할은 캡슐화와 캡슐 해제이다
서버에서는 OSI Layer를 한 단계씩 지날때마다 캡슐화가 이루어진다. 7~5계층에서는 애플리케이션 데이터로 캡슐화하고, 4계층에서는 캡슐화된 애플리케이션 데이터를 세그먼트를 더해서 캡슐화하고, 3계층에서는 패킷을 더해 한 겹 더 캡슐화하고, 2~1계층에서는 프레임으로 캡슐화를 한다.
프레임이 된 데이터는 0 1 비트의 나열로 변환된 후 전기 신호나 광 신호로 송신된다.
클라이언트에서는 광 신호를 받아서 비트로 변환하고, 1~2계층에서는 프레임을 벗겨내며, 3계층에서는 패킷을 벗겨내고, 4계층에서는 세그먼트, 5~7계층은 애플리케이션 데이터를 벗겨낸다.
애플리케이션 데이터 : 서버 애플리케이션이 작성한 서비스용 데이터를 통신에 적합한 형태로 만든 것이다.
세그먼트 : TCP, UDP 헤더를 추가한다.
패킷 : 대부분 IP 헤더를 추가한다.