📝 Protocol Layer
크고 복잡한 네트워크 시스템을 여러 개의 계층(Layer)으로 나누면 이해하기 쉽고, 통신의 흐름을 단계적으로 파악할 수 있다.
여러 개의 레이어로 나눈 네트워크 시스템은 레이어드 아키텍쳐를 적용한 하나의 소프트웨어라고 할 수 있다.
각 계층은 서로 독립적이어서 모듈화의 장점을 갖는다. 즉, 유지보수와 업데이트가 용이하다.
예를들어 규모가 큰 프로그램을 여러개의 함수로 나누어 구현하면, 함수 단위로 유지보수와 업데이트를 진행할 수 있다는 장점이 있다. 이와 같은 맥락이다.
유지보수의 장점 : 다른 계층과 상관없이 어떤 계층에 문제가 생기면 해당 계층만 수정하면 된다.
업데이트의 장점 : 다른 계층과 상관없이 어떤 계층의 기술적 요소를 바꾸고 싶으면 해당 계층만 수정하면 된다.
각 계층은 상위 계층에 서비스를 제공하고 하위 계층으로부터 서비스를 제공 받는다는 특징이 있다.
계층화는 다음과 같은 단점을 갖는다.
계층간 기능이 중복될 수 있다.
계층간 많은 상호작용이 요구되기 때문에 오버헤드가 발생한다.
다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택(Protocol Stack)이라고 부른다.
📝 OSI 7 Layer Model

국제표준기구(ISO)에서 1984년에 발표한 네트워크 구조 모델이다.
네트워크를 7가지 계층으로 구분했다.
1계층 Physical Layer

컴퓨터는 1과 0으로 통신한다.
1과 0으로 표현되는 데이터를 물리적 매체를 통해 아날로그 신호로 바꿔서 전송한다.
0과 1으로 표현되는 데이터를 아날로그 신호로 바꿔서 물리적 매체(전선)으로 흘려보내고,
아날로그 신호가 들어오면 0과 1으로 데이터를 표현해서 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받게 한다.
정리해서, Physical Layer는 네트워크 통신을 위한 물리적인 표준을 정의하는 계층이다.
두 호스트간의 전기적, 기계적, 절자적인 연결을 정의한다. (케이블 종류, 데이터 송수신 속도, 신호의 전기 전압 등 )
2계층 Data Link Layer (전송 단위 : Frame, 주소 단위 : MAC)

데이터 링크 계층은 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받게 해준다.
즉, 패킷 스위치를 통해 데이터 전송을 라우터간 데이터 전송 기능을 제공한다.
물리적 계층을 통한 데이터 전송에 신뢰성을 제공한다.
물리적 주소(MAC) 지정, 네트워크 토플로지, 오류통지, 프레임의 순차적 전송 흐름제어 등의 기능을 가진다.
3계층 Network Layer (전송 단위 : Packet, 주소 단위 : IP)
라우팅을 통해 패킷의 최적 이동경로를 결정하고 포워딩으로 패킷을 다음 라우터에 전송한다.
호스트간 데이터 전송을 한다.
4계층 Transport Layer (전송 단위 : Segment, 주소 단위 : Port)
데이터를 분할하여 전송하고, 수신할 때 다시 합치는 과정을 담당한다.
대표적인 프로토콜 : TCP, UDP
5계층 Session Layer (전송 단위 : Massage)
통신을 하는 두 host간 최초 연결을 수행하고 연결 유지를 한다.
통신을 하는 두 hsost 사이의 세션을 열고, 닫고, 관리하는 기능을 담당한다. 동기화 기능과 대화 기능이 있다.
동기화 기능
동기란 통신 양단에서 서로 동의하는 논리적인 공통처리 지점으로써, 동기점을 설정하기위해 사용된다.
동기점이 설정된다는 의미는 그 이전까지의 통신은 서로 완벽히 처리했다는 것을 뜻한다.
동기점은 오류 복구에 사용된다. 동기점 이전 과정은 복구가 필요 없고, 동기점 이후 처리 과정에 대한 복구 절차가 진행된다.
대화 기능
대화 기능은 데이터 전송 과정을 의미한다.
시간 경과에 따라 순차적으로 동기점을 부여하여 신뢰성 보장 기능을 단계적으로 구현할 수 있게 된다.
의도적으로 일시 정지하여 나중에 이어서 작업하는 것이 가능하다.
데이터 송수신 방식(Duplex), 반 이중 방식(Half Duplex), 전 이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정을 수행한다.
대표적인 프로토콜 : SSL(TLS)
6계층 Presentation Layer (전송 단위 : Massage)
EX) ASCII, EBCDIC, CIF, JPEG, AVI, MPEG 등
송신자와 수신자간에 데이터표현이 일관 되도록 변환, 압축, 암호화 기능을 제공한다.
7 계층 Application Layer (전송 단위 : Massage)
사용자(사람 또는 소프트웨어)가 네트워크에 접근할 수 있도록 User Interface를 제공한다.
대표적인 프로토콜 : HTTP(80), FTP(20,21), Telnet(23), SMTP(25), DNS(53), TFTP(69)
정리
💡 OSI 7 Layer에 대해서 설명해주세요.
OSI 7 레이어는 네트워크를 7가지 레이어로 구분한 모델 입니다.
크고 복잡한 네트워크 시스템을 여러 개의 독립적인 레이어로 나누면,
통신의 흐름을 단계적으로 쉽게 이해 할 수 있고
재사용과 유지보수가 용이하다는 장점이 있습니다.
- (꼬리질문) 각 계층별로 설명해줄래요?
1 계층인 물리 계층은 0과 1로 표현되는 컴퓨터의 데이터를 아날로그 신호로 바꾸어 물리적 매체로 통신하는 표준을 정의하는 계층 입니다.
2 계층인 링크 계층은 같은 네트워크에 존재하는 여러 개의 컴퓨터들이 스위치를 통해 통신하는 표준을 정의하는 계층 입니다.
3 계층인 네트워크 계층은 데이터가 이동할 라우터 경로를 결정하고, 라우터간 데이터 통신을 정의하는 계층 입니다.
4 계층인 전송 계층은 프로세스간 데이터 통신을 정의하는 계층 입니다.
5 계층인 세션 계층은 호스트간 세션 관리를 정의하는 계층 입니다.
6 계층인 표현 계층인 데이터의 표현을 정의하는 계층 입니다.
7 계층인 애플리케이션 계층은 사용자가 네트워크에 접근할 수 있도록 유저 인터페이스를 제공하는 계층 입니다.
💡 OSI 7 Layer 또는 TCP/IP 처럼 프로토콜들을 계층화하면 어떤 장점이 있을까요?
여러 프로토콜들을 계층화하면 유지보수에 용이합니다.
계층을 나누면 의존성을 줄일 수 있기 때문에
여러 프로토콜들을 계층화 하면 재사용과 유지보수가 용이해집니다.
계층화가 됨으로서 계층간의 의존성이 줄어들면,
다른 계층과 독립적으로 프로토콜 스펙을 수정할 수 있는 유지보수성이 좋아집니다.
🔎 출처 & 더 알아보기