프로토콜 (Protocol)
- 원거리의 서로 다른 기기 간의 데이터 교환을 원활히 하기 위해 표준화 시켜놓은 통신 규약입니다.
- 보통 TCP/IP 를 많이 사용하며, 대표적으로 IEEE, ISO 기관에서 프로토콜을 정의합니다.
- 통신을 제어하기 위해 표준 규칙과 절차의 집합으로, H/W, S/W, 문서를 모두 규정합니다.
기본 요소
구문(Syntax) : 전송하고자 하는 데이터 형식, 부호화, 신호 레벨 규정
의미(Semantics) : 두 기기 간 효율적이고 정확한 정보 전송을 위한 협조 사항, 오류 관리를 위한 제어 정보 규정
시간(Timing) : 두 기기 간 통신 속도, 메시지 순서 제어 규정
프로토콜 기능
단편화와 재결합 :
- 단편화 : 전송에 알맞은 크기로 데이터를 자르는 작업
- 재결합 : 수신 측에서 단편화된 블록을 원래의 데이터로 결합하는 작업
캡슐화 : 단편화된 데이터에 송*수신지 주소, 오류 검출 코드, 프로토콜 제어 정보 등의 정보를 부가하는 것
흐름 제어 : 수신측의 처리 능력에 따라 송신 측에서 데이터 전송량이나 전송속도를 조절하는 기능
오류 제어 : 전송 중 발생한 오류를 검출하고 정정해서 데이터나 제어 정보의 파손에 대비하는 기능
동기화 : 송/수신 측이 같은 상태를 유지하도록 타이밍(Timing)을 맞추는 기능
순서 제어 : 데이터 블록에 전송 순서를 부여 => 연결 위주의 데이터 전송 방식에만 사용
주소 지정 : 데이터에 목적지 이름, 주소, 경로를 부여하는 기능
다중화 : 한 개의 통신 회선을 여러 가입자들이 동시에 사용하도록 하는 기능
그 외에도 경로 제어, 전송 서비스 등이 있습니다.
OSI 7계층
국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 7계층으로 나누어 설명한 것입니다.
계층을 나눔으로써 통신 중 이상이 발생하면 해당 계층만 수정하면 된다는 이점이 있습니다.
또한 OSI 7 계층 중 인터넷 환경에서는 대부분 IP를 기반으로 TCP 통신을 하기 때문에 TCP/IP를 기준으로 만들어진 4계층 구조가 있습니다.
계층 | 기능 | 단위 | TCP/IP |
응용 계층 (Application Layer) |
사용자가 네트워크에 접근할 수 있도록 서비스 제공. ex) 메일 전송, 인터넷 접속 | Message | 응용 계층 - 응용 프로그램 간 데이터 송/수신 제공 - TELNET, FTP, SMTP, SNMP, DNS, HTTP , SSH 등 |
표현 계층 (Presentation Layer) |
- 데이터를 하나의 표현 형태로 변환 - JPEG, MPEG, 파일 인코딩, 압축, 암호화 |
||
세션 계층 (Session Layer) |
- 통신 세션을 구성하는 계층이자 포트(Port)연결 - 통신장치 간의 상호작용을 설정하고 유지하며 동기화 한다. - 양 종단 간 세션 생성, 유지, 종료에 필요한 기능 제공 (일회용 논리적 연결) - 암호화기능, 로그인기능, 호스트 인증 기능 등 - TCP 세션 |
||
전송 계층 (Transport Layer) |
송/수신자 간 메시지 전송의 제어와 오류 관리 - 포트 정보 참조해 데이터 전송. 통신 제공. - 흐름 제어, 중복 검사 오류 검출 및 복구 |
Segment | 전송 계층 - 통신 노드 간 신뢰성 있는 통신 제공 - TCP, UDP |
네트워크 계층 (Network Layer) |
전송 데이터의 목적지 지정 & 경로 설정. - IP 기반으로 패킷 전송 경로 설정 |
Packet | 인터넷 계층 - 데이터 전송을 위한 논리적 주소 및 경로 지정하여 통신 노드 간 IP 패킷 전송 - IP, ARP, RARP |
데이터 링크 계층 (Data Link Layer) | 네트워크 사이에 오류 없이 프레임을 전송. MAC 주소를 이용해 정확장한 장치로 통신/ 오류 감지/재전송 |
Frame | 네트워크 엑세스 계층 - 실제 데이터(Frame) 송/수신하는 역할 - EHthernet, IEEE 802, HDLC 등 |
물리 계층 (Physical Layer) |
전기적 신호를 사용해 Bit로 전송하기 위해 요구되는 기능 조정 | Bit |
HTTP, TCP, IP와 같은 프로토콜들은 각자 자신이 맡은 역할이 있고, 보내고자 하는 데이터에 자신의 헤더를 붙혀서 데이터의 정보를 표현합니다.
'Computer Science' 카테고리의 다른 글
[Network] TCP/UDP (0) | 2022.04.25 |
---|---|
멀티 프로세스와 멀티 스레드 (feat. 아파치와 톰캣) (0) | 2022.04.18 |
프로세스(Process)와 스레드(Thread) (0) | 2022.03.14 |
링킹 (Dynamic Linking vs Static Linking) (2) | 2022.02.17 |