프로토콜(Protocol)
통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 통신 규약 및 약속이다.
프로토콜의 기본 요소
- 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
- 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
- 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정
프로토콜 종류
OSI 7계층 Layer
계층 | 설명 | 프로토콜 | |
상위계층 |
응용(Application) | 사용자 친화 환경 제공(이메일, 웹 등) | HTTP, SMTP, FTP, Telnet |
표현(Presentation) | 코드 문자 등을 번역하여 일관되게 전송하고 압축, 해제, 보안 기능도 담당 | ASCII, MPEG, JPEG, MIDI | |
세션(Session) | 송신, 수신 간의 논리적 연결 | NetBIOS, SAP, SDP, NWLink | |
전송(Transport) | 송신, 수신 프로세스 간의 연결 | TCP, UDP, SPX | |
하위계층 |
네트워크(Network) | 다수의 중개 시스템 중 올바를 경로를 선택하도록 지원 | IP, IPX |
데이터 링크(Data Link) | 오류와 흐름을 제거하여 신뢰성 있는 데이터를 전송 | Ethernet, Token Ring, FDDI, Apple Talk | |
물리(Physical) | 실제 장비들을 연결하기 위한 연결 장치 | 없음 |
프로토콜의 기능
✅ 단편화(Fragmentation)와 재합성(Assembly)
단편화 : 송신 측에서는 긴 데이터 블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록으로 나누어 전송
재합성 : 수신 측에서 쪼개진 작은 데이터 블록을 재합성하여 원래의 메시지로 복원하는 기능
✅ 캡슐화(Encapsulation)
각 프로토콜에 적합한 데이터 블록을 만들려고 데이터에 정보를 추가하는 것
플래그, 주소, 제어 정보, 오류 검출 부호 등을 부착하는 기능
✅ 연결 제어(Connection Control)
비연결 데이터 전송(데이터그램)과 연결 위주 데이터 전송(가상회선)을 위한 통신로를 개설·유지·종결하는 기능
✅ 흐름 제어(Flow Control)
데이터양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 기능
✅ 오류 제어(Error Control)
데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출하고 정정하는 기능
✅ 순서 결정(Sequencing)
연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 단위 순서대로 수신 측에 전달하는 기능
✅ 주소 설정(Addressing)
발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달하는 기능
✅ 동기화(Synchronization)
두 통신 객체의 상태(시작, 종류, 검사 등)를 일치시키는 기능
✅ 다중화(Multiplexing)
하나의 통신로를 여러 개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜 다수의 가입자가 동시에 사할 수 있도록 하는 기능
✅ 전송 서비스(Transmission Service)
통신 객체를 사용하기 쉽도록 별도로 추가 서비스(패리티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공하는 기능
TCP/IP(Transmission Control Protocol/Internet Protocol)
인터넷에 연결된 서로 다른 기종의 컴퓨터들 간에 데이터를 주고받을 수 있도록 하는 표준 프로토콜이다.
TCP(Transmission Control Protocol) | - OSI 7계층의 전송 계층에 해당한다. - 신뢰성 있는 연결형 서비스를 제공한다. - 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공한다. |
IP(Internet Protocol) | - OSI 7계층의 네트워크 계층에 해당한다. - 데이터그램을 기반으로 하는 비연결형 서비스를 제공한다. - 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공한다. |
❓ 패킷(Packet)이란?
💡패킷은 전송 혹은 다중화를 목적으로, 메시지를 일정한 비트 수로 분할하여 송,수신 측 주소와 제어 정보 등을 부가하여 만든 데이터 블록이다. 인터넷과 같은 컴퓨터 네트워크를 통해 전송되는 데이터는 작은 단위의 패킷으로 나뉘어 전송하고 이를 수신하는 기기에서 재조합하는 과정을 거치게 된다.
'[IT 지식] > 컴퓨터과학' 카테고리의 다른 글
[데이터베이스] 속성(Attribute) 정리 (0) | 2023.01.14 |
---|---|
[데이터베이스] 엔터티(Entity) 정리 (0) | 2023.01.14 |
[데이터베이스] 데이터 모델링의 이해 (0) | 2023.01.13 |
[OS] 운영체제 정리 (0) | 2023.01.12 |
[원티드 프리온보딩 챌린지] 사전과제 (0) | 2022.09.20 |