TCP、UDP协议详解
来源:互联网 发布:淘宝博娱乐 编辑:程序博客网 时间:2024/05/16 10:13
TCP和UDP之前,我们需要来了解俩个概念,面向连接的
在了解
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也不提供任何延迟保证。
- TCP、UDP协议详解
- TCP、UDP协议详解
- TCP、UDP协议详解
- TCP、UDP协议详解
- TCP、UDP协议详解
- TCP、UDP协议详解
- TCP、UDP协议详解
- Tcp、UDP协议详解
- TCP/IP详解-UDP协议
- HTTP/TCP/UDP协议详解
- UDP和TCP协议详解
- tcp/udp/http协议详解
- IP.UDP.TCP这各个协议详解
- IP.UDP.TCP这各个协议详解
- TCP/Udp/Http/Ftp协议详解
- TCP/IP详解学习笔记--UDP协议
- TCP/IP协议详解 卷一 --------UDP
- 计算机网络TCP和UDP协议详解
- Jmeter
- ubuntu 12.04 LTS 中创建FTP服务器
- 刚安装时mysql不能修改密码以及忘记root密码
- 使用IBinder的linkToDeath机制来释放资源
- java学习笔记---java异常处理
- TCP、UDP协议详解
- php用户注册页面使用js进行表单验证具体实例
- 3GP/MP4 视频文件格式解析及其播放原理(转)
- Android4.1.1_r1系统移植------TP移植篇
- VS2008用mfc读Excel文件
- mysql备份脚本以及删除前5天的备份文件
- CentOS6.4换YUM源
- POJ 2752 Seek the Name, Seek the Fame (KMP)
- C# 执行bat批处理文件的小例子