Go语言中文网 为您找到相关结果 13

goproxy和msocks简介

goproxy是我个人写的,和shadowsocks同类的软件。当然,在设计之初我完全不知道shadowsocks的存在,goproxy的最初目标也不是成为shadowsocks的同类。只是我一直无法实现一个可靠的,能够达成目标的系统。最后想,那这样吧,我找一个跳一跳能够够到的苹果。大幅简化的结果就是goproxy——后来我才知道shadowsocks。 shadowsocks的基本原理 shadowsocks的基本概念,就是利用某种不同于SSL的协议,将本地的socks数据流转发到远程。这个协议,在默认版本中是一个凯撒变换,后来有了aes等加密算法。goproxy也采用了类似的做法,同样支持aes等加密算法。在每次连接时,客户端先用加密通道连接服务器端,然后完成整个连接通路。这样的设计鲁棒...阅读全文

博文 2014-10-06 06:06:32 shell909090

golang实现dns域名解析(一)

本文将详细讲解如何用go语言一步一步实现dns域名解析的过程,并简单介绍点dns有关的知识,直接开始正题吧。 首先我们要了解dns解析的过程,没有了解的请看这里DNS入门(转)很详细。扫盲结束后,我们需要了解下dns报文格式,知道了报文的格式是怎样的,才可以写代码构造dns请求包: dns请求和应答都是用相同的报文格式,分成5个段(有的报文段在不同的情况下可能为空),如下: Header段是报文的头部,它定义了报文是请求还是应答,也定义了其他段是否需要存在,以及是标准查询还是其他。 Header包含如下字段: 各字段分别解释如下: ID:请求客户端设置的16位标示,服务器给出应答的时候会带相同的标示字段回来,这样请求客户端就可以区分不同的请求应答了。 QR:1个比特位用来区分是请求(0)还是...阅读全文

博文 2017-06-04 04:46:07 chase-wind

go邮件列表问题记录1

(GO邮件列表问题记录1) How can i get a struct size? go获取结构体大小的方法 encoding/binary.Size can only report the encoded size under very strict circumstances. You probably want something like unsafe.Sizeof The reflect.Type.Size() can’t calculate slice struct. 这里提问的人结构体就是一个普通的head+data结构的报文,想通过socket发送,需要获取长度,但是data结构中有slice数据。 有人提议用reflect.Type.Size(),但是这个方法无法获得sl...阅读全文

博文 2016-05-14 01:00:08 qq_15437667

请高手帮忙分析wireshark抓包出现的双向重传(一侧dup ack,双向都TCP Out-Of-Order)和发送包长度为 0 的问题,先谢谢

如下是拷贝的抓包描述,每次 10.254.251.74 发给 10.254.251.103 都会发 2 次然后才会有从 103 回包,wireshark 提示[TCP Out-Of-Order](应该是因为 2 次的 seq 号一样导致) 还有一个问题就是隔几个包 10.254.251.103 会给 10.254.251.74 发送一次长度为 0 的包,然后才发送包含数据的报文。 10.254.251.103 是客户端,和 10.254.251.74 长连接发送业务数据,10.254.251.74 会存储收到的业务数据,10.254.251.74 收到业务数据后回“ 0004OK..”给 10.254.251.103 (如果回的时候 socket 写不成功,则会尝试重写 3 次,...阅读全文

golang实现dns域名解析(三):响应报文分析

前面说了构造请求发送报文,接下来我们好好研究下如何解析服务器端发回来的应答信息。 首先还是用前面的程序代码发一个请求,用抓包工具看看应答的内容有哪些: 截图的第一部分是返回信息的统计,表明这个返回的包数据包含一个问题,5个权威应答,5个附加信息。第二部分是问题的内容,第三部分是权威应答的内容,第四部分是附加信息的内容。再往下面就是接收到的原始数据的展示,这里需要提及的一点就是为了减小报文,域名系统使用一种压缩方法来消除报文中域名的重复。使用这种方法,后面重复出现的域名或者labels被替换为指向之前出现位置的指针。 指针占用2个字节,格式如下: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+-- | ...阅读全文

博文 2017-06-10 00:00:02 chase-wind

go 客户端下载文件如何获取文件大小

诚心请教,嵌入式设备中采用cgo的方式,go语言使用http协议下载服务器上的文件信息,如果获取下载文件的大小?需要根据文件的大小将文件保存在不同的路径。 执行client.Do(request)后,是否等到文件下载完成了我才能获取response头部信息?能否做到服务器回复第一个响应报文的时候,就能解析到响应头部。获取文件的大小呢...阅读全文

你应该知道的HTTP基础知识

2017-08-22怪盗kidou腾讯课堂Coding学院点击蓝字,关注我们哦! 作者:怪盗kidou链接:http://www.jianshu.com/p/e544b7a76dac说明:本文内容仅限于本人熟知的内容,HTTP的内容任意一个知识点都可以单独写一篇博客,所以别指望靠一篇博客可以讲清楚,本文的主要作用是为以后的博客作铺垫,所以更详细的HTTP协议内容可参考RFC 2616,本人水平有限,如有不正确的地方欢迎留言指出。1. HTTP请求报文格式HTTP 的请求报文分为三个部分请求行、请求头和请求体,格式如图: HTTP请求报文格式注:部分文章也将HTTP请求报文分为两部分请求头和请求体,请求头的第一行为请求行。1.1 请求行请求行(Request Line)分为三个部分:请求方法、...阅读全文

tshark + Elasticsearch 打造流量回溯分析系统

tshark是网络分析工具wireshark下的一个工具,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,tcpdump难以胜任的场景中。本系列文章将整理介绍tshark相关内容。本文将介绍与tshark相关的流量解决方案。 tshark + elastic stack 利用tshark,不仅可以对现有的pcap文件进行分析,由于可以输出其他格式,也就可以结合ES的强大搜索能力,达到对数据报文进行记录、分析处理的能力,可以实现回溯分析,结合kibana可视化工具,甚至达到实时可视化监控。 elastic stack全家桶 性能一直被诟病,后来另起炉灶,针对采集使用golang构建出一套beats,用于不同的采集场景。其中针对网络流量,开发出packetbeat。 packetbeat...阅读全文

物联网安全专家齐聚ICA联盟 多项IoT身份认证安全标准出炉

近日,ICA联盟(IoT Connectivity Alliance)安全标准组召开了第二次成员会议,这是继6月10日ICA联盟全体成员会议之后,联盟首次召开安全标准讨论会议。本次会议进一步讨论并制定了联盟终端安全方面芯片分级规范及身份认证应用的指令规范。标志着联盟安全标准化工作已步入正轨并具备了一定的行业贡献力。 注:在6月10日IoT合作伙伴计划大会2017(ICA)上,阿里巴巴IoT联合近200多家IoT产业链企业宣布成立IoT合作伙伴联盟,旨在通过建立良好的IoT生态环境,产生强大的商业和市场号召力,推动中国乃至全球IoT市场走向成熟和标准化。 在安全芯片方面,ICA联盟安全标准组首次创新的提出了IoT行业中芯片安全分级的标准及方法,建立了IoT行业的安全门...阅读全文