- 博客(120)
- 资源 (2)
- 收藏
- 关注
原创 centos 7下hping3的编译安装和测试
最新由于调试测试ipv4到ipv6过渡技术中的map技术需要,需要一个工具模拟发送icmp、tcp和udp的ipv4报文,尤其是分片报文,可是环境所限,没有接入思博伦测试仪,所以我就想到了hping3测试工具。1.hping3下载: hping的工具官方网站是http://www.hping.org/download.html,大家可以到官方网站溜达一圈看看,...
2019-04-01 10:40:01 5440 1
原创 利用iptables缓解TCP SYN攻击
SYN洪水攻击是DDOS攻击中最常见的攻击类型之一,是一种利用TCP 协议缺陷,攻击者向被攻击的主机发送大量伪造的TCP连接请求,从而使得被攻击方主机服务器的资源耗尽(CPU 满负荷或内存不足) 的攻击方式。SYN攻击的目标不止于服务器,任何网络设备,都可能会受到这种攻击,针对网络设备的SYN攻击往往会导致整个网络瘫痪。企业遭到SYN攻击该如何防御呢?今天就来分享一下如何利用ipt...
2022-08-23 16:33:23 660
原创 面试算法之递归和循环
我们在抽象算法问题时,如果需要重复多次的计算相同的问题,可以用递归或循环。递归方式是在函数内部调用自身函数实现堆栈上的递归,直到终止条件结束为止;循环方式是通过设置计算的初始值和终止条件,在一个范围内循环运算。比如我们求1+2+3+...+n的值,我们可以用递归或者循环的方式求解(甚至数学功底好的可以想到背后的数学公式和定理;这个比较简单n*(n+1)/2); 递...
2022-08-23 08:59:11 429
原创 优化性能问题的一般方法
我们可以从系统资源瓶颈和应用程序瓶颈,这两个角度来分析性能问题的根源。从系统资源瓶颈的角度来说,USE法是最为有效的方法,即从使用率、饱和度以及错误数这三个方面,来分析 CPU、内存、磁盘和文件系统 I/O、网络以及内核资源限制等各类软硬件资源。从应用程序瓶颈的角度来说,可以把性能问题的来源,分为资源瓶颈、依赖服务瓶颈以及应用自身的瓶颈这三类。资源瓶颈的分析思路,跟系统资源瓶颈是一样的。 依赖服务的瓶颈,可以使用全链路跟踪系统,进行快速定位。 而应用自身的问题,则可以通过系统调用、热点函数,
2022-02-11 14:30:35 692
原创 Linux性能工具速查
我们可以从系统和应用程序两个角度,来进行性能优化。从系统的角度来说,主要是对 CPU、内存、网络、磁盘 I/O 以及内核软件资源等进行优化。而从应用程序的角度来说,主要是简化代码、降低 CPU 使用、减少网络请求和磁盘 I/O,并借助缓存、异步处理、多进程和多线程等,提高应用程序的吞吐能力。性能优化最好逐步完善,动态进行;不要追求一步到位,而要首先保证能满足当前的性能要求;性能优化通常意味着复杂度的提升,也意味着可维护性的降低。如果你发现单机的性能调优带来过高复杂度,一定不要沉迷于单...
2022-01-20 20:43:33 151
原创 架构师案例分析
架构的本质是管理复杂性,抽象、分层、分治和演化思维是我们工程师 / 架构师应对和管理复杂性的四种最基本武器。 在我之前写的文章 《优秀架构师必须掌握的架构思维》 中,我先介绍了抽象、分层、分治和演化这四种应对复杂性的基本武器。在本篇文章中,我会通过四个案例,讲解如何综合运用这些武器,分别对小型系统、中型系统、基础架构以及组织技术体系进行架构和设计。小型系统案例...
2020-03-13 14:27:55 1486
原创 优秀架构师必须掌握的架构思维
如果说架构的本质是管理复杂性,那么抽象、分层、分治和演化思维是我们工程师/架构师应对和管理复杂性的四种最基本武器。1、抽象思维 抽象其实是这样定义的:对某种事物进行简化表示或描述的过程,抽象让我们关注要素,隐藏额外细节。在系统架构和设计中,抽象帮助我们从大处着眼(get our mind about big picture),隐藏细节(temporarily ...
2020-03-13 11:17:02 573
原创 网卡多队列技术与RSS功能介绍
多队列网卡是一种技术,最初是用来解决网络IO QoS(quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为...
2020-02-07 09:58:47 1845
原创 Android 4G上网流程分析
手机一般会提供两种上网方式:Wifi或者3G/4G上网,Wifi上网其实就是利用网卡通过以太网上网;3G/4G则是通过基带,利用蜂窝网络进行上网,之前已经简单的阐述了Wifi上网跟3G上网的区别,本文主要简述Android 3G/4G上网的流程及原理。无线上网硬件模型 3G/4G上网协议ppp 3G/4G上网流程-ppp如何建立 socket如何通过基带模块发送数据、接收数...
2019-11-05 11:28:57 6110
原创 跳表(skip list)
我们知道二叉搜索算法能够高效的查询数据,但是需要一块连续的内存,而且增删改效率很低。跳表,是基于链表实现的一种类似“二分”的算法。它可以快速的实现增,删,改,查操作。我们先来看一下单向链表如何实现查找image.png当我们要在该单链表中查找某个数据的时候需要的时间复杂度为O(n).怎么提高查询效率呢?如果我们给该单链表加一级索引,将会改善查询效率。image.pn...
2019-10-11 10:22:14 479
原创 TCP/IP详解
TCP/IPTCP/IP 意味着 TCP 和 IP 在一起协同工作。TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。IP 负责计算机之间的通信。TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。IP 负责将包发送至接受者。TCP报文格式TCP报文格式1.jpg16位源端口号:16位的源端口中包含初始化通信的端口。源端口和源IP...
2019-05-24 17:40:47 330
原创 Java NIO:IO与NIO的区别
一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。二、NIO和IO的主要区别下表总结了Java IO和NIO之间的主要区别:IO NIO 面向流 ...
2019-05-24 17:23:18 280
原创 Unix 网络 IO 模型及 Linux 的 IO 多路复用模型
本文主要探讨的问题有以下两个:Unix 中的五种网络 IO 模型; Linux 中 IO 多路复用的实现。基本概念在介绍网络模型之前,先简单介绍一些基本概念。文件描述符 fd文件描述符(file descriptor,简称 fd)在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向...
2019-05-24 17:12:05 295
原创 Linux下五种网络IO模型
本文我们主要来了解一下Unix/Linux下5种网络IO模型:blocking IO, nonblocking IO, IO multiplexing, signal driven IO, asynchronous IO的基本原理,更好的理解在高级语言中的异步编程,一起来看看吧,希望对大家学习linux有所帮助。 写在前面 为了更好的理解下面提到的Linux下5种网络IO的概念,...
2019-05-24 16:45:03 2233 1
转载 成小胖学习ActiveMQ·基础篇
过了个春节,回到公司的成小胖变成了成大胖。但是你们千万别以为他那个大肚子里面装的都是肥肉,里面的墨水也多了不少嘞,毕竟成小胖利用春节的半个月时间专心学习并研究了 ActiveMQ,嘿嘿……这不,为了检验下自己的学习成果,上班的第一天成小胖就去找架构师老王交流 ActiveMQ 相关的知识,还顺便向老王讨了个红包,可把成小胖给高兴坏了。“来,根据你的了解说下 ActiveMQ 是什么。”“这...
2019-05-24 14:52:26 195
原创 设计秒杀系统笔记
设计原因:为什么要针对秒杀设计一个完善的方案?因为系统可能会因为1%的秒杀业务影响其余99%正常业务的运行,所以需要将秒杀系统独立出来。待解决问题:主要解决两个问题:并发读、并发写。整体架构要求:概括为:"稳、准、快",即对应"高可用、一致性、高性能",其介绍分别如下:高可用:保证系统的高可用和正确性,设计PlanB进行兜底。一致性:保证秒杀减库存中的数据一致性。高...
2019-05-23 11:09:08 292
转载 探索性测试揭秘
最近看了不少有关探索性测试的讨论和观点,老实说越看越糊涂。所以忍不住吐槽一下,在这里和大家讨论一下探索性测试。希望对于想学习和尝试探索性测试的朋友有所帮助澄清,或者是更加糊涂,^_^。探索性测试有很多很多的定义:百度百科的定义:“同时设计测试和执行测试”。 嗯。。什么意思?Cem 老人家的正式定义:“a style of software testing that e...
2019-05-14 09:35:46 1785
原创 软件开发中的一些疑惑和探讨
我们今天聊一聊我们软件开发中遇到的一些困惑和疑虑,一起探讨下其背后的深层次原因。 做开发也许有好多年了,我们每次看到高端的架构思想方法时,总觉得没有和应用很好的结合起来,我们就会起了怀疑,到底是架构设计实践不够,还是对各种实现的分析和思考太少了?其实,我们缺少的不但但是架构的实践,还有不同场景的实践,例如我们可能平时做企业应用架构,流量少,没什么数据,复杂的地方...
2019-05-09 14:23:30 463
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人