프로토콜이란
컴퓨터 사이에서 메시지를 전달하는 과정이다.
예를 들어서 이스라엘 사람과 시리아 사람이 서로 대화를 할 때 언어가 다르니 서로 영어를 사용하기로 했다. 이때 영어가 프로토콜이라고 할 수 있다.
프로토콜의 3요소
언어에는 단어 문법 등등이 있듯이 프로토콜에도 구문, 의미, 타이밍이 있다.
이 3가지가 정해져야지 서로 교환이 가능하다.
- 구문
구문은 주+동+보 같은 것을 의미한다.
데이터의 구조나 포맷을 의미한다.
데이터의 이 부분은 이것을 의미하고 저 부분은 저것을 의미한다는 구문을 갖고 있다.
예를 들어서 앞 4비트는 목적지 주소, 중간 8비트는 전송 데이터라고 정의하는 것이다. - 의미
데이터의 각 부분이 무엇을 뜻하는지 알 수 있게 미리 정해둔 규칙이다.
이 규칙은 오류 제어, 동기 제어, 흐름 제어를 포함한다.
예를 들어서 앞 4비트는 정상혁 입이고, 중간 4비트는 햄버거을 의미한다고 말할 수 있다. - 순서
어떤 데이터를 보낼 것인지와 얼마나 빠르게 보낼 것인가를 의미한다.
프로토콜의 기능
프로토콜은 각각 제공하는 기능이 다르다. 하지만 공통적으로 제공하는 기능이 있다.
- 주소 설정
각 전송 계층에 맞는 송수신자의 주소를 설정하는 기능이다.
데이터를 보내려면 상대방의 주소가 필요한데, 정상이 아닌 값을 보내면 네트워쿠 시스템에 혼란을 줄 수 있다. - 순서 제어
데이터 단위를 전송할 때 보내지는 순서를 제어하는 기능이다.
순서 제어를 하는 이유는 전달, 흐름 제어, 오류 제어를 위해서 이다. 순서가 정해진 PDU(Protocol Data Unit)를 수신했을 때 잘못된 PDU면 재전송을 요청하는데 이때 이상한 패킷을 보내면 시스템을 과부하 시킬 수 있다. - 단편화와 재조합
대용량 파일을 한 번에 전송하기에는 한계가 있다.
이때 단편화와 재조합이 필요하다. 전송 효율이 높은 작은 단위로 나눠서 전송하고, 다시 파일을 사용하기 위해 재조합하는 기능이다.
데이터 분할 기능으로 대량의 패킷을 보내거나 재조합이 불가능한 테이터를 보내 혼란시킬 수 있다. - 캡슐화
캡슐화는 전송하는 대이터의 제어정보에 송신자와 수신자 주소, 오류 검출 코드, 프로토콜 제어 정보 등을 덧붙이는 게 캡슐화이다. - 연결 제어
연결을 설정하는 데이터 교환은 연결형 데이터 전송이고, 연결을 설정하지 않는 방식이 비연결형 데이터 전송이다.
연결형 데이터 전송은 연결 설정, 데이터 전송, 연결 해제라는 3단계로 이루어져 있다. 대표적인 예시가 TCP이다.
연결 제어는 연결 설정, 데이터 전송, 연결 해제를 통제한다.
비연결형 데이터 전송은 대표적인 예시로 UDP가 있다.
이렇게 전송되는 데이터를 흔이 데이터그램 이라고 부른다. - 흐름 제어
송신에서 오는 데이터의 양이나 속도를 조절하는 기능이다.
만약 송신측과 수신측이 속도 차이가 나면 정보가 유실될 수 도 있어서 흐름제어가 필요하다. 흔히 정지-대기라는 방법과 슬라이딩 윈도우라는 방법이 있다. 정지-대기 흐름 제어 기법은 패킷 하나를 보낸 후 패킷에 대한 응답이 와야지 다음 패킷을 보내는 방식이다. 슬라이딩 윈도우는 데이터 분량의 패킷을 한번에 보낸 후 응답 패킷을 받으면 다시 그만큼의 데이터를 보내는 것이다. - 오류 제어
데이터를 교환할 때 SDU(Service Data Unit)이나 PCI(Protocol Control Information)에 오류를 검사하는 것이다. 양 측에서 데이터를 교환할 때 SDU나 PCI에 대한 오류를 발견하는 기법이다. 오류 제어는 순서를 검사하거나 정해진 시간 안에 받지 못하면 재전송을 요청하는 방식이다. - 동기화
송수신하는 두 개체 간에 데이터를 전송할 때 두 개체가 동시에 정의된 인자 값을 공유해 서로의 상태를 일치시키는 것이다.
이는 두 개체가 정보를 송수신할때 서로의 호흡을 맞추는 것 이라고 말할 수 있다. - 다중화
통신 선로 하나에서 여러 시스템을 동시에 통신할 수 있는 기법을 다중화 하고 한다. - 전송 서비스
전송 서비스는 우선순위 결정,서비스 등급, 보안 요구 등을 제어하는 서비스 이다.
'Network' 카테고리의 다른 글
해커처럼 IP 주소를 추적하는법! (0) | 2023.08.30 |
---|---|
Who is Whois? (0) | 2023.08.26 |
네트워크 계층 구조란? (OSI 7계층) (0) | 2023.08.18 |
패킷트레이서 사용해보기 (0) | 2023.08.15 |
네트워크가 뭐야? (0) | 2023.08.01 |