上一篇介绍的是TCP代理的鉴权过程,这篇将介绍UDP代理的大致鉴权过程。

  在UDP鉴权过程中,有几点是需要注意的。首先,UDP是一种无连接协议,不需要连接,使用广播的方式;其次,为了通过鉴权,所以需要使用TCP的连接过程;最后,需要代理服务器根据是否有UDP数据包的判断来保持TCP的长连接。

  在上一篇中已经介绍了需要的文件,这里就不再重复了。类似TCP,同样创建一个文件SJXUDPSocketClient,继承自NSURLProtocol,其他信息可参看demo,这里直接介绍关键步骤。

  第一步:设置UDP代理地址和端口,分别绑定并且监听本地端口和远端端口。

    

  第二步:当UrlProtocol拦截到UDP请求时,会调用 - (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(nullable id)filterContext 方法,在该方法中判断UDP请求的来源,并进行对应的操作。

    

  如果来源为本机,则通过TCP连接与远端代理进行鉴权。

      

    

  第三步:与远端代理服务器进行鉴权的第一步,同上一篇文章中的第一步鉴权,同样以 050102 为例。

  第四步:如果第一步鉴权通过,则进行第二步鉴权,同上一篇文章中的第二步鉴权,根据自己的需求,拼接自己的用户名和密码,发送给远端代理服务器。

  第五步:如果第二步鉴权通过,则向代理服务器发起UDP请求。

    

    

  第六步:如果代理服务器接收到命令,并且鉴权通过,则会分配一个IP和PORT,进行转发UDP请求。

    

  以上就是UDP代理鉴权的大致过程,这是自己对UDP代理的理解,希望各位大神多多指正。

  GitHub:https://github.com/sjxjjx/SJXSocket

iOS进阶之UDP代理鉴权过程的更多相关文章

  1. iOS进阶之TCP代理鉴权过程

    这段时间接触了网络代理,而自己的任务是完成TCP和UDP的网络代理,所以在这里写些自己的理解吧. 这篇文章先介绍一下TCP代理的鉴权过程(采用的是用户名和密码鉴权),下一篇文章再介绍UDP代理的鉴权过 ...

  2. PMS权限管理和鉴权过程

    一.权限的管理基础知识 1.系统的权限机制分为:权限解析.权限分配.鉴权.动态添加权限 2.PermissionInfo :  PackageParser.Permission中包含一个对应的Perm ...

  3. EasyNVR如何实现跨域鉴权

    EasyNVR提供简单的登录鉴权,客户端通过用户名密码登录成功后,服务端返回认证token的cookie, 后续的接口访问, 服务端从cookie读取token进行校验. 但是, 在与客户系统集成时, ...

  4. Tomcat 容器的安全认证和鉴权

    大量的 Web 应用都有安全相关的需求,正因如此,Servlet 规范建议容器要有满足这些需求的机制和基础设施,所以容器要对以下安全特性予以支持: 身份验证:验证授权用户的用户名和密码 资源访问控制: ...

  5. 【Spring Cloud & Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证授权.鉴权的逻辑,结合 ...

  6. Mongodb 认证鉴权那点事

    [TOC] 一.Mongodb 的权限管理 认识权限管理,说明主要概念及关系 与大多数数据库一样,Mongodb同样提供了一套权限管理机制. 为了体验Mongodb 的权限管理,我们找一台已经安装好的 ...

  7. springboot+security整合(3)自定义鉴权

    说明 springboot 版本 2.0.3源码地址:点击跳转 系列 springboot+security 整合(1) springboot+security 整合(2) springboot+se ...

  8. gitlab配置smtp时,总是提示需要鉴权,记录一下爬坑过程。

    配置好smtp,然后发送邮件时总是提示 Net::SMTPFatalError: 550 5.7.1 authentication is required 最后发现是因为在gitlab web界面上配 ...

  9. apigw鉴权分析(1-4)新浪微博开放平台 - 鉴权分析

    一.访问入口 http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E 微博开放接口的调用,如 ...

随机推荐

  1. HDFS的WEB页面访问常见问题

    HDFS的WEB UI管理页面 50070 端口 无法访问解决办法! 本文基于HADOOP-3..1.0,Cecntos7.0环境下进行测试,所以遇到很多新鲜的问题: 特别注意:HaDoop3.0之前 ...

  2. JavaScript 中 replace方法 替换所有字符串

    需要替换一个字符串中所有的某个字符串 java中使用replaceAll()方法就可以了.但是JavaScript中没有replaceAll方法 但是可以通过以下方法实现: /** * 空格替换为下划 ...

  3. Unity 和android 交互 记录

    参考文章 http://www.jianshu.com/p/c06063a403c6 趟坑如下 icon 冲突问题: 设置不了unity icon,显示的是默认的 android 小人 解决方法: 在 ...

  4. F#周报2019年第10期

    新闻 .NET Core 3预览版3之宣告 .NET Core 3.0将在2019年下半年发布 .NET Standard 2.1的首个预览版 Docker与cgroup的内存限制 LambdAle ...

  5. 理解npm run

    引言 ReactNative 开发中经常用到一些npm run的命令来打包.最近在这上面踩了一个坑,所以研究了一下. 在阅文做了两个ReactNative混合开发的项目,都用npm run bundl ...

  6. No code signature found. 解决方式

    除了网上常说的sudo chmod -R 777 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve ...

  7. 【Idea】-NO.162.Idea.1 -【Idea Unable to import maven project: See logs for details】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  8. Linux学习路线全解,Linux操作系统学习路线

    大家都知道,在现在这个信息化飞速发展的时代,IT技术火速发展,信息的重要性,可想而知.现在,在北京当一个高级运维工程师,年薪百万已经不是梦想.当然我也想,谁不想挣大钱,开好车,住好房.下面说说自己的一 ...

  9. localforage调用setItem时出现DOMException错误的解决方法

    今天使用localforage时出现下面的错误: Uncaught (in promise) DOMException transaction.onabort.transaction.onerror ...

  10. #WEB安全基础 : HTTP协议 | 0x15 HTTPS:给你点颜色看看

    "你好,我是HTTPS,我只是披了个外壳,我还是原来的HTTP." 这是HTTPS叫我转达给你的话. HTTPS本质上就是HTTP,只不过加了点调料.它比HTTP更安全,使用了加密 ...