自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 RDMA传输相关代码的问题整理

1、尝试安装softiWARP进行软件模拟RDMA传输,在没有硬件网卡的前提下进行实验。编译的时候遇到了问题。直接编译会报错,“undefined reference to xxx”,意味着缺少链接库文件,所以加上-lrdmacm选项,但是依然报错。根据提示,发现少了个libibverbs.so动...

2018-02-26 17:15:38 2274 1

原创 RDMA传输中的SEND/RECEIVE和READ/WRITE

最近在做RDMA传输相关的项目,现分析和对比传统TCP/IP通信和RDMA传输在数据交互中的不同之处。概念解读    传统的TCP/IP通信,发送和接收数据的过程中,都是在源端应用层数据从上向下逐层拷贝封装,目的端从下向上拷贝和解封装,所以比较慢,而且需要CPU参与的次数很多。RDMA通信过程中,...

2018-02-26 16:37:52 2695 0

原创 RDMA over Commodity Ethernet at Scale (II)

3.  DSCP-BASEDPFC 在本小节中,我们测试了原始的基于VLAN的PFC面对的问题,并提出了基于DSCP的PFC方案。基于VLAN的PFC暂停帧中,VLAN TAG中包含了数据包优先级和VID,但是优先级和VID在部署中引发了两个严重的问题,因此提出了基于DSCP的PFC方案。 暂...

2018-02-01 15:30:34 464 0

翻译 RDMA over Commodity Ethernet at Scale (I)

Abstract 在过去一年半的时间,我们已经使用RoCEv2来支持一些微软高可靠性、延迟敏感的服务。本篇论文讲述了在此过程中遇到的挑战以及解决方案。为了把RoCEv2扩展到VLAN之外,我们设计了一个基于DSCP的优先级流量控制机制(PFC)来确保大规模部署。我们已经解决了很多安全挑战,比如P...

2018-01-31 17:22:44 854 0

原创 TCP/IP的TCP socket通信过程

传统的TCP/IP通信过程依赖于socket,位于应用层和传输层之间,使得应用程序可以进行通信。相当于港口城市的码头,使得城市之间可以进行货物流通。服务器和客户端各有不同的通信流程。一、服务器    1、建立连接阶段调用socket(),分配文件描述符,即监听套接字调用bind(),将套接字与本地...

2017-12-27 20:36:04 11148 0

原创 极限学习机应用于入侵检测(二)

训练样本对机器学习算法效果的影响    机器学习算法的训练过程本质是获得一种分类器或者回归方程,对于分类器,会以不同的形式进行表示,比如朴素贝叶斯算法的概率、神经网络的权重、隐藏层层数、神经元个数、决策树等,而回归方程就是得到输入和输出的线性或者非线性关系,根据输入可以得到输出。ELM的训练过程本...

2017-11-14 20:59:22 549 0

原创 极限学习机应用于入侵检测(一)

引言     最近读了一篇2014年CCS的论文,Using Extreme Learning Machine for Intrusion Detection in a Big Data Environment,并对其内容进行了总结和扩展。 基本知识      极限学习机(extreme le...

2017-11-04 20:36:04 7206 3

原创 文件描述符

最近在做TCP/IP传输相关项目,对于socket文件描述符的取值范围和分配进行了探索。 在系统头文件posix_types.h中定义了文件描述符的最大数量1024,意味着文件描述符的取值范围是0~1023,并且0、1、2已经被分配了,0表示标准输入,1表示标准输出,2表示标准错误输出,而通过s...

2019-01-08 13:25:50 1042 0

原创 编写基于gRPC的C/S通信模型

1、编写.proto文件包含:1)定义service,用service{}包起来 service ServiceName{ rpc funcname1(Request) returns (Reponse){} rpc funcname2(Request) returns (Repo...

2018-06-22 20:13:28 398 0

原创 web-app开发——简单的HTTP服务器

go本身可以直接实现HTTP服务器,而不依赖于nginx、Apache等服务器,直接使用包net/http中的函数即可实现,代码如下:package main import ( "fmt" "log" "net/http" ) ...

2018-06-19 14:51:05 580 0

原创 Go语言——struct、type、func的综合用法

最近在学golang语言,对于struct、type、func的学习进行了简单的编程练习,代码如下package main import ( "fmt" ) const ( WHITE = iota BLACK BLUE RED YELLOW ) //Colo...

2018-06-15 19:48:08 5864 0

原创 Set Matrix Zeroes

需求:Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place.Example 1:Input: [   [1,1,1],   [1,0,1],   [1,1,1] ]...

2018-06-08 10:15:02 87 0

原创 jump games I/II

需求I:Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your m...

2018-06-07 17:13:27 75 0

原创 Spiral Matrix I/II

需求:Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.Example 1:Input: [ [ 1, 2, 3 ], [ 4, 5, ...

2018-06-07 14:26:07 83 0

原创 N-Queens I/II

需求:n皇后问题,有一个n*n的棋盘,有n个皇后,要保证每个皇后不能在同一行、同一列、同一对角线,这样才不会出现冲突,求解n皇后共有多少种放置方式。分析:1、创建n*n的char型二维数组,初始化为'.',表示没有放置皇后。2、因为皇后不能在同一行,所以将皇后i放到行i,逐行确...

2018-06-07 10:30:27 254 0

原创 Group Anagrams

需求:Given an array of strings, group anagrams together.Example:Input: ["eat", "tea", "tan", "ate", "nat&q...

2018-05-21 22:14:03 197 0

原创 排序算法--java实现

之前总结过常见排序算法的时间复杂度、空间复杂度、是否稳定等特性,现将代码补上。代码:/* * To change this license header, choose License Headers in Project Properties. * To change this templa...

2018-05-21 21:00:28 81 0

原创 String Compression

需求:给定一个字符数组chars,由若干个字符组成,现对其进行简化,比如"aaabbcc",将其转化成"a3b2c2",如果字符个数是1,那么不需要进行简化。要求in-place,即直接修改原始字符数组。分析:1)特殊情况处理:如果字符数组是null,那么抛...

2018-05-19 19:51:02 167 0

原创 nginx的epoll

设想一下,有100万个客户端和服务器的一个进程建立TCP连接,每次只有几十个或者几百个连接是活跃的,那么我们只需要处理这几十个或者几百个连接即可,在poll和select中,服务器进程每次都把这100万个套接字传给操作系统(这是用户态内存到内核态内存的大量复制),让操作系统内核去查询这些套接字上是...

2018-05-07 11:14:47 107 0

原创 动态规划求解路径问题

动态规划求解的两个条件:    1)最优解问题    2)大问题可以拆分成小问题,大问题的最优解包含小问题的最优解,将小问题的最优解保存起来,在求大问题最优解的时候无需重新求解,直接拿来用即可。具体问题需求一:    给定m*n矩阵,从左上角出发,到右下角,每次只能向右走或者向下走,求共有多少路径...

2018-04-26 22:05:22 745 0

原创 递归求解复杂的枚举问题

一、问题概述    枚举就是列举出所有的情况。数据量较小时,比较容易列举,但是随着数据量增大,如果依然一一列举,可能会出现遗漏的情况,导致出错,这时候就可以考虑使用递归的方式进行,寻找递推关系。比如先获得数据规模是n-1的所有情况,那么求n就只需要在n-1的基础上做一些修改即可,这样就大大简化了问...

2018-04-25 14:47:42 399 0

原创 TCP拥塞控制

1、TCP拥塞控制的意义早期开发的TCP在启动一个连接的时会向网络发送大量数据包,可能会导致路由器或链路负载过量,产生网络拥塞,使得TCP连接的吞吐量急剧下降。由于TCP源端无法知道网络资源当前的使用情况,因此新建立的TCP连接不能一开始就发送大量数据,只能逐步增加每次发送的数据量,以避免上述现象...

2018-04-06 22:24:57 524 0

原创 多线程安全--生产者和消费者

    在多线程安全中,使用较多的例子是生产者和消费者模型。    在这个模型中,生产者和消费者是两个独立的线程,但是他们操作的资源的共享的,生产者生产产品,消费者消费产品。假设资源用一个对象来抽象,该对象的set()和out()方法对应生产和消费,那么为了保证多线程安全,每次只能有一个生产者线程...

2018-03-20 22:04:43 300 0

原创 单例设计模式--java实现

单例设计模式是一种常见的软件设计模式,通过这种模式,可以保证系统中,该类只有一个实例对象。对于系统中的某些类来说,只有一个实例很重要,比如一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务。为了保证一个类只有一个实例对象,需要满足以下三个条件:    1、外界无法创建该类对象,所以该类对...

2018-03-15 20:18:49 76 0

原创 java--多种排序算法

基本知识1、时间频度一个算法中的语句执行次数叫做语句频度或时间频度,用T(n)表示。理论上无法计算一个算法执行所需的时间,必须上机测试才能知道,但是我们不可能也没必要对每个算法都进行上机测试,我们只需要知道哪个算法运行时间长,哪个算法运行时间短即可。算法花费的时间和算法中语句执行次数成正比,哪个算...

2018-03-10 19:32:04 100 0

原创 数组的第k大值

需求:求数组nums中的第k大数,即从大到小排列的第k个数字。分析:1、思路一借助最小堆求解,创建一个大小是k的最小堆(优先队列),遍历数组,当最小堆大小小于k时,存储数组元素,否则,比较数组元素和队列头元素,如果比队列头元素大,就替换队列头元素,否则继续遍历,最终返回队列头部元素。2、思路二借助...

2018-02-19 23:42:08 226 0

原创 删除链表中的重复节点

需求:给定一个链表,将其中重复的节点删除,不保留重复的节点。分析:1、思路一  1)创建map集合,遍历链表节点,存储节点值和其出现的次数  2)遍历map集合,将其中出现次数是1的节点连起来,输出头结点代码:import java.util.*; //链表节点类 class ListNode{...

2018-02-18 22:38:52 245 0

原创 动态规划or贪心算法--剪绳子/切割杆

需求一:  剪绳子,将长度为n的绳子剪成若干段,求各段长度乘积的最大值 分析:  1、动态规划     设f(n)代表长度为n的绳子剪成若干段的最大乘积,如果第一刀下去,第一段长度是i,那么剩下的就需要剪n-i,那么f(n)=max{f(i)f(n-i)}。而f(n)的最优解对应着f(i)和...

2018-02-12 12:06:41 7209 4

原创 二进制中的1

需求:求整数的二进制形式中1的个数。分析:求整数二进制形式中1的个数1、方法一    如果该数是0,那么直接返回0;如果不是0,就循环和1进行按位与运算,如果结果是1,说明最低位是1,那么1的个数加一,将该数右移一位,循环此过程,每次都需要判断该数是否为0,如果是0,那么就直接返回1的个数,否则继...

2018-02-11 17:05:00 92 0

原创 堆栈和队列的相互实现

需求: 堆栈特点是先进后出,队列特点是先进先出。二者有一定联系,可以使用两个队列实现堆栈,也可以用两个堆栈实现队列。 分析:  1、两个堆栈实现队列(有两个堆栈stack1,stack2)  添加:添加到stack1中  删除队列头部元素:如果两个堆栈都是空的,那么抛出异常。如果...

2018-02-03 22:45:01 1983 0

原创 java保留小数点后两位

DecimalFormat DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、...

2018-02-02 16:59:14 1080 0

原创 java实现死锁

死锁 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。在多线程中,如果同步中嵌套同步,即多个线程互相拥有对方需要的资源而不释放,就会造成...

2018-01-16 19:12:20 286 0

原创 java实现文本转换器

需求和分析   用java实现文本转换器   这是一个TCP连接。客户端将文本发送到服务端,服务端会将文本转换成大写形式,并返回给客户端。当客户端发送“over”的时候,就关闭客户端和服务端。   分析:   1、客户端   客户端从键盘录入数据,然后发送到服务端。这个过程中,源是键盘录...

2018-01-06 21:35:20 572 0

原创 删除排序数组中的重复数字II

需求: 删除排序数组中重复的数字,允许重复两次。 分析: 和删除排序数组中的重复数字I类似,也是需要两个指针,一个用来遍历数组,一个用来记录有效的个数 1、当数组是null时,抛出异常 2、当数组长度是0,那么返回0 3、初始化变量index=1,用来表示有效数字的个数。 从前向...

2018-01-04 21:48:40 159 0

原创 判断字符串是否没有重复字符

需求: 实现一个算法确定字符串中的字符是否均唯一出现。 给出"abc",返回 true 给出"aab",返回 false 分析: 思路一: 判断字符串是否有重复字符,类似于,删除数组中重复的数字 1、将字符串转成字符数组 2、使用...

2018-01-04 21:28:33 4581 0

原创 first missing positive

需求:Given an unsorted integer array, find the first missing positive integer.ExampleGiven [1,2,0] return 3,and [3,4,-1,1] return 2.分析:比较简单的思路是对数组进行排序,...

2017-12-29 10:59:36 76 0

原创 二叉搜索树

需求:     给定一个二叉树的后序遍历序列,用整型数组存储序列,判断该二叉树是否是一个二叉树搜索树? 分析:     二叉搜索树满足父节点的值大于其左子树的所有节点值,而小于右子树的所有节点值,就从这个特性入手。     对于二叉树的后序遍历序列,最后一个数是该二叉树的根,根据大小关...

2017-12-11 16:27:05 72 0

原创 平衡二叉树

需求:     给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 分析:     平衡二叉树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且...

2017-12-11 11:10:06 104 0

原创 二叉树的逐层遍历--java实现

需求一:     逐层遍历二叉树并输出,每一层占一行。 分析: 思路一:     1、逐层遍历二叉树也是BFS遍历二叉树,因此数据结构选择队列。     2、需要用两个变量存储当前层待遍历的节点个数以及下一行的节点个数。     3、将头结点加入队列尾,当队列不是空的,就移除队列头部元...

2017-12-10 17:01:02 1137 0

原创 搜索旋转数组

需求:     假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。假设,数组中没有重复数字。 分析:     按照二分法进行求...

2017-12-08 20:53:53 71 0

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