모든 TCP 상태는 누가 마지막으로 말했고 무엇을 기다리는지를 알려줍니다—그것만으로도 추측 없이 문제를 진단하기에 충분한 경우가 많습니다.
컴퓨터에는 네트워크 연결이 하나뿐이지만, 수십 개의 프로그램이 네트워크와 통신합니다. 소켓은 각 대화를 분리하는 방법입니다. 패킷이 정확히 올바른 프로그램을 찾을 수 있게 해주는 엔드포인트입니다.
프로토콜은 기계가 직관 없이 통신할 수 있게 해주는 정밀한 규칙이다—인터넷 규모에서는 잘못될 수 있는 모든 것이 실제로 잘못되기 때문에, 가능한 모든 실패를 미리 예측한다.
전송 계층은 불가능해 보이는 문제를 해결합니다: 패킷을 잃어버리고, 순서를 뒤바꾸며, 대화라는 개념 자체를 모르는 인프라 위에서도, 애플리케이션들이 저마다 신뢰할 수 있는 대화를 나눌 수 있게 해주는 것입니다.
TCP와 UDP는 경쟁자가 아닙니다. 서로 다른 질문에 대한 답이죠. 하나는 "잘 받았어?"라고 묻고, 다른 하나는 "잘 받았으면 좋겠는데"라고 말합니다. 내 애플리케이션이 어떤 질문을 하고 있는지 알면, 모든 것이 결정됩니다.
이 페이지가 도움이 되었나요?