[Server Study] 네트워크(Network)와 프로토콜(Protocol), OSI 7 계층(Layer)

Seohyun-kim·2022년 5월 8일
0
post-thumbnail

인터넷과 네트워크를 설명하는 문서 에서 조금 더 자세히 알아보고자 한다.

프로토콜(Protocol)이 뭔데?

프로토콜은 둘 이상의 통신 개체 간에 교환되는 메세지 포맷과 순서 뿐 아니라, 메세지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.

즉, 메세지를 주고 받는 양식과 규약의 체계이다.


프로토콜의 기본 요소

  • 구문(Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식(format), 코딩(coding), 신호레벨(signal level) 등의 규정
  • 의미(Sementic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러처리를 위한 규정
  • 타이밍(Timing) : 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정

프로토콜 계층화

  • 네트워크 프로토콜의 설계에 대한 구조를 제공하기 위해, 프로토콜을 계층으로 조직함

  • 각 프로토콜은 한 계층(Layer)에 속하고, 한 계층이 상위 계층에 서비스를 제공함

  • 프로토콜 계층화는 구조화, 모듈화 된 방법을 제공하여 시스템 구성요소의 갱신을 더 쉽게 함

  • 일부는 계층화를 반대하기도 하는데, 한 계층의 기능이 하위 계층과 기능적으로 중복된다는 결점 때문

    • 어느 한 계층에서의 기능이 다른 계층에만 존재하는 정보를 필요로 할 수 있음.. 이른 계층을 분리하는 목적에 위배됨
  • 다양한 계층의 프로토콜을 모두 합해 프로토콜 스택(Protocol Stack)이라고 함


그래서 어떻게 계층을 나눴는데? - OSI 7계층, TCP/IP 4계층

세계적으로 프로토콜 표준화를 시도했고, ISO에서 OSI 7 계층을 정의했음

어플리케이션 계층을 다루고 아래로 내려가는 톱-다운(Top-Down) 방식을 채택하고 있음

  • 모든 Application에서 session 연결이나 Presentation이 필요하지 않으므로
    좀 더 application 을 일반화 하여 TCP/IP 프로토콜에서는
    Application 안에서 두 Layer의 기능을 수행할 수 있도록 함
  • 계층을 지날 때마다 헤더(Header)가 붙는데, 해당 계층의 기능과 관련된 제어 정보가 포함되어있음

1. Application Layer(응용 계층)

응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 역할을 담당하는 계층

  • 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳임

  • 인터넷의 애플리케이션은 HTTP(웹 문서 요청과 전송), SMTP(전자 메일 전송), FTP(두 엔드 시스템 간의 파일 전송) 과 같은 많은 프로토콜을 포함함

  • 애플리케이션 계층 프로토콜은 여러 엔드 시스템에 분산되어 있어, 한 엔드 시스템에 있는 애플리케이션이 다른 엔드 시스템에 있는 애플리케이션과 정보 패킷을 교환하는데 이 프로토콜을 사용함

  • 애플리케이션 계층에서의 정보 패킷을 메세지(Message)라 부름


2. Presentation Layer(표현 계층)

애플리케이션이 다루는 정보를 통신에 알맞은 형태로 만들거나, 하위 계층에서 온 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할을 담당하는 계층

애플리케이션들이 교환되는 데이터의 의미를 해석하도록 하는 서비스를 제공

  • 서비스 데이터 기술 뿐만아니라 데이터 압축과 데이터 암호화를 포함

3. Session Layer(세션 계층)

응용 프로그램 간의 메세지를 유지하기 위한 구조를 제공하고, 이를 처리하기 위해 프로세스들의 논리적인 연결을 담당하는 계층

  • 통신 중 연결이 끊어지지 않도록 유지시켜주는 역할을 수행하기 위해 TCP/IP 세션 연결의 설정과 해제, 세션 메세지 전송 등의 기능을 수행

4. Transport Layer(전송 계층)

상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간의 사용자들에게 신회성 있는 데이터를 전달하는 계층

  • 인터넷에는 2가지 TCP, UDP 라는 프로토콜이 있으며, 이들은 애플리케이션 계층 메세지를 전달함

  • 트랜스포트 계층의 패킷을 세그먼트(Segment)라고 함

(1). TCP

  • 애플리케이션에게 연결 지향성 서비스를 제공
  • 애플리케이션 계층 메세지 전달 보장과 흐름제어를 포함
  • 긴 메세지를 짧은 메세지로 나누고 혼잡 제어 기능을 제공하여 네트워크가 혼잡할 때 출발지의 전송속도를 줄이도록 함

(2). UDP

  • 애플리케이션에 비연결형 서비스를 제공
  • 이 서비스는 신뢰성, 흐름제어, 혼잡제어를 제공하지❌

5. Network Layer(네트워크 계층)

목적지 host의 transport 계층으로 segment를 운반하는 서비스를 제공

  • 다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송계층이 요구하는 서비스 품질(QoS)을 위한 수단을 제공

  • 라우팅, 패킷 포워딩, 인터 네트워킹등을 수행함

  • 이 계층은 IP 데이터그램의 필드를 정의하며 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지를 정의하는 프로토콜을 가지고 있음
    -> 이게 바로 IP 프로토콜임!!

  • 출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 결정하는 라우팅 프로토콜을 포함함

  • 데이터를 전ㅅ송할 데이터의 주소 확인 후 Transport 계층으로 전달함


한 노드에서 인접한 노드로 (One-hop 단위) 패킷을 보내기 위한 역할

  • 경로상의 한 노드에서 다른 노드로 패킷을 이동하기 위해, Network Layer은 Link Layer 서비스에 의존해야함

  • 네트워크 계층에 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 탐지하고 수정하는 기능을 제공

  • 시스템 간에 오류 없는 데이터 전송을 위해 상위계층에서 받은 패킷을 프래임(Frame)으로 변환하여 물리계층으로 전송

  • 헤더의 끝에는 물리주소 정보가 들어있고, 트레일러에는 오류를 검출하는 비트를 포함함

  • 오류 제어 방식에는 FFC(순방향 오류 수정), BEC(역방향 오류수정) 이 있음


7. Physical Layer(물리 계층)

실제 장치들을 연결하기 위해 필요한 전기적, 물리적 세부사항들을 정의하는 계층

  • 통신 채널을 통해 전송되는 사용자 장치의 디지털 데이터를 이에 상응하는 신호들로 변환(변조 및 복조) 함

  • OSI 계층을 타고 전달된 데이터를 전기적인 신호(Bit)로 변환시켜 통신을 수행

  • 데이터 링크 개체 간의 비트 전송을 위한 물리적 연결을 설정, 유지, 해제 하기 위한 수단을 제공

  • Link 계층이 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이라면,
    Physical 계층은 프레임 내부의 각 bit를 한 노드에서 다음 노드로 이동하는 것


계층 별 프로토콜의 종류

계층프로토콜 종류
Application Layer (응용 계층)HTTP, SMTP, FTP, POP3,..
Presentation Layer (표현 계층)JPEG, MPEG, ...
Session Layer (세션 계층)RPC, NetBIOS, ...
Transport Layer(전송 계층)TCP, UDP, ...
Network Layer(네트워크 계층)IP, ARP,...
Data Link Layer(데이터 링크 계층)HDLC, PPP, Ethernet
Physical Layer(물리 계층)RS-232


References
[컴퓨터 네트워킹 하향식 접근 - James F.Kurose]

0개의 댓글