杭州ip代理
最近一直参与实习生与社招生地面试,我发现了一个有趣的事情,很多人已经对TCP常见的面试题非常熟悉了,所以我最近喜欢换个口味,多问问UDP的知识。哈哈,今天我们通过UDP与TCP的一些对比,来了解了解UDP协议。
UDP,用户数据包协议,又称不可靠数据包协议,顾名思义,就是不能保证数据一定能传输到目标机器,既然不能保证传输,为什么我们还需要这样的协议呢?岂不是非常地不靠谱。事实上,我们有非常多的场景适合这样的协议。
举个例子,最近网络直播非常地火,甚至像广州这样地城市,都号称要成为直播之都,连区长都参与直播带货。在网络直播的业务中,是允许部分丢包的,即便我们丢失了部分帧,也能够正常的播放,并且用户不一定感受得到。TCP是不允许丢包的,TCP协议会有复杂的重试机制,特别是在弱网环境下,一旦有数据发送失败,TCP协议就会不停地重试,导致新的视频内容没办法刷出来,那样子视频反而会一卡一顿。
UDP的数据包非常的简单,在IP协议上,UDP多了源端口、目标端口、长度跟校验和四个字段,那么这四项能否在进一步精简呢?自然是不行的,源端口我们才可知道本地是哪个应用发送的,目标端口是为了告诉对方服务器发给哪一个应用,长度跟校验和都是用来进行包数据的校验,确认收包完整且在中途没有被篡改。
与TCP相比,UDP不跟随连接的状态,准确的说,UDP并不建立连接,也不关心对方能否能够收到,只要发出去就完事了。与TCP有拥塞控制、滑动窗口,发送重试等机制相比,UDP更像一个奋不顾身的愣头青,不管网络情况,有包就发。
UDP的数据包并没有序列,所以,UDP不保证消息的交付顺序,并且不确认杭州ip代理,不重传,不排重。但是,这里要注意的是,这些机制只是对于传输层来说,当我们真正使用UDP协议的时候,我们可以在应用层进行重传、排重,这一点,很多人没有想清楚。