⚡️TCP vs UDP
TCP와 UDP는 OSI 7계층의 전송 계층에서 데이터 전송을 위한 프로토콜입니다.
학부생 때 배웠지만 면접을 대비해서 지금은 가물가물한 TCP와 UDP를 한번 더 공부하고 정리하기로 했습니다.
면접 답변용으로 간략하게 개념과 차이점을 알아보겠습니다.
📌 TCP/IP
TCP와 UDP를 알기 전에 우선적으로 TCP/IP에 대한 개념을 짚고 넘어가야합니다.
TCP/IP는 인터넷 표준 프로토콜로서 OSI 7계층과는 다르게 4계층으로 이루져 있으며,
이 중 전송 계층에서 TCP와 UDP라는 프로토콜이 사용됩니다.
이 프로토콜에서는 대략적으로 송신자와 수신자 간 목적지를 설정하고
데이터를 형식화된 블록인 패킷 형태로 나누어 전송, 나뉘어진 패킷을 조립해 수신하는 역할을 맡습니다.
전송 계층에서는 IP(Internet Protocol)에 의해 송신자와 수신자 간 교환된 데이터에서
패킷의 오류나 유실을 감지하여 재요청함으로써 신뢰성을 보장하는 역할을 합니다.
📌 TCP(Transmission Control Protocol)
TCP는 연결지향형 서비스에 주로 사용되는 프로토콜입니다.
서로 간 연결된 상태에서 데이터를 전송하고 오류가 있거나 유실된 데이터를 검출해 재요청하기 때문에
UDP에 비해 비교적 속도가 느리지만 신뢰할 수 있고 정확한 데이터 전송을 위해 사용됩니다.
수신자의 버퍼 오버플로우를 방지하기 위해 데이터 처리 속도를 조절하는 흐름제어와
네트워크 내 과다한 패킷이 전송되어 혼잡 붕괴 현상이 일어나는 것을 방지하는 혼잡제어를 통해
안정적으로 운용할 수 있도록 도와줍니다.
1:1 통신에 이용되며 주로 메일 서비스나 파일 전송 서비스에 사용됩니다.
🔎 3-way-handshake
TCP는 컴퓨터 간 확실한 연결을 위해 3-way-handshake라는 과정을 거칩니다.
송신자와 수신자간 요청(SYN)과 응답(ACK)을 보내고 받으며 서로의 포트를 연결하게 됩니다.
📌 UDP(User Datagram Protocol)
스타크래프트에서 자주 본 UDP는 TCP와 다르게 비연결형 프로토콜입니다.
최소한의 오류만 검출하고 독립된 패킷을 주고받으며 수신 확인 절차를 거치지 않기 때문에 빠른 속도를 낼 수 있지만
패킷이 유실되어도 확인이나 재요청을 할 수 없기 때문에 신뢰성이 낮다는 단점이 있습니다.
그렇기 때문에 신뢰성 보다는 스타크래프트와 같이 빠른 성능이 필요한 서비스에 주로 이용됩니다.
1:1, 1:N, N:N 통신을 지원하며 주로 스트리밍이나 온라인 게임에 주로 사용됩니다.
'CS' 카테고리의 다른 글
DNS(Domain Name Server), 네임서버란? (0) | 2022.07.13 |
---|---|
HTTP의 구조 (0) | 2022.03.05 |
SSH(Secure Shell Protocol)에 대해 (0) | 2022.03.02 |
기본 자료구조에 대해 (0) | 2022.02.20 |
댓글