통신 프로토콜 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 통신 프로토콜은 신호 체계, 인증, 그리고
ko.wikipedia.org
우선 위키백과에 정의되어 있는 프로토콜을 살펴보자
통신 프로토콜 또는 통신 규약은... 이라면서 시작한다
즉, 프로토콜은 일반적으로 어떤 규약, 양식, 또는 체계로 볼 수 있다.
이런 양식을 어디서 만드느냐? 라고 할 수 있는데, 대표적으로 다음과 같다.
개인적으로는 ISO와 IEEE를 많이 들어본 것 같다.
- ISO(International Organization for Standardization)
- EIA(Electronic Industries Organization)
- IEEE(Institute of Electrical and Electronic Engineers)
- CCITT(Consultative Committee for International Telegraph and Telephone)
- IAB(Internet Activities Board)
추가로 보유하고 있는 임베디드 시스템 관련 책에서는 프로토콜을 다음과 같이 소개한다.
프로토콜은 시스템 사이 데이터를 교환 및 해석하기 위해 상호 간 약속 된 언어이다.
OSI 7 레이어의 각 동일 계층끼리 각각의 프로토콜을 정의하여 사용한다.
그렇다면 프로토콜에는 어떤 것들이 포함 될 수 있을까?
이는 OSI 7 Layer와 연관이 깊을 것 같다.
그렇기에 간단히 어떤 Layer가 있는지 살펴보고, 이 Layer별 프로토콜의 예시를 적어두겠다.
OSI 계층은 위키와 인터넷 검색을 참고했다!
OSI 모형 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. OSI 모형의 통신 (3-5계층의 예) OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신
ko.wikipedia.org
OSI 7 계층 (OSI 7 LAYER)
Open System Interconnection 7 Layer - 국제표준화기구(ISO :International Organization for Standardization)에서 개발한 모델- 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층을 나누어 설명한 것 1계층 물리 계층(Phys
hahahoho5915.tistory.com
지식덤프
통신규약은 상호간의 접속이나 전달방식, 통신방식, 주고받을 자료의 형식, 오류검출방식, 코드변환방식, 전송속도 등에 대하여 정해진 약속
www.jidum.com
[네트워크] 데이터 링크 계층(Data Link Layer) - 역할과 기능
데이터 링크의 기능과 프로토콜에 대해 다뤄봐요.
velog.io
1 계층 - 물리 계층
RS-232, RS-422, RS-485와 같은 UART 규격이 이 물리 계층의 예시로 볼 수 있을 것 같다.
이게 무언가 하면...

(이 구분선 사이는 제 생각입니다)
무언가 비슷한 케이블이 떠오르지 않는가?

아무리 봐도, 구형 모니터에 쓰이던 RGB 케이블과 비슷하다..
아무래도, RS232와 같은 UART 통신은 구형 통신 방식이다보니, 그 당시에도 모니터를 띄우는 방식에 있어 RGB를 bit단위로 송수신 하려고 하니 이런 케이블이 생기지 않았을까? 하는 그런 생각이 든다.
그렇다면 현재는 물리 계층을 안 쓰지 않느냐? 할 수 있는데...
우선 임베디드 시스템에서는 아직 쓰는 곳이 있기도 하고, 현재 우리가 쓰는 인터넷 케이블이 물리 계층이라 볼 수 있다.

군 부대 통신병 경험이 있다면 무조건 한 번즘은 찝어봤을 RJ45... 이 RJ로 케이블 찝을 때 외우는 "흰주 주 흰녹 파 ..." 가 사실 통신 규약이라 보면 될 것이다. (그래서 한 쪽은 A, 다른 쪽은 B로 찝는다는 그런 이야기)
2계층 - 데이터 링크 계층
찾아보니, Ethernet, HDLC, PPP가 포함 된다고 한다.
이더넷은 인터넷인가..? 그러면 HDLC, PPP.. 얘네가 뭔데??
우선 간단히 살펴보니, 데이터 링크 계층의 역할은 주로 두 가지가 있다.
- 주소 할당: 물리 계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 한다.
- 오류 감지: 신호가 전달되는 동안 오류가 포함되는지를 감지한다. 오류가 감지되면 데이터 링크 계층은 해당 데이터를 폐기한다.


오호라.. 이제 슬슬 이해가 될 것 같다.
위와 같이 전송하는 데이터를 구조로 되어있을 때, 이 주소들을 정의하는 것이 데이터 링크 계층이라고 볼 수 있는 것 같다. 예를 들어 위 사진의 Ethernet v2 라는 것 자체가 데이터 링크 계층에 사용되는 프로토콜로, 저렇게 보내겠다고 정의한 것이라고 이해하였다.
3계층 - 네트워크 계층
여기는 찾아보니 엄청 많이 나온다..
그런데 IPv4/IPv6를 보자마자 뭔가 알 것 같다.
여기는 IP 주소 관련된 계층이구나!
즉, 192.168.0.1 과 같이 정의를 내린 것이, 이 계층의 프로토콜이라고 생각하였다.
4계층 - 전송 계층
전송은 너무 다양한 프로토콜이 존재한다. TCP, UDP, ATP, SCTP, ....
어우, 어지럽다
위키에 적혀있기로는 어떠한 조건을 갖추어야 전송 계층 프로토콜이라 할 수 있는지에 대한 정의는 아직 명확하지 않다고 한다.
하지만 공통적인 것은 "정보를 전달" 한다는 것이 아닐까? 어찌 보면 이 전송 계층의 프로토콜, 즉 약속은 정보를 전달한다! 가 중요한 것 같다.
그래서 TCP, UDP에 대해 간단히 보고 넘어가는 정도로 해야 이해할 수 있을 것 같다.
TCP (Transmission Control Protocol)
우선 TCP에 관해 간단히 알아보면 다음과 같은 사진 두개를 참조할 수 있겠다.


내가 아는 수준에서 이야기 하자면, 인터넷 간 연결 된 컴퓨터에서 실행되는 프로그램 간 정보를 안정적+순서보장+에러없이 교환할 수 있다. (Sync -> sync+ack -> ack+data와 같은 내용도 있지만 이건.. 일단 PASS. 오늘 정리하는 것의 메인이 아니다)
그래서 www(월드 와이드 웹)에 접속할 때, 이메일 전송 할 때, 파일 전송 할 때 등 파일이 깨지지 않는 것이 중요할 때 사용한다.
1:1 전송이 주 목적이고, 에러가 없는 것이 주 목적인 것만 기억하겠다.. 나중에 따로 CS 정리해야지.
UDP (User Datagram Protocol)
UDP에 관해 간단히 이야기하자면 단순한 방식으로 송 수신 함으로서, 속도를 획득하고 안정성을 포기한 모델이다.

이렇게 보면, TCP에 비해 훨~씬 짧은 패킷 구조를 가지는 것을 알 수 있다.
그래서 보통 이는 도메인 네임 서비스(구글, 네이버 등 이러한 이름을 쓰게 해주는 서비스), 온라인 게임 등에 사용된다고 한다.
즉 여러 곳에 정보를 뿌릴 때 사용한다는 것 같다.
5계층 - 세션 계층
다시 한 번 뇌정지가 온다... 정확히 모르고 다루어 본 적이 없어서 더 그런 것 같다.
어느 정도 찾아보니, 연결을 복구하는 것과 관련된 계층이라고 한다.
여기서 세션 연결 및 설정, 해제, 동기화 등 기능을 한다고 하는데...
우선 유명한, 이름을 들어본 프로토콜을 기준으로 이야기를 하겠다.
L2TP로, VPN을 알아보며 이름을 들어본 프로토콜이다. (보니, UDP와 관련이 있는 건가?)
대강 찾아보니, 호스트가 갑자기 중지되지 않고 정상적으로 호스트를 연결하도록 해주는 계층이고, NetBIOS, SAP, SDP, PIPO, SSH, TLS 등 프로토콜이 존재한다고 한다. 이 약속들의 공통점은 연결 유지로 보면 될 것 같다.
그 연결 유지를 하는 방법은?
L2TP를 예시로 보면 다음과 같은 패킷 교환이 이루어진다.

그래서 이 사진의 중간인 Session Setup을 통해 세션을 유지하고 확인한다는 것으로 이해하였다.
6계층 - 표현 계층
이건 단 한방에 이해할 수 있다고 생각한다.
예시 프로토콜이 너무 잘 알고 있는 것들이기 때문!
그것은 바로.. ASCII
이것을 보고 이해를 못 한다면, 대충
0101001... -> A 로 표현 된다고 이해하면 된다.
정 모르겠으면, JPG 또한 표현 계층의 프로토콜 일종이니, 이런 약속이다 라고 이해하면 될 것 같다!!
7계층 - 응용 계층
인터넷 프로토콜, 즉 IP 기반으로 프로세스 간 통신 접속을 좀 더 쉽게 표현하고 연결하게 도와주는 계층으로, 유명한 프로토콜이 있다.
바로, HTTP.
또, DNS, 즉 Domain Name Service 도 이에 포함된다. 예를 들어 구글, 네이버와 같이 이름으로 표현 하는 것.
구글, 네이버, 유튜브처럼 이름을 지어놓은 것이 해당 IP로 연결되게 해놓은, 이런 연결 방식으로 약속 한 것을 응용 계층의 프로토콜이라고 이해하면 될 것 같다.
여기까지, 내 나름대로 정리한 OSI 7계층에서 존재하는 각각의 프로토콜이다.
물론 틀린 부분도 있을 것이고, 추가 필요한 내용도 많을 것이지만, 우선 내가 대략적으로 이해한 것이 중요하다고 생각한다..
최대한 정보들은 위키를 통해서 찾아보는 것을 권장하고, 사람들이 블로그에 올려놓은 글 들은 교차검증을 반드시 하며 정리하길 바란다!!
'CS 지식 정리' 카테고리의 다른 글
| 구조체란? - C언어 알아보기 (2) | 2025.02.25 |
|---|---|
| MCU 스케줄링(Scheduling)의 이해 및 TC275 기반 실습 (0) | 2025.02.18 |
| AUTOSAR 기반 프로그램Folder Tree 분석 (0) | 2025.02.16 |
| SREC, S-Record란? (0) | 2025.02.10 |
| CS 독학 - 시작 하기 앞서.. (0) | 2025.01.14 |