摘要: 用 epoll 写一个socket双工通信 NIO 说明 常用的方式有 select、poll、epoll。 select是使用的一种类似位操作的方式,获取到了事件响应就将对应位置为1。缺点就是首先受限于这个标识符长度,因此能监听的数量有限,其次就是每次遍历都需要遍历每一位。 poll 改进了sel 阅读全文
posted @ 2018-11-08 10:32 四度 阅读(1669) 评论(0) 推荐(1) 编辑
摘要: raw socket 实现tcp三次握手 最近由于项目需要对四层以下的协议添加一些支持,因此就想到了自定义TCP协议。 需要使用的方式就是raw socket,此处我们使用python 语言。 测试客户端 此处我们先使用一个简单的c语言的tcp服务器作为被测试目标。 这个服务器的功能就是简单的 [接 阅读全文
posted @ 2018-08-20 17:11 四度 阅读(3502) 评论(0) 推荐(0) 编辑
摘要: 因为要使用 python 底层发包模块,也就是 raw socket 发包模式,所以在此深入了解一下 python socket 通信。 涉及到的函数: 因为使用的是原始套接字,所以我们不使用bind/connect函数,参照《unix 网络编程》 bind 函数仅仅设置本地地址。就输出而言,调用b 阅读全文
posted @ 2018-08-16 15:15 四度 阅读(11056) 评论(1) 推荐(0) 编辑
摘要: 介绍 我们关注的就是 序号 和 确认号 这二者也是 TCP 实现可靠传输的方式。下图是一次随便抓包的截图(相对序列号) 意义 在TCP传输中,每一个字节都是有序号的,从0开始。通过序号的方式保存数据的顺序,接收端接受到之后进行重新排列成为需要的数据。 因此,我对于SEQ和ACK的了解就是: SEQ 阅读全文
posted @ 2018-08-16 14:52 四度 阅读(15614) 评论(0) 推荐(4) 编辑
摘要: go interface 与 marshal 使用 Interface 基本使用 go // _Interfaces_ are named collections of method // signatures. package main import "fmt" import "math" // 阅读全文
posted @ 2018-07-18 19:46 四度 阅读(2902) 评论(0) 推荐(0) 编辑
摘要: go 中的slice与数组 数组 go中的数组与C语言中的数组类似,但是不同的是C中的数组名其实还是指针,在作为参数传递的过程中会退化为指针,而go语言则是在编译期间就确定其大小,然后始终是作为值传递的。 初始化 长度为5的数组,其元素值依次为:1,2,3,4,5 长度为5的数组,其元素值依次为:1 阅读全文
posted @ 2018-07-18 10:32 四度 阅读(1846) 评论(0) 推荐(0) 编辑
摘要: go 覆盖测试工具介绍 原文链接 "the cover story" introduction Go 语言内置了许多工具,比如 "godoc" (可以根据你在注释中的内容生成介绍文档,注释格式 "参照" , 运行一个playground),还有 (自动格式化代码),还有 "gofix" (自动根据g 阅读全文
posted @ 2018-06-28 22:01 四度 阅读(3664) 评论(0) 推荐(0) 编辑
摘要: 介绍 ulimit 可以设置当前进程以及其子进程的资源使用量,此处讨论我们启动的docker 容器的资源限制。 ulimit使用可以参考 "ulimit 使用" , "docker run 参数介绍" 。 列表如下: |选项 [options] | 含义 | 例子 | | | | | | a | 显 阅读全文
posted @ 2018-06-21 16:26 四度 阅读(4044) 评论(0) 推荐(0) 编辑
摘要: markdown编辑器支持直接复制粘贴图片了,虽说很方便,但是在img目录下生成了许多过期的图片。写个脚本自动清理下。 阅读全文
posted @ 2018-05-22 10:36 四度 阅读(380) 评论(0) 推荐(0) 编辑
摘要: SSH介绍 SSH 协议介绍 此处主要介绍一下SSH协议的结构以及其安全性。 在日常使用中,SSH (Secure shell Protocol) 是我们经常会用到的一个命令。通过它我们可以便捷的控制远端电脑。 同HTTPS作比较的话,相同点是它们都是用于客户机与服务器之间进行加密通信的一种机制。不 阅读全文
posted @ 2018-04-02 16:27 四度 阅读(1290) 评论(0) 推荐(0) 编辑