
네트워크 프로토콜은 네트워크 상에서 컴퓨터나 기타 장치간에 서로 통신하기 위해 필요한 규칙과 절차의 집합입니다. 장치 간에 교환되는 데이터의 형식과 구조부터 데이터를 전송, 수신 및 처리하는 데 필요한 작업과 동작을 정의합니다.
OSI 7계층 (Open Systems Interconnection 7 Layer)
일반적으로 네트워크 프로토콜을 언급할 때는 일반적으로는 OSI 7계층을 의미합니다. 서로 다른 컴퓨터 시스템과 네트워크가 서로 원활하게 통신할 수 있도록 ISO(국제표준화기구)에서 제정되었습니다. OSI 모델은 이후 TCP/IP의 설계에도 큰 영향을 미치게 됩니다.
OSI 7계층 모델은 데이터의 물리적 전송에서 응용 프로그램의 사용자 인터페이스에 이르기까지 네트워크 통신과 관련된 다양한 단계를 나타내도록 설계되었습니다. 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층의 7개 계층으로 구성됩니다. 각 계층은 다른 계층과 상호 작용하며 데이터를 처리하고 전송합니다.
캡슐화(Encapsulation)와 역캡슐화(Decasulation)

- 송신측 : 캡슐화(Encapsulation) / 수신측 : 역캡슐화(Decapsulation)
데이터를 전송할 때, 데이터 패킷을 여러 계층으로 나누어 전송하고, 수신할 때는 다시 계층별로 복원해서 데이터를 사용하게 되기 때문에 캡슐화와 역캡슐화는 네트워크 통신에서 매우 중요한 역할을 합니다.
캡슐화는 수신 측에서 데이터를 복원할 때 필요한 정보를 헤더에 담아 각 계층별로 추가하는 프로세스입니다. 이 프로세스는 패킷이 비트 스트림으로 변환되는 물리 계층에 도달할 때까지 계속됩니다.
역캡슐화는 수신된 데이터 패킷을 각 계층 별로 분해해서, 해당 계층의 헤더 정보를 제거하고 나머지 데이터를 다음 계층으로 전송하는 프로세스입니다. 이 프로세스는 패킷이 최상위 계층인 응용 계층에 도달할 때까지 계속됩니다.
OSI 7계층 구조

1계층 : 물리 계층(Physical Layer)
- PDU(Protocol Data Unit) : 없음
- 물리 계층의 헤더에는 물리 매체를 통한 데이터 전송에 대한 정보를 제공하며, 사용 중인 물리 계층 기술(이더넷, 블루투스, 와이파이…)에 따라 다른 내용이 들어갑니다.
- 상위 계층에서 전달받은 데이터 패킷을 비트 스트림으로 변환하고, 전기 신호로 인코딩하여 송신하거나 수신하는 역할
2계층 : 데이터링크 계층(Data Link Layer)
- PDU(Protocol Data Unit) : 프레임(Frame)
- 데이터링크 계층 헤더 : 데이터링크 계층에서 사용되는 프로토콜에 따라 내용이 달라집니다.
- (이더넷) 송신 MAC 주소(Source MAC Address), 수신 MAC 주소(Destination MAC Address)
- 대표 프로토콜: 이더넷(Ethernet) 프로토콜
- 물리적 네트워크 사이의 데이터를 송신하거나 수신하는 역할
3계층 : 네트워크 계층(Network Layer)
- PDU(Protocol Data Unit) : 패킷(Packet)
- 네트워크 계층 헤더
- 송신 IP 주소(Source IP Address), 수신 IP 주소(Destination IP Address), 사용 중인 IP 프로토콜의 버전 등
- 대표 프로토콜: IP 프로토콜
- IP 프로토콜 버전 : IPv4 (43억개의 주소) / IPv6(340조 x 1조 x 1조 개의 주소)
- 컴퓨터 간 논리적 연결을 담당하고 라우팅 서비스를 제공합니다. 네트워크 주소를 기반으로 한 네트워크에서 다른 네트워크로 데이터 패킷을 전달하는 일을 담당합니다.
4계층 : 전송 계층(Transport Layer)
- PDU(Protocol Data Unit) : 세그먼트(Segment)
- 전송 계층 헤더 : 송신 포트 번호(Source port numbers), 수신 포트 번호(Destination port numbers), 체크섬 등
- 대표 프로토콜 : TCP(Transmission Control Protocol), UDP(User Datagram Protocol)
- 데이터 전송 중 손상 및 유실 확인을 위한 오류 점검 기능(체크섬)을 제공하여 데이터의 신뢰성을 검증하고 어떤 응용 프로그램에 데이터를 전달해야 하는지 식별하는 역할을 합니다.
❗️체크섬
체크섬(Checksum)은 데이터의 무결성을 확인하는 데 사용되는 값으로. 데이터 패킷에서 계산됩니다. 고정된 크기의 문자열을 생성하는 체크섬 알고리즘의 결과값이 일치하면 데이터가 오류 없이 전송된 것으로 간주합니다. 만약에 체크섬의 값이 다른 경우 전송 오류 또는 데이터 손상이 있음을 나타내며 데이터를 다시 전송하도록 요청합니다.
❗️TCP vs UDP

- TCP : 연결형 프로토콜, 데이터의 전송 순서 보장
- UDP : 비연결형 프로토콜, TCP보다 전송 속도가 빠름, 주로 스트리밍/브로드캐스팅 서비스. UDP 데이터의 명칭은 데이터그램
5계층 : 세션 계층(Session Layer)
- PDU(Protocol Data Unit) : 없음(데이터가 하위 계층으로 직접 전달)
- 세션 계층 헤더 : 세션 ID, 세션 제어 정보 등
- 세션 계층은 세션 설정, 인증, 권한 부여, 유지 및 종료와 같은 서비스를 제공합니다. 또, 데이터가 올바른 순서로 전송되도록 동기화 서비스를 제공할 수 있습니다.
6계층 : 표현 계층(Presentation Layer)
- PDU(Protocol Data Unit) : 없음(데이터가 하위 계층으로 직접 전달)
- 응용 계층으로부터 전달받거나, 전달하는 데이터의 암호화를 담당합니다.
7계층 : 응용 계층(Application Layer)
- PDU(Protocol Data Unit) : 데이터(Data)
- 대표 프로토콜 : HTTP
- 네트워크 응용 프로그램을 위한 인터페이스를 제공합니다.
Reference
① 잔재미 코딩의 CS 이론