통신 프로토콜
OSI 7 Layers
OSI는 (Open System Interconnection)의 약자입니다.
OSI 7 Layers는 시스템 간의 상호 연결성을 보장하는 표준이죠.
그렇다면 왜 Layer를 나눈걸까요?
Layer를 분리해서 각 Layer는 독립적인 역할을 수행하게 됩니다.
역할이 나눠진만큼 문제가 생기면 각 Layer의 역할을 기준으로 파악할 수 있게 되죠.
각 Layer에 대해 간단히 살펴볼게요.
Physical Layer
Physical Layer는 말 그대로 물리적인 하드웨어 부분입니다.
OSI Layer를 타고 온 데이터를 전기적인 신호(Bit, 0 or 1)로 변환시켜 통신을 합니다.
Data Link Layer
Data Link Layer는 Link의 설정과 유지 및 종료를 담당합니다.
또한 오류제어, 흐름제어, 회선제어 기능을 수행하는 Layer입니다.
신뢰성 있는 전송을 보장하는 역할이죠. (예: MAC 주소)
Network Layer
Network Layer는 다양한 길이의 패킷을 네트워크를 통해 전달합니다.
대표적으로 노드들을 거칠 때마다 라우팅해주는 역할을 합니다. (예: 공유기)
Transport Layer
Transport Layer는 사용자들이 데이터를 주고 빋을 수 있게하는 역할입니다.
대표적으로 TCP, UDP가 있는 Layer입니다.
Session Layer
Session Layer는 응용프로그램이 통신을 유지하기 위한 구조를 제공합니다.
또 이를 처리하기 위해 프로세스들의 논리적인 연결을 담당하죠.
TCP/IP 세션을 만들고 없애는 기능, 세션 메세지 전송의 기능을 수행합니다.
Presentation Layer
Presentation Layer는 Application이 다루는 정보를 통신에 알맞은 형태로 만들어요.
또 하위 Layer에서 온 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할을 합니다.
데이터의 효율과 보안을 위해 압축과 암호화를 수행하고, 전송을 위한 포맷으로 변경을 수행입니다.
Application Layer
Application Layer는 응용 프로세스와 직접 관계해 응용 서비스를 수행하는 역할입니다.
대표적으로 HTTP, FTP 등이 있습니다.
통신 프로토콜
네트워크 상에 연결된 기기들끼리 정보를 주고 받는 방법이나 내용을 정의한 규약을 의미합니다.
특징
프로토콜을 설계할 때는 원칙이 있어요.
- 간단하게
- 명확하게
- 확장할 수 있게
또한 프로토콜에서는 고려할 사항들도 있죠.
- 시스템의 명칭
- 시스템간 연결 관계
- 시스템간 연결 네트워크의 물리적 관계
- 시스템간 연결 네트워크의 기초 프로토콜 구분
- 시스템에서 동작하는 애플리케이션
- 시스템간 Master / Slave 관계
패킷과 프로토콜
패킷은 프로토콜(규칙)에 의해 만들어진 데이터의 형식화된 블록(메시지)입니다.
패킷과 프로토콜의 개념과 기능을 혼동하면 안됩니다.
일반적인 통신은 정해진 프로토콜에 의해 패킷으로 정보를 교환하죠.
패킷 구조 설계에서도 고려할 사항들이 있어요.
- 패킷의 시작과 종료를 정의
- 패킷의 시작과 끝은 어떻게 검출할 것인가
- 패킷 내의 필드를 어떻게 구분할 것인가
- 패킷의 오류에 대한 정의 검출
대표적인 프로토콜들
FTP (File Transfer Protocol)
TCP/IP 기반의 Server/Client 프로토콜입니다.
두 가지 종류의 연결이 있는데요. "Command connection"와 "Data Transfer connection"입니다.
HTTP (Hyper Text Transfer Protocol)
WWW에서 정보를 주고 받을 수 있는 프로토콜입니다.
Request/Response 형태의 프로토콜이죠.
Browser 같은 HTTP Client가 Server에 정보를 요청하면 Server는 이에 응답해 정보를 전달합니다.
Browser는 정보를 받아 pasing해서 출력을 해줍니다.
HTTPS (Hyper Text Transfer Protocol Secure)
HTTP의 보안이 강화된 프로토콜입니다.
통신의 인증 및 암호화를 지원하죠.
Socket 통신에서 SSL이나 TLS를 사용합니다.
SSL은 Secure Socket Layer의 약자이며, TLS는 Transport Layer Security입니다.
TLS는 SSL의 후속 버전이며 FTP, HTTP 등 상위 Layer에 상관없이 사용이 가능합니다.
여기까지 "통신에 관련된 기본적인 용어들"에 대해 알아봤어요.
글이 도움이 되셨다면 공감 버튼 눌러주세요. 😊
'개발자라면? > AIoT & Platform' 카테고리의 다른 글
[AIoT] 데이터 베이스란? (0) | 2022.11.09 |
---|---|
[AIoT] Embedded System과 프로그래밍 기초 (0) | 2022.11.09 |
[AIoT] AIoT 기술 - 빅데이터와 AI (0) | 2022.11.07 |
[AIoT] IT 트렌드와 사물인터넷 (Ft.플랫폼) (0) | 2022.11.07 |