十四组该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。今天我们来学习一下传输层的两个协议----TCP和UDPTCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。UDP是用户数据报协议,是参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP用来支持那些需要在计算机之间传输数据的网络应用。其主要作用是将网络数据流量压缩成数据包的形式。TCP和UDP在QQ、微信中的工作原理QQ是1999年02月由腾讯自主开发的基于Internet的即时通信网络工具,其合理的设计、良好的应用、强大的功能、稳定高效的系统运行,赢得了用户的青睐。腾讯QQ支持在线聊天、视频聊天以及语音聊天、点对点断点续传文件、共享文件、网络硬盘、自定义面板、远程控制、QQ邮箱、传送离线文件等多种功能,并可与移动通讯终端等多种通讯方式相连。登陆:登陆的时候首先要,向服务器注册其IP地址和端口信息。登陆成功之后,QQ都会有一个TCP连接来保持在线状态。聊天消息通信:通信采用P2P连接和UDP协议,通过服务器中转方式。腾讯采用了上层协议来保证可靠传输:如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。如此来保证消息可以无遗漏传输。文件/自定义表情传送:表情实际发送的是命令字,而没有发送表情。客户端收到命令字后,会自动解释为对应的表情。自定义表情的传送是以文件传输方式进行的。由于QQ的服务器设计容量是海量级的应用,一台服务器要同时容纳十几万的并发连接,因此服务器端只有采用UDP协议与客户端进行通讯才能保证这种超大规模的服务。UDP协议是无连接方式的协议,它的效率高,速度快,占资源少,但是其传输机制为不可靠传送,必须依靠辅助的算法来完成传输控制。QQ采用的通信协议以UDP为主,辅以TCP协议。微信(英语:WeChat)是腾讯公司于2011年1月21日推出的一款支持S60v3、S60v5、WindowsPhone、Android以及iPhone平台的类Kik软件。微信用户可以通过智能手机客户端与好友分享文字与图片,并支持分组聊天和语音、视频对讲功能的智能型手机聊天软件。微信软件本身完全免费,使用任何功能都不会收取费用。截至2013年11月注册用户量已经突破6亿,是亚洲地区最大用户群体的移动即时通讯软件。IM服务器用户A用户BLogIn/OutTCP/UDP协议UDP协议UDP协议更新好友信息列表等消息,加载朋友圈推送消息等而TCP协议来确保用户在线的状态语音通信,视频通讯,图片表情等等微信服务器好友列表确认收到信息客户端我要更新好友列表收到请求请求TCP/UDP协议:UDP协议更新好友信息列表等消息,加载朋友圈推送消息等,而TCP协议来确保用户在线的状态相同点:TCP和DUP都处于网络层(NETWORKLAYER)之上,都是传输层协议,功能都属于保证网络层数据的传输。双方的通信无论是用TCP还是DUP都是要开放端口的不同点:可靠连接负载和传输速度应用TCP传输是可靠的,提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端到另一端。基于连接的协议,在正式收发数据前,必须和对方建立可靠的连接。采用套接字或者端来建立通信。负载相对而言比较大,根据链路中数据流量的大小来调节传送的速率,传输时如果发现有丢包,会有严格的重传机制,故而传输速度很慢。文件传输,发送或接收邮件,远程登录等UDP是不可靠的,只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去负载比较小,在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。一般用于即时通信(QQ聊天对数据准确性和丢包要求比较低,但速度必须快),在线视频,网络语音电话等等.