关键词:
UDP的功能比较弱
, 仅对IP层进行简单的接口包装, 应用程序可基于UDP;
而TCP可实现的功能,在应用程序层也可实现,那么即可绕开TCP,直接基于IP编程.
TCP对比UDP
协议 | TCP | UDP |
---|---|---|
是否可靠 | 可靠 | 不可靠[大概率丢包,乱序,重复] |
协议 | 流式协议 | 报文协议 |
形式 | 点对点 | 可广播/组播 |
/ | 流量控制,拥塞控制 | 无策略 |
UDP协议
:即用户数据报协议, 应用层将数据报文交给UDP之后,UDP啥也不做,直接透析给IP层.
关于TCP与UDP的常用场景;
TCP
: http协议, RPC框架,微服务框架;
UDP
:DNS域名管理,音视频,流媒体;
DNS使用UDP的需求:
- DNS作为基本上网时解析域名查找Ip的必须品, 高频率会访问到DNS,而使用TCP的可能会产生延迟问题;
- 在浏览器也有缓存,即使UDP丢包,也没啥问题.即使无缓存了,也可以重新尝试查找.
HTTP不用UDP的原因是: 一旦丢包就会导致网页解析出现问题,可能出现乱码,重传时也会产生问题.
那么是否可以来降低UDP丢包的概率呢?
-
一般来说 UDP数据包的长度为 216 -1,作为数据包头部就是用了2个字节(16位)表示包的长度.
减去数据头大小,剩余都可存放数据: (216-1) - 8[UDP数据头大小] - 20[IP头大小] = 65507字节. -
UDP包的实际长度为: MTU(1500字节) - 8 [UDP头部大小] - 20[IP头部大小] = 1472字节.
那么就可以限制应用程序发包的时候别超过1472字节,以免发生IP分片,就可能出现丢包
,若某个分片丢失,则认为丢包.
已知TCP面向连接,仅可以点对点通信,无法广播通信.
而UDP可广播/组播.
比如你需要和对方通信,但是未知对方的IP地址,此时只能做广播
网络--udp知识(代码片段)
UDP的功能比较弱,仅对IP层进行简单的接口包装,应用程序可基于UDP;而TCP可实现的功能,在应用程序层也可实现,那么即可绕开TCP,直接基于IP编程.TCP对比UDP协议TCPUDP是否可靠可靠不可靠[大概率丢包,乱序,重复]协议流式协议报文协议形... 查看详情
linux网络编程必学!——linux_网络编程_udp(代码片段)
文章目录1.预备知识1.1ip地址1.2端口号2.网络字节序2.1大端模式和小端模式2.2字节序转换函数3.sockaddr结构4.认识UDP协议5.socket编程接口6.代码实现UDP7.UDP协议常见问题7.1udp报文丢失问题7.2udp报文乱序问题7.3udp流量控制问题1.预备知识1... 查看详情
java面试题计算机网络知识点总结(代码片段)
计算机网络知识点总结1、计算机网络体系结构图1.1、传输层TCP和UDP的区别和作用?1.2、面向连接和面向无连接的区别?1.3、基于TCP和UDP的有哪些协议?1.4、TCP和UDP协议的使用场景1.5、TCP协议如何保证可靠传输?1.6... 查看详情
python网络编程tcp/udp(代码片段)
目录网络编程1.网络编程基础知识1.1什么是网络1.2网络协议OSI7层模型TCP/IP模型1.3 LinuxWindows命令行查看网络信息1.4 IP地址1.4.1概念:1.4.2IP地址分类:1.5 端口 1.5.1概念1.6服务器和客户端1.6.1服务端(Server):1.6... 查看详情
网络网络编程(代码片段)
文章目录一、预备知识1.源IP地址、目的IP地址2.端口号(port)PIDvsPORT3.TCP、UDP(1)TCP(2)UDP4.网络字节序函数5.IP地址的表示二、socket编程函数1.socket(1)domain(2)type(3 查看详情
字节跳动java面试还要问网络知识?懂一点就好(代码片段)
...六、UDP实现数据上传1、UDP接收端2、UDP发送端3、测试七、网络层的安全问题1、安全问题都有哪些?2、ipidea简介更多详见全球领先的互联网大数据IP资源3、ipidea生成api链接,复制链接即可应用4、生成代理ip操作使用方式一... 查看详情
手把手写c++服务器(14):基于udp测量两台机器之间的网络延迟(代码片段)
前言:网络延迟是网络编程中不可避免的话题,特别是直播、聊天等实时性要求高的应用场景,对网络延迟特别敏感。常用的测量网络延迟工具有基于TCP的qperf等,但是手写一个测量网络延迟的工具可以更好地帮... 查看详情
linux篇第十八篇——网络套接字编程(预备知识+udp套接字的编写)(代码片段)
⭐️本篇博客开始给大家介绍网络编程中的套接字编程——基于UDP协议的套接字和基于TCP的套接字,这篇博客主要介绍基于UDP协议套接字,下一篇介绍基于TCP协议的套接字。在介绍套接字编程之前,我会先给大家介绍... 查看详情
linux篇第十八篇——网络套接字编程(预备知识+udp套接字的编写)(代码片段)
⭐️本篇博客开始给大家介绍网络编程中的套接字编程——基于UDP协议的套接字和基于TCP的套接字,这篇博客主要介绍基于UDP协议套接字,下一篇介绍基于TCP协议的套接字。在介绍套接字编程之前,我会先给大家介绍... 查看详情
软件测试体系学习及构建-网络基础知识了解(代码片段)
网络基础知识了解1计算机网络定义2计算机网络分类3网络层次4OSI七层网络模型5部分层物理设备(举例)6TCP/IP模型6.1各层协议6.2IP协议6.3ICMP协议6.4ARP协议6.5UDP与TCP协议6.6TCP三次握手6.7应用层协议7端口8IP地址8.1含义8.2特点8... 查看详情
udp网络编程(代码片段)
UDP网络通信类DatagramSocket和DatagramPacket实现了基于UDP协议网络程序。UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。DatagramPacket对象封装了U... 查看详情
狂神说java笔记--网络编程部分笔记(代码片段)
传送门==>B站遇见狂神说—网络编程笔记和练习只是跟着视频整理的;有的知识点并没有整理进来.ml1.什么是计算机网络2.网络通信的两个要素3.IP地址4.port:端口5.通信协议6.TCP实现聊天7.TCP文件上传实现8.UDP消息发送9.UDP实现... 查看详情
qttcp/udp网络协议入门实操udp通讯(代码片段)
...章请点击这里: QTWidget学习笔记姊妹篇: QtTCP/UDP网络协议入门实操(一)TCP通讯QtTCP/UDP网络协议入门实操(二)UDP通讯QtTCP/UDP网络协议入门实操 查看详情
qttcp/udp网络协议入门实操udp通讯(代码片段)
...章请点击这里: QTWidget学习笔记姊妹篇: QtTCP/UDP网络协议入门实操(一)TCP通讯QtTCP/UDP网络协议入门实操(二)UDP通讯QtTCP/UDP网络协议入门实操(补充)此文只是最简单 查看详情
qttcp/udp网络协议入门实操udp通讯(代码片段)
...章请点击这里: QTWidget学习笔记姊妹篇: QtTCP/UDP网络协议入门实操(一)TCP通讯QtTCP/UDP网络协议入门实操(二)UDP通讯QtTCP/UDP网络协议入门实操(补充)此文只是最简单 查看详情
udp.3.事件选择模型(代码片段)
...crosoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket基于UDP的网络编程还有5种模型 查看详情
网络协议_udp详谈(代码片段)
文章目录1.UDP简介2.UDP特点3.UDP首部格式4.UDP伪首部5.UDP面向数据报6.UDP的缓冲区7.基于UDP的应用层协议8.UDP套接字编程1.UDP简介Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,UserDatagramProtocol... 查看详情
udp网络程序-发送接收数据(代码片段)
1.udp网络程序-发送数据创建一个基于udp的网络程序流程很简单,具体步骤如下:创建客户端套接字发送/接收数据关闭套接字代码如下:#coding=utf-8fromsocketimport*#1.创建udp套接字udp_socket=socket(AF_INET,SOCK_DGRAM)#2.准备接收方的地址#‘192... 查看详情