프로토콜(Protocol)
💡 컴퓨터 네트워크에서의 프로토콜은 서로 다른 시스템이나 기기들 간의 데이터 교환을 원할히 하기 위해 표준화된 통신 규약
프로토콜의 기본 요소
기본 요소 | 설명 |
구문(Syntax) | 시스템 간의 정보 전송을 위한 데이터 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정 |
의미(Semantic) | 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 규정 |
타이밍(Timing) | 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리를 규정 |
프로토콜의 특징
단편화(Fragmentation)
전송이 가능한 작은 블록으로 나누어지는 기법
네트워크를 통해 전송되는 데이터는 여러 이유로 작게 분할될 필요가 있다.
예를 들어, 각 네트워크는 최대 전송 단위(MTU)가 다를 수 있기 때문에, MTU보다 큰 데이터는 전송할 수 없다.
이때, 데이터를 여러 작은 패킷으로 나누어 전송하게 된다.
단편화된 패킷은 수신자가 다시 재조립하여 원래의 데이터를 복원한다.
재조립(Reassembly)
단편화되어 온 조각들을 원래 데이터로 복원하는 기법
단편화된 패킷은 순서에 따라 재조립되며, 수신자는 모든 패킷이 도착하면 데이터를 원래 상태로 복원한다.
캡슐화(Encapsulation)
상위 계층의 데이터에 각종 정보를 추가하여 하위 계층으로 보내는 기법
각 계층에서는 데이터에 헤더나 트레일러를 추가하여 필요한 제어 정보를 포함시키며, 이를 통해 계층 간 통신이 가능해진다.
데이터가 송신 측에 전송될 때는 캡슐화 과정을 거치고, 수신 측에서는 이를 역캡슐화(Decapsulation)하여 원래의 데이터를 복원한다.
연결 제어(Connection Control)
데이터의 전송량이나 속도를 제어하는 기법
연결 지향 프로토콜은 통신을 시작하기 전에 연결을 설정하고, 통신이 끝나면 연결을 종료한다.
반면, 비연결 지향 프로토콜은 연결을 설정하지 않고 데이터를 전송한다.
TCP는 연결 지향적으로 송신자와 수신자가 통신하기 전에 3-way 핸드셰이크를 통해 연결을 설정하고
UDP는 비연결 지향적으로 연결 없이 데이터를 전송한다.
흐름 제어(Flow Control)
데이터 양이나 통신 속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 기법
송신자가 데이터를 너무 빠르게 전송하면, 수신자의 버퍼가 가득 차거나 데이터 손실이 발생할 수 있다.
이를 방지하기 위해 흐름 제어가 필요하다.
오류 제어(Error Control)
전송 중 잃어버리는 데이터나 오류가 발생한 데이터를 검증하는 제어 기법
전송된 데이터가 손상되거나 누락되었을 때, 이를 복구하거나 재전송을 요청하는 방식으로 데이터 무결성을 보장한다.
오류 검출 방법으로는 체크섬, 패리티 비트, CRC(Cyclic Redundancy Check) 등이 있으며,
오류가 발견되면 재전송 요청(NAK) 또는 오류 수정(FEC) 방식으로 문제를 해결한다.
동기화(Synchronization)
송신과 수신 측의 시점을 맞추는 기법
송신자와 수신자가 데이터를 동일한 타이밍에 맞추어 전송하고 처리할 수 있도록 조정하는 과정이다.
양측이 동일한 상태에서 데이터를 주고받을 수 있도록 세션을 설정하고, 타이밍을 맞춘다.
다중화(Multiplexing)
하나의 통신 회선에 여러 기기들이 접속할 수 있는 기법
하나의 물리적 링크를 통해 여러 개의 논리적 데이터 흐름을 동시에 전송하는 기술이다.
여러 응용 프로그램이 동시에 네트워크를 사용하더라도, 각 흐름을 식별하고 병목 현상 없이 전송할 수 있도록 도와준다.
네트워크의 자원을 효율적으로 사용할 수 있게 해주며, 각 데이터 흐름을 포트 번호 등을 통해 구분하여 전송한다.
주소 지정(Addressing)
송신과 수신지의 주소를 부여하여 정확한 데이터 전송을 보장하는 기법
네트워크 상에서 통신 주체를 식별하기 위한 방식이다.
데이터를 주고받기 위해서는 송신자와 수신자의 주소가 필요하며, 이를 통해 목적지로 데이터를 정확하게 전달할 수 있다.
주소 지정 방식은 물리적 주소(MAC 주소)와 논리적 주소(IP 주소)로 나눌 수 있다.
물리적 주소는 네트워크 장비의 고유 식별자이고, 논리적 주소는 네트워크 상에서 위치를 나타낸다.
프로토콜의 예시
FTP(File Transfer Protocol) - 파일 전송, 제어
- 포트 번호 : 20(데이터 포트), 21(제어 포트)
- 파일을 전송하기 위한 프로토콜로, 파일 전송(데이터)와 제어(명령어 전달)를 위한 두 개의 포트를 사용한다.
- 주로 서버와 클라이언트 사이에 대용량 파일을 주고받을 때 사용된다.
- ex. 웹 서버에 파일 업로드 및 다운로드
SSH(Secure Shell) - 원격 접속 보안
- 포트 번호 : 22
- 원격 접속을 안전하게 수행하기 위한 프로토콜이다.
- 암호화된 통신을 제공하여, 원격 서버에 로그인하거나 명령을 실행하고 파일을 전송하는 데 사용된다.
- ex. 원격 서버 접속 및 명령어 실행
SMTP(Simple Mail Transfer Protocol)
- 포트 번호 : 25
- 이메일을 전송하는 프로토콜이다.
- 메일 서버 간의 이메일 전송을 처리하며, 클라이언트가 이메일을 발송할 때도 사용된다.
- ex. Gmail에서 이메일 보내기
DHCP(Dynamic Host Configuration Protocol)
- 포트 번호 : 67(서버 포트), 68(클라이언트 포트)
- 네트워크 상의 장치에 IP 주소를 자동으로 할당하는 프로토콜이다.
- 서버와 클라이언트 간에 IP 주소 및 기타 네트워크 구성 정보를 동적으로 제공하고 관리한다.
- ex. 네트워크에 연결 시 자동으로 IP 주소 받기
HTTP(Hyper Text Transfer Protocol)
- 포트 번호 : 80
- 웹 브라우저와 서버 간에 웹 페이지(HTML) 등의 데이터를 주고받기 위한 비보안 통신 프로토콜이다.
- 주로 웹 페이지를 열거나 다른 리소스를 요청하는 데 사용된다.
- ex. 웹 브라우저로 웹 사이트 접속 http://example.com
IMAP(Internet Message Access Protocol)
- 포트 번호 : 143
- 이메일 수신을 처리하는 프로토콜이다.
- 클라이언트가 메일 서버에 저장된 이메일을 원격으로 관리하고 동기화할 수 있도록 해준다.
- 이메일을 서버에 저장하면서 여러 장치에서 이메일에 접근할 수 있다.
- ex. Gmail에서 이메일 확인하기
SNMP(Simple Network Management Protocol)
- 포트 번호 : 161(에이전트), 162(매니저)
- 네트워크 관리 프로토콜로, 네트워크 장비(라우터, 스위치 등)의 상태를 모니터링하고 관리하기 위해 사용된다.
- 네트워크 장치에서 상태 정보를 수집하고 장애를 진단하는 데 유용하다.
- ex. 네트워크 장치의 상태 모니터링 및 관리
HTTPS(Hyper Text Transfer Protocol Secure)
- 포트 번호 : 443
- HTTP의 보안 버전으로, SSL 또는 TLS를 통해 암호화된 통신을 제공한다.
- 주로 민감한 정보를 주고받는 웹사이트에서 사용되며, 데이터의 기밀성과 무결성을 보장한다.
- ex. 보안이 필요한 웹 사이트 접속
TELNET
- 포트 번호 : 23
- 원격지에 있는 시스템에서 원격 접속을 할 수 있도록 해주는 프로토콜이다.
- 암호화되지 않은 텍스트로 데이터를 주고받기 때문에 보안에 취약하여, 요즘은 SSH로 많이 대체되었다.
- ex. 원격 서버 접속(보안 취약)
DNS(Domain Name System)
- 포트 번호 : 53
- 도메인 이름을 IP 주소로 변환해주는 시스템이다.
- 예를 들어, 사용자가 www.example.com에 접속하면, DNS는 해당 도메인 이름을 서버의 IP 주소로 변환하여 웹사이트에 접속할 수 있도록 도와준다.
- ex. 웹 브라우저에서 도메인 입력 후 사이트 접속
POP3(Post Office Protocol 3)
- 포트 번호 : 110
- 이메일 수신을 위한 프로토콜이다.
- 서버에서 이메일을 내려받아 로컬 장치에 저장하며, 이메일을 로컬에 보관하는 방식을 채택한다.
- 서버에는 이메일이 남지 않으며, 이메일을 다운받으면 삭제된다.
- ex. 이메일을 서버에서 다운로드하여 로컬에서 읽기
IRC(Internet Relay Chat)
- 포트 번호 : 194
- 실시간 채팅을 위한 인터넷 프로토콜이다.
- 실시간 텍스트 기반 통신을 제공하며, 여러 사용자가 대화방에 참여하여 텍스트 메시지를 주고받을 수 있다.
- ex. 실시간 채팅 및 그룹 대화
프토로콜의 예시 요약
- FTP : 파일 전송을 위한 프로토콜 (포트번호 : 20, 21)
- SSH : 안전한 원격 접속을 위한 프로토콜 (포트번호 : 22)
- SMTP : 이메일 전송을 위한 프로토콜 (포트번호 : 25)
- DHCP : 동적 IP 주소 할당을 위한 프로토콜 (포트번호 : 67, 68)
- HTTP : 웹 페이지 전송을 위한 비보안 프로토콜 (포트번호 : 80)
- IMAP : 이메일 수신 및 관리 프로토콜 (포트번호 : 143)
- SNMP : 네트워크 장치 관리 프로토콜 (포트번호 : 161, 162)
- HTTPS : 암호화된 웹 통신을 위한 프로토콜 (포트번호 : 443)
- TELNET : 비보안 원격 접속을 위한 프로토콜 (포트번호 : 23)
- DNS : 도메인 이름을 IP 주소로 변환하는 프로토콜 (포트번호 : 53)
- POP3 : 이메일 수신 프로토콜 (포트번호 : 110)
- IRC : 실시간 채팅 프로토콜 (포트번호 : 194)
'certification > 정보처리산업기사' 카테고리의 다른 글
[DB] 트랜잭션의 4가지 특성(ACID) (1) | 2024.10.20 |
---|---|
[Network] ARQ (1) | 2024.10.20 |
[SW] V-모델과 테스트 레벨 (0) | 2024.10.19 |
[SW] 테스트 시각에 따른 분류(검증, 확인) (0) | 2024.10.19 |
[SW] 테스트 기법에 따른 분류(화이트박스 테스트, 블랙박스 테스트) (0) | 2024.10.19 |