본문 바로가기
컴퓨터 네트워크

[network] 프로토콜이란? 레이어와 TCP/IP 알아보기

by youzinnnnn 2024. 5. 19.

프로토콜이란?

각 레이어가 다른 레이어로 통신하는 방법. 

  • 보내는 장치, 받는 장치, 중간 장치들이 효과적으로 의사소통하기 위해 따라야 하는 규칙
  • 메세지 포맷과 순서, 이벤트에 따른 행동들을 정의한다
  • 간단한 의사소통이라면, 간단한 프로토콜 하나만 필요
  • 복잡하다면, 각 계층에서 프로토콜 간 작업을 나눈다

위 사진은 항공사의 작업들을 계층별로 나눈 것이다.

각 계층은 관련 서비스를 구현하고 상하위 계층에서 제공하는 서비스에 의존한다.

예를 들어 맨위의 Ticket 계층은 카운터에서 가방을 보내고, Gates 계층은 사람들을 입국게이트로 이동시킨다.

 

 

이렇듯 어떠한 서비스가 있을 때 프로토콜은 하나로 정의되지 않는다. 계층화가 필요하다. 

  • Single layer implementation (계층화❌)
    • 구현하기 복잡하고, 문제 발생시 에러 트래킹이 어려워진다.
    • 내가 개발한 부분이 여러 곳에 묶여 사용되기 때문에 개발자간의 소통이 중요해진다.
    • 개발 복잡도가 증가한다.
  • Multi layer implementation (계층화⭕)
    • 쉽게 구현 가능하다.
    • 책임이 명확해지기 때문에 문제 발생시 추적하기 쉽다.
    • 재사용성이 높아진다.

 

Points !

네트워크 레이어에 대해 다시 정리해보겠다!!

  1. 계층을 통해 네트워킹을 단순화할 수 있다.
    • 각 계층에 맞는 소프트웨어를 쉽게 개발할 수 있다.
    • 모든 레벨에서 소프트웨어 변경이 비교적 간단하다
  2. 서로 다른 컴퓨터와 일치하는 레이어가 통신한다.
    • ex ) 송신 컴퓨터의 물리적 레이어 = 수신 컴퓨터의 레이어
  3. 다소 비효율적이다 ?
    • 많은 소프트웨어 패키지와 패킷을 포함한다
    • 패킷 오버헤드 (느린 전송 속도, 처리 시간)
    • 완벽하게 간소화된 통신을 희생하면서 달성되는 상호 운용성(?)

 

프로토콜 레이어링 몇개로 되냐에 따라 종류가 나뉜다.

7개로 나눈 OSI , 5개로 나눈 TCP/IP

 

 

TCP/IP

 

아래부터 알아보겠당.

  • Layer 1 - Physical 물리계층
    • 통신 회로를 통해 데이터 비트(0 or 1)를 전송
    • 전기의 전압, 초당 전송 비트 수, 사용되는 케이블 및 커넥터의 물리적 형식 등, 데이터 비트가 전송되는 규칙을 정의한다
  • Layer 2 - Data link 데이터링크계층
    • 메시지 설정, 오류 제어, 흐름제어, 네트워크 엑세스 제어를 다룬다
      네트워크 엑세스 제어(MAC) : 두 대의 컴퓨터가 동시전송을 하지 않도록 전송가능 시간을 결정
    • 오류검출 및 수정을 수행
  • Layer 3 - Network 네트워크계층
    • 라우팅 결정을 한다
      라우팅 : 패킷의 전송 경로 지정
  • Layer 4 - Transport 전송계층
    • 도메인 이름을 숫자주소나 세그먼트 메시지로 변환
    • 네트워크 끝난에 위치하는 통신 주체가 데이터를 주고 받는다
    • 데이터링크와 유사하다. 아래 사진을 통해 차이점을 살펴보자

  • Layer 5 - Application 응용계층
    • 응용 계층에서 제공하는 서비스의 형태는 매우 다양
    • 편리한 응용 프로그램(사용자가 사용하는 프로그램)을 제공한다

 

 

레이어의 메시지 전송 방법, 데이터 단위

지금까지 프로토콜을 레이어링하는 이유와 그 레이어들을 알아보았다

데이터를 주고 받을 때, 데이터를 다른 형태로 바꾸는 작업이 필요함!

 

편지지를 그냥 보내지 않고, 편지봉투로 감싸 보내는 것!!!!

Encapsulation (캡슐화) 작업이라고 하며, 새 데이터 단위를 만들어낸다.

  • 캡슐화 방법
    • 각 레이어는 위에서 데이터를 가져온다
    • 헤더 정보를 추가한다
    • 새 데이터 단위(data unit)를 생성한다.
    • 아래의 레이어에게 새 데이터 단위를 전달한다.
  • 캡슐화 해제 방법
    • 각 레이어에서 아래에서 데이터를 가져온다
    • 헤더 정보를 제거한다
    • 새 데이터 단위를 생성한다.
    • 새 데이터 단위를 더 높은 레이어로 전달한다.

각 레이어마다 사용하는 데이터의 단위를 알아보겠다.

  • Physical - 0과 1의 비트 단위
  • Data Link - 프레임(Frame)
  • Network - 패킷(Packet)
  • Transport - 세그먼트(Segment)