网络编程
文章平均质量分 82
liangdu_Zuker
这个作者很懒,什么都没留下…
展开
-
读《凤凰架构》- 从HTTP/1.0到QUIC
引用《凤凰架构》-周志明。原创 2022-07-21 00:36:46 · 418 阅读 · 0 评论 -
读《凤凰架构》- RPC的历史与知识
引用《凤凰架构》-周志明。原创 2022-07-21 00:33:55 · 362 阅读 · 0 评论 -
《wireshark网络分析就是这么简单》知识点与技巧
理论抽象的话,找个工具和工具教学的书可以帮我们快速获得实用的知识。掩码是为本机服务的,理解这个很重要。offload网卡技术有时候也是个坑,不用就关掉配置。RST是危险信号。MSL调小点,服务器启用SO_REUSEADDR。拥堵的话,调好两个窗口,临时窗口ssthresh,接收窗口win,和一个重传rto+sack。udp不能传大包。注意nat影响抓包和ip黑白名单。tshark用起来。...原创 2022-07-21 00:29:40 · 855 阅读 · 0 评论 -
直白理解一文搞定http协议缓存
直白理解一文搞定http协议缓存来源声明本文来源如下文章,一些实验数据和结论也是基于该文章:https://mp.weixin.qq.com/s/GkQNZRWIq6MxVE1PeASZkg作者:vajoy来源:https://www.cnblogs.com/vajoy/p/5341664.html前言由于http协议在缓存机制这一块做了很多次迭代。并且每次迭代都做了向下兼容(因为如果你不向下兼容,一些顽固的古董的浏览器厂商不愿意升级就会没有支持http协议了。为了迁就他们所以做了向下兼容)原创 2021-03-14 12:16:29 · 138 阅读 · 0 评论 -
htpasswd作用
htpasswd是apache的一个工具,该工具主要用于建立和更新存储用户名、密码的文本文件。随apache的安装而生成。这点与ab工具是一样的。htpasswd可以与nagios、SVN、nginx、apache、docker仓库 等进行集成使用。他可以用在支持 Basic Auth的服务器和浏览器中,由于他是集成在HTTP里面的,所以所有的浏览器和http组件都支持。可以认为他是一种大众化的随用随开的Http权限机制。...原创 2020-12-17 11:41:10 · 743 阅读 · 0 评论 -
Openssl自行签证流程概述
.csr 是请求生成公钥的凭证。.cnf 是请求生成公钥的配置,与.csr共同组合成生成公钥的参数。.key 是私钥,只属于一个人。.crt 是证书链中的一个证书,他的可靠性依赖于根证书roo_ca.crt。自己签证的步骤:1.生成ca.key2.生成ca.csr3.配置ca.cnf4.生成ca.crt开始自签:1.生成 foo.key2.仅利用foo.key 生成 foo.csr3.配置foo.cnf4.让CA 利用 ca.key, ca.crt 根 foo.csr 与 foo.原创 2020-12-17 11:39:12 · 200 阅读 · 0 评论 -
iptables研究
#iptables研究iptables是基于内核模块netfilter的hook函数实现的一个用户态接口程序。iptables有5个表,其中最常用的有3个分别是 (就像netty,表就好比有5个channel,链就好比每个channel都有读写handler方法够成的Pipeline, 规则就好handler. 也是一样可以交织成一个路由过滤网络)filter过滤, nat地址转换, mangle修改每个表都表示一个namespace,它所关注的链都不一样,就好比他们侧重的领域不一样filter只原创 2020-11-28 10:46:57 · 166 阅读 · 0 评论 -
当一会设计SSL/TLS通讯协议的产品经理
当一会设计SSL/TLS通讯协议的产品经理1.需求背景防止ETP, Eavesdropping窃听, Tempering篡改,Pretending冒充,三个危害程度由轻到重。有了这个需求背景,我们自然就会想到加密通讯。加密的方式是,首先我们想到最好的加密方式是,非对称加密,因为他做到了只在加密或者只在解密的时候需要用到私钥,就足够了。相比加解密都要暴露一次私钥的对称加密的做法显得更安全,唯独一个缺点就是性能低下。对称加密虽然性能高,但是我们暴露时间长了容易泄漏。那究竟要怎么合理的设计加密方案呢?原创 2020-11-25 20:56:00 · 121 阅读 · 1 评论 -
lua为什么喜欢和nginx一起做鉴权等业务呢?
lua为什么喜欢和nginx一起做鉴权等业务呢?因为nginx本身高性能,而且nginx worker采用c语言编写,可以高性能的执行小部分业务逻辑(主要是对本地缓存做业务逻辑)。但是nginx基于c的插件拓展口不大友好。而lua作为一种语法糖,恰好可以弥补这个缺点。我们可以利用Lua语法编写nginx插件,让部分业务在nginx运行(反正nginx运行那么快,找点小业务拖一拖它的性能一点都不过分,据说Nginx单机压测能到3万tps。)lua可以做一些针对request请求包的安全检测,甚至可以通过原创 2020-10-16 17:51:38 · 381 阅读 · 1 评论 -
TCP状态转换图解(包含非4次挥手的情况)
这是常规路线,相对比较简单。【虚线】为服务器的TCP状态转换路线,虚线上的内容为服务器进程主动执行操作后的状态切换。【粗实线】为客户端的TCP状态转换路线,虚线上的内容为客户端进程主动执行操作后的状态切换。【细实线】为被动触发的状态切换,或者理解为接收到非正常信号时的状态反应路线。从这张图我们可以看出了,如果在FIN_WAIT_1同时收到ACK和FIN会跳过FIN_WA...原创 2019-07-30 15:35:12 · 280 阅读 · 0 评论 -
《HTTPS与SSL/TLS》
《HTTPS与SSL/TLS》参考资料:tutorialsteacherhttps://www.tutorialsteacher.com/https/what-is-https赛门铁克官网 https://www.websecurity.symantec.com/zh/tw/security-topics/what-is-ssl-tls-https什么是SSL 凭证?SSL...原创 2019-05-08 11:55:53 · 293 阅读 · 0 评论 -
UDP与TCP穿洞技术学习笔记
TCP服务端的端口 复用为 客户端的端口 ( 服务端发送无歧义, 服务端接收无歧义, 客户端发送无歧义, 客户端接收无歧义)服务端的端口 复用为 服务端的端口 正常现象客户端的端口 复用为 服务端的端口 (客户端发送无歧义, 客户端发送无歧义,服务端发送无歧义, )客户端的端口 复用为 客户端的端口 无歧义TCP端口复用要原创 2017-10-29 21:03:14 · 1016 阅读 · 0 评论 -
P2P内网服务器的伪代码解释
int fd_socket; int fd_connect; int fd_server; struct sockaddr_in serv_addr; struct sockaddr_in client_addr;//创建可重复使用socket fd_socket= socket(AF_INET, S原创 2017-10-20 09:58:59 · 525 阅读 · 0 评论 -
区块链技术原理-简明的描述
其实大家对于区块链不需要太过于恐惧,或者觉得高端。目前区块链核心技术就两块:底层区块链,核心技术就是网络协议设计,共识算法设计,区块存储设计。再上面就是可编程虚拟机层(或者叫智能合约层),就是在区块链上嵌入一层可编程中间件,便于程序员在上面开发应用,俗称编写智能合约。其实基于区块链编写一个简单的lua虚拟机,对于知乎大牛不会太困难。再往上可以设计一些服务层,比如各类自定义服务接口,转载 2017-09-04 11:58:50 · 1320 阅读 · 0 评论 -
smartConfig---通过数据包长度位作为编码位,进行短数据通讯
SmartConfig技术原理时间 2015-07-21 14:07:31 小鳄的笔记本原文 http://www.trueeyu.com/?p=1848主题 摄像头转载自:https://cjey.me/archives/289一.简介:简单来说, 这是一种让你可以在没有和其他设备(支持SmartConfig技术)建立任何性质的通讯链路的情转载 2017-04-17 17:17:55 · 1939 阅读 · 0 评论 -
How to Install Metasploit on Linux Ubuntu
How to Install Metasploit on Linux Ubuntu 14.04By Sourabh / January 16, 2015Category: UncategorizedInstall Metasploit Framework in Ubuntu 14.04. Here is how to download and install Metasploi转载 2017-04-11 11:34:55 · 502 阅读 · 0 评论 -
拥堵控制算法-Linux BBR算法优化了哪里?
刚读书时候接触,根本分不清流量控制和堵塞控制,就是因为“丢包率”在干扰我的思考。“丢包率”区分不了是错误引起的丢包还是堵塞引起的丢包。首先能确定的是,拥堵控制有特定的算法就是早期BIC到后来的CUBIC,很好都是基于“慢启动”“快速失败”来设计的。然后这个算法用到了一个很奇怪的参数,那就是“丢包率”。而我们知道引起丢包的原因可以是各种突发引起的发送失败丢包,还可以是拥堵丢包。而后者原创 2016-12-16 10:11:02 · 3262 阅读 · 1 评论 -
《计算机网络》知识总结-2.物理层和链路层、网络层
物理层主要是解决信道的问题,涉及的技术:【信号的调制解调技术】采用的设备:【modern(俗称 猫)】【modern】 其实就是Modulator(调制器)与Demodula-tor(解调器)的简称。所谓调制,就是把数字信号转换成电话线上传输的模拟信号;解调,即把模拟信号转换成数字信号,合称调制解调器。它在发送端通过调制将数字信号转换为模拟信号,在接收端通过解调再将模拟信号转换为数字信号原创 2016-10-29 18:08:16 · 2016 阅读 · 1 评论 -
《计算机网络》知识总结-3.复用和分用
复用和分用纯粹是一种逻辑概念。当用户很多,而资源不足的时候,我们就会重复使用并且彼此分享,这个很好理解。而为了把这种资源不足的行为做定义,就引发了2个新概念。复用多个用户使用一个IO资源 发送消息 时,我们称之为“复用”。多个用户使用一个IO资源 接收消息 时,我们称之为 “分用” 。在网络层局域网内多个主机利用一个路由网关发送消息给互联网的其他主机。这也是复用技术。同理,利用网关接收路由数原创 2016-11-01 22:33:24 · 21653 阅读 · 2 评论 -
《计算机网络》知识总结-4.端口、UDP
端口原创 2016-11-01 22:35:20 · 808 阅读 · 0 评论 -
《计算机网络》知识总结-5.TCP的研究学习思路
TCP学习之前,我有对UDP有了一定的了解的基础上给出了以下思路:1。要明白TCP有一个特点那就是可靠性传输,所谓的可靠性传输就是要保证:有序性,就是发送方发送的顺序和接收方接受的顺序一致。不重复,不缺失, 就是发送方发送的数据报的数量有且只有一个。 2。有了上面的需求,我们先学习一个简单的技术去实现上面那个需求,因为一下子去学习TCP有点难记,需要有过度帮助我们理解,这个过度过程就是学原创 2016-11-04 10:57:40 · 524 阅读 · 0 评论 -
《计算机网络》知识总结-6.TCP的停止等待协议
在传输层中TCP协议如果要确保可靠性传输,在不做任何优化,最容易想到的算法就是“停止等待协议”(当然实际上TCP所用不是这种简单的“停止等待协议”,而是经过改良的更复杂一点的,为了帮助理解,建议还是得学习)。什么是停止等待协议??TCP协议其实是全双工的。为了让我们很好的理解,我们只考虑发送端A,发送数据给接收端B.这里要说明一下,大家都知道TCP协议是面向流的,而UDP是面向数据包的。那么面向数据原创 2016-11-08 21:58:19 · 4869 阅读 · 0 评论 -
《计算机网络》知识总结-7.TCP中的连续请求等待协议
在看完前面的停止请求等待后,这个很好理解。针对于信道利用率的情况,发送端A可以连续发送很多个数据(在接收端能接收的前提下,连续请求等待协议也是在处理好这个保证的前提下才工作的),而接收端B对多个发送的数据包进行一次响应确认。这里有2个要理解:第一,发送端,可以连续发送,每一次发送的大小自己定,比如遇到一些数据比较大的发送任务,可以分很多小组来发送,每一组的大小可以根据网络拥堵环境和接收端的窗口大小原创 2016-11-08 22:17:55 · 456 阅读 · 0 评论 -
读ByteBuf有感
由于JAVA NIO的ByteBuffer类存在三个严重的缺点:- 1。只有一个缓存游标用于复杂的缓存读写操作- 2。缓存的大小固定,没有动态扩展功能,为了不出现缓存溢出异常,需要用户在对缓存进行写操作的时候进行麻烦的可写空间的检测。- 3。没有封装缓存类常用的的方法。(连用于通讯IO常用的方法都没有)因此ByteBuf对ByteBuf对原生的NIO ByteBuffer进行了扩展,弥补了原生原创 2016-10-29 19:35:21 · 1751 阅读 · 0 评论 -
redis学习
redis官网redis的优点:数据类型 有string(字符串)、以及4中数据结构 list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)高性能的key-value数据库对资源操作只有一个线程,从根源保证了数据的原子性周期性的把更新的数据写入磁盘把修改操作写入追加的记录文件根据记录日志实现主从同步单层树复制从服务器采用消息/订阅机制冗余原创 2016-10-29 19:39:32 · 303 阅读 · 0 评论 -
JVM常用优化工具
一、 JVM工具 21. jps:虚拟机进程状况工具 22. jstat:虚拟机统计信息监视工具 23. jinfo:java配置信息工具 34. jhat:虚拟机堆转储快照分析工具 35. jmap:内存映像工具 36. jstack:java堆栈跟踪工具 37. VisualV原创 2016-10-29 19:42:42 · 2241 阅读 · 2 评论 -
Jersey(servlet)的线程安全
#Jersey的控制器是单例的,因此需要保证多个请求到来时出现多线程并发访问Controller.处理并发的方法: - 1.类的访问域的所有成员都采用不可变的(只读)。 - 2.对可变的成员加锁(保证被访问的成员线程安全)。 - 3.采用无状态。 对于控制层我们采用第二种方案。(第一种,我们很难保证服务层的成员只读,因为他是业务逻辑层第三种,也可行,只是说原创 2016-11-16 11:21:35 · 1753 阅读 · 0 评论 -
《计算机网络》知识总结-9.滑窗技术实现的要点
回顾上一章节的内容,1。滑窗是传输层通讯两端用于协调彼此收发能力的技术,免得你顾着说,我都来不及听。 2。TCP有3个字段(序号seq,确认号ack,窗口)用于实现滑窗技术。现在我们来讲讲恶劣环境中滑窗的技术实现要点。1。滑动窗口的建立:在连接建立后双发都知道对方的确认号ack(确认号ack是由seq产生的,接收方在接收到seq后,消耗的字节数+seq = ack,然后把确认号返回给发送方就可以了原创 2016-11-22 22:27:19 · 910 阅读 · 2 评论 -
早课--持续记录,有空记一点点
1.每天挤地铁内心是匹配的,所以放首灵魂慢歌,静静,思考今天又哪些任务,以及怎么美美的过完这一天,是一件幸福的事情。2.一个天才的程序员,能在无知的情况下,总能想出一个解决问题的方案!一个笨的程序员,总是偶尔才能想出问题的解决方案。一个聪明的程序员会记住基础知识,和别人用过的技术性知识,然后在关键时刻总能借鉴并运用。勤于记住“聪明”的方案。原创 2016-11-10 09:22:57 · 501 阅读 · 2 评论 -
dubbo服务提供者注册后为什么要有心跳机制
因为注册中心的会话是有生命限制的,会话结束生命就要终止,为了防止因为会话闲置太久被杀了,所以必须要保持会话。怎么保持呢?我在dubbo的源码里面一直找不到dubbo注册session失效的事件的源码,所以我猜测,这个事件应该和znode做了捆绑,因为创建会话的时候生成了znode。我查看了zookeeper,果然是有提供这样的机制。 zk有一种Z原创 2017-01-06 14:37:35 · 7459 阅读 · 1 评论 -
《计算机网络》知识总结-8.TCP中什么是滑动窗口技术?为什么要这个?
前提在讨论这个问题前,先提出一个问题,假定我现在要A要发送一些数据给B,A要怎么才能保证发送的量B在网络良好的情况下能承受得住呢?答案:A在发送前B要告诉他自己的容量是多少,比如,我给你盛饭,你要先告诉我,你能吃多少饭,我保证不超过你的饭量,这样就不会浪费了。而你的饭量就是一个窗口,如果你的饭量会随着时间消化而变化,那么这个就叫会滑动的窗口。原创 2016-11-09 23:23:53 · 2827 阅读 · 0 评论 -
多少并发下响应时间多长才算合理?--面试题
群友问了这么一个问题,要检验一个服务的质量真不是一件简单的事情。因为网络中几乎每次通讯都会存在特殊情况,而我难点在于把这些特殊情况排除。 常规的做法就是把并发加大到宽带满,(带宽就好像水管,要让水管满就要加大水量) .要把带宽加满你要计算你需要多少并发,要知道多少并发量,你需要知道一次请求的数据量。公式:带宽 = 并发量 *数据量我们可以通过解析HTTP包(wireshark等工具,或者估算原创 2017-03-09 16:28:57 · 23216 阅读 · 0 评论 -
《计算机网络》知识总结-1.互联网是怎么通过网线连接起来的?电路交换,报文交换,分组交换这三个尤物究竟是何方神圣?
重读谢希仁的《计算机网络》时隔2年我有拿起了这本书,以前读的时候感觉这本书文绉绉的,该是无用的概念(事实上是当年比较浮躁)。这本书的第一种主要是导论。 看完后,有2个比较值得我记下来的。互联网是怎么通过网线连接起来的?电路交换,报文交换,分组交换这三个尤物究竟是何方神圣?互联网是怎么通过网线连接起来的?(我为了好理解,对事实做了小修改) 整个互联网最初是由几台大型专用计算机,通过环状、网状或者星原创 2016-10-22 15:50:52 · 842 阅读 · 0 评论