반응형
1. 프로토콜이란?
프로토콜(Protocol)이란 네트워크에서 노드와 노드가 통신할 때 어떤 노드가 어떤 노드에게 어떤 데이터를 어떻게 보내는지 작성하기 위한 양식이다.
다른 사람에게 물건을 보낼 때에 빗대어 생각하면 이해가 쉽다.
상황에 따라 물건을 택배를 통해서 전달할 수도, 퀵 서비스를 통해서 전달할 수도 있다.
또한 물건을 보낼 때는 보내는 사람의 주소와 받는 사람의 주소를 정확히 적어야 한다.
여기서 물건을 데이터, 택배와 퀵 서비스를 프로토콜이라고 생각할 수 있다.
대표적인 전송 계층*의 프로토콜인 TCP, UDP에 대해 알아보자.
* 전송 계층 : end point 간 신뢰성 있는 데이터 전송을 담당하는 네트워크의 계층
- 신뢰성 : 데이터를 순차적, 안정적으로 전달한다.
- 전송 : 포트 번호에 해당하는 프로세스에 데이터를 전달
2. TCP (Transmission Control Protocol)
- 신뢰성 있는, 순차적인 데이터 전송을 보장한다.
- 데이터를 확실히 전달하기 위해 일대일로 통신한다.
- 흐름제어(flow control) : 데이터를 수신자가 받아들일 수 있는 속도로 보낸다.
(e.g. 슈퍼컴퓨터에서 286 컴퓨터에 데이터를 보낸다고 가정할 때, 286 컴퓨터에 맞춰 보낸다.) - 혼잡제어(congestion control) : 데이터를 네트워크 상황에 맞춰서 보낸다.
- 사용 예
- 데이터 간의 신뢰성이 중요한 프로그램의 통신에 사용된다.
- e.g. Web을 위한 HTTP (HTTP/3부터는 UDP 사용), 메일 송수신을 위한 SMTP
3. UDP (User Datagram Protocol)
- 데이터를 빠르게 전달하는 것을 목표로 하는 프로토콜이다.
- connectionless : TCP처럼 사전에 의논하지 않고 일방적으로 데이터를 보낸다.
- 흐름제어, 혼잡제어를 제공하지 않는다.
- 사용 예
- 실시간으로 데이터가 오고 가는 서비스에 주로 사용된다.
- e.g. 음악·동영상 스트리밍, 인터넷 전화
🌟 내용에 오류가 있다면 댓글 달아주시면 감사하겠습니다.
References
http://www.kocw.net/home/cview.do?cid=6166c077e545b736
고승원 외 21명, 『개발자가 되기 위해 꼭 알아야 하는 IT 용어』
반응형
'프로그래밍 > CS' 카테고리의 다른 글
[디자인패턴] Strategy Pattern (전략 패턴) (0) | 2022.07.29 |
---|---|
[디자인패턴] Dependency Inversion (의존성 역전) (0) | 2022.07.27 |
[디자인패턴] Cohesion (응집도), Coupling (결합도) (0) | 2022.07.26 |
[네트워크] OSI 7계층 모델 (0) | 2022.07.25 |
[네트워크] 네트워크 구성, 데이터 교환 방식, 패킷 지연/유실 (2) | 2022.07.11 |