TCP协议与UDP协议

1 协议栈

TCP/IP协议栈主要分为四层 应用层 传输层 网络层 连接层 





所谓协议 就是双方进行数据传输的一种格式 。

而TCP和UDP是TCP/IP协议中的两个传输层协议,他们使用IP路由功能将数据包发送到目的地,从而为应用程序( 应用层协议 包括:http ,ftp, telnet,smtp)提供网路服务。

TCP(Transmission Control Protocol,传输控制协议) 

1. 是基于连接的协议 ,即,在正式收发数据之前,必须以对方建立可靠的连接。一个TCP连接必须要经过三次握手才能建立,而断开连接需要进行四次握手。

2. 面向字节流,会把从上层传输下来的数据当做是无结构的字节流。

3. 一对一通信。

4. TCP在IP协议的基础之上添加了序号机制,确认机制,超时重传机制,数据校验,从而保证传输的可靠性,同时保证不出现丢失或者是乱序。

UDP(user data protocol ,用户数据协议) 是与TCP相对应的协议。他是面向非连接的协议,他不与对方建立连接,而是直接把数据包发送过去。UDP适用于一次只传输少量数据,对可靠性要求不高的应用环境。

1.一方向另一方发送数据不需要建立连接。相当于发短信,别人是否收到,短信信息是否丢失都不能知道。

2.面向报文的,从上层接收的数据如果报文不大于传输限制,则直接加上首部传输,如果报文过大,则进行IP分片后,再分别加入首部进行传输。

3.UDP协议可以一对一通信,同时可以一对多通信。

4.UDP仅仅是尽最大的努力进行交付,只是做比较初级的检查,比如端头检查,差错检测,往往在传输过程中会出现分组丢失、乱序、重复传输等问题。


相关应用:

当数据传输必须保证数据的完整性、可控性和可靠性时,TCP协议是最好的选择。

腾讯QQ中,TCP和UDP都有使用,但是以UDP为主,因为UDP传输速度快,在中国,网络环境复杂,不容易建立TCP连接,当登录QQ,发消息聊天都是UDP的,只有对方不在线或者隐身时,所发送的消息是TCP的。当双方在线时,直接对话,传送UDP,UDP协议头中包含对方的IP地址,这也是有些功能版QQ能显示对方IP的原因。而TCP协议,如果对方隐身,你通过TCP建立和腾讯服务器的连接,把消息存在服务器上,再由服务器选择合适时机传送给对方。




猜你喜欢

转载自blog.csdn.net/tengxvincent/article/details/80704819