개념적으로 TCP 연결에는 두 가지 측면이 있다고 생각합니다.
- "연결" - 즉, 두 호스트가 서로 통신하기로 "동의"하는 배열입니다. 전화로 누군가에게 전화를 거는 것과 대략 유사합니다. 상대방이 응답하면 "연결"이 설정된 것입니다.
- 데이터 전송
TCP 연결 측면은 네트워킹 문서에 자세히 설명되어 있으며 호스트는 3방향 핸드셰이크 등을 통해 연결을 협상하지만 이 시점에서는 유휴 연결만 있습니다. 다시 누군가가 상대방에서 전화를 받고 "죽은 공기"
내 질문은 연결이 설정되면 데이터(예: 파일 전송)가 어떻게 시작됩니까? 보낸 사람이 보낼 내용을 간략하게 설명하는 것 같습니다. 예를 들어 "보내겠습니다... X바이트의 파일이 있거나 예고편을 받으면 전송이 완료되었음을 알 수 있습니다." TCP 데이터/파일 전송은 어떻게 시작됩니까?
답변1
전송 제어 프로토콜스트림 지향 전송 프로토콜입니다. 한 호스트에서 다른 호스트로 올바른 순서로 바이트를 가져오는 것에만 관심이 있으며 해당 바이트의 내용이나 그들이 형성할 수 있는 메시지에는 관심이 없습니다. 연결이 설정되면 연결의 양쪽 끝이 다른 쪽 끝으로 바이트를 보낼 수 있습니다.
메시지에 의미를 부여하려면 TCP 외에 프로토콜에 동의해야 합니다. 어떤 메시지를 보내야 하는지와 수신된 메시지를 해석하는 방법을 결정하는 것이 바로 이 프로토콜입니다. 여기에는 메시지가 완료되는 시기를 결정하는 것도 포함됩니다. 예를 들어, HTTP에서 "Content-Length" 헤더가 있는 경우 수신자는 이를 사용하여 모든 데이터가 수신되었는지 여부를 확인할 수 있습니다. 그렇지 않은 경우 다른 방법을 사용하세요.RFC세부 사항) 서버가 연결을 닫을 때까지 기다릴 때까지(비록 비용이 많이 들기는 하지만 메시지 길이를 결정하기 위해 어느 정도 TCP를 사용함).
메시지 지향 전송 프로토콜을 사용하여 개별 메시지를 보내려면 다음을 사용할 수 있습니다.UDP 프로토콜또는SCTPTCP 대신.