TCP/UDP 모두 OSI 7 Layer 중 Transport layer에서 사용하는 기술입니다.
TCP는 3-way handshake 과정을 통해 연결을 설정하고 4-way handshaker과정을 통해 해제합니다.
TCP는 흐름 제어를 위해 보편적으로 Sliding Window 방식을 사용합니다. 한 번에 처리할 수 있는
데이터를 정해 놓고, 보내고, 응답받고, 윈도우를 밀어내는 방식을 반복해서 전송합니다.
이 때, Receiver는 Sender로 ACK을 보냅니다. ACK을 보낼 때, Seq번호를 순차적으로 같이
전송하기 때문에 Sender는 같은 Seq번호의 ACK이 여러 번 도착할 경우 문제가 발생한 것을
알 수 있습니다.
TCP는 세그먼트가 손실되었거나 훼손된 경우 를 통해 Go-Back-ARQ 등을 통해 재전송합니다.
네트워크가 혼잡해지지 않도록, Slow Start등의 혼잡제어 기법또한 사용합니다.
UDP에는 이러한 제어가 존재하지 않습니다.
TCP와 UDP 모두Checksum을 이용해서 전송받은 데이터가 정확한지 검증하는 과정을 거칩니다.
TCP는 연결 지향형 프로토콜로, HTTP, FTP등에서 주로 사용하며 속도가 느리나 신뢰성을 보장합니다.
UDP는 그 반대로, 순서와 확실한 전송이 보장되지 않지만, 속도가 빠르고 헤더 크기가 작습니다.
UDP는 DNS, 일부 실시간 동영상 서비스, 응답속도가 중요한 게임 등에서 사용합니다.
다른 Transport Layer의 프로토콜로는 QUIC가 있습니다.
HTTP/3에서 사용하며, UDP기반이지만 신뢰성을 보장해줍니다.
'공부 정리 > 면접 준비' 카테고리의 다른 글
[ 인공지능 ] Loss Surface란? (0) | 2023.03.01 |
---|---|
[ 데이터 베이스 ] RDBMS와 NOSQL의 특징에 대해서 설명해 보세요. (0) | 2023.02.26 |
[ 인공지능 ] 머신러닝과 딥러닝의 차이점은? (0) | 2023.02.24 |
[ 운영체제 ] Process와 Thread의 특징에 대해 설명해 보세요. (0) | 2023.02.22 |
[보이저엑스 - 인공지능] Gradient Descent란? (0) | 2023.02.21 |