TCP,UDP
来源:互联网 发布:淘宝棉麻女装品牌 编辑:程序博客网 时间:2024/05/17 00:17
1.面向链接:TCP面向链接,面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须通过三次握手先建立一个TCP连接。在一个TCP中仅有两方彼此通信,多播和广播不能用于TCP。UDP是不可靠的传输,传输前不需要建立链接,可以应用多播和广播实现一对多的通信。
2.可靠性:TCP提供端到端的流量控制,对收到的数据进行确认,采用超时重发,对失序的数据进行重新排序等机制保证数据通信的可靠性。而UDP是一种不可靠的服务,接收方可能不能收到发送方的数据报。
3.TCP是一种流模式的协议,UDP是一种数据报模式的协议。进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。TCP应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系。TCP会有粘包和半包的现象。
4.效率上:速度上,一般TCP速度慢,传输过程中需要对数据进行确认,超时重发,还要对数据进行排序。UDP没有这些机制所以速度快。数据比例,TCP头至少20个字节,UDP头8个字节,相对效率高。组装效率上:TCP头至少20个字节,UDP头8个字节,系统组装上TCP相对慢。
5.用途上:用于TCP可靠性,http,ftp使用。而由于UDP速度快,视频,在线游戏多用UDP,保证实时性
对于第三点的理解。TCP可能发送100个“包”,而接收到50个“包”,不是丢“包”了,而是每次接受的“包”都比发送的多,其实TCP并没有包的概念。例如,每次发10个字节,可能读得时候一次读了20个字节。TCP是一种流模式的协议,在接收到的缓存中按照发送的包得顺序自动按照顺序拼接好,因为数据基本来自同一个主机,而且是按照顺序发送过来的,TCP的缓存中存放的就是,连续的数据。感觉好像是多封装了一步比UDP。而UDP因为可能两个不同的主机,给同一个主机发送,(一个端口可能收到多个应用程序的数据),或者按照TCP那样合并数据,必然会造成数据错误。我觉得关键的原因还是,TCP是面向连接,而UDP是无连接的,这就导致,TCP接收的数据为一个主机发来且有序无误的,而UDP可能是多个主机发来的无序,可能错误的。
- TCP&UDP
- TCP UDP
- TCP/UDP
- TCP & UDP
- TCP/UDP
- UDP tcp
- TCP UDP
- TCP UDP
- TCP & UDP
- tcp/udp
- TCP UDP
- tcp udp
- TCP,UDP
- TCP UDP
- TCP,UDP
- tcp&&udp
- TCP UDP
- TCP/UDP
- PHP字符串翻转
- Problem 2129 子序列个数 (动态规划题目,注意模余的问题)
- struts2 自定义转换器
- sprintf实现类型转换
- 字符串转换为字符型(CStringToChar)总结
- TCP,UDP
- Media Player Classic - HC 源代码分析 4:核心类 (CMainFrame)(3)
- linux僵尸进程
- hdu4452 Running Rabbit
- Codeforces Round #208
- HDU-1542 Atlantis 矩形面积并 扫描线
- 操作系统双语阅读 - PCB数据结构
- 多进程和多线程
- 依法纳税,共享繁荣