-
[CS/Network] TCP와 UDP의 차이 / TCP 3, 4 way-handshakeCS/네트워크 2025. 2. 27. 15:45
• TCP와 UDP의 차이
- TCP는 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만, 속도가 비교적 느리다는 단점이 있습니다.
- UDP는 비연결형 서비스로 3-way handshaking을 사용하지 않기 때문에 신뢰성이 떨어지는 단점이 있지만, 데이터 수신 여부를 확인하지 않기 때문에 속도가 빠르다는 장점이 있습니다.
- TCP는 신뢰성이 중요한 파일 교환과 같은 경우에 쓰이고, UDP는 실시간성이 중요한 스트리밍에 자주 사용됩니다.
프로토콜 종류 TCP UDP 연결 방식 연결형 서비스 비연결형 서비스 패킷 교환 방식 가상 회선 방식 데이터그램 방식 전송 순서 전송 순서 보장 전송 순서가 바뀔 수 있음 수신 여부 확인 수신 여부를 확인함 수신 여부를 확인하지 않음 통신 방식 1:1 통신 1:1 or 1:N or N:N 통신 신뢰성 높음 낮음 속도 느림 빠름 • TCP 통신은 종료 시에도 3-way handshaking을 사용?
- TCP는 3-way handshaking 과정을 통해 연결을 설정하고, 4-way handshaking 과정을 통해 연결을 해제합니다.
• 3 way-handshake (연결 성립)
- 클라이언트가 서버에게 SYN 패킷을 보냅니다. (seq=x)
- 서버가 SYN(x)을 받고, 클라이언트로 받았다는 신호인 ACK와 SYN 패킷을 보냅니다. (seq=y, ACK=x+1)
- 클라이언트는 서버의 응답은 ACK(x+1)와 SYN(y) 패킷을 받고, ACK(y+1)를 서버로 보냅니다.
이렇게 3번의 통신이 완료되면 연결이 성립됩니다.
• 4 way-handshake (연결 해제)
- 클라이언트는 서버에게 연결을 종료한다는 FIN 플래그를 보냅니다.
- 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트에게 보냅니다. (이때 모든 데이터를 보내기 위해 CLOSE_WAIT 상태가 됩니다.)
- 데이터를 모두 보냈다면, 연결이 종료되었다는 FIN 플래그를 클라이언트에게 보냅니다.
- 클라이언트는 FIN을 받고, 확인했다는 ACK를 서버에게 보냅니다. (아직 서버로부터 받지 못한 데이터가 있을 수 있으므로 TIME_WAIT을 통해 기다립니다.)
- 서버는 ACK를 받은 이후 소켓을 닫습니다. (Closed)
- TIME_WAIT 시간이 끝나면 클라이언트도 닫습니다. (Closed)
이렇게 4번의 통신이 완료되면 연결이 해제됩니다.
* 위 글은 아래 문서를 참고해 작성했습니다.
https://dev-coco.tistory.com/161
신입 개발자 기술면접 질문 정리 - 네트워크
💡 HTTP 프로토콜에 대해 설명해주세요. HTTP(Hyper Text Transfer Protocol)이란 데이터를 주고 받기 위한 프로토콜이며, 서버/클라이언트 모델을 따릅니다. HTTP는 상태 정보를 저장하지 않는 Stateless의 특
dev-coco.tistory.com
tech-interview-for-developer/Computer Science/Network/TCP 3 way handshake & 4 way handshake.md at master · gyoogle/tech-intervi
👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.
github.com
'CS > 네트워크' 카테고리의 다른 글
[CS/Network] 웹 동작 방식 이해 : https://www.google.com/ 을 접속할 때 일어나는 일 / 3 way-handshake와 4 way-handshake (0) 2025.02.25 [CS/Network] 쿠키(Cookie)와 세션(Session)의 차이점 (0) 2025.02.24 [CS/Network] HTTP 프로토콜 / HTTP와 HTTPS의 차이점 (0) 2025.02.22 [CS/Network] GET과 POST의 차이점 / HTTP Method (0) 2024.10.29