我被分配了使用UDP传输文件的经典任务。在不同的资源上,我读到了两种不同的说法:检查数据包的错误(在数据包中添加CRC)是必要的,并且UDP已经检查了损坏的数据包并将其丢弃,因此我只需要担心重新发送丢失的数据包。
那么哪一种正确呢?我需要手动对到达的数据包执行完整性检查吗?或者不正确的数据包已经被丢弃了?
顺便提一下,该项目使用的语言是Java。
编辑:一些来源(课本、互联网)表示校验和仅覆盖标题,从而确保发送方和接收方的IP地址是正确的等等。有些来源表示校验和也涵盖数据段。有些来源表示校验和可能涵盖数据段,但这是可选的,由操作系统决定。
编辑2:我问了我的教授,他们说IPv4中数据段的UDP错误检查是可选的,默认情况下IPv6中有。但我仍然不知道它是否在程序员的控制下、操作系统的控制下或其他层次的控制下……
那么哪一种正确呢?我需要手动对到达的数据包执行完整性检查吗?或者不正确的数据包已经被丢弃了?
顺便提一下,该项目使用的语言是Java。
编辑:一些来源(课本、互联网)表示校验和仅覆盖标题,从而确保发送方和接收方的IP地址是正确的等等。有些来源表示校验和也涵盖数据段。有些来源表示校验和可能涵盖数据段,但这是可选的,由操作系统决定。
编辑2:我问了我的教授,他们说IPv4中数据段的UDP错误检查是可选的,默认情况下IPv6中有。但我仍然不知道它是否在程序员的控制下、操作系统的控制下或其他层次的控制下……