참고 ) TCP와 UDP의 특징을 설명해 보세요.
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기반이지만 신뢰성을 보장해줍니다.
-----
3-way handshake
1. Server는 Listen상태, Client에서 SYN(M) 전송
2. Server는 응답을 받고 SYN_RCV로 상태 전환, ACK(N+1),SYN(N) 전송
3. Client는 Established 상태로 전환, ACK(N+1)전송
4. Server는 ACK을 받고 서버는 Established 상태로 전환
4-way handshake
1. Client는 FIN 전송
2. Server는 FIN을 받고 TIMEOUT으로 상태 전환, 일단 ACK전송
3. Server는 나머지 데이터 모두 전송 후 FIN 전송
4. Client는 FIN받고, ACK전송
5. Server는 ACK을 받고 소켓 Close
6. Client는 Time wait으로 일정 기간 대기 이후 Close
## 무성님
'공부 정리 > 면접 준비' 카테고리의 다른 글
[ 디자인패턴 ] IoC와 DI (0) | 2025.01.06 |
---|---|
[C#] LINQ의 지연 실행에 대해 (0) | 2025.01.06 |
[ 네트워크 ] DNS서버에 요청하는 과정을 자세하게 설명해 보세요. (1) | 2023.05.10 |
[ 네트워크 ] 웹사이트에 접속할 때 무슨 일이 일이 일어나는지 설명해 보세요. (0) | 2023.05.10 |
[ 데이터 베이스 ] Consistent Hashing에 대해서 설명해 보세요. (0) | 2023.05.01 |