其实建议楼主认真学习一下计算机网络这门课程。对此就会深刻理解。
网络一般都是五层:应用层(最高层)--》运输层--》网络层--》数据链路层--》物理层(最底层)。
首先TCP,和UDP都是运输层的协议,都是将应用层的数据在运输层加一个TCP或是UDP的头部,然后在网络层加一个IP数据报的头部变为IP数据报,再在数据链路层加上头部和尾部,封装成帧,以帧的形式在网络间传递,等到了目的主机,然后在将这些头部一层层的拆解,从底层的物理层传送到应用层的相应的进程。
其中在网络层以下的都是做的尽最大努力交付,而运输层的TCP提供了差错检测和一系列的重传机制,保证传输是可靠的,即数据是完整和正确的,所以这就会浪费主机的内存和CPU,当然效率会低。TCP仅仅用在一对一的通信。
而UDP则是没有提供很多重传机制等来保证数据的准确性和完整性,如果检测数据出错了,仅仅是丢弃掉,多用在视频会议,或是实时的视频等对信息要求不是很严厉的场合。
楼主用到的TCP相关的类和UDP相关的类和网络中的协议是不太相同的,不要混淆。 |