这个的话我觉得你还是多查阅一下资料好一点,在这里我就简单的介绍一下吧:面向连接的TCP面向连接就是在正式通信前必须要与对方建立起连接。 比如你给别人打电话必须等线路接通了、对方拿起话筒才能相互通话。 TCPTransmission Control Protocol传输控制协议是基于连接的协议也就是说在正式收发数据前必须和对方建立可靠的连接。一个TCP连接必须要经过三次对话才能建立起来其中的过程非常复杂我们这里只做简单、形象的介绍你只要做到能够理解这个过程即可。 我们来看看这三次对话的简单过程 主机A向主机B发出连接请求数据包我想给你发数据可以吗这是第一次对话 主机B向主机A发送同意连接和要求同步同步就是两台主机一个在发送一个在接收协调工作的数据包可以你什么时候发这是第二次对话 主机A再发出一个数据包确认主机B的要求同步我现在就发你接着吧这是第三次对话。 三次对话的目的是使数据包的发送和接收同步经过三次对话之后主机A才向主机B正式发送数据。TCP协议能为应用程序提供可靠的通信连接使一台计算机发出的字节流无差错地发往网络上的其他计算机对可靠性要求高的数据通信系统往往使用TCP协议传输数据。 面向非连接的UDP协议面向非连接就是在正式通信前不必与对方先建立连接不管对方状态就直接发送。这与现在风行的手机短信非常相似你在发短信的时候只需要输入对方手机号就OK了。 UDPUser Data Protocol用户数据报协议是与TCP相对应的协议。它是面向非连接的协议它不与对方建立连接而是直接就把数据包发送过去 UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。 比如我们经常使用ping命令来测试两台主机之间TCP/IP通信是否正常其实ping命令的原理就是向对方主机发送UDP数据包然后对方主机确认收到数据包如果数据包是否到达的消息及时反馈回来那么网络就是通的。 例如在默认状态下一次ping操作发送4个数据包如图2所示。 大家可以看到发送的数据包数量是4包收到的也是4包因为对方主机收到后会发回一个确认收到的数据包。 这充分说明了UDP协议是面向非连接的协议没有建立连接的过程。正因为UDP协议没有连接的过程所以它的通信效果高但也正因为如此它的可靠性不如TCP协议高。QQ就使用UDP发消息因此有时会出现收不到消息的情况。 TCP协议和UDP协议各有所长、各有所短适用于不同要求的通信环境。 |