数据在INTERNET上是以数据包为单位传输的,每包nK,不多也不少。这就是说,不管网络线路有多好、网络设备有多强悍,你的数据都不会是以线性(就象打电话一样)传输的,中间总是有空洞的。数据包的传输,不可能百分之百的能够完成,因为种种原因,总会有一定的损失。碰到这种情况,INTERNET会自动的让双方的电脑根据协议来补包和重传该包。如果网络线路好、速度快,包的损失会非常小,补包和重传的工作也相对较易完成,因此可以近似的将所传输的数据看做是无损的。但是,如果网络线路较差,数据的损失量就会非常大,补包工作又不是百分之百完成的。这种情况下,数据的传输就会出现空洞,造成丢包。
在实际中发现使用servlet进行流读取,并将响应写入另一个输出流时,当读取速度很慢,写入速度也很慢的时候,发现有丢包的现象,比较奇怪。目前还未找到原因。