Abstract Inferring and Debugging Path MTU Discovery Failures
- 格式:pdf
- 大小:85.04 KB
- 文档页数:6
abstractprocessor 用法-回复abstractprocessor 用法详解摘要处理器(abstractprocessor)是一种用于生成和处理抽象语法树(AST)的工具。
它是用于编译器和静态代码分析器中的一个重要组件,它可以解析源代码并生成中间表示。
本文将深入介绍abstractprocessor 的用法,从基本概念到实际应用,一步一步回答。
第一步:理解抽象语法树(AST)抽象语法树(AST)是一种树形数据结构,用来表示源代码的结构。
它将源代码分解为抽象的语法单元,例如类、方法、语句、表达式等,以便进行进一步的分析和处理。
AST 通常是编译器中的一个重要中间表示形式,它能够方便地进行静态代码分析、语法检查和代码生成等操作。
第二步:了解abstractprocessorabstractprocessor 是Java 编译器提供的一个工具类,通过它我们可以在编译过程中生成和处理AST。
它是由Java 语言规范定义的一个注解处理器接口,用于处理由特定注解标记的源代码。
abstractprocessor 提供了一组API,用于访问和修改AST,并提供了丰富的工具方法,以便进行静态代码分析和生成等操作。
第三步:编写一个自定义的abstractprocessor要使用abstractprocessor,首先需要编写一个自定义的注解处理器,实现abstractprocessor 接口,并重写其中的方法。
这个注解处理器将负责处理特定注解标记的源代码。
javaimport javax.annotation.processing.*;import ng.model.SourceVersion;import ng.model.element.*;import ng.model.util.ElementFilter;import javax.tools.Diagnostic;import java.util.Set;@SupportedAnnotationTypes("MyAnnotation")public class MyAnnotationProcessor extends AbstractProcessor {@Overridepublic synchronized void init(ProcessingEnvironment processingEnv) {super.init(processingEnv);}@Overridepublic boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {for (TypeElement annotation :ElementFilter.typesIn(roundEnv.getElementsAnnotatedWith(MyAn notation.class))) {处理被MyAnnotation 标记的元素processAnnotation(annotation);}return true;}private void processAnnotation(TypeElement annotation) { 处理注解的逻辑}@Overridepublic SourceVersion getSupportedSourceVersion() {return testSupported();}}上述代码中,我们编写了一个名为`MyAnnotationProcessor` 的自定义注解处理器,它处理了被`MyAnnotation` 注解标记的元素。
【EasyExcel】使⽤easyExcel过程中,项⽬报错的解决集合报错:Can not close IO[ERROR] 2019-11-02 13:51:21.210 [ProExportSkuDataJob-1455-TaskThread-1] [mon.util.DpeLogUtil] [] - fd3f7b29-20191102134946773,dpePartner#ProExportSkuDataJob Job execute fail,errMsg= com.alibaba.excel. at com.alibaba.excel.context.WriteContextImpl.throwCanNotCloseIo(WriteContextImpl.java:390)at com.alibaba.excel.context.WriteContextImpl.finish(WriteContextImpl.java:352)at com.alibaba.excel.write.ExcelBuilderImpl.finish(ExcelBuilderImpl.java:106)at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:98)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:155)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:140)at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:134)at com..proengine.partner.export.job.ProExportSkuDataJob.createXlsxFile2(ProExportSkuDataJob.java:178)at com..proengine.partner.export.job.ProExportSkuDataJob.executeTask(ProExportSkuDataJob.java:83)at com..dispatcher.sdk.task.AbstractSimpleTask.execute(AbstractSimpleTask.java:56)at com..dispatcher.sdk.thread.TaskExecuteThread.run(TaskExecuteThread.java:59)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at ng.Thread.run(Thread.java:745)Caused by: ng.NoSuchMethodError: ermodel.Workbook.close()Vat com.alibaba.excel.context.WriteContextImpl.finish(WriteContextImpl.java:350)... 12 more解决⽅法:将项⽬中pom.xml中依赖的 POI相关的版本升级到 3.17以上【easyexcel版本 2.0.5】我⾃⼰将POI版本升级到了4.1.0报错:ng.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class和Could not initialize class net.sf.cglib.beans.BeanMap$Generatorcom.alibaba.excel.exception.ExcelGenerateException: ng.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super classat com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:99)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:155)at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:140)at com..proengine.partner.export.job.ProExportSkuDataJob.createXlsxFile2(ProExportSkuDataJob.java:182)at com..proengine.partner.export.job.ProExportSkuDataJob.executeTask(ProExportSkuDataJob.java:83)at com..dispatcher.sdk.task.AbstractSimpleTask.execute(AbstractSimpleTask.java:56)at com..dispatcher.sdk.thread.TaskExecuteThread.run(TaskExecuteThread.java:59)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at ng.Thread.run(Thread.java:745)Caused by: ng.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super classat ng.ClassLoader.defineClass1(Native Method)at ng.ClassLoader.defineClass(ClassLoader.java:760)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2567)at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:859)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1302)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)at net.sf.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30)at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)at net.sf.cglib.beans.BeanMap$Generator.<clinit>(BeanMap.java:64)at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56)at com.alibaba.excel.write.ExcelBuilderImpl.addJavaObjectToExcel(ExcelBuilderImpl.java:201)at com.alibaba.excel.write.ExcelBuilderImpl.addOneRowOfDataToExcel(ExcelBuilderImpl.java:128)at com.alibaba.excel.write.ExcelBuilderImpl.doAddContent(ExcelBuilderImpl.java:79)at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:93)... 9 more解决⽅法:是因为项⽬中有cglib的jar包和 asm的jar包冲突。
长期完整性的分层容错论文翻译长期完整性的分层容错秉健春,佩特罗斯曼尼阿蒂斯英特尔研究大学伯克利分校斯科特 Shenker,约翰 Kubiatowicz 美国加州大学伯克利分校摘要通常,容错服务有关的假设类型和故障,他们可以容忍的最大数量这种故障时,同时提供其正确性的保证;阈值是侵犯性,正确性丢失。
我们重新审视的概念在长期归档存储方面的故障阈值。
我们注意到,故障阈值不可避免地长期违反服务,使得传统的容错不适用长期的。
在这项工作中,我们进行的再分配容错预算的一项长期的服务。
我们分裂投入服务件的服务,每一个都可以容忍不同没有失败的故障数(并不会造成整个服务失败):每件可在一个关键值得信赖的过错层,它必须永远不会失败,或不可信的故障层,它可以大量经常失败,或其他故障层次之间。
通过仔细工程的一项长期的服务分裂成片,必须服从不同的故障阈值,我们可以延长其必然灭亡。
我们证明了这一点做法 Bonafide,一个长期的 key - value 存储,与所有类似的文献中提出的系统,在保持完整性面对拜占庭故障,无需自我认证的数据。
我们描述了分层容错的概念,设计,实施, Bonafide 和实验1/ 3评价,并主张我们的做法是一个实际仍未显著改善在长期服务的艺术状态。
一,引言当前容错复制服务设计往往不适合长期的应用,如档案,数字文物,这是越来越重要的存储 [42],为企业的监管[5, 6],文化[36]原因。
从典型的故障假设这不合适结果这类系统的正确性空调。
例如,在典型的拜占庭容错(BFT)系统[13],它是假定复制故障副本的数目总是比一些不太固定阈值,如副本人口的 1 / 3。
在典型的短期的应用,这样一个 uniformthreshold 基于故障假设是合理的,可以实现的。
例如,可以说在一个 wellmaintained 人口多元化,高保证副本服务器,由当时总人口的三分之一被打破生长进入或刚刚出现故障,故障副本的运营商可以修复它们。
abstractprocessor 用法AbstractProcessor 是一个用于在编译期间处理注解的类。
它是Google 提供的一个特殊注解处理器,可以用于生成代码、验证注解使用、在编译期间进行静态分析等。
本文将详细介绍AbstractProcessor 的用法,并逐步回答相关问题。
第一步:了解AbstractProcessor 的基本概念AbstractProcessor 是javax.annotation.processing 包中的一个抽象类,它实现了javax.annotation.processing.Processor 接口。
开发者可以通过继承AbstractProcessor 类,并覆盖其中的方法来创建自定义的注解处理器。
在编译时,Java 编译器会自动调用注解处理器,进行注解处理。
第二步:创建自定义注解处理器首先,我们需要创建一个类,它继承自AbstractProcessor。
在这个类中,我们需要实现Processor 接口中的方法,其中最重要的是process() 方法。
通过重写这个方法,我们可以定义注解处理器具体的逻辑。
此外,还可以重写getSupportedAnnotationTypes() 方法,指定我们希望处理的注解类型,以及重写getSupportedSourceVersion() 方法,指定支持的Java 版本。
第三步:编写注解和被注解的类在开始编写自定义注解处理器之前,我们首先需要定义一个注解。
注解是以interface 关键字开始的,可以包含多个成员变量。
被注解的类则需要使用这个注解进行标记。
在编写注解处理器时,我们可以通过AbstractProcessor 提供的方法来获取注解信息并进行处理,如获取注解的成员变量值等。
第四步:配置编译器参数为了让编译器能够识别并调用注解处理器,我们还需要在build.gradle 或pom.xml 文件中进行相应的配置。
《面向多任务知识迁移的低资源神经机器翻译研究》篇一一、引言随着全球化的不断深入,神经机器翻译(NMT)技术在多语言翻译任务中扮演着越来越重要的角色。
然而,在低资源环境下,如缺乏大量双语平行语料库和计算资源的情况下,传统的神经机器翻译方法往往面临巨大的挑战。
为解决这一问题,本文提出了一种面向多任务知识迁移的低资源神经机器翻译研究方法。
该方法旨在通过多任务知识迁移,充分利用已有知识资源,提高低资源环境下的翻译性能。
二、相关研究综述在神经机器翻译领域,许多研究已致力于解决低资源问题。
其中包括利用大规模单语数据、跨语言信息、多语言信息等方法进行知识迁移。
这些方法在不同程度上都取得了显著的效果。
然而,目前的研究仍然面临着多语言之间差异大、翻译任务复杂多样等挑战。
因此,本研究将进一步探索面向多任务知识迁移的低资源神经机器翻译的解决方案。
三、研究方法本文提出了一种基于多任务知识迁移的低资源神经机器翻译模型。
该模型采用共享底层网络结构的设计,以实现多语言翻译任务的共享表示学习。
同时,针对不同翻译任务的特点,采用不同的解码器进行适配,以充分利用各种语言的特性。
此外,我们还利用了预训练技术,在大量无标签数据上进行预训练,以提高模型的泛化能力。
四、实验与分析为验证本研究的可行性及有效性,我们进行了多组实验。
首先,我们构建了低资源环境下的多语言翻译任务数据集。
然后,我们分别使用传统的神经机器翻译方法和本研究提出的基于多任务知识迁移的模型进行实验对比。
实验结果表明,在低资源环境下,本研究提出的模型在多种语言的翻译任务中均取得了显著的性能提升。
此外,我们还对模型的泛化能力进行了评估,发现经过预训练的模型在未见过的语言对上也能取得较好的翻译效果。
五、讨论与展望本研究通过面向多任务知识迁移的低资源神经机器翻译模型,成功提高了低资源环境下的翻译性能。
然而,仍存在一些挑战和问题需要进一步研究。
首先,如何更好地利用多语言之间的共享表示和差异信息是一个重要的研究方向。
quartus2 问题汇总其实QuartusII自带对Error和Warning的解答。
只需在Error或Warning上点击右键,然后选择“Help”,QuartusII的帮助就会告诉你发生这种错误或警告的原因与解决方法。
当然了,是英文的,但是很简单,很容易理解。
Warning (10235): Verilog HDL Always Construct warning at verilog_ctrl.v(109): variable "temp4" is read inside the Always Construct but isn't in the Always Construct's Event Control解释1:在Always结构中对一个变量进行了读写,但是Always的敏感列表中不包含这个变量。
它不影响QuartusII的综合工具,但是可能引起仿真结果与综合逻辑行为的不符。
解释2:把always @(dela_temp or mod_unsign)改成边沿触发,修改敏感信号。
解释3:如果把always @(state_rxd)改成always @(negedge sclk)或 always @(posedge sclk)是没有警告但是data_rxd 得到的数据会延时一个时钟周期或半个时钟周期。
解释4:这个warning就是说你第二个always块是纯组合逻辑,但mosi作为输入没有被包含在敏感列表中,这样的话你的mosi变化不会影响你这段组合逻辑的输出,一定会生成锁存器,也就是latch 。
Warning (10230): Verilog HDL assignment warning atverilog_ctrl.v(111): truncated value with size 10 to match size of target (8)解释1:数值不指定位宽的话,会被默认成32位,然后就有这个警告了解释2:因为没有指定位宽,所以系统提示默认为32位所以你将out <= out + 1 改为out <= out + 1'b1 就可以了。
Execution Object StructureExecution ObjectContains information TestStand needs to run a sequence, its steps, and any subsequences it calls. You can suspend,interactively debug, resume, terminate, or abort executions.Thread ObjectRepresents an independent path of control flow.Report ObjectContains the report text. The process model updates the Report object, and the sequence editor or user interface displays it.Call StackLists the chain of active sequences waiting for nestedsubsequences to complete. The first item in the call stack is the most-nested sequence invocation.Root SequenceContext ObjectRepresents the execution of the least-nested sequence invocation that contains a list of steps and calls to other sequences.SequenceContext ObjectRepresents the execution of a sequence that another sequence called.Current StepRepresents the executing step of the currently executingsequence in the call stack.Architecture OverviewTestStand Sequence EditorTestStand development environment for creating, modifying,executing, and debugging sequences.Custom User InterfacesCustomizable applications that, depending on mode,edit, execute, and debug test sequences on a test station. User interfaces are available in several different programming languages and include fullsource code, which allows you to modify them to meet specific needs.Process ModelsDefine the operations that occur for all test sequences,such as identifying the UUT, notifying the operator of pass/fail status, generating a test report, and logging results. TestStand includes three fully customizable process models: Sequential, Parallel, and er Interface ControlsA powerful set of ActiveX controls and support APIs for creating custom user interfaces.TestStand EngineA set of DLLs that provides an extensive ActiveX Automation API for controlling and interacting with TestStand. The TestStand Sequence Editor, User Interface Controls, and user interfaces use this API.Sequence File ExecutionsCreated by the TestStand Engine when you execute a test sequence using the sequence editor or a user interface.AdaptersAllow TestStand to call code modules in a variety of different formats and languages. Adapters also allow TestStand to integrate with various ADEs to streamline test code generation and debugging.Code ModulesProgram modules, such as LabVIEW VIs (.vi ) or Windows Dynamic Link Libraries (.dll ), that contain one or more functions that perform a specific test or action. TestStand adapters call code modules. Built-In Step TypesDefine the standard behaviors for common testing operations. Some step types use adapters to call code modules that return data to TestStand for furtheranalysis. Other step types perform standard operations,such as calling an executable or displaying dialog boxes.User-Defined Step TypesDefine a set of custom step properties and default behaviors for each step of that custom type. You can also define data types.TemplatesCreate custom sequences, steps, and variables to use as templates to build sequence files.OVERVIEW CARDNI TestStandTMSystem and ArchitectureNI TestStand is flexible test management software that offers the following major features:•Out-of-the-box configuration and components provide a ready-to-run, full-featured test management environment.•Numerous methods for modifying, configuring,and adding new components, which provide extensibility so you can create a test executive that meets specific requirements without altering the core TestStand Engine. You can upgrade to newer versions of TestStand without losing your customizations.•Sophisticated sequencing, execution, anddebugging capabilities, and a powerful sequence editor that is separate from the user interfaces.•User interface controls for creating custom user interfaces and sequence editors.•You can also create your own user interface in any programming language that can host ActiveX controls or control ActiveX automation servers.•Example user interfaces with source code for National Instruments LabVIEW, National Instruments LabWindows ™/CVI ™, Microsoft Visual Basic .NET, C#, and C++ (MFC).•An open language interface that provides support for many application development environments (ADEs). You can create code modules in a variety of ADEs and call pre-existing modules or executables.• A comprehensive application programminginterface for building multithreaded test systems and other sophisticated test applications.•Integration with third-party source code control packages.•Deployment tools to aid in transferring a test system from development to production.TestStand Sequence EditorCode ModulesResultsResultsResultsResultsResultsResultsResultsResultsCustom User InterfacesUser Interface (UI)ControlsApplication Programming Interface (API) TestStand EngineSequence File ExecutionsUser-Defined Step TypesSequence File ExecutionsNo ModelTest Socket 0Execution UUTUUTUUTTest Socket 1Execution UUTUUT TestSocket nExecution UUTUUTUUT UUT UUTUUTUUTUUTProcess Model Result ProcessingSchema DefinitionsDatabase LoggerReport GeneratorADO/ODBCThread Object 0Thread Object n Sequence File GlobalsStepsMain Step GroupStepsCleanup Step GroupParametersSequencesLocal VariablesAdapters.VI.DLL, .OBJ, .LIB, .C.DLL .DLL, .EXE .DLL, .EXE.PRG .SEQLabVIEW Adapter LabWindows/CVI Adapter C/C++ DLL Adapter .NET Adapter ActiveX/COM Adapter HTBasic Adapter Sequence AdapterTypesSequence FileParallel Process ModelBatch Process ModelSequential Process ModelProcess Model Sequence File ExecutionTestSocket nExecution Test Socket 1Execution TestSocket 0Execution Oracle . . .SQL ServerReport ObjectExecution ObjectCall StackRootSequenceContextObject 0SequenceContextObject 1SequenceContextObject nStep Object 0Step Object n. . .Current StepMicrosoft Access Process Models. ... ..XMLHTMLASCII-Text. . .Sequence File Execution FlowSequence File ExecutionsYou can execute a sequence directly, or you can execute a sequence file through a process model Execution entry point,such as Test UUTs and Single Pass.Process Model Sequence File ExecutionWhen you start an execution through a process modelExecution entry point, the process model defines how to test the UUTs. The Sequential model tests one UUT at a time. The Parallel model tests multiple independent test sockets at the same time. The Batch model tests a batch of UUTs using dependent test sockets.Process Model Result ProcessingThe TestStand Engine collects the results of each step that executes into a result list. Process models use the result list to generate reports and log data to databases. Unit Under Test (UUT)Device or component that you are testing.Test Socket ExecutionFor each test socket, or fixture, in the system, the Parallel and Batch models launch a separate test socket execution that controls the testing of UUTs in that test socket.Report GeneratorThe report generator traverses test results to create reports in XML, HTML, and ASCII-text formats. You can fully customize the reports.Schema DefinitionsSchema definitions define SQL statements, table definitions,and TestStand expressions that define how to log results to a database. You can fully customize the schemas.Database LoggerThe database logger traverses test results and exports data into database tables using schema definitions.Sequence File StructureSequence FileContains any number of sequences, a set of data types and step types the sequence file uses, and any global variables that sequences in the sequence file share.SequencesContain groups of steps, local variables, and parameters used for passing data between steps and subsequences.TypesSequence files contain definitions of all data types and step types that its sequences use. Variables and properties in a sequence are instances of data types. Steps in a sequence are instances of step types.Sequence File GlobalsStore data you want to access from any sequence or step within the sequence file in which you define the sequence file global variable.Setup, Main, Cleanup Step GroupsTestStand executes the steps in the Setup step group first,the Main step group next, and the Cleanup step group last.By default, a sequence moves to the Cleanup step group when a step generates an error in the Setup or Main step group.Local VariablesStore data relevant to the execution of the sequence. You can access local variables from within steps and code modules defined in a sequence.ParametersUse parameters to exchange data between calling and called sequences.StepsPerform built-in operations or call code modules. A step is an instance of a step type, which defines a set of step properties and default behaviors for each step.373457B-01 Apr07. . .. . .. . .National Instruments, NI, , NI TestStand, and LabVIEW are trademarks of National Instruments Corporation. Refer to the Terms of Use section on /legal for more information aboutNational Instruments trademarks. Other product and company names mentioned herein are trademarks or trade names of their respective companies. For patents covering National Instruments products,refer to the appropriate location: Help»Patents in your software, the patents.txt file on your CD, or /patents .© 2003–2007 National Instruments Corporation. All rights reserved.Printed in Ireland.StepsSetup Step GroupTemplatesFlow Control Sequence Call Statement LabelMessage Popup Call Executable Property Loader FTP FilesSynchronization Steps Database Steps IVI-C Steps LabVIEW UtilityPass/Fail Test Numeric Limit Test Multiple Numeric Limit Test String Value Test Action Built-In Step TypesYou can use the fully customizable TestStand developmentenvironment to create, modify, execute, and debug sequences. You can also use the sequence editor to modify step types and process models. You can customize the environment by docking, auto-hiding, and floating panes to optimize your development tasks. TheDevelopment EnvironmentOVERVIEW CARD NI TestStand TMSystem and ArchitectureTestStand includes separate user interface applications developed in LabVIEW, LabWindows/CVI, Microsoft Visual Basic .NET,C#, and C++ (MFC). Because TestStand includes the source code for each user interface, you can fully customize the userinterfaces. You can also create your own user interface using any programming language that can host ActiveX controls orcontrol ActiveX automation servers. With the user interfaces in operator mode, you can start multiple concurrent executions, set breakpoints, and single-step. In editor mode, you can modify sequences, display sequence variables, sequence parameters,step properties, and so on.TestStand Sequence Editor Overview User Interface OverviewPrinted DocumentationNI TestStand Quick Start GuideUse this document for system requirements andinstallation instructions. This document also contains information about the different TestStand licensing options.NI TestStand Release NotesUse this document to learn about new features and upgrade information.Using TestStandUse this manual to familiarize yourself with the TestStand environment and the basic features you use to build and run test sequences.Using LabVIEW with TestStandUse this manual in conjunction with the Using TestStand manual to learn how to use LabVIEW with ing LabWindows/CVI with TestStandUse this manual in conjunction with the Using TestStand manual to learn how to use LabWindows/CVI with TestStand.NI TestStand Reference ManualUse this manual to learn about TestStand concepts,architecture, and features.Online HelpNI TestStand HelpUse this help file to learn more about the TestStand environment and the TestStand User Interface Controls and Engine APIs. The NI TestStand Help also includes basic information about using an ActiveX automation server.NI TestStand VIs and Functions HelpUse this help file to learn more about TestStand-specific VIs and functions. This help file is accessible only from LabVIEW.Cards and PostersNI TestStand User Interface Controls Reference Poster Use this poster to learn about the controls available for writing custom user interfaces for TestStand.NI TestStand API Reference PosterUse this poster as an overview of the TestStand API. This poster lists the properties, objects, methods, and APIinheritance of the TestStand API.L i s t B a r Lists the currentlyopen sequence files and executions.S e q u e n c e F i l e W i n d o wE x e c u t i o n V i e wR e p o r t V i e wS e q u e n c e V i e wLists steps in the sequence and step group for the sequence file you select in the list bar.Displays the threads,call stack, and steps for the execution you select.Displays the report for the execution you select.Displays sequences and other items in a sequence Displays the threads,call stack, and stepsthat an execution runs.When executioncompletes, displays thereport for theexecution.User Manager WindowAdministers groups, users,login names, pass-words, and privi-leges.UsersDisplays users for the test station. Output Pane Displays output messages that expressions and code modules post to theTestStand Engine.Call Stack Pane Displays the nested sequence invocations for the thread you select.sequence editor provides familiar LabVIEW, LabWindows/CVI, and Microsoft Visual Studio .NET debugging tools, including breakpoints, single-stepping, stepping into or over function calls, tracing, a Variables pane, and a Watch View pane. In the TestStand Sequence Editor, you can start multiple concurrent executions, execute multiple instances of the same sequence, and execute different sequences at the same time. Separate Execution windows display each execution. In trace mode, the Execution window displays the steps in the currently executing sequence. When you suspend an execution, the Execution window displays the next step to execute and provides single-stepping options.Templates List Organizes custom sequences, steps,and variables you can use as templates for building sequence files.Step Settings PaneSpecifies the settings for the step, such as code module parameters, switching, flow control, and post actions.Variables Pane Displays the variables andproperties, including the values, that steps can access at run time.StepPerforms built-in operations or calls code modules.ProjectOrganizes sequence files and code module files in folders.Workspace PaneManages projects for source code control (SCC) integration and deployment. TestStand inte-grates with third-party SCC pack-ages to add files, obtain the lat-est versions of files, and check files in and out.Watch View Pane Monitors the values of specifiedvariables, properties,and expressions during an execution.Threads Pane Contains a list of threads in the current execution.Insertion Palette Displays step types and templates you can insert into sequence files.GroupsDisplays groups that users belong to.。
《基于深度学习和序列标注的文本因果关系抽取研究》篇一一、引言随着大数据时代的到来,文本数据在各个领域的应用越来越广泛。
其中,文本因果关系抽取是自然语言处理领域的一个重要研究方向。
它旨在从文本中自动抽取因果关系,为人们提供更准确、更高效的信息处理方式。
传统的因果关系抽取方法主要依赖于规则匹配和人工特征工程,但这些方法往往无法处理复杂的因果关系和大量的文本数据。
因此,基于深度学习和序列标注的文本因果关系抽取方法逐渐成为研究热点。
二、研究背景与意义深度学习在自然语言处理领域取得了显著的成果,其强大的特征提取能力和泛化能力使得它在文本因果关系抽取方面具有巨大的潜力。
序列标注技术作为深度学习的一种重要应用,可以有效地对文本中的实体进行标注和识别,从而为因果关系抽取提供有力支持。
因此,基于深度学习和序列标注的文本因果关系抽取研究具有重要的理论价值和实践意义。
三、相关文献综述近年来,国内外学者在文本因果关系抽取方面进行了大量研究。
传统的因果关系抽取方法主要依赖于规则匹配和人工特征工程,但这些方法的准确性和效率较低。
随着深度学习的发展,越来越多的研究者开始探索基于深度学习的因果关系抽取方法。
其中,基于序列标注的因果关系抽取方法成为一种重要的研究方向。
该方法通过训练深度学习模型对文本中的实体进行标注和识别,从而提取出文本中的因果关系。
相关研究表明,该方法在处理复杂因果关系和大量文本数据时具有显著的优势。
四、研究内容与方法本研究采用深度学习和序列标注技术,对文本中的因果关系进行抽取。
具体步骤如下:1. 数据预处理:对文本数据进行清洗、分词、去除停用词等操作,为后续的模型训练提供高质量的数据集。
2. 特征提取:利用深度学习模型对文本中的实体进行特征提取,包括词向量、语法结构等信息。
3. 序列标注:采用序列标注技术对文本中的实体进行标注和识别,包括因果关系的触发词、主体、客体等。
4. 因果关系抽取:根据序列标注的结果,提取出文本中的因果关系,包括因果关系的类型、方向等信息。
《一种利用特征价值的Android对抗样本生成方法》篇一一、引言随着移动互联网的飞速发展,Android平台已成为全球范围内使用最广泛的移动操作系统。
然而,随着其普及程度的提高,Android平台上的安全问题也日益突出。
其中,恶意软件和攻击样本的传播与攻击是当前面临的主要挑战之一。
为了有效应对这些挑战,本文提出了一种利用特征价值的Android对抗样本生成方法。
该方法旨在通过分析恶意软件的特征,生成具有对抗性的样本,以提升Android平台的安全性。
二、Android平台安全现状Android平台因其开放性和跨平台性,吸引了大量开发者参与应用开发。
然而,这也为恶意软件提供了可乘之机。
恶意软件通过隐藏在正常应用中,窃取用户信息、破坏系统功能等方式,给用户带来巨大的损失。
因此,如何有效检测和防范恶意软件成为当前研究的重点。
三、特征价值分析在Android对抗样本生成过程中,特征价值分析是关键的一步。
该方法通过分析恶意软件的特征,如代码结构、行为模式、网络通信等,提取出有价值的特征信息。
这些特征信息对于识别和分类恶意软件具有重要意义。
在提取特征的过程中,需要考虑到不同类型恶意软件之间的共性和差异,以及它们在不同环境下的变化情况。
四、对抗样本生成方法基于特征价值分析的结果,本文提出了一种利用特征价值的Android对抗样本生成方法。
该方法主要包括以下几个步骤:1. 收集恶意软件样本:从公开数据源和实际环境中收集各种类型的恶意软件样本。
2. 特征提取:利用机器学习和模式识别技术,从恶意软件样本中提取出有价值的特征信息。
3. 生成对抗样本:根据提取的特征信息,生成具有对抗性的样本。
这些样本在形态上与正常样本相似,但在某些关键特征上与恶意软件样本具有相似性,从而能够在检测过程中欺骗检测系统。
4. 评估与优化:对生成的对抗样本进行评估,分析其对抗性能和误报率等指标。
根据评估结果对方法进行优化,提高对抗样本的生成效率和效果。
Inferring and Debugging Path MTU Discovery FailuresMatthew Luckie University of Waikato mjl@Kenjiro ChoInternet Initiative Japankjc@Bill OwensNYSERNetowens@AbstractIf a host can send packets larger than an Internet path can forward,it relies on the timely delivery of Internet Control Message Protocol(ICMP)messages advising that the pac-ket is too big to forward.An ICMP Packet Too Big message reports the largest packet size–or Maximum Transmission Unit(MTU)–that can be forwarded to the next hop.The iterative process of determining the largest packet size sup-ported by a path by learning the next-hop MTU of each MTU-constraining link on the path is known as Path MTU Discovery(PMTUD).It is fundamental to the optimal oper-ation of the Internet.There is a perception that PMTUD is not working well in the modern Internet due to ICMP mes-sages beingfirewalled or otherwise disabled due to security concerns.This paper provides a review of modern PMTUD failure modes.We present a tool designed to help network operators and users infer the location of a failure.The tool provides fairly detailed information about each failure,so the failure can be resolved.Finally,we provide data on the failures that occurred on a large jumbo-capable network andfind that although disabling ICMP messages is a prob-lem,many other failure modes were found.1IntroductionGiven a volume of data to send,it is desirable to encap-sulate the data in the fewest number of packets possible, as“much of the cost of packetised communication is per-packet rather than per-probe”[1].To send the fewest num-ber of packets possible,a host must determine the largest IP packet size–or Maximum Transmission Unit(MTU)–supported by the path.The iterative process to deter-mine the largest possible MTU on an end-to-end path by consecutively learning the next-hop MTU of each MTU-constraining link on the path is known as Path MTU Dis-covery(PMTUD).PMTUD allows a host or application to determine the largest IP packet size supported by an Inter-net path,and thus send the fewest number of packets.Path MTU Discovery is documented in RFC1191for IPv4[2]and RFC1981for IPv6[3].An application or kernel determines the largest supported MTU on an Inter-net path in an iterative manner,starting with the outgoing interface’s MTU.It reduces the Path MTU each time a Pac-ket Too Big(PTB)message is received until the destination host is reached,using the next-hop MTU value included in each successive PTB message.When this approach to PM-TUD works,it allows an end host to quickly determine the Path MTU.There are,however,a number of well-known limitations of this technique[4],and work is in progress in the IETF to redefine the PMTUD method.This work discusses the current approach to PMTUD.The failure modes of PMTUD are often difficult to de-bug,as they are triggered by relatively large packets.For example,a TCP connection may be established through a path where a PMTUD failure exists,as the TCP three-way handshake involves small packets that are unlikely to trigger a PMTUD failure.However,a PMTUD failure is likely to occur when either end of the TCP connection at-tempts to send a packet that is larger than can be forwarded through the path without fragmentation.A scenario like this is likely to cause the TCP connection to stall for some period of time before either failing,sending smaller pack-ets,or allowing retransmitted packets to be fragmented. This work introduces a technique for inferring and de-bugging PMTUD failures which occur on the forward path. Our technique uses a traceroute-like method to infer the lo-cation of a failure and the maximum packet size which can be forwarded through it.The technique does not infer fail-ures that occur on the reverse path,such as the over-zealous firewalling of all inbound ICMP packets–including PTB messages–in order to protect a machine from security con-cerns related to ICMP or crude Denial of Service(DoS) attacks[5].A recent study on the TCP behaviour of web-servers[6]found that PMTUD on the reverse path failed for 17%of81776targets tested and35%of500popular web-sites tested–presumably because of middle-boxes which blocked inbound ICMP to the web-servers.The rest of this paper is organised as follows.We begin by reviewing some of the known PMTUD failures in Sec-tion2.We then discuss the debugging techniques used in this work to infer the location and mode of a PMTUD fail-ure,and discuss the implementation of these techniques in our publicly available tool,scamper,in Section3.In Sec-tion4,we discuss the data collection that we did in support of this work,and then present some analysis of the results obtained in Section5.Finally,we discuss a few anecdotes of strange behaviours we observed separate to the data col-lection for this study,before presenting our conclusions.2Path MTU Discovery Failure Modes2.1Router Configuration IssuesThe most well known PMTUD failure mode is the ICMP Black Hole discussed in RFC2923[4].The ICMP Black Hole problem has two halves;routers which do not send PTB messages due to misconfiguration or implementation bugs,and hosts which do not receive PTB messages due to a middle-box orfirewallfiltering them.The problem of router misconfiguration wasfirst documented in RFC 1435[7],where it was reported that code had been added to some routers to provide the capability to disable ICMP message generation in order to protect old BSD hosts, which were faulty in their handling of some ICMP mes-sages.The RFC recommended that router code be updated to exclude PTB messages from suppression,as that par-ticular message type did not trigger the faulty behaviour. However,it appears that this recommendation has either not been widely implemented,or operators are not using it. In the modern Internet,a router which does not send any ICMP message is almost certainly configured that way due to security concerns.2.2MTU MismatchesAn MTU mismatch occurs when a router and the path to the next-hop do not have a consistent understanding of the MTU.Specifically,a router believes that the path to the next hop is capable of forwarding packets larger than it ac-tually can.Such a mismatch causes PMTUD to fail be-cause the MTU change occurs below the IP layer,where a PTB message is not sent.A common scenario where this occurs is connecting a jumbo-capable gigabit Ethernet in-terface and a non-jumbo interface,which could be gigabit or fast Ethernet,across a switch.It can also occur if two jumbo interfaces are connected to a switch that does not support jumbo packets.The jumbo-capable Ethernet inter-face can send packets larger than1500bytes to the switch. However,the switch either cannot accept these packets,or cannot forward them to the next interface,and so the pack-ets are silently discarded.2.3No Suggested Next-Hop MTUThe original IPv4ICMP protocol[8]did not define the next-hop MTUfield that PMTUD relies on to determine the largest packet size supported to the next hop.The next-hop MTUfield wasfirst defined in RFC1191[2],and makes use of otherwise unused space in the ICMP mes-sage.Routers that do not set the next-hop MTUfield in a PTB message are easily detected,as the unused space is set to zero.In the face of a PTB message without a suggested next-hop MTU,current practice in the NetBSD kernel–among others–is to determine the size of the packet that caused the PTB message by examining the lengthfield re-turned with the IP header embedded in the PTB message and then select a smaller packet size from a table of known MTU values.2.4Private AddressingSome operators choose to use RFC1918[9]private ad-dresses when numbering router interfaces in order to avoid using public addresses.The use of RFC1918addresses can cause PMTUD to fail if PTB messages are sent with an RFC1918source address,since packets with RFC1918 source addresses are often dropped by ingressfilters at the network edge.2.5Unspecified Implementation Bugs There are other possibilities of PMTUD failure modes re-lated to implementation bugs.For example,a router may send a PTB message with a suggested next-hop MTU larger than the size of the packet which caused it to be sent.Pos-sible causes of this failure mode include not sending the next-hop MTUfield in network byte order,or a router not adjusting internal state correctly when adding or remov-ing headers.Other possible implementation bugs include: sending a PTB message with the embedded IP packet mod-ified in some way such that the PTB message is unable to be matched with an active connection or application;sending an ICMP error message without generating a valid ICMP checksum;and sending an ICMP error message that is not a PTB message when it should have been.3Debugging TechniquesWe have implemented two forward path debugging tech-niques into scamper,our publicly available measurement tool.The initial goal of the PMTUD code in scamper was to enable the detection of IPv6-over-IPv4tunnels when com-paring IPv4and IPv6paths between pairs of dual-stack nodes[10].The code has evolved beyond this requirement, in part due to experiences in inferring tunnels in uncooper-ative paths.To begin with,scamper conducts a standard traceroute with small UDP probes to unused ports.The purpose of this initial phase is to infer the forward IP path topology, determine which routers will provide ICMP feedback to small TTL-limited probes,and ensure that small probes are terminated somewhere in the path by an ICMP Des-tination Unreachable message so that scamper can distin-guish between large probes being silently discarded and all probes being silently discarded.After the traceroute com-pletes,scamper begins a PMTUD phase,where it solicits PTB messages in response to large probes until the desti-nation is reached.scamper infers that PMTUD has failed when it does not obtain an expected reply packet to a probe the size of the currently known Path MTU value.When a PMTUD failure is detected,it uses one of two debugging techniques to infer the location of the failure and the largest packet which can be forwarded.Before we describe the two debugging techniques in detail,we describe the process by which the next-hop MTU is inferred.3.1Next-hop MTU SearchThe purpose of the next-hop MTU search is to infer the largest packet size which can be forwarded to the next-hop. The general strategy is to,as quickly as possible,reduce a search space bounded by the smallest packet size to obtain a valid response and the largest packet size to not obtain a valid response,tofind the underlying next-hop MTU.A binary search is not well suited to this task,for two rea-sons.First,MTU values tend to cluster due to the fairly limited combinations of media MTU values and encapsula-tions commonly used.Second,each probe that is discarded without the source receiving any ICMP feedback incurs a timeout delay that is often at least an order of magnitude larger than the delay incurred when probing with a pac-ket that does obtain ICMP feedback.By default,scamper will retry a probe that obtains no ICMP feedback once,five seconds after sending the initial probe.In this scenario,a choice of probe size that does not obtain ICMP feedback in-curs a ten second penalty before a different probe size can be tried.In order to determine the actual next-hop MTU as quickly and efficiently as possible,scamper is pre-loaded with a table of known MTU values.When scamper begins a next-hop MTU search,it defines the lower bound by selecting an MTU in the table smaller than the failed probe,depending on three criteria.First, if the failed probe is larger than1500bytes,then scamper tries with a1500byte packet,as Ethernet is ubiquitous and likely to be the cause of an MTU restriction from larger frame sizes.Second,if the failed probe is larger than1454 bytes,then scamper tries with a1454byte probe because 1454is a lower bound of a series of MTU values that in-dicate some tunnel or encapsulation of IP over Ethernet. Otherwise,scamper selects the largest MTU from the table that is smaller than the size of the failed probe.The search for the initial lower bound is complete when ICMP feed-back is obtained;the upper bound is reduced each time a probe for the initial lower bound does not obtain feedback. After the lower bound is set,scamper then narrows the search space until it converges on the actual next-hop MTU. The approach to choosing a suitable probe size consists of three criteria,which are checked in order until a matching condition is found.First,if the lower bound of the search space is1500bytes or is a known MTU value in the table, and the upper bound is smaller than the next largest known MTU,then scamper probes with a packet one byte larger than the lower bound.The rationale for this is that if the search space is narrowed to within two entries in the MTU table,then there is a fair chance that the actual next-hop MTU is the current lower bound,and we can confirm this by sending a probe one byte larger.Second,if the next largest MTU in the table is smaller than the current upper bound,then scamper chooses this MTU as its next probe size.The rationale for this decision is that scamper can quickly determine the next-hop MTU if it is one of the val-ues in the stly,if scamper is working within two known MTU values,then it will resort to a binary search to determine the next-hop MTU.3.2Inferring MTU without FeedbackThis technique is used to infer the next-hop MTU and lo-cation of a hop that does not send PTB messages when it should.This technique is used when scamper does not ob-tain ICMP feedback with large packets the size of the cur-rent working Path MTU value.The technique consists of two stages.Thefirst stage is a next-hop MTU search to in-fer the largest packet that can be forwarded,as described in Section3.1.The second stage is a Time-to-Live(TTL)or Hop-Limit(HLIM)search of the forward path to infer the hop where large packets are silently discarded by determin-ing the largest TTL or HLIM value that can be set in the IP header which still obtains an ICMP Time Exceeded mes-sage in response.This debugging technique is illustrated in Figure1.This technique can infer a series of failure modes which are difficult to distinguish from each other,as there are many reasons why a source host may not receive a PTB message,and we have incomplete information to defini-tively infer why.We can,however,use a few heuristics to narrow the failure modes down.If the farthest hop from which we obtain an ICMP Time Exceeded message with a large TTL-limited probe is im-mediately before a hop from which we obtain no ICMP Time Exceeded messages,we infer that the failure is likely to occur at the next hop either because all ICMP messages are disabled,or all ICMP responses from the router are be-ingfiltered somewhere in the network,possibly due to the use of RFC1918addresses.If we are able to receive ICMP1500T T L 255, S iz e 14543.1.2.T T L 255, S iz e 15004.5.T T L 255, S iz e 1480IC M P P o rt U n rea c h ab leIC M P P o rt U n rea ch a b le 6.T T L 255, S iz e 150012. ICMP Time ExceededT T L 255, S iz e 14927.T T L 255, S iz e 14928.T T L 255, S iz e 14819.T T L 255, S iz e 148110.T T L 1, S iz e 150011.14.T T L 3, S iz e 15013.T T L 3, S iz e 1500DstSrcR1R315001480*1500Figure 1:Inferring the MTU without feedback.An ICMP Black Hole exists between routers R1and R3where the MTU is restricted to 1480bytes.A PMTUD failure is de-tected with probes 1and 2,probes 3to 10infer that the next-hop MTU is 1480,and probes 11to 14infer that the large packets are probably being discarded at hop 2.Time Exceeded messages with small TTL-limited probes from adjacent hops but we only receive Time Exceeded messages with large probes from the first hop in the path,we infer that the failure mode is likely to be either due to an interface being configured to not send any ICMP Destina-tion Unreachable messages,or an MTU mismatch between the adjacent routers,or the PTB message originating from a different interface than the interface that sends Time Ex-ceeded messages –with a source address that causes the PTB message to be subsequently filtered.3.3Inferring MTU with Invalid FeedbackThis technique is used when a PTB message is received in response to a large probe,but the next-hop MTU in-cluded in the PTB message is either not set,or is larger than the probe which triggered the message.This tech-nique uses a variation of the next-hop MTU search tech-nique described in Section 3.1;instead of using the absence of a PTB message to reduce the upper-bound of the search space,this technique uses the faulty PTB message.This method can converge on the actual next-hop MTU fairly rapidly if ICMP feedback is received for packets smallerthan the next-hop MTU past the faulty router,as the test for each probe size costs one round-trip-time (RTT).We use a slightly different technique if the path does not provide ICMP feedback after the faulty router due to another fail-ure further in the path.When this occurs,scamper works progressively downwards through the MTU table soliciting faulty PTB messages rather than moving progressively up-wards,as it would normally do.This is because scamper has to time-out on a probe which does not obtain ICMP feedback before it can send another probe,which has a much larger cost than sending packets which trigger faulty PTB messages.3.4LimitationsAs the techniques we described rely on ICMP messages as feedback,they can be unreliable when ICMP rate-limiting is encountered.By default,scamper will send each probe twice before trying another probe type,with a five second timeout between each attempt.If two successive probes do not receive ICMP feedback due to rate-limiting,we may in-fer an incorrect next-hop MTU,or infer the wrong location of a failure,or infer a failure where one does not exist.4MethodologyWe collected PMTUD failure data from two IPv4hosts with 9000-byte MTU interfaces connected to networks that peer with Internet2,which itself is 9000-byte clean through the core,on April 28th 2005.The first location was from NYSERNet in New York,and the second was an Internet2measurement machine in Chicago.The target list consists of 147NLANR AMP machines,which are typically either on university campuses connected to the Internet2network,or connected to networks that peer with Internet2.Most of the AMP machines connect to their host network with an Intel Pro100Ethernet interface,which is capable of send-ing 1500byte IP packets.Some have Gigabit Ethernet in-terfaces which are capable of sending IP packets larger than 1500bytes,but are not configured to do so.The purpose of this dataset is to understand PMTUD failures on networks that can natively carry jumbo packets,and thus will require fragmentation at least at the edge of the campus network closer to each individual AMP machine.5ResultsOf the 147AMP machines in each dataset,we were able to complete a traceroute to at least 134machines,or 91%of the target list.However,we inferred a PMTUD failure for 30%of the reachable machines.A summary of the fail-ures is presented in Table 1.We categorised the failures into four groups:failure points where no ICMP messagesDataset:NYSERNet-east IntersectionChicago,IL–Hostname:–Apr282005,20:10CDT–147–Reachable:136(92.5%)13440(29.9%)–5(5unique)7unique No PTB messages:26(17unique)13(13unique)2(2unique)2unique Target MTU Mismatch:7(7unique)6(6unique)tempts to determine the cause of what appeared to be a bug were difficult.Initially,we were told the fault was some-how related to the next-hop having an MPLS header with room for three4-byte MPLS labels.It was also suggested that the fault could be a particular known router bug,al-though the bug number suggested seems unrelated.At this time we have been unable to determine the cause of the fault,and are pursuing this matter with a router vendor. Unspecified router bugs can also prevent PMTUD from succeeding,as discussed in Section2.5.During the course of scamper’s development,we found an IPv6router which appeared to route IPv6packets over an IPv6-in-IPv4tunnel with an MTU of1480bytes.However,for IPv6packets larger than1480bytes,we did not receive any PTB mes-sages.Rather,it sent two Destination Unreachable,No Route messages.Thefirst message was returned with the IPv6probe packet intact and caused scamper to cease PM-TUD to the target beyond it.The second message–which we picked up by accident while monitoring all ICMPv6 packets into the machine–was unable to be matched to any probe we sent,as the encapsulated probe packet had the source and destination portfields zeroed out.We contacted the site responsible and reported the fault.To our knowl-edge,the fault was never identified and corrected,and went away when the particular path was replaced with a native IPv6path.7ConclusionThe consensus is that Path MTU Discovery–in its current form–is unreliable due to it relying on the timely delivery of PTB messages,which are disabled orfirewalled in many networks.We hypothesise that these failures go unnoticed in routine operational testing and monitoring,as they are only noticeable with larger probe packets.The default size of probe packets sent using traceroute and ping is too small to trigger PMTUD failures,and in the absence of packet loss with these basic connectivity measures,it is tempting to declare a path as fully operational.In this paper,we presented a series of debugging tech-niques which infer PMTUD failures on the forward path. Using our implementation,we collected data on PMTUD failures found in jumbogram-capable networks.We found that of the reachable targets,30%had a failure that would prevent efficient end-to-end communication from taking place.Less than half of these failures were caused by a configuration decision to disable the ICMP messages that are necessary for PMTUD to work.As the Internet MTU is raised,particularly as jumbo-capable Ethernet interfaces become more commonplace and jumbo transit services are offered,it seems likely that the classical PMTUD meth-ods will continue to be strained.Until the new approach to PMTUD is completed and widely deployed amongst end-hosts,we believe our tool is a useful operational utility.Acknowledgementsscamper’s development was generously funded by the WIDE project in association with CAIDA from April2004 to March2005.The NLANR Measurement and Network Analysis Group(NLANR/MNA)is supported by the Na-tional Science Foundation(NSF)under cooperative agree-ment no.ANI-0129677.Matt Zekauskas(Internet2)col-lected the nms1-chin dataset.Maureen C.Curran and Joe Groff provided valuable editorial assistance.Matt Brown, Nevil Brownlee,Alan Holt,and Perry Lorier provided use-ful feedback on the paper.References[1]C.A.Kent and J.C.Mogul.Fragmentation consideredharmful.ACM SIGCOMM Computer Communication Review,17(5):390–401,1987.[2]J.Mogul and S.Deering.Path MTU Discovery.RFC1191,IETF,November1990.[3]J.McCann,S.Deering,and J.Mogul.Path MTU Dis-covery for IP version6.RFC1981,IETF,August 1996.[4]hey.TCP problems with Path MTU Discovery.RFC2923,IETF,September2000.[5]R.van den Berg and P.Dibowitz.Over-zealous se-curity administrators are breaking the Internet.In Proceedings of LISA’02:Sixteenth Systems Admin-istration Conference,pages213–218,Berkeley,CA, November2002.[6]A.Medina,M.Allman,and S.Floyd.Measuringthe evolution of transport protocols in the Internet.ACM SIGCOMM Computer Communication Review, 35(2):37–52,April2005.[7]S.Knowles.IESG advice from experience with PathMTU Discovery.RFC1435,IETF,March1993. [8]J.Postel.Internet Control Message Protocol.RFC792,IETF,September1981.[9]Y.Rekhter, B.Moskowitz, D.Karrenberg,G.J.de Groot,and E.Lear.Address allocation for private internets.RFC1918,IETF,February1996. [10]K.Cho,M.Luckie,and B.Huffaker.IdentifyingIPv6network problems in the dual-stack world.In Proceedings of the ACM SIGCOMM workshop on Network troubleshooting:research,theory and op-erations practice meet malfunctioning reality,pages 283–288,Portland,OR.,September2004.。