프로토콜이란?
각 레이어가 다른 레이어로 통신하는 방법.
- 보내는 장치, 받는 장치, 중간 장치들이 효과적으로 의사소통하기 위해 따라야 하는 규칙
- 메세지 포맷과 순서, 이벤트에 따른 행동들을 정의한다
- 간단한 의사소통이라면, 간단한 프로토콜 하나만 필요
- 복잡하다면, 각 계층에서 프로토콜 간 작업을 나눈다
위 사진은 항공사의 작업들을 계층별로 나눈 것입니다.
각 계층은 관련 서비스를 구현하고 상하위 계층에서 제공하는 서비스에 의존합니다
예를 들어 Ticker 계층은 카운터에서 가방을 보내고, Gates 계층은 사람들을 입국게이트로 이동시킵니다.
이렇듯 어떠한 서비스가 있을 때 프로토콜은 하나로 정의되지 않습니다. 계층화가 필요합니다.
계층화는 Layering이라고 부릅니다.
- Single layer implementation (계층화❌)
- 구현하기 복잡하고, 문제 발생시 에러 트래킹이 어려워진다.
- 내가 개발한 부분이 여러 곳에 묶여 사용되기 때문에 개발자간의 소통이 중요해진다.
- 개발 복잡도가 증가한다.
- Multi layer implementation (계층화⭕)
- 쉽게 구현 가능하다.
- 책임이 명확해지기 때문에 문제 발생시 추적하기 쉽다.
- 재사용성이 높아진다.
Points !
네트워크 레이어에 대해 다시 정리해보겠습니다
- 계층을 통해 네트워킹을 단순화할 수 있다.
- 각 계층에 맞는 소프트웨어를 쉽게 개발할 수 있다.
- 모든 레벨에서 소프트웨어 변경이 비교적 간단하다
- 서로 다른 컴퓨터와 일치하는 레이어가 통신한다.
- ex ) 송신 컴퓨터의 물리적 레이어 = 수신 컴퓨터의 레이어
- 다소 비효율적이다 ?
- 많은 소프트웨어 패키지와 패킷을 포함한다
- 패킷 오버헤드 (느린 전송 속도, 처리 시간)
- 완벽하게 간소화된 통신을 희생하면서 달성되는 상호 운용성(?)
프로토콜 레이어링 몇개로 되냐에 따라 종류가 나뉩니다.
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)
'컴퓨터 네트워크' 카테고리의 다른 글
[network] 신호 장애 원인과 성능 측정 방법 (0) | 2024.05.21 |
---|---|
[network] Signal : 아날로그(Analog) 신호 vs 디지털(Digital) 신호 (0) | 2024.05.19 |
[network] 전송매체란? 유선, 무선 (0) | 2024.05.19 |
[network] 네트워크란? 토폴로지, LAN, WAN (0) | 2024.05.19 |
[network] 데이터통신이란? 유형, 데이터 플로우 (0) | 2024.05.09 |