社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 1839阅读
  • 2回复

对TCP和UDP的理解

楼层直达
级别: 光盘中级
发帖
779
飞翔币
335
威望
267
飞扬币
4406
信誉值
0
现在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协议了。
 
级别: *
发帖
*
飞翔币
*
威望
*
飞扬币
0
信誉值
0
只看该作者 1 发表于: 2006-05-27
谢谢不过简单了点

补充下 。范老师得解说

TCP叫传输控制协议,他的特点是:有连接,有流控,有顺序号/确认号,开销比较大,一般是20个字节的头。
UDP叫用户数据报协议,开销小,8个字节的头,无可靠保证。
首先,UDP,不可靠,是指,在传输层不提供可靠保证,并不意味着所有使用UDP的应用都不可靠。
我们来比较几个应用
DNS,53端口,进行查询时,用的是UDP,因为要求速度快,比如我要查networkgeneral的地址,你只要告诉我ip是多少就行了,如果要进行3次握手建立连接,再去取到IP,那就慢了,所以用的是UDP,一个字:快。没响应怎么办,事实你看(他在演示)它会同时向多个DNS查询,所以没响应也没关系,你看这个响应名字错误,找不到。所以UDP还是有用的,特别是像DNS查询这种应用,丢了也就丢了,我再查。但DNS也有用TCP的时候,比如DNS服务器的同步,用的就是TCP的53端口

[ 本帖最后由 jewel 于 2006-5-27 13:37 编辑 ]
级别: *
发帖
*
飞翔币
*
威望
*
飞扬币
0
信誉值
0
只看该作者 2 发表于: 2006-05-29
我是用代理来上网的,但我想知道为什么QQ代理的端口是用1080的??