protocols - CSDN
精华内容
参与话题
  • Protocols

    2019-10-03 01:23:05
    Protocol 相当于 .Net 和 Java 中的 interface protocol 声明 @protocol ProtocolName // list of methods and properties @end ...protocol 中可以声明实例属性和方法,也可以声明class属性和方法(相当于 .Net ...

    Protocol 相当于 .Net 和 Java 中的 interface

    protocol 声明

    @protocol ProtocolName

    // list of methods and properties

    @end

     

    protocol 中可以声明实例属性和方法,也可以声明class属性和方法(相当于 .Net 和 Java 中的静态属性和静态方法)

    protocol 的注入:

    @interface ClassName : NSObject

    @property (weak) id <ProtocolName> obj;

    @end

     

    默认情况下,protocol中定义的方法和属性都是required的,继承了protocol的类必须实现这些required的方法和属性。可以用optional关键字在protocol中定义一些不用必须实现的方法或属性

    @protocol NothinProtocal

    - someMethod;

    @optional

    - optionalMethod;

    @end

     

    在调用optional方法之前,需要先检查类对象是否实现了该方法,例如

    if([Self.obj respondsToSelector:@selector(optionalMethod)]){

      [self.obj optionalMethod];

    }

     

    因为respondsToSelector方法是在NSObject这个protocol中定义的,所以NothinProtocal需要继承NSObject. 否则上述代码会编译失败

    protpcol的继承:

    @protocol ProtocolName <NSObject>

    ...

    @end

     

    实现protocol:

    @interface ClassName : NSObject <protocol1, protocol2, protocol3, ...>

    ...

    @end

    转载于:https://www.cnblogs.com/SuuuperPig/p/3867730.html

    展开全文
  • protocols 协议

    2011-12-21 15:54:38
    协议 协议用于声明一些方法,这些方法有其他任何(遵循协议的)类来实现。它主要用于一下三种情形: 1.声明一些其他类期望实现的方法; 2.为需要隐藏自身的对象定义接口; ...3.在没有继承相关性的对象之间抽象出相似性;...

    协议

    协议用于声明一些方法,这些方法有其他任何(遵循协议的)类来实现。它主要用于一下三种情形:

    1.声明一些其他类期望实现的方法;

    2.为需要隐藏自身的对象定义接口;

    3.在没有继承相关性的对象之间抽象出相似性;

    接口定义(用于其他类实现)

    类和条目(category)的接口主要声明了一些方法,这些方法会在特定类实现文件中加以定义。相对而言,正式和非正式的协议,它们所声明得方法并不会针对特定的类,它是一种大众方法声明,任意一个或者多个类中都可以对这些方法加以实现。

    从定义方法来说,协议就是一种简单的方法声明列表,不绑定任何类定义。例如,以下一些定义用户鼠标事件的方法可以汇集在一个协议中

    - (void)mouseDown:(NSEvent *)theEvent;
    - (void)mouseDragged:(NSEvent *)theEvent;
    - (void)mouseUp:(NSEvent *)theEvent;

    任意想要响应这些鼠标事件的类都可以遵循该协议并在自身类内部加以实现。

    协议使得方法的声明不再依赖于特定类的层级关系,所以它的使用方式与类和条目(category)有很大的不同。协议只知道它包含的方法列表(可能)会在某些地方实现,但它并不关心具体在哪个类中实现。协议真正关心的是特定的类是否遵从并实现了类中声明的方法。因此对于对象的分类,不仅涉及类的继承关系,还有它们所遵循的协议。某些类即使它们属于不同的层级关系,但是它们所遵循的协议相同,它们也可以有共通点。

    协议在面向对象的设计中扮演了很重要的角色,尤其是当一个项目要用到很多的实现体或者其他项目所开发的对象。cocoa软件中就大量的使用了协议来实现objective-c消息的内部通讯。

    当然并不是所有的objective-c程序都必须使用协议。它是非强制的,不像类定义和发消息表达式。有些cocoa框架中使用了它们,有些没有。主要还是看手头的工作是否有必要。

    其他类来实现方法

    如果你对类定义有所了解的话,你可以看看其中的接口声明(还有子类的一些接口声明),从中你就可以找到这些对象响应哪些消息。这些声明向外部广播了它可以接受并响应的消息。而协议则提供了一种向外界广播它们要发送的消息的机制。

    Communication works both ways; objects send messages as well as receive them. For example, an object might delegate responsibility for a certain operation to another object, or it may on occasion simply need to ask another object for information. In some cases, an object might be willing to notify other objects of its actions so that they can take whatever collateral measures might be required.
    (通讯工作是双向的;对象不但接收消息,它们也发送消息。例如,一个对象可以将某些特定的操作委托给另外一个对象,或者可能只是简单的从另外一个对象上获取一些信息。也有一些情况下,一个对象可能希望把它自己的一些动作通知给其他对象以便其他对象进行相关的动作。)

    如果你开发的项目中包含了发送者和接收者类(或者一些类已经提供了接收器和接口文件),通讯的过程很容易进行。消息发送者类只需要import必要接收者类的头文件。这些头文件中已经包含了接收者可接收的相关消息的声明。
    但是如果你设计的对象所发送消息的接收者未定义时--这种情况下你就不会有接收者甚至相关声明头文件。在这种情况下,你就需要另外一种发送消息的声明方式而无需实现它们。协议整好满足了这种需求,它通知编译器它将要用到的方法,同时还通知其他类该如何实现这些方法来协同工作。
    这个协助对象发送helpOut:举个具体的例子,假设你设计了某一个对象,该对象请求另外一个对象的协助,它就可以向这个协助对象发送helpOut:和一些其他消息。你在对象内部分配了一个assistant变量来保存接受这些消息的outlet并定义了相关的set方法。其他对象都可以通过该set方法来注册并成为这个消息的潜在接收者。
    - setAssistant:anObject
    {
        assistant = anObject;
    }
    接着,当有消息要发送给assistant,就检测该变量是否可以响应该消息,并响应,代码如下:
    - (BOOL)doWork
    {
        ...
        if ( [assistant respondsToSelector:@selector(helpOut:)] ) {
            [assistant helpOut:self];
            return YES;
        }
        return NO;
    }
    因为在你写这段代码的时候,你并不知道assistant变量里存储的是什么对象,所以你只能定义一个helpOut: 的协议方法,这种情况下,你根本无法import相关的声明文件。

    为匿名对象声明接口

    协议还可以用于匿名对象的方法声明, 所谓匿名对象就是未知类型的对象。
    展开全文
  • https.protocols的检测与设置

    千次阅读 2017-12-23 11:29:51
    最近在做一个需求,用到了https进行接口交互,在测试环境报如下错: 10:20:21,667 ERROR [stderr](http-executor-threads - 39) java.lang.IllegalArgumentException: TLSv1.2 10:20:21,667 ERROR [stderr] ...

                  最近在做一个需求,用到了https进行接口交互,在测试环境报如下错:

    10:20:21,667 ERROR [stderr](http-executor-threads - 39) java.lang.IllegalArgumentException: TLSv1.2
    10:20:21,667 ERROR [stderr] (http-executor-threads - 39) java.lang.IllegalArgumentException: TLSv1.2
    10:20:21,668 ERROR [stderr] (http-executor-threads - 39) 	at com.sun.net.ssl.internal.ssl.ProtocolVersion.valueOf(ProtocolVersion.java:133)
    10:20:21,669 ERROR [stderr] (http-executor-threads - 39) 	at com.sun.net.ssl.internal.ssl.ProtocolList.<init>(ProtocolList.java:38)
    10:20:21,670 ERROR [stderr] (http-executor-threads - 39) 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.setEnabledProtocols(SSLSocketImpl.java:2218)
    10:20:21,671 ERROR [stderr] (http-executor-threads - 39) 	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:418)
    10:20:21,671 ERROR [stderr] (http-executor-threads - 39) 	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
    10:20:21,672 ERROR [stderr] (http-executor-threads - 39) 	at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
    10:20:21,676 ERROR [stderr] (http-executor-threads - 39) 	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    10:20:21,676 ERROR [stderr] (http-executor-threads - 39) 	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    10:20:21,677 ERROR [stderr] (http-executor-threads - 39) 	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
    10:20:21,678 ERROR [stderr] (http-executor-threads - 39) 	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
    10:20:21,679 ERROR [stderr] (http-executor-threads - 39) 	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
    10:20:21,680 ERROR [stderr] (http-executor-threads - 39) 	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
    10:20:21,680 ERROR [stderr] (http-executor-threads - 39) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    10:20:21,681 ERROR [stderr] (http-executor-threads - 39) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    10:20:21,682 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
    10:20:21,682 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
    10:20:21,683 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
    10:20:21,684 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
    10:20:21,685 ERROR [stderr] (http-executor-threads - 39) 	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
    10:20:21,685 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
    10:20:21,686 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    10:20:21,687 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
    10:20:21,688 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    10:20:21,688 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
    10:20:21,689 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
    10:20:21,690 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
    10:20:21,691 ERROR [stderr] (http-executor-threads - 39) 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:518)
    10:20:21,691 ERROR [stderr] (http-executor-threads - 39) 	at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
    10:20:21,692 ERROR [stderr] (http-executor-threads - 39) 	at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:801)
    10:20:21,693 ERROR [stderr] (http-executor-threads - 39) 	at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
    10:20:21,693 ERROR [stderr] (http-executor-threads - 39) 	at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:821)
    10:20:21,694 ERROR [stderr] (http-executor-threads - 39) 	at java.lang.Thread.run(Thread.java:662)
    10:20:21,694 ERROR [stderr] (http-executor-threads - 39) 	at org.jboss.threads.JBossThread.run(JBossThread.java:122)

    IllegalArgumentException非法的参数值,相同代码我再本地试了一下,没有任何问题。我客户端是用jdk里的javax.net.ssl.HttpsURLConnection;写的,没有用httpclient。本地和测试环境唯一不同的就是JDK版本了。我本地用的是JDK1.6.0_11,测试环境是JDK1.6.0_45。我在本地修改代码添加如下:

    System.setProperty("https.protocols", "TLSv1.2,SSLv3");这时候本地也会报如上错误.

    通过下面这段代码可以查看本地支持的TLS协议。



    public static void main(String[] args) throws Exception {  
    		        SSLContext context = SSLContext.getInstance("TLS");  
    		        context.init(null, null, null);  
    		  
    		       SSLSocketFactory factory = (SSLSocketFactory) context.getSocketFactory();  
    		        SSLSocket socket = (SSLSocket) factory.createSocket();  
    		  
    		        String[] protocols = socket.getSupportedProtocols();  
    		  
    		        System.out.println("Supported Protocols: " + protocols.length);  
    		        for (int i = 0; i < protocols.length; i++) {  
    		            System.out.println(" " + protocols[i]);  
    		        }  
    		  
    	                 protocols = socket.getEnabledProtocols();  
    		  
    		        System.out.println("Enabled Protocols: " + protocols.length);  
    		        for (int i = 0; i < protocols.length; i++) {  
    		            System.out.println(" " + protocols[i]);  
    		        }  
    		  
    		    } 
    我本地执行完如下图:


    测试环境执行结果如下:


    跟我本地是一样的,都是只支持TLSv1,所以我在代码里添加System.setProperty("https.protocols", "TLSv1,SSLv3");即指定运行的protocols协议。这样在我本地和测试环境都能正常执行。



    
    
    
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • 但是去服务器上通过命令openssl s_client -connect 域名2:443 -tls1查看,域名2配置的ssl_protocols和ssl_ciphers没有生效,依旧按照域名1的走;我又尝试改域名1的ssl_protocols和ssl_ciphers,结果会影响域名2;...
  • java.net.UnknownServiceException: Unable to find acceptable protocols. isFallback=false, modes=[ConnectionSpec(cipherSuites=[TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA...
  • Attacking Network Protocols is a deep dive into network protocol security from James ­Forshaw, one of the world’s leading bug ­hunters. This comprehensive guide looks at networking from an attacker...
  • layer7 l7-protocols-2009-05-28.tar.gz
  • Protocols for Authentication and Key Establishment-英文版,高清
  • TCPIP Illustrated, Volume 1 - The Protocols(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自...
  • 官方说明:详细看这里 本文主要针对以下两个主要配置从代码层次进行...Syntax: ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3]; Default: ssl_protocols TLSv1 TLSv1.1 TLSv1.2; Contex...

    1. Nginx https相关配置

    官方说明:详细看这里

    本文主要针对以下两个主要配置从代码层次进行分析:
    协议配置:

    Syntax: ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3];
    Default:    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    Context:    http, server

    以及加密套件配置

    Syntax: ssl_ciphers ciphers;
    Default:    
    ssl_ciphers HIGH:!aNULL:!MD5;
    Context:    http, server

    Nginx的虚拟主机配置,使多个网站可以部署在同一个服务器(同一IP地址)对外提供服务。但是在实际测试中发现,虽然两个配置都在server 块内,ssl_protocols 却属于全局配置,而 ssl_ciphers 却针对特定的虚拟主机起作用。

    server {
        server_name www.a.com;     
        ssl_ciphers          ECDHE-RSA-AES128-GCM-SHA256;
        ssl_protocols       TLSv1.2;
    
        # 其他配置略
        }
    server {
        server_name www.b.com;     
        ssl_ciphers          ECDHE-RSA-AES256-GCM-SHA384;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    
        # 其他配置略
        }

    这里存在一个问题:

    1. 当存在多个server块的时候,即使两个(如上)ssl_protocols 的配置不同,但是浏览器访问(携带SNI信息)www.a.com的时候,仍然可以使用 TLSv1 TLSv1.1 协议,即使没有配置。
    2. 而ssl_ciphers得配置就可以根据域名来区分开来。

      从Nginx的使用文档上来看,两者的配置生效区域相同,却发挥了不同的作用。于是从源码开始分析原因在哪里。

    2 Nginx源码分析

    Nginx在启动过程中,加载配置文件的时候,对于每个server块的解析,会调用ngx_int_t ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data) 这个函数。

    看参数,其中 protocols 就是配置文件中对应的配置项,他是一个 ngx_uint_t 类型,Nginx中关于协议的标志是:ngx_event_openssl.h中定义

    #define NGX_SSL_SSLv2    0x0002
    #define NGX_SSL_SSLv3    0x0004
    #define NGX_SSL_TLSv1    0x0008
    #define NGX_SSL_TLSv1_1  0x0010
    #define NGX_SSL_TLSv1_2  0x0020
    

    可以看到,每种协议占一位,protocols 的取值就是各个协议做或运算得到的值。比如上文中第一个配置,只有TLSv1.2,那protocols =0x0020【十进制32】,如果是TLSv1 TLSv1.1 TLSv1.2,那就是 protocols = 0x0020 | 0x0010 | 0x0008 = 0x0038【十进制56】。
    那么问题来了,造成server间protocols配置混乱的一定是其中某个地方出错了。
    那么我们可以先看一下这个protocols的取值是不是对应两个server的取值,就可以看到是不是一开始解析配置文件的时候,就搞错了,于是Nginx源码debug 分析。
    得到如下:

    (gdb) b ngx_event_openssl.c:ngx_ssl_create
    Breakpoint 1 at 0x473b91: file src/event/ngx_event_openssl.c, line 234.
    (gdb) r
    Breakpoint 1, ngx_ssl_create (ssl=0x9ad548, protocols=56, data=0x9ad540)
        at src/event/ngx_event_openssl.c:234
    (gdb) p protocols
    $1 = 56
    (gdb) c
    Continuing.
    Breakpoint 1, ngx_ssl_create (ssl=0x9bec60, protocols=32, data=0x9bec58)
        at src/event/ngx_event_openssl.c:234
    (gdb) p protocols
    $2 = 32
    

    可以看到,没问题,一个32,一个65,没毛病!
    那只能继续往下跟踪了。
    接下来马上进入Openssl的源码了,看一下nginx在调用Openssl接口的地方代码:

    if (!(protocols & NGX_SSL_SSLv2)) {
            SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_SSLv2);
        }
        if (!(protocols & NGX_SSL_SSLv3)) {
            SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_SSLv3);
        }
        if (!(protocols & NGX_SSL_TLSv1)) {
            SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_TLSv1);
        }
    #ifdef SSL_OP_NO_TLSv1_1
        SSL_CTX_clear_options(ssl->ctx, SSL_OP_NO_TLSv1_1);
        if (!(protocols & NGX_SSL_TLSv1_1)) {
            SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_TLSv1_1);
        }
    #endif
    #ifdef SSL_OP_NO_TLSv1_2
        SSL_CTX_clear_options(ssl->ctx, SSL_OP_NO_TLSv1_2);
        if (!(protocols & NGX_SSL_TLSv1_2)) {
            SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_TLSv1_2);
        }
    #endif
    # define SSL_OP_NO_SSLv2                                 0x01000000L
    # define SSL_OP_NO_SSLv3                                 0x02000000L
    # define SSL_OP_NO_TLSv1                                 0x04000000L
    # define SSL_OP_NO_TLSv1_2                               0x08000000L
    # define SSL_OP_NO_TLSv1_1                               0x10000000L

    大概意思就是,如果没有定义SSLv2、SSLv3、TLSv1、TLSv1.1、TLSv1.2那么就调用接口SSL_CTX_set_options 进入Openssl来设置协议。

    3 Openssl源码分析

    版本:Openssl-1.0.2j

    源码文件 ssl.h

    # define SSL_CTX_set_options(ctx,op) \
            SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
    # define SSL_CTX_clear_options(ctx,op) \
            SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_OPTIONS,(op),NULL)
    # define SSL_CTX_get_options(ctx) \
            SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL)
    # define SSL_set_options(ssl,op) \
            SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL)
    # define SSL_clear_options(ssl,op) \
            SSL_ctrl((ssl),SSL_CTRL_CLEAR_OPTIONS,(op),NULL)
    # define SSL_get_options(ssl) \
            SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL)

    所以要去看 SSL_CTX_ctrl 的源码

    源码文件 ssl_lib.c
    SSL_CTRL_OPTIONS 的值是32 在下面代码中有个switch(cmd)
    关键代码

    long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    {
    ...
    switch (cmd) {
            ...
            case SSL_CTRL_CLEAR_OPTIONS:
            return (ctx->options &= ~larg);
            ...
            }
    }

    最后的操作是: ctx->options &= ~larg

    再回到Nginx 源码:
    对于每种协议,都要调用一次 SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_XXXXX);
    也就是 ssl->ctx->options &= ~SSL_OP_NO_XXXXX

    先写到这里,稍后继续……

    You can overload ssl_ciphers. You can’t overload ssl_protocols
    because OpenSSL works this way: it selects the protocol used
    before SNI callback (and this behaviour looks more or less natural
    beacause the existance of SNI depends on the protocol used, and,
    for example, you can’t enable SSLv3 in a SNI-based virtual host).

    .

    In general, whether or not some SSL feature can be tweaked for
    SNI-based virtual hosts depends on two factors:

    • if it’s at all possible;
    • how OpenSSL handles it.

    In some cases nginx also tries to provide per-virtualhost support
    even for things OpenSSL doesn’t handle natively, e.g., ssl_verify,
    ssl_verify_depth, ssl_prefer_server_ciphers.

    补充相关链接 :https://mailman.nginx.org/pipermail/nginx/2017-January/052802.html

    展开全文
  • Attacking.Network.Protocols.2017.12 Attacking.Network.Protocols.2017.12Attacking.Network.Protocols.2017.12
  • Attacking Network Protocols A Hacker's Guide to Capture, Analysis, and Exploitation 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自...
  • Protocols for Secure Electronic Commerce,2nd Edition,CRC
  • 解读 show ip protocols 输出 如果路由表中缺少某个网络,可以使用 show ip protocols 命令来检查路由配置。show ip protocols 命令会显示路由器当前配置的路由协议。其输出可用于检验大多数 RIP 参数,从而确认...
  • IoT Fundamentals Networking Technologies, Protocols, and Use Cases for the Internet of Things 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
  • Book (Medhi2007) Deepankar Medhi & Karthikeyan Ramasamy Network Routing - Algorithms, Protocols, and Architectures Elsevier, 2007
  • Asynchronous Pluggable Protocols 初探

    千次阅读 2014-08-09 21:37:35
    Asynchronous Pluggable Protocols,异步可插入协议,允许开发者创建可插协议处理器,MIME过滤器,以及命名空间处理器工作在微软IE4.0浏览器以及更高版本或者URL moniker中。这涉及到Urlmon.dll动态链接库所公开(输出)...
  • 转载自:...是.NET2.0新增加的一个针对目录服务访问协议处理的组件,其下只有一个System.DirectoryServices.Protocols命名空间。在该命名空间下,主要有...
  • Attacking Network Protocols

    2020-07-30 23:31:13
    Attacking Network Protocols is a deep dive into network protocol security from James ­Forshaw, one of the world’s leading bug ­hunters. This comprehensive guide looks at networking from an attacker...
  • Postfix使用过程中出现如下报错,我们将...send-mail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol send-mail: warning: inet_protocols: configuring for IPv4
1 2 3 4 5 ... 20
收藏数 86,562
精华内容 34,624
热门标签
关键字:

protocols