← 전체 목록
📦

TCP/IP

프로토콜신뢰할 수 있는 연결 지향 전송 프로토콜

아키텍처 다이어그램

① SYN② SYN-ACK③ ACK연결 완료💻Client🖥️Server1️⃣SYN2️⃣SYN-ACK3️⃣ACK📨Data Transfer

점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다

왜 필요한가요?

인터넷에서 패킷은 서로 다른 경로로 이동하다 손실되거나 순서가 바뀔 수 있습니다. 데이터가 완전히 도착했는지, 올바른 순서로 왔는지 보장이 없으면 신뢰할 수 있는 통신을 만들 수 없습니다. 각 애플리케이션이 손실 처리를 직접 구현하는 것은 중복 작업이고 오류가 생기기 쉽습니다.

안에서 어떻게 동작하나요?

TCP는 먼저 SYN→SYN-ACK→ACK 3단계로 연결을 맺습니다. 이후 각 세그먼트에 순번을 붙여 보내고, 받는 쪽이 ACK를 보내야 다음 데이터를 전송합니다. 일정 시간 안에 ACK가 오지 않으면 자동으로 재전송하고, 연결이 끝나면 4-way 핸드셰이크로 정리합니다.

무엇과 헷갈리나요?

TCP와 UDP는 둘 다 IP 위에서 동작하는 전송 계층 프로토콜이지만 트레이드오프가 다릅니다. TCP는 연결, 순서 보장, 재전송으로 신뢰성을 제공하는 대신 오버헤드가 있습니다. UDP는 연결 없이 바로 전송해 빠르지만 손실이 생길 수 있습니다. 정확성이 중요하면 TCP, 속도가 중요하면 UDP입니다.

왜 이런 방식이 등장했나요?

초기 ARPANET은 패킷 교환 방식으로 데이터를 보냈지만, 손실과 오류를 처리하는 공통 규칙이 없었습니다. 각 애플리케이션이 오류 처리를 직접 구현해야 했고, 이 중복을 제거하기 위해 Vint Cerf와 Bob Kahn이 1973년 TCP/IP를 설계했습니다. 이후 인터넷의 공통 전송 계층이 됐습니다.

언제 쓰나요?

웹 요청, 파일 전송, 이메일, 데이터베이스 연결 등 데이터 손실이 허용되지 않는 모든 통신에 적합합니다. 실시간 스트리밍이나 온라인 게임처럼 약간의 손실보다 낮은 지연이 더 중요한 경우에는 적합하지 않습니다.

웹 통신파일 전송이메일데이터베이스 연결