TCP 与 UDP的区别

来源:互联网 发布:you do not know js 编辑:程序博客网 时间:2024/05/12 00:27

TCP 与 UDP

共同点:都是 传输层 的协议

区别:                                                                       TCP                                                       UDP

                                                                              面向连接                                                  无连接

                                                                       提供可靠的服务                                             不保证可靠交付

                                                                               面向字节流                                                 面向数据报

                                                                                 一对一                                                    支持一对一,一对多,多对多的交互信息

                                                                        首部开销 20字节                                                  8字节

                                                                          全双工的可靠信道                                            不可靠信道

选择依据:

UDP:常用于让广播和细节控制交给应用的通信传输 

TCP:提供可靠的通信传输 (通过检验和 序列号 确认应答 重发机制等实现可靠传输)

可靠性方面分析:

UDP:无确认机制,  QQ的普通会员使用的就是UDP协议传输数据的,它让确认这个工作交给应用层的进程来完成,这样的缺点就是会导致软件的体积增大。

TCP:有确认机制     会增大网络带宽的开销    “虚拟信道”的持续存在,会存在大量的FIN   ACK包。

应用:

UDP:qq登陆  qq语音  qq视频

TCP:浏览器登陆  注册账号   转账等

那么大家可能会想,已经有了TCP  那么 UDP存在的意义呢?

TCP的拥塞控制,数据校验,重传机制的网络开销很大,不适合实时通信。

还有TCP和UDP的校验和都是 通过虚首部计算来的,对于这块,我还没有搞清楚了,感兴趣的可以自己搜一下。

顺便说一下 TCP   UDP的首部吧

UDP的首部:


0                   15                         31

  源端口号           目标端口号

    包长度                校验和

              数据部分

TCP的首部:

      0                                             15                                              31


大概就说到这里,欢迎大家转载,如果有什么问题,请多多指教


2 0
原创粉丝点击