Unix Network Programming(3)---UDP
2015-10-21 10:57
225 查看
UDP—用户数据报协议(User Datagram Protocol)是一个不可靠,无连接协议。UDP套接字是一种数据报套接字(datagram socket)。UDP既可使用IPv4,也可使用IPv6。
不可靠:UDP不能保证UDP数据报会到达最终目的地,不保证各个数据报在跨越网络后到达的先后顺序不变,也不保证每个数据报只到达一次。
如果一个数据报到达目的地后,经过校验和检测发现错误,或者数据报在网络传输中被丢弃,它就无法在服务器端被投递给UDP套接字,也不会被源端重传。解决:要想确保一个数据报到达目的地,就要在应用程序中添加特性:来自对端的确认,本端的超时与重传。
有长度:每个UDP数据报都有一个长度,在正确到达目的地后,这个长度都会随数据一道传递给接收端应用进程。(TCP是一个字节流协议,没有任何记录边界,与UDP不同)
无连接:UDP客户与服务器之间不存在任何长期关系。举例来说,一个UDP客户可以是用同一个套接字创建不同的数据报给不同的服务器;一个UDP服务器也可以使用同一个套接字从若干个不同的客户接收数据报,每个客户一个数据报。
FIXME:具体细节(TCP/IP)
UDP概要
UDP是一个简单的传输层协议。应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,再被封装到一个IP数据报,然后发送到目的地。不可靠:UDP不能保证UDP数据报会到达最终目的地,不保证各个数据报在跨越网络后到达的先后顺序不变,也不保证每个数据报只到达一次。
如果一个数据报到达目的地后,经过校验和检测发现错误,或者数据报在网络传输中被丢弃,它就无法在服务器端被投递给UDP套接字,也不会被源端重传。解决:要想确保一个数据报到达目的地,就要在应用程序中添加特性:来自对端的确认,本端的超时与重传。
有长度:每个UDP数据报都有一个长度,在正确到达目的地后,这个长度都会随数据一道传递给接收端应用进程。(TCP是一个字节流协议,没有任何记录边界,与UDP不同)
无连接:UDP客户与服务器之间不存在任何长期关系。举例来说,一个UDP客户可以是用同一个套接字创建不同的数据报给不同的服务器;一个UDP服务器也可以使用同一个套接字从若干个不同的客户接收数据报,每个客户一个数据报。
FIXME:具体细节(TCP/IP)
相关文章推荐
- Java加密技术(五)——非对称加密算法的由来DH
- android view.getWidth(), view.getHeight() 返回0的问题的解决方案
- android加密工具类
- jquery的注释
- datepicker只选择年月的设置技巧
- Notification的使用
- ChicagoBoss 唠唠嗑
- 闭包
- CISCO学习笔记(九)链路状态路由协议OSPF
- APPARENT DEADLOCK!!![proxool+Spring集成]
- django 数组
- 自定义控件——绘制view
- Android Studio 常用快捷键,live template,插件及其他小技巧
- java中定时任务的实现
- IM,游戏服务端 tcp 框架整理
- ssh公钥自动登陆
- 背景图片自适应大小
- JDOM 解析xml
- codeblocks主题修改(vim)
- MD设计之ToolBar