패킷 손실의 문제를 해결하는 방법에 TCP 전송 프로토콜

패킷 손실의 문제를 해결하는 방법에 TCP 전송 프로토콜

신뢰할 수없는 네트워크를 통해 TCP 신뢰할 수있는 전송은 손실이 있어야합니다. TCP는 TCP 스틱 패키지, 포장을 풀거나 문제 즉, 대형으로 작은 패키지를 업로드합니다, 자세한 TCP 패킷이 여러 패키지 업로드로 분할됩니다,에 "흐름"계약입니다.

그러나 많은 사람들은 다른 해석이있다. 데이터 전송의 무결성을 보장하기 위해 TCP 프로토콜 자체가 손실되지 않습니다. 이 데이터의 손실 또는 패킷 손실의 송신 동안 발견되면, 대부분 투과 또는 프로그램을 수신하는 과정에서 문제이다.

패킷 손실의 문제를 해결하는 방법에 TCP 전송 프로토콜

예를 들어, 서버는 클라이언트로 대용량의 데이터를 전송하고, 전송 링크 오류가 발생할 수있다 (1, 프로그램 처리 논리 오류 2 멀티 스레드 동기화 문제 3, 버퍼 오버 플로우), 그래서 송신 주파수가 매우 높은 경우 전송이 실패하면 해결되지 않은 후 클라이언트는 데이터 손실 및 패킷 손실 될 이론적 데이터 미만인 것 된 데이터를 수신한다. 이 현상은, 사실, 데이터가 일부 데이터의 결과 프로그램 오류 처리가 성공적으로 소켓을 전송되지 않았습니다해서, 손실되지 않습니다 패킷 손실의 본질이 아니다.

의 기능에 대한 질문 보내기 :

처음으로 수행 된 내용을 명확해야 기능을 보냅니다. 그는 로컬 TCP 계층에 데이터를 전달하고, 또는 응용 프로그램 계층에 데이터를 전달하고 반환받는 TCP 층을 확인 할 수 있습니다. 후자의 경우, 당신 말이 맞아, 그것을하지 않습니다. 네이글 알고리즘, 즉 데이터 집계 기능을 보낼 알고리즘은 패킷 송신보다 조금 큰 수신 사용될 수 있기 때문이다.

당신은 심지어 데이터 전송 기능을 보낼 수 있습니다, 상대방은 반드시 허용되지 않습니다. 단지 기능 보내 의무를 이행하기 위해 전송 계층에서 TCP 프로토콜은 단지 TCP 층과 어떠한 관계에 부가 데이터의 TCP 계층 전송에 응용 층 역할을한다.

일반적인 솔루션은 헤더를 추가하고 결합 된 패키지를 전송 풀고 있습니다. 서버 또는 클라이언트 연결이 끊어 일반적으로 하트 비트 테스트를 사용하는 경우.

하트 비트 테스트 : 때때로 서버에 패킷을 보낼 수 있습니다. 자원을 절약하기 위해, 일반적으로 빈 패킷을 전송합니다. 전송이 실패하면 것은 소켓이 중단되는 것을 나타내며, 특정 기준에 따라 자원을 해제하고 다시 연결해야 할 필요성.

패킷 손실의 문제를 해결하는 방법에 TCP 전송 프로토콜

TCP 전송 호스트가 올바르게 대상 컴퓨터로 데이터를 전송하는 것을 의미한다 데이터 교환의 신뢰성을 보장 할 수 대상 시스템의 프로토콜 스택은 대상 시스템에 수신 된 데이터의 적시 처리하면 스택 것이다 일정한 제한을 갖는다 오버 플로우.

바이이 오버 플로우하지 TCP 프로토콜 자체가 원인이지만, 시스템에 의한 IP 프로토콜 스택 버퍼 오버 플로우로!

추천

출처blog.51cto.com/13609234/2421398