自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yangrendong的专栏

Android系统分析、Linux内核学习、网络协议分析

  • 博客(49)
  • 资源 (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 5350 1

原创 分布式系统的高并发

一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HT...

2019-04-30 16:58:24 6848

原创 秒杀系统优化思路

一、秒杀业务为什么难做1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如:12306抢票,票是有限的,库存一份,瞬时流量...

2019-04-30 16:56:43 216

原创 负载均衡

什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就能实现“将请求/数...

2019-04-30 16:55:19 307

原创 四层和七层反向代理

•什么是四层反向代理hash•什么是七层反向代理hash•中间还有三层那里去了•...今天花几分钟简单和大家解释一下。场景:访问用户通过proxy请求被访问的真实服务器路径:用户 ->proxy-> real-server什么是代理?回答:[proxy]代表[访问用户],此时proxy是代理。例如:在家访问xxoo网站,不希望xxoo网站trace到我们的真实ip...

2019-04-30 14:13:38 995

原创 linux系统负载Load Average

一、什么是Load Average?系统负载(System Load)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度)。平均负载(Load Average)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。二、如何查看Load?top,uptime,w等命令都可以查看系统负载:[shenjian@dev02 ~]$ u...

2019-04-30 13:29:22 409

原创 TCP/IP一张图

2019-04-30 13:23:57 386

原创 awk命令使用汇总

1.什么是AWK(1)Aho、Weinberger、Kernighan三位发明者名字首字母;(2)一个行文本处理工具;2.AWK基本原理2.1原理:逐行处理文件中的数据2.2语法:awk 'pattern + {action}'说明:(1)单引号''是为了和shell命令区分开;(2)大括号{}表示一个命令分组;(3)patte...

2019-04-30 10:02:17 240

原创 sed命令使用汇总

1.简介sed是一种行编辑器,它一次处理一行内容。2.sed调用方式sed [options] 'command' file(s)sed [options] -f scriptfile file(s)第一种直接在命令行中执行,第二种把命令写到了脚本中,二者无本质区别。示例(1):打印hello.txt的内容sed -n p hello.txt说明:-n:sed会...

2019-04-30 10:01:13 284

原创 工作之余我们会忙些什么呢

程序员的主流成长发展路线,是一个明显的“T”形线路。纵深方向,工作到一个阶段后,会感觉无法深入下去,越走越有沉滞的感觉;横向上,广度上包括技术专业之外的领域也会感觉了解甚少,短板明显。 我们要想产生真正的成长转变与发展突破,我们就不应自我局限于当下的工作内容和技术专业。一、工作之余 工作是技术发展纵深线很重要的一个实践部分,但这会因为工作的内容和环境的限制,把你困在某个...

2019-04-29 15:46:34 462

原创 程序员该不该接外包?

以前曾经有人找过做外包项目,我都选择了拒绝,因为选择投入的时间成本太多,付出和收获很难匹配,还一堆麻烦事,那你面对外包赚钱的诱惑,怎么选择呢?赚钱与诱惑外包的直接诱惑,就是能够增加工资之外的收入,赚外快。但是反过来想想,我们真的需要赚点微不足道的外快去接外包么?我总结了下,程序员还可以赚钱的方式有如下:咨询/培训 一般被外部企业邀请去做咨询或培训的程序员,或多或少有几千到几万...

2019-04-28 16:09:58 1546

原创 是否选择创业公司

我现在在一家可以算是创业的公司入职已经5年了要,公司一直在谋求上市,公司的业务方向感不强,战略目标感觉就是从资本市场走一圈,捞钱,不像是真正做产品的,所以我们今天就来谈一谈,创业公司该不该去?我们根据每个人的因素,提炼出了一组大家可以选择的决策框架。一、期望 我们加入创业公司的期望,一般有如下原因:自由成长 变身土豪 追求梦想1.自由成长创业公司相对于成熟的...

2019-04-28 13:40:51 408

原创 码农的35岁

刚入行的时候,听说程序员是吃青春饭的,只能干到30岁,现在又到了35,今年刚好是35岁,在奔四的不惑路上,一直在想如果哪天突然丢了工作,会如何?心里一直都在彷徨恐惧中度过。恐惧感:谋生 当我们会害怕丢失工作时,表明我们已经不再年轻了,一种为了谋生的恐惧感油然而生。有一种说法是老板对犯了错的年轻员工和中年员工的不同态度,对中年员工可以放开了骂,因为他们不想丢失工作,会很虚心的接...

2019-04-27 17:36:16 540

原创 DNS粗解

现在网络世界纷繁复杂,常用的网站就有几十个,如果都用IP地址访问,恐怕没人能够记住,我们需要一个地址簿,根据名称,就可以查看具体的地址。(当然现在很多人都是知道百度的,直接通过百度搜索网站,记得之前有一个hao123网站,记录了很多知名网站的连接)。例如,我想去杭州西湖,这个就是名称,根据这个名称通过地图搜索实在哪条路多少号。 DNS服务器就是我们所说的网络世...

2019-04-19 06:58:25 197

原创 CDN网络

CDN,全称Content Delivery Network,即内容分发网络,CDN是构建在网络上的内容分发网络,依靠部署在各地边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,是用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,核心技术是内容存储和分发技术。 那我们用户一般访问一个网站的时候,没有cdn的时候,DNS服务器解析访问网站的域...

2019-04-18 11:04:43 2418

原创 linux 32位和64位系统调用区别

32 位的系统调用:64 位的系统调用:

2019-04-15 15:15:09 1521 1

原创 几种负载均衡技术的应用分析对比

1.HTTP重定向 根据用户的HTTP请求信息计算出一个真实的WEB服务器的地址,并把这个地址写入HTTP重定向302报文头中发给用户优点:简单易用缺点:用户需要两次请求才能访问到服务器,性能差 http重定向服务器可能会成为性能瓶颈 http 302可能被搜索引擎判定作弊,降低搜索排行2.反向代理负载均衡...

2019-04-13 15:35:51 536

原创 面试算法之递归和循环

在解决问题时如果我们需要多次重复的计算同一个问题,我们可以选择递归或者循环,递归是函数内部调用函数自身,直到一个终止条件,而循环是通过设置初始条件和终止条件,在一个范围内重复运算。比如求1+2+3+....+n;递归算法如下:int add_1toN_recursive(int n){ return n <= 1 ? 1 : n + add_1...

2019-04-11 19:30:09 362

原创 面试之排序算法1

题目:实现一个排序算法,对公司所有员工的年龄进行排序,要求时间效率O(n),空间不能超过O(n) 分析:因为员工年龄有一个限制,比如0~99,我们可以定义一个长度为100的int数组来保存每个年龄段出现的次数,用数组序号来表示员工的年龄,自然而然算法实现如下:#include <stdio.h>void sortages(int ages[]...

2019-04-11 13:36:30 159

原创 杨慎的词------临江仙·滚滚长江东逝水

最近闲暇之余,在看明史,看明朝那些事儿,故事讲得通俗易懂,讲到杨慎的滇南30年流放隐居生活做出的词牌,真的不错, 先摘抄如下:滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。古今多少事,都付笑谈中。译文如下:滚滚长江向东流,不再回头,多少英雄像翻飞的浪花般消逝。争什么是与非、成功与失败,都是...

2019-04-10 08:36:48 720

原创 wireshark关于lua插件的定位

最近项目开发需要,数据转发组同事写了一个lua插件,来解析mac in mac的内部协议上送的报文,在老的wireshark中使用是没有问题的,但是在新的wireshark版本中,解析到内层mac时就挂,看了下lua脚本,定位出是二层mac解析出错,下载了最新wireshark版本的源代码,对比了源代码中的lua插件的接口api,发现外层mac解析时是需要进行Ethernet的fc...

2019-04-09 11:10:32 1516

原创 谈谈阿里的P7面试

最近公司比较动荡,20%的裁员弄得人心惶惶,为了提前做好准备,好几年没有做过简历的我赶紧整理整理,在智联招聘上更新了自己的简历,没过几天,就有猎头电话我说给我推荐阿里的岗位,是阿里云部门的P7岗位,跟我聊了半个小时,了解了基本情况后,说给我推荐到阿里,后续等待面试就可以。 后面几天我也没有太在意这件事情,也没有好好的准备,突然周日晚上7点多的时候收到了一个杭州的电话...

2019-04-08 18:43:26 31002 6

原创 Linux & X86上Segmentation fault原因分析

Table of Contents1 简介 2 导致段错误的3种常见内存访问方式 2.1 用户模式访问内核空间 2.2 访问尚未建立的内存空间 2.3 写访问只读空间 3 系统对段错误的处理 3.1 CPU对段错误的捕获 3.2 内核对段错误的处理 3.3 用户程序对段错误的处理 4 小结1简介在Linux上写C程序,段错误(Segmentation ...

2019-04-08 14:57:23 688

原创 C语言编写宏定义时遇到的编译问题

我们在项目开发编码的时候,定义宏后编译会报错如下:backslash and newline separated by space [-Werror],后来经过google搜索,发现是宏定义的“\”连接符后面多了多余的空格,去掉后编译错误消除。#define desay_debug(_string,myValue) \ do{\ c_snprin...

2019-04-08 14:52:32 1398

原创 kernel kvm的bug

最新在kvm虚机上进行项目开发测试,发现系统负载很大,但是又没有什么进程占用cpu,表象就是虚机里我们敲自己的confd命令反应会特别的慢,后来google搜索后发现原来这个是kernel的一个bug,链接如下,大家遇到此问题可以参考一下,好似linux 4.4后续已经修复了这个bug。https://github.com/hishamhm/htop/issues/289...

2019-04-08 14:48:21 463

原创 top命令的Load average 含义及性能参考基值

uptime命令[root@node-3 smgr]# uptime 14:34:18 up 5:33, 8 users, load average: 0.55, 0.53, 0.52和top命令[root@node-3 smgr]# toptop - 14:35:45 up 5:34, 8 users, load average: 0.19, 0.41, 0.48...

2019-04-08 14:39:29 2675 5

原创 Linux下ctrl 常用组合键

Ctrl+c 结束正在运行的程序Ctrl+d 结束输入或退出shellCtrl+s 暂停屏幕输出【锁住终端】Ctrl+q 恢复屏幕输出【解锁终端】Ctrl+l 清屏,【是字母L的小写】等同于ClearCtrl+a 切换到命令行开始Ctrl+e 切换到命令行末尾Ctrl+u 清除剪切光标之前的内容Ctrl+k 清除剪切光...

2019-04-08 14:29:16 1637

原创 大厂的一些面试题目和解法汇总

1. 有两个房间,一间房间里有三盏灯,另一间房有控制着三盏灯的三个开关,这两个房间是分隔开的,从一间里不能看到另一间的情况,请问受训者只能分别进这两个房间一次,怎么来判断出这三盏灯的开关对应呢?2.你让一个工人为你工作了七天,你要用一根金条作为酬谢,金条要被分成七小块,每天发出一块,如果你只能将金条切割两次,应该怎么切割和分配给工人呢?...

2019-04-04 14:03:47 686 1

原创 对面向对象编程的认识

面向对象是当今主流的一种程序设计理念和设计规范,它取代了早期的"结构化"过程设计开发技术,主张一切皆为对象,程序以人的思维模式去解决问题。对象是把数据及对数据的操作方法放在一起,变为一个相互依存的整体。类就是对同类对象抽象出其共性,即面向对像的程序是由类组成的,每个类包含对用户公开的特定功能部分和隐藏的实现部分。传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题。这一些过...

2019-04-04 13:35:38 1705

原创 负载均衡之轮询

在大型网络架构上,负载均衡有多种方式,而负载均衡算法有有很多种,我们今天讲一下负载均衡算法之轮询法和加权轮询。轮询法(Round Robin) 轮询法基本上是最简单的负载均衡算法,基本思路就是对所有的服务器节点按顺序分配,每个服务器的概率是等同的,这种情况适合于服务器的性能等指标一样的情况。加权轮询法 在轮询基础上,我们对每个服务器加了权重...

2019-04-04 10:57:15 2398 1

原创 __attribute__属性之constructor/destructor

GNU C的一大特色就是__attribute__机制,__attribute__可以设置函数属性、变量属性和类型属性。其位置约束放在申明的尾部“;”之前;书写特征为前后两个下划线,后面紧跟一对原括弧,里面是相应的__attribute__参数。__attribute__ constructor/destructor 若函数被设定为constructor属性,则该函数会在...

2019-04-04 09:59:00 287

转载 LB 高可扩展性集群(负载均衡集群)

一、什么是负载均衡首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。这是来自维基百科的介绍。负载均衡的目的,就在于平衡负载,给用户提供优质,可靠,稳定的服务。上图是个最简单...

2019-04-04 08:58:00 751

转载 Linux内核中进程上下文和中断上下文的理解

首先明确一个概念:中断上下文和中断处理的上下半部是天差地别的一对概念。用户空间与内核空间      有了用户空间和内核空间,整个linux内部结构可以分为三部分,从最底层到最上层依次是:硬件-->内核空间-->用户空间。如下图所示:  需要注意的细节问题:(1)内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不...

2019-04-04 08:52:48 658

原创 git使用技巧汇总

git log 查看commit的历史git show <commit-hash-id>查看某次commit的修改内容git log -p <filename>查看某个文件的修改历史git log -p -2查看最近2次的更新内容git merge和rebase的区别git merge 会生成一个新的合并节点,而rebase不会比如: 1...

2019-04-04 08:46:25 155

原创 vim使用技巧

1.注释掉多行 ctrl+v 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如#,再按Esc,就会全部注释。或者也可以运行下面这些命令::s/^/# 用"#"注释当前行:2,50s/^/# 在2~50行首添加"#"注释:.,+3s/^/# ...

2019-04-03 13:50:31 362

原创 netconf查询方式

我们公司的NFV虚拟化产品vbras,用的数据管理cli是cisco的confd,北向接口netconf可以提供给sdn控制器获取设备的信息,有两种方式,xpath和subtree,例如netconf-console-tcp get-smgr.xml就可以获取用户的会话详细信息,1.指定某个leaf的具体指查询代码如下:<?xml version="1.0" enco...

2019-04-03 13:33:15 2436 1

原创 Linux 协议栈IP分片和重组分析

最近项目在调试map-t技术,涉及到mtu,ip分片和重组问题。下图是IP协议头的数据字段的示意:如图所示,IP协议理论上允许的最大IP数据报为65535字节(16位来表示包总长)。但是因为协议栈网络层下面的数据链路层一般允许的帧长远远小于这个值,例如以太网的MTU(即Maximum Transmission Unit,最大传输单元)通常在1500字节左右。所以较大的IP数据包...

2019-04-03 10:37:39 2066

原创 portal协议的lua插件

因为项目协议的需要,我们需要实现私有的portal协议,在调试抓包分析过程中,因为wireshark是不支持portal协议的,不过wireshark有一个好处,就是支持lua脚本插件来实现扩展协议的识别,于是自己动手,丰衣足食,加油! lua脚本如下:--[[ code--]] do --[[ 创建一个新的协议结构 porta...

2019-04-03 10:18:15 1660

原创 python脚本工具自动拷贝文件到多个目标机器

最近由于测试CU分离,涉及到多个虚机环境的文件的拷贝、程序脚本的执行,所以写了如下python脚本来自动化执行;#!/usr/bin/python# -*- coding: utf-8 -*-import os, sys, time, getoptimport pexpectimport commandsimport shleximport subprocessimp...

2019-04-03 10:13:03 841

原创 函数没有申明引发的血案

两个 a.c b.c, a.c里实现了一个函数 void **malloc2d()返回一个void型的二级指针,然后b.c里会调用这个malloc2d的函数,但是在调试的时候始终得不到正确的值,遂用gdb进行调试一番,发现在调用malloc2d过后,rax寄存器的值发生了变化,高32位被截取为0了,我靠,这还了得,猜想会不会是哪把我这个内存给采掉了,我X,百思不得其解。于是乎...

2019-04-03 10:07:31 302

MAP技术相关详细介绍

MAP技术相关资源

2022-08-19

ANDROID框架揭秘.pdf

详细解析android的框架,从框架层面来剖析Android系统。

2014-06-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除