11 UDP协议

VS中常用的csc命令 VS中的csc命令用于将一些cs文件编译成一些dll、exe等其他文件,csc的命令参数有很多,可以打开VS的命令提示符输入:csc /help查看具体的,下面是一些简单常用的方法:1):csc  /t:library  test文件夹/.../test.cs编译并生成一个dll库文件,由于此命令没有指定生成的文件的文件夹和文件名,所以默认的文件夹是当前命令所处的目录位置,生成的文件名也是根据源文件名一样.例如:e:/>csc  /t:library  D:/test.cs此命令会将D盘下的test.cs文 阅读详情

1.UDP简要介绍

UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。

2.UDP协议头

2.1.UDP端口号

由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包。端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进来的目的端口号为3000的UDP包都会交给该程序。端口号理论上可以有2^16这么多。因为它的长度是16个bit

2.2.UDP检验和

这是一个可选的选项,并不是所有的系统都对UDP数据包加以检验和数据(相对TCP协议的必须来说),但是RFC中标准要求,发送端应该计算检验和。

UDP检验和覆盖UDP协议头和数据,这和IP的检验和是不同的,IP协议的检验和只是覆盖IP数据头,并不覆盖所有的数据。UDP和TCP都包含一个伪首部,这是为了计算检验和而摄制的。伪首部甚至还包含IP地址这样的IP协议里面都有的信息,目的是让UDP两次检查数据是否已经正确到达目的地。如果发送端没有打开检验和选项,而接收端计算检验和有差错,那么UDP数据将会被悄悄的丢掉(不保证送达),而不产生任何差错报文。

2.3.UDP长度

UDP可以很长很长,可以有65535字节那么长。但是一般网络在传送的时候,一次一般传送不了那么长的协议(涉及到MTU的问题),就只好对数据分片,当然,这些是对UDP等上级协议透明的,UDP不需要关心IP协议层对数据如何分片,下一个章节将会稍微讨论一些分片的策略。

3.IP分片

IP在从上层接到数据以后,要根据IP地址来判断从那个接口发送数据(通过选路),并进行MTU的查询,如果数据大小超过MTU就进行数据分片。数据的分片是对上层和下层透明,而数据也只是到达目的地还会被重新组装,不过不用担心,IP层提供了足够的信息进行数据的再组装。

在IP头里面,16bit识别号唯一记录了一个IP包的ID,具有同一个ID的IP片将会被重新组装;而13位片偏移则记录了某IP片相对整个包的位置;而这两个表示中间的3bit标志则标示着该分片后面是否还有新的分片。这三个标示就组成了IP分片的所有信息,接受方就可以利用这些信息对IP数据进行重新组织(就算是后面的分片比前面的分片先到,这些信息也是足够了)。

因为分片技术在网络上被经常的使用,所以伪造IP分片包进行流氓攻击的软件和人也就层出不穷。

可以用Trancdroute程序来进行简单的MTU侦测。请参看教材。

3.UDP和ARP之间的交互式用

这是不常被人注意到的一个细节,这是针对一些系统地实现来说的。当ARP缓存还是空的时候。UDP在被发送之前一定要发送一个ARP请求来获得目的主机的MAC地址,如果这个UDP的数据包足够大,大到IP层一定要对其进行分片的时候,想象中,该UDP数据包的第一个分片会发出一个ARP查询请求,所有的分片都辉等到这个查询完成以后再发送。事实上是这样吗?

结果是,某些系统会让每一个分片都发送一个ARP查询,所有的分片都在等待,但是接受到第一个回应的时候,主机却只发送了最后一个数据片而抛弃了其他,这实在是让人匪夷所思。这样,因为分片的数据不能被及时组装,接受主机将会在一段时间内将永远无法组装的IP数据包抛弃,并且发送组装超时的ICMP报文(其实很多系统不产生这个差错),以保证接受主机自己的接收端缓存不被那些永远得不到组装的分片充满。

4.ICMP源站抑制差错

当目标主机的处理速度赶不上数据接收的速度,因为接受主机的IP层缓存会被占满,所以主机就会发出一个“我受不了”的一个ICMP报文。

5.UDP服务器设计

UDP协议的某些特性将会影响我们的服务器程序设计,大致总结如下:

  1. 关于客户IP和地址:服务器必须有根据客户IP地址和端口号判断数据包是否合法的能力(这似乎要求每一个服务器都要具备)
  2. 关于目的地址:服务器必须要有过滤广播地址的能力。
  3. 关于数据输入:通常服务器系统的每一个端口号都会和一块输入缓冲区对应,进来的输入根据先来后到的原则等待服务器的处理,所以难免会出现缓冲区溢出的问题,这种情况下,UDP数据包可能会被丢弃,而应用服务器程序本身并不知道这个问题。
  4. 服务器应该限制本地IP地址,就是说它应该可以把自己绑定到某一个网络接口的某一个端口上。
CSC 编译C#代码文件 C#程序一般用VS工具编译发布程序,当然也可以使用命令行进行编译代码文件。 阅读详情

相关推荐

手把手教你用C语言给STM32写一个Modbus RTU从机库(含完整项目源码)

在工业自动化领域,Modbus RTU协议因其简单可靠的特点,成为RS485总线通信的事实标准。对于嵌入式开发者而言,为STM32等微控制器实现一个高效的Modbus RTU从机协议栈,是开发智能传感器、执行器等设备的必备技能。Modbus RTU从机的核心是一个状态机,需要处理帧接收、CRC校验、功能码解析和响应生成等环节。工业现场总会遇到意想不到的干扰情况,一个健壮的协议栈应该能够优雅地处理各种异常场景,而不是简单地崩溃或死锁。工业现场环境复杂,协议栈必须具备完善的异常处理机制。

weixin_30561425的博客 516

TCP/IP详解学习笔记(6)-UDP协议

1.UDP简要介绍UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。 2.UDP协议头2.1.UDP端口号由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包。端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以

一块积木 2万+

MOOS-ivp 实验三 MOOS简介(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

weixin_44151170的博客 7434

LiveGBS国标GB/T28181流媒体服务自定义收流端口区间30000至30500(UDP|TCP)及相关问题说明

GB28181流媒体服务搭建 搭建入口,解压启动即用:https://www.liveqing.com/docs/download/LiveGBS.html 收流端口配置 可在livesms.ini 中配置,配置后需重启LiveSMS 默认TCP 端口区间 : 30000-30500(RTP over TCP) 默认UDP 端口区间 : 30000-30500(RTP/RTCP over UDP) ... [rtp] tcp_port_range=30000,30500 udp_port_range

青柿视频流媒体的博客 3235

Ubuntu16.04下禁用scp、sftp和winscp

在上一篇博文《Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除》中,我讲述了Ubuntu16.04下配置FTP,并且设定用户权限为只能上传数据,禁止下载和删除数据。这算在FTP层面封堵了服务器数据泄露的途径。 但是,Ubuntu系统的scp和sftp还是起作用的,理论上只要能用本地机器ping通服务器,就可以用scp和sftp下载数据,这还是存在数据泄露可能的,所...

HPC&Geophysics攻城狮 5737

Python爬虫实战:利用Playwright和反反爬技术高效抓取Bloomberg金融数据

用户行为分析(鼠标移动、点击模式)请求头检测IP频率限制WebSocket通信验证Canvas指纹识别我们的爬虫需要模拟人类行为,使用代理IP池,并合理控制请求频率。

2201_76125261的博客 1020

UDP学习

前言 在了解UDP之前 ,我们先了解一下网络编程 ,包括三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是UDP这种通信协议,以及编程的实现。 一、IP地址 网络中的计算机使用IP地址来进行唯一标识,IP地址有IPv4和IPv6两种类型。IPv4采用十进制或二进制表示形式,十进制是一种比较常用的表示形式,如192.168.1.131,IPv6采用十六进制表示形式,一般不常用。 在Windows系统下,打开cmd,输入命令ipconfig,按回车即可查看。在Linux或Mac系统下,打开终端,使用

向阳而生的博客 2018

【2026OD新机考】【哈希表】20260422-文章特征提取【Py/Java/C++/C/JS/Go六种语言OD真题】【欧弟算法】全网注释最详细分类最全的华子OD真题题解

90+天陪伴式学习,100+直播课时,300+动画图解视频,500+LeetCode经典题,500+华为OD真题/大厂真题,还有简历修改、模拟面试、陪伴小群、资深HR对接将为你解锁。这道题的本质是多集合交集问题的变形,属于非常典型的哈希表应用题。,储存全局的每个片段中,各个字符最少出现的次数。表示该字母并非所有片段的公共字母。,按照顺序构建答案即可。没有字母在所有三个字符串中都出现。每个字母在各字符串中都至少出现。次,所以结果中每个字母出现一次。这样,当上述循环结束后,最终。显然在上述代码中,如果字母。

weixin_48157259的博客 66

IP地址&TCP协议&UDP协议

IP地址:是网络中设备的唯一标识 IP地址分为两大类 -IPV4:是给每个连接在网络上的主机分配一个32bit地址。按照TCP/IP规定,IP地址用二进制来表示,每个IP地址长32bit,也就是4个字节。例如一个采用二进制形式的P地址是"11000000 10101000 000000101000010”,这么长的地址,处理起来也太费劲了。为了方便使用,IP地址经常 被写成十进制的形式,中间使用符号"." 分隔不同的字节。于是,上面的IP地址可以表示为 “192.168.1.66” 。IP地址的这种表示法叫

XiaoSen207的博客 469

WPF实现圆形菜单动态展开折叠效果

实现效果如下: 思路:根据子菜单个数计算旋转角度动态生成子菜单,并设置展开折叠动画。 步骤: 1、自定义按钮MyButton,建立展示图像属性DisplayImage public class MyButton : Button { public static readonly DependencyProperty DisplayImageProperty = DependencyProperty.Register("DisplayImage", typeof(

dnazhd的博客 3150

第 10 篇:深度学习的“军火库”——CNN、RNN与Transformer,AI如何看懂世界?

深度学习的革命,不是依赖单一的通用大脑,而是为不同任务打造了专属“军火库”:CNN用“局部感知”看懂图像,RNN用“循环记忆”理解序列,而Transformer则用“全局注意力”开启了AIGC时代。理解这些架构,不是记忆孤立的技术,而是洞察AI从“专才”走向“通才”的进化脉络。

maqh_csdn的博客 786

TCP/IP随笔

TCP/IP笔记 1. 网络基础知识 计算机网络:WAN-广域网,LAN-局域网。 协议:简单说,就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。TCP/IP协议是IP、TCP、HTTP等协议的集合。 通信协议中,通常会规定报文首部应该写入哪些信息、应该如何处理这些信息。相互通信的每一台计算机则根据协议构造报文首部、读取首部内容等,为了双方能正常通信,分组的发送方和接收方有必要对报文首部和内容保持一致的定义。 协议的理解 OSI 7层模型 理解:发送方从第七层到第

zqs656546的博客 377

EDEM-fluent耦合时出现的问题及摸索出的解决办法及DPM颗粒信息导出

EDEM-fluent耦合时出现的问题及摸索出的解决办法及DPM颗粒信息导出

zheaa的博客 5750

csc无效

问题5在命令行下用csc命令编译C#文件提示csc 不是内部或外部命令,也不是可运行的程序或批处理文件。解决方案方案1:执行C:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin/sdkvars.bat设置环境变量然后在用csc对cs文件进行编译即可。方案2:(推荐)添加System environment

SkyIsland(被电脑折磨死了) 2414

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ISP pipeline: Cmodel中的CSC模块

该文档描述了Cmodel中CSC(Color Space Convert 色彩空间转换)模块的相关算法。团队成员可以根据该文档对CSC模块进行了解,理解相应代码,也可以依据设计细节自行实现。定义说明CSC色彩空间转换图 2-1 CSC在ISP中的位置CSC(色彩空间转换),是通过一些线性变化,将原本图像的颜色空间转换到其他的颜色空间,一般是将RGB空间转换到YUV(通常是的是 YCbCr,是 YUV 经过偏移得到),目的有:1)兼容一部分黑白显示器,黑白显示器只使用 Y 分量;

m0_74932231的博客 2051

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

csc命令无效的解决办法

在命令行下用csc命令编译C#文件提示csc 不是内部或外部命令,也不是可运行的程序或批处理文件。解决方案方案1:执行C:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin/sdkvars.bat设置环境变量然后在用csc对cs文件进行编译即可。方案2:(推荐)添加System environment variables:

mike35的专栏 3530

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Roslyn和csc的关系?C#编程语言的命令行用法?C#编译器支持的版本?

C#编译器最新是用Roslyn, 对于C#语言,它就是csc的新版本,对于VB.NET,它就是vbc的新版本。

编程语言开发、框架原理、编程思想、最佳实践技巧经验分享。致力于各种编程技术的技巧经验干货分享,讲解开发避坑技巧,追踪开发前沿技术,实战展开解决难题。 程序员小迷助您在编程路上越走越好! 955

CSC 命令详解

<br />C#环境变量设置步骤(这样之后打开CMD就可以直接输入CSC命令): 在桌面右击[我的电脑]->[属性]->[高级]->[环境变量] 在下面的系统变量栏点击“新建” 变量名输入“csc” 变量值输入:“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/”(也许你的机器上.net framework的版本会有所不同,因而后面的文件夹名称v2.0.50727会有不同) 然后在系统变量列表框中双击“Path” 在变量名文本框的最后面加入“;%csc%;”(注意

上善若水 的专栏 9453

csc.exe命令

C#命令行(CSC.EXE) 编译器选项(Framework 1.1) Microsoft Visual Studio .NET 2003 IDE在给我们编程带来方便的同时,也带给了我们无知,在没有vs2003的情况下怎么编译我们的C#文件呢?还是回到原始的命令行编译吧。下面我将把Framework1.1中的编译命令全部介绍一下。 第一部分:命令介绍。 选项 用途 @ 指定响应文件

66 1966

c#中csc命令的用法

CSC.exe把Visual C#程序代码编译成IL文件时,有着很多参数和开关选项。正确的了解和运用这些参数和开关有时会解 决一些看似很棘手的问题。下面就通过一张表来大致说明一下这些参数和开关的具体作用。这些参数和开关选项是按照 字母顺序来排列的。其中带"*",是一些常用的参数或开关。 /////////////////////////////////////////////////////...

wjhl04的专栏 816

NET CSC 命令学习过程

 NET CSC 命令学习过程前几天接了一个NET项目,以前没有接触过NET,不过只能硬着头皮上了,开始准备安装IIS,发现自己只有一个装了xp的笔记本,安装n次不成功,于是只能用web matrix来代替,然后准备安装VS.NET 2005,于是去公司软件部分申请licence,被告诉了要安装VS.NET 2005需要走以下流程,向技术总监-同意-然后向财务部申请-然后购买-然后才能把lic

曦之藏品 1650

csc命令编译器

csc是dos下: 首先需要配置下,配置方法如下: C#环境变量设置: 1、在桌面右击[我的电脑]->[属性]->[高级]->[环境变量] 2、在下面的系统变量栏点击“新建” 3、变量名输入“csc” 4、变量值输入:“C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\” (2000是C:\WINNT\Microsoft.NET...

weixin_30765475的博客 632

CSC研修计划的书写

博主最近在申请国家留学基金会,所以也会更新一下自己的学习笔记,同时有问题大家可以一起交流一下啊。

weixin_48850780的博客 3473

CSC.exe编译C#代码

CSC是什么呢?CSC就是 C-Sharp Compiler,其实就是C#编译器)。

nncrystal的专栏 1770

c#中csc命令

【转】 出处:http://www.cnblogs.com/mq0036/archive/2012/12/25/2832389.html 仅供个人学习使用,如有侵权请及时告知! 1. 配置C#编译器 1).配置C#命令行编译器: 我的电脑 (右键)—〉属性 —〉高级系统设置—〉环境变量 —〉Path —〉添 加”;C:\Windows\Microsoft.NET\Framework...

午后阳光温暖一冬 2771
上一篇: 9,10 IP选路,动态选路
下一篇: 12 13 广播和多播,IGMP协议
otuhacker
博客等级 码龄18年 21粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值