[疯狂Java]UDP:UDP协议的概念

1. 面向无连接、不可靠的UDP协议:

    1) UDP和TCP都位于OSI的传输层,但是和TCP相比有很大的不同;

    2) UDP不可靠:

         i. 是面向无连接的,而TCP是面向连接的(通信时建立虚拟连路,确认连接后才进行通信),而UDP直接发送和接受数据,不先建立连接;

         ii. UDP只能保证两端的socket发送和接收数据,不管对方状态就直接发送,当然也不管数据在路程中是否丢失出错等,肯定也不确认对方是否接收到了正确的数据;

    3) UDP的优点:

         i. 无连接、无差错控制,因此通信效率非常高(TCP在建立连接和差错控制方面开销极大);

         ii. 因此UDP适用于一些实时性很强的场景中,特别是网络对战游戏(PVP等)、视频通话、网络直播等;


2. UDP是一种数据报通信:

    1) UDP在底层负责将数据流封装成一个个数据报发送出去(发送端)、将数据报一个个拆开组成数据流接受(接收端);

    2) 数据报的特点就是短平快,每个数据报的大小有限制(不能超过64KB),这不同于TCP,TCP对传输数据的大小无限制,因此数据报可大大增加通信效率;

    3) UDP不使用C/S模型:UDP的socket类似于码头,而UDP数据报则类似于集装箱,码头只负责将集装箱送出去和接受,因此UDP没有客户端和服务器端一说;

    4) Java使用DatagramSocket来代表UDP协议的socket,可以看见就要数据报Socket;用DatagramPacket来代表UDP数据报,模型分的非常清晰,即码头和集装箱的关系;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值