在现有的网络中,网络通讯的方式主要有两种:
TCP(传输控制协议)方式
UDP(用户数据报协议)方式
TCP通讯协议
定义:Transmission Control Protocol,即传输控制协议,是一种传输层通信协议
特点:面向连接、面向字节流,全双工通道,可靠
1).面向连接:指的是要使用TCP传输数据,必须先建立TCP连接,传输完成后释放连接,就像打电话一样必须先拨号建立一条连接,打完后挂机释放连接。
2).全双工通信:即一旦建立了TCP连接,通信双方可以在任何时候都能发送数据。
3).可靠的:指的是通过TCP连接传送的数据,无差错,不丢失,不重复,并且按序到达。
4).面向字节流:流,指的是流入到进程或从进程流出的字符序列。简单来说,虽然有时候要传输数据流太大,TCP报文长度有限制,不能一次传输完,要把它分为好几个数据块,但是由于可靠性保证,接收方可以按顺序接收数据块然后重新组成分块之前的数据流,所以TCP看起来就像直接互相传输字节流一样,面向字节流。
TCP建立连接
必须进行三次握手,断开连接要进行四次挥手。
三次握手是为了防止服务器端因为接收了早已失效的连接请求从而一直等待客户端请求,从而浪费资源
四次挥手为了保证双方都能通知对方“需要释放连接”,即在释放连接后都无法接收或发送消息给对方
UDP通讯协议
UDP(User Data Protocol,用户数据报协议)
1、UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
2.由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
3.UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
4.吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
5.UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。
6.UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
网友评论