본문 바로가기
Computer Science/Web & Network

네트워크 프로토콜의 의미, 요소, 기능

by softserve 2023. 2. 14.
반응형

프로토콜

은 약속입니다. 약속의 당사자는 서로 통신을 원하는 송신자들과 수신자들입니다. 프로토콜이 필요한 이유는 정보를 정확히 주고받기 위해서입니다. 가장 흔하면서도 중요한 프로토콜로 HTTP가 있습니다. TCP/IP, ARP, RARP, SMTP 등등 P로 끝나는 단어는 대부분 프로토콜이라고 보면 됩니다.

 

프로토콜의 핵심 요소

로는 구문(Syntax), 의미(Semantic), 타이밍(Timing)이 있습니다.

구문

은 주고 받을 정보의 구조와 형식을 의미합니다. 구문을 통해서 데이터를 어떻게 읽을 것인지, 어떤 순서로 표시될지를 알 수 있습니다.

의미

는 각각의 필드가 어떤 의미를 가지고 있는지 해석합니다. 또 전송 제어와 에러 발생 시 처리 방법을 포함합니다.

타이밍

은 데이터 손실을 막기 위해서 데이터가 언제 전송되어야 하는지, 전송 속도나 순서 등을 조정합니다. 

예를 들어,

철수는 영희에게 "내일 낮 12시에 영화를 보러 가자"라는 메시지를 전달하려고 합니다. 하지만 집안의 반대로 직접 만날 방법이 없어 종이비행기에 암호를 적어 날리려고 합니다.

철수는 자신을 식별할 수 있는 4비트, 시각을 의미하는 4비트, 영화 제목을 의미하는 4비트를 보내려고 합니다. 영희가 철수로부터 전달받은 000012001987이 무슨 뜻인지 알려면 철수와 미리 구문에 대한 약속을 했어야겠죠?

또 0000이 철수를 의미하고, 1200은 낮 12시를 의미하며 1987이 영화 제목을 의미한다고 해석하기 위해서는 각 신호의 의미에 대한 정의가 필요합니다. 추가적으로 중간에 88이 나오면 전송을 중지한다는 의미라는 약속, 마지막 자리 숫자를 각 숫자에 더했을 때 5가 넘으면 변조된 것이라는 약속도 할 수 있겠죠?

가족들의 감시를 피해 담장을 사이에 두고 철수와 영희가 만났습니다. 손이 눈보다 빠른 철수는 1초에 비행기를 10개씩 던지는데 영희는 1초에 하나만을 잡을 수 있습니다. 그럼 9개의 종이비행기는 유실되고 통신은 의미가 없어집니다. 이를 방지하기 위해서 적절히 타이밍을 맞출 필요가 있습니다.

 

프로토콜의 기능

 

Addressing : 통신을 위해서는 당연하게도 주소가 있어야 합니다. 구체적으로 IP와 MAC 주소가 필요합니다. 프로토콜은 각 노드에 고유한 주소를 부여하고 이를 매칭시켜 주는 역할을 합니다.

Connection Control : TCP 연결은 3-way handshake를 통해서 이루어집니다. 먼저 송신자가 "준비됐나?" 요청을 보내면 수신자가 "준비됐다!" 라고 응답을 보내줍니다. 그럼 다시 송신자는 데이터를 보내줍니다. 그리고 연결을 해제합니다. 이렇게 세 차례 대화가 오고 가는 것을 3-way handshake라고 합니다. 이러한 연결 제어 역시 프로토콜의 몫입니다.

Data Flow Control : 수신자 측에서 데이터 흐름을 제어합니다. 너무 많이 보내면 좀 적게 보내라, 너무 빨리 보내면 천천히 좀 보내라 라는 식으로요. 대표적인 예로 TCP에서 사용하는 슬라이딩 윈도우가 있습니다.

Encapsulation : 전송하려는 데이터에 각 계층에서 사용하기 위한 정보를 구분하여 담아놓은 헤더를 첨부하는 것을 말합니다.

Error Control : 에러 발생 여부를 검사하여 스스로 복구하거나 재전송 요청을 보냅니다.

Fragmentation & Reassembly : 대용량 데이터를 전송하는 경우 데이터를 패킷으로 분할하고, 수신측에서 다시 조립하는 과정을 프로토콜을 통해서 할 수 있습니다.

Multiflexing : 효율성을 높이기 위해 하나의 링크를 통해서 여러 신호를 전송합니다. 주파수나, 파장, 시간별로 채널을 할당합니다.

Sequencing : 전송된 패킷에 시퀀스 번호를 부여하여 순서가 뒤섞이지 않도록 합니다. 

Synchronization : 송신자와 수신자 사이에서 통신의 타이밍을 조절합니다.

반응형

'Computer Science > Web & Network' 카테고리의 다른 글

TCP/IP 4계층 모델은 어떻게 사용될까?  (0) 2023.03.16
OSI 7계층 이해하기  (2) 2023.02.17
네트워크 토폴로지  (0) 2023.02.08
네트워크의 의미와 분류  (0) 2023.02.06
[Web] Subresource Integrity  (0) 2023.01.30

댓글