可能会出现不同的错误:
UDP仅提供克服数据损坏的机制(这是IPv4中的可选功能,在IPv6中是强制性的).
数据腐败
如果在每个数据包的标头中使用校验和字段,则UDP仅抵抗数据包内数据的损坏.基本上它需要标头,数据包内容和一些更多的信息(如IP地址),将其解释为一个16位字的完整补码列表,并将它们汇总到UDP校验和.
TCP采用类似的方法来解决数据损坏问题.
所有其他问题
TCP为每个数据包都有所谓的序列号.序列号解决了字节数,因此如果发送方说"这是序列号为102的数据包",他说,他发送的数据包从流的字节102开始.接收器然后向接收器发送和确认.例如,如果分组具有10个字节的长度,则接收器将发送序列号为112的Ack,这意味着"我希望接收下一个分组以序列号112开始".每个具有不同序列号的数据包都是重复的(太低)或丢失的数据包(接收的序列号太高)或者是幻像(预期序列号和接收序列号的总不匹配).所以在所有序列号不匹配的情况下,
发送者等待接收者的确认.如果他在一段时间内没有收到预期的确认,他将重新发送数据包,因为他认为数据包在途中丢失了.
这只是一个非常简短的解释.这个话题比这里描述的要大一些;)
| 归档时间: |
|
| 查看次数: |
12971 次 |
| 最近记录: |