문제
그것은 UDP 데이터를 당신에게 와서 손상?나는 그것을 알고 있는 것이 가능하실 수 있습니다.
해결책
UDP 패킷을 사용하는 16 비트 checksum.그것은 불가능하지 않 UDP 패킷을 손상이지만,그것은 매우 가능성이 있습니다.어떤 경우에는 그에 더 민감하지 않 손상 TCP.
다른 팁
첫째,"IP 검사는"참조 위의 IP 헤더 checksum.지 않을 보호하는 페이로드를 사용합니다.RFC791
둘째,UDP 할 수 있는 전송없이 체크섬,는 것을 의미하는 16 비트 checksum0 으로 설정하면(즉,아무도).RFC768.(는 모든 제로 전송되는 체크섬의 값을 의미하는 송신기의 생성하지 않았습니다.checksum)
셋째,다른 사람으로 언급,UDP16-bit 체크섬,는 가장 좋은 방법은 아을 감지하는 멀티 비트는 오류만이 나쁘지 않다.그것은 확실히 가능한 오류가 발견되지 않은 몰래에,그러나 매우 가능성이 높습니다.
가능한가요?물론입니다.발견되지 않은? 가능성, 이후,UDP 용 체크섬는 것이 필요한 여러 비트 오류로 나타나 유효합니다.오류가 발생한 경우가 감지 시스템을 가능성이 드롭 패킷 등의 위험은 사용하여 UDP.
UDP 패킷을 제공할 수도 있 순서가고,그래서 당신이 고안 프로토콜에서 상단의 UDP 있을 뿐만 아니라.
일반적인 형태의"손상"영향을 미치는 순진한 프로그래머 데이터그램이 잘림.보"Unix 네트워크 프로그래밍"에 의해 스티븐스에 대한 더 많은 정보 페이지(539 에 2nd ed.)
확인할 수 있습니다 MSG_TRUNC 국기...
짧은 대답:그렇습니다.
자세한 답변:
약 7 년 전에(아마도 2011 년?) 우리가 발견 UDP 데이터그램 실수로 변경되었을 때 UDP 데이터그램 교환 사이에 컴퓨터 중국에서 또 다른 하나는 한국에 있습니다.물론,에 체크 UDP 패킷 헤더도 reculculated 관련하여 페이로드를 변경합니다.가 있었 악성 소프트웨어에서는 두 컴퓨터입니다.
우리는 발견하는 것을 의도하지 않은 변경할 경우에만 발생합니다 이러한 조건에 맞:
- 먼저 여러 가지 바이트의 데이터그램은 유사 이전 데이터그램
- 만 occurse 때 UDP 데이터그램에서 가 다른 한 국가
지 원인을 정확하게,하지만 난 약 추가 중국 황금 Shield.
그래서 우리는 추가 데이터그램 garbling 알고리즘으로 소프트웨어를 개발하고 문제 멀리 갔다.그것은 어렵지 않을 구현할 수 있습니다.그냥을 인코딩하거나 당황 첫 번째 여러 가지 바이트의 데이터그램.