TCP和UDP之面试
来源:互联网 发布:windows路由表命令查看 编辑:程序博客网 时间:2024/05/16 03:35
UDP的优势:
- 应用层能更好发控制要发送的数据和发送时间。因为UDP只提供最简单、服务最少的服务,所以当网络应用进程有数据传递给UDP时,UDP马上就会将此数据打包成UDP报文段,并把它交付给网络层,从而把数据发送出去。
- 无需连接建立,不会引入建立连接的时延,而TCP在开始数据传输之前要经过三次握手。
- 无连接状态,因此,使用UDP的服务器能支持更多的活动客户机。
- 分组首部开销小,其首部字段少,只有8个字节,而TCP的首部有20个字节。
UDP实现可靠传输:
UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。
实现确认机制、重传机制、窗口确认机制。
如果你不利用linux协议栈以及上层socket机制,自己通过抓包和发包的方式去实现可靠性传输,那么必须实现如下功能:
发送:包的分片、包确认、包的重发
接收:包的调序、包的序号确认
目前有如下开源程序利用udp实现了可靠的数据传输。分别为RUDP、RTP、UDT。
应用层 能否将数据直接交付给网络层,而不经过运输层:
肯定不能!网络层的IP协议,传输的数据单元的IP数据报,网络层实现的是主机之间的通信,而我们实际实现的是主机间应用进程的通信(主机里有多个应用进程),而运输层就是实现应用之间的通信。
0 0
- TCP和UDP之面试
- TCP和UDP面试
- 面试总结,TCP和UDP分析
- UDP和TCP 面试问题重点
- 【面试】TCP和UDP的区别
- java面试常见问题之 tcp与udp区别
- 【计算机网络学习】之TCP和UDP比较
- Udp打洞和TCP打洞之我见
- Java 网络编程之TCP和UDP
- Java之网络编程UDP和TCP
- java个人笔记之UDP和TCP
- Socket之TCP和UDP协议通信
- Java网络之TCP和UDP
- 计算机网络漫谈之UDP和TCP
- Java之TCP和UDP代码实例
- Socket之UDP和TCP协议
- TCP和UDP的区别(在面试中的回答)
- 面试1——TCP和UDP区别
- 利用JAVA+MySQL实现学生选课系统
- 线性时间排序(计数排序/桶排序/基数排序)
- 如何进入BIOS设置?
- Android中的GridLayout布局及Shap,Selector文件的使用
- PHP开发编码规范
- TCP和UDP之面试
- 虚析构函数的作用
- question
- 数据库范式(1NF、2NF、3NF、BNCF)
- 第二课 变量三步骤
- 常见数据结构与算法整理总结(上)
- Python KeyError异常
- 可以拖动的DIV
- mysql 的读写分离 以及mycat 实现集群管理