
저번 시간에 네트워크에 대해 정리해보았다. 결국 네트워크의 목적은 통신인데, 통신 기능이 제대로 작동하기 위해서는 참여자들 사이에 약속된 통신 방법이 있어야한다. 그 방법이 바로 프로토콜이다.
다시말해 네트워크 프로토콜은 네트워크 통신을 하기 위해 통신에 참여하는 주체들이 따라야하는 형식, 절차, 규약이다.
이런 프로토콜들은 각 용도에 따라 나뉘게 된다. 프로토콜을 하나로 통일한다면 성능과 효율성이 떨어지기 때문이다.
네트워크의 기능들을 정리하면 다음과 같다.
이런 기능들을 보면 각 기능이 계층별로 동작하는 것을 알 수 있다.
그래서 이것을 계층구조(layered architecture)로 만든 것이 OSI 모델 (7 layer)와 TCP/IP 스택 모델(4 layer)이다. OSI 모델은 범용적인 네트워크 구조를 모델링한 것이고, TCP/IP 스택 모델은 인터넷에 특화된 네트워크 구조이다.
앞으로 배울 다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택(Protocol Stack)이라고 부른다.
다시 OSI 7 layer 모델을 살펴보자.
OSI 7 layer 모델은 범용적인 네트워크 구조를 7단계로 모델링한 것이다.

사진처럼 각 레이어에 맞게 프로토콜이 세분화되어 구현되어 있다. 또한 각 레이어의 프로토콜을 하위 레이어의 프로토콜이 제공하는 기능을 사용하여 동작한다. 예를 들어 네트워크 계층의 프로토콜은 데이터 링크 계층의 프로토콜의 기능을 사용하여 동작한다.
전송단위: Bit, 주소단위: 없음 = 주소의 개념이 없음
전송단위: Frame, 주소단위: MAC
헤더(header)와 테일러(tailer)를 추가한다. 이는 주소정보를 포함하고, 오류 감지와 프레임 경계 식별을 위해서다.프레임(frame)이라고 불리는 작은 단위로 나눈다.이더넷이 있다.전송 단위 : Packet, 주소 단위 : IP
라우터이다.전송 단위 : Segment, 주소 단위 : Port
SEQ 번호(시퀀스 번호)이고, 받는 순서를 나타낸 것이 ACK 번호(acknowledge number)이다.TCP와 빠르고 필수 기능만 제공하는 UDP가 있다.전송 단위 : Massage
1. 세션 설정(Session Establishment): 통신을 시작하기 위해 양측 간의 세션을 설정한다.
2. 세션 유지(Session Maintenance): 세션이 설정된 후에는 데이터를 주고 받는 동안에도 세션을 유지해야 한다. 세션 계층은 이를 위해 데이터 전송 중에 동기화 및 대화 기능을 수행한다.
동기화(Synchronization): 세션 계층은 통신하는 당사자 간에 데이터 교환을 동기화한다. 이는 데이터의 일관성과 순서를 유지하기 위해 필요한 작업이다.대화 제어(Dialog Control): 세션 계층은 통신 세션 동안 양측 간의 대화를 제어한다. 데이터 전송의 순서를 조정하고, 필요에 따라 데이터 전송을 일시 중지하거나 재개하는 등의 작업을 수행한다.3. 세션 종료(Session Termination): 통신이 완료되면 세션 계층은 통신이 완료되었음을 양측 장치에 알리고 세션을 안전하게 종료한다.
동시 송수신 방식(Full-Duplex Mode): 동시 송수신 방식은 양쪽 장치가 동시에 데이터를 주고 받을 수 있는 방식이다. 이 방식은 전이중 방식을 사용하며, 네트워크에서 가장 일반적으로 사용되는 방식 중 하나이다.반이중방식(Half-Duplex Mode): 반 이중 방식은 양쪽 장치가 번갈아가며 데이터를 주고 받을 수 있는 방식이다. 한 번에 하나의 방향으로만 통신이 이루어지며, 순서대로 데이터를 주고 받는다.전이중 방식(Full-Duplex Mode): 전이중 방식은 양쪽 장치가 동시에 데이터를 주고 받을 수 있는 방식이다. 각각의 방향으로 별도의 통신 채널을 사용하므로, 동시에 양방향으로 통신이 이루어진다.전송 단위 : Massage
전송 단위 : Massage

앞서 살펴보았듯 데이터를 보낼 때는 데이터에 응용 계층부터 아래로 각 계층이 헤더를 붙인다(물리 계층은 헤더를 붙이지 않으며, 데이터 링크 계층은 헤더와 테일러를 모두 붙인다). 이러한 과정을 캡슐처럼 포장하는 것에 빗대어 캡술화(encapsultaion)라고 한다. 반대로 하위 계층에서 상위 계층으로 올라갈 때 헤더나 추가된 정보들을 제거하는 과정을 비캡슐화(decapsulation)라고 한다.
정리하자면 캡슐화는 데이터가 상위 계층에서 하위 계층으로 내려갈 때 새로운 헤더(Header)나 특정한 정보를 추가하여 패킷(Packet)을 형성하는 과정이고 비캡슐화는 데이터가 하위 계층에서 상위 계층으로 올라갈 때, 각 계층의 헤더나 추가된 정보들을 제거하고, 해당 계층의 프로토콜에 따라 데이터를 처리하는 과정이다.
참고: