TCP、UDP协议详解

TCPUDP 之前,我们需要来了解俩个概念,面向连接的

在了解服务和无连接的服务,应用面向连接的服务时,客户和服 务器在进行数据发送前,彼此向对方发送控制分组,这就是所谓的握手过程,使得客户和服务器都做好分组交换准备。这个准备是很松散的,面向连接服务与很多其 他的服务捆绑在一起,包括可靠的数据传输,流量控制和拥塞控制等,依赖连接以正确的顺序无错地传递所有数据。还要使用确认和重传机制实现来可靠性。而无连 接服务侧是没有握手过程的,当一方想发送数据时就直接了当地发送,因为没有握手过程也就没有什么流量控制和拥塞控制,这样数据可能传输得更快,但是,由于 也没有确认过程,源端就不知道那些分组到达了目的端。因此可能在传输过程中丢失数据,不适合用在一些文件的传输,可以用在因特网电话,视频会议什么的。

    TCP (传输控制协议)和UDP (拥护数据报协议)是传输层的俩个传输协议,它们俩个的最大区别就是是否面向连接。

    TCP 包括了面向连接和可靠数据传输服务,在客户端和服务器端进行通信前,要先交换传输层控制信息,为双方的通信做好准备。在这个握手阶段后,我们就可以认为在这俩个进程间存在一个TCP 连接,且是一个全双工的连接,在消息发送完后,应用程序会告诉TCP 拆除这个连接。可靠的传输服务为了保障彼此通信能无差错地顺序传递所有数据。

    当其中任何一个应用程序把一个字节流传如套接字时,它可以指望TCP 把同样的字节流传递到对方的套接字,中间不回丢失和重传。TCP 是因特网的一种公益服务,其目的是能调节数据传输过程中的一些问题,因此还要包含一个拥塞机制。TCP 拥塞机制在网络变得拥塞时阻止发送进程。确切地说,TCP 拥塞控制试图把每个TCP 连接限定在它所公平共享的网络带宽上。对于有最小带宽需求限制的实时音频或视频应用来说,阻止其带宽那就让它们不能正常工作,此外,我们能想象一下,在网络电话通话时,偶尔的不连续是可以容忍的,可见实时应用可以容忍丢失少部分数据,不需要完全可靠服务。

    说了这么多,TCP 能提供的好的服务,再看一下其缺点吧,首先,TCP 不保证最小传输率,通俗点说,TCP 不允许发送进程以想要的速率发送数据,受到TCP 拥塞控制的调节,发送进程有可能被迫以一个较低的平均速率发送。其次,TCP 不提供任何延时保障,具体点说,发送进程把数据传入自己的TCP 套接字后,这个数据将最终到达其接受套接字,但是中间所经历的时间就不能保证了 ,花几秒或则几分钟都不一定。

    UDP 是一个非面向连接的轻量级传输协议,具有一个最简单的服务模型。UDP 是无连接的,因此两个进程彼此通信之前没有握手过程。UDP 提供不可靠的数据传输服务,也就是说当一个进程往自己套接字发送一个消息时,UDP 不能保障这个消息回最终到达接受套接字。另外,就确实到达接收套节字的消息而言,他们的到达顺序也可能不是有序的。
  
    UDP 不含拥塞控制机制,因此发送进程能够以任意速率往UDP 套接字发送数据,尽管不能保证所有数据都到达接收套接字,但是会有相当比列的数据到达。实时应用程序的开发人员往往选择在UDP 上运行他们的应用。与TCP 类似,UDP 也不提供任何延迟保证。

    说了这么多,我们可以通过下表来体会一下上面说的真正含义。

 

   

应用层协议

用来支撑的传输协议

电子邮件

SMTP RFC82

TCP

远程终端访问

Telenet

TCP

WEB

HTTP

TCP

文件传送

FTP

TCP

远程文件服务器

NFS

TCP UDP

流多媒体

专属

UDP TCP

因特网电话

专属

一般为 UDP


    在表中我们看到,电子邮件,远程终端访问,WEB和文件传送都使用TCP 协议,这些应用选择TCP 的主要原因是在于TCP 提供了可靠的数据传输服务,能够保证所有数据最终到达其目的地。我们还看到,因特网电话一般运行在UDP 协议上面,一个因特网电话应用的俩端都得以某个最小速率跨越网络发送数据;另外,因特网电话可以容忍数据丢失,从这个俩个条件来看,都适合UDP ,不需要可靠的TCP 传输服务。

    总的来说,TCP 能保证传递全部数据,而UDP 不能,且他们都不提供延迟保证。他们不提供延迟保证,并不意味着时间敏感的应用不能运行在现在的因特网上,而是应用是通过一些其他的方法来保证这些需要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值