QQ登录服务器的TCP、UDP类型分别是什么意思?

QQ登录服务器的TCP、UDP类型分别是什么意思?,第1张

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

现在Internet上流行的协议是TCP/IP协议,该协议中对低于1024的端口都有确切的定义,他们对应着Internet上一些常见的服务。这些常见的服务可以分为使用TCP端口(面向连接)和使用UDP端口(面向无连接)两种。

说到TCP和UDP,首先要明白“连接”和“无连接”的含义,他们的关系可以用一个形象地比喻来说明,就是打电话和写信。两个人如果要通话,首先要建立连接——即打电话时的拨号,等待响应后——即接听电话后,才能相互传递信息,最后还要断开连接——即挂电话。写信就比较简单了,填写好收信人的地址后将信投入邮筒,收信人就可以收到了。从这个分析可以看出,建立连接可以在需要痛心地双方建立一个传递信息的通道,在发送方发送请求连接信息接收方响应后,由于是在接受方响应后才开始传递信息,而且是在一个通道中传送,因此接受方能比较完整地收到发送方发出的信息,即信息传递的可靠性比较高。但也正因为需要建立连接,使资源开销加大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是否传到及断开连接时发出相应的信号等),独占一个通道,在断开连接钱不能建立另一个连接,即两人在通话过程中第三方不能打入电话。而无连接是一开始就发送信息(严格说来,这是没有开始、结束的),只是一次性的传递,是先不需要接受方的响应,因而在一定程度上也无法保证信息传递的可靠性了,就像写信一样,我们只是将信寄出去,却不能保证收信人一定可以收到。

TCP是面向连接的,有比较高的可靠性,

一些要求比较高的服务一般使用这个协议,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向无连接的,使用这个协议的常见服务有DNS、SNMP、QQ等。对于QQ必须另外说明一下,QQ2003以前是只使用UDP协议的,其服务器使用8000端口,侦听是否有信息传来,客户端使用4000端口,向外发送信息(这也就不难理解在一般的显IP的QQ版本中显示好友的IP地址信息中端口常为4000或其后续端口的原因了),即QQ程序既接受服务又提供服务,在以后的QQ版本中也支持使用TCP协议了。

地址使用的是D类IP地址(224000到239255255255)。

UDP组播的基本步骤:创建udp socket、bind、加入组播组、发送/接收数据、close。

组播传输:数据发送者(源数据)将同一数据发送到多个接受者(组播组成员)。无论有多少个接受者,在整个网络链路上,只有一份该数据(在特殊场合,可以节省带宽,减少主干网络阻塞)。

通常来讲,客户端是不需要绑定端口号的,而服务器端是需要绑定监听的端口号。其他的其实区别不是很大了,呵呵,从socket通信的角度来看,UDP通信属于帧传输,TCP则是流传输,在帧传输过程中对于消息的次序和到达情况没有需求,所以UDP属于不可靠传输,不需要确认和排序。这样在客户端和服务器端的实现上就没有太大的差别了。

但是客户端其实也可以用bind来绑定端口的,你在Linux下写一个简单的测试程序就知道了,嘿嘿。

内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。

UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

CDN应用广泛,支持多种行业、多种场景内容加速,例如:小文件、大文件下载、视音频点播、直播流媒体、全站加速、安全加速。UDP是无连接的,即发送数据之前不需要建立连接。

服务器操作流程

客户端操作:

服务器操作:

客户端操作:

既有基于TCP的RTP,也有基于UDP的RTP,但抓包发现,VLC的RTP是基于UDP的。

操作模式与UDP一致。

VLC的http方式搭建的流媒体服务器是用TCP方式进行数据传输的,操作方式与RTSP一致。

以VB为例,在udpWinSock_DataArrival事件中,输入下面的代码,即可获取客户端IP,发送消息给客服端。,如果是客户端,需要把该IP地址转发给服务器。

Private Sub udpWinSock_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

Dim Strs As String

udpWinSockGetData strData, vbString '接收到客户端信息

udpWinSockRemoteHost = udpWinSockRemoteHostIP '获取客服端的IP,并将要对话的客服端ip设置为此IP

'立即发送文本给客户端

Strs = “已接收成功您的信息:" & strData

udpWinSockSendData Strs '发送回复信息给当前客户端

End Sub

呵呵,UDP首部格式如下: (具体看TCP/IP详解第11章)

2字节源端口;2字节目的端口;2字节UDP长度(数据部分长度+首部长度);2字节校验和

00 1C 代表UDP长度为十进制的28

所以数据部分的长度为:28-8=20,这里的8代表UDP首部长度

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » QQ登录服务器的TCP、UDP类型分别是什么意思?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情