自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(41)
  • 收藏
  • 关注

原创 量化对冲的问题

这篇文章几乎回答了你对量化对冲的所有疑问。一、基础篇1、在市场不稳定的情况下如何稳健套利?套利,本就是很稳健的一种盈利方式。套利和盈利不同,相信您问的是在市场不稳定的情况下稳健“盈利”。先明确量化和对冲的概念,可下载OA系统中“量化对冲 产品基础知识学习手册”进行详细学习。量化对冲产品在构建股票多头的同时,也构建期货空头。这种操作在市场不稳定时,可以对冲市场的系统风险,从而留下股票多头特有的...

2020-03-22 10:12:55 1209

原创 深入理解 NaN 与 isNaN 方法

一、NaNNaN,即 not a number,从字面意思上可以理解为非数字,但是在 JavaScript 的数据类型划分的时候,我们还是将其划分进 number 类型:typeof NaN; // “number”实际上,它是在算术运算过程中,在原本期望得到一个数字类型数据的地方,却没有办法得出数字类型的结果的时候,其它类型编程语言可能将抛出异常,而 JavaScript 将得到一个...

2020-03-22 10:07:29 494

原创 快速过一遍Webpack4核心知识

1、webpack和webpack-dev-server区别webpack 每次会生成一个bundle.js文件,webpack-dev-server不会,只是将打包结果放在内存中,并不会写入实际的bundle.js,在每次webpack-dev-server接收到请求时,都将内存中的打包结果返回给浏览器。2、webpack-cli安装后可以直接在控制台调用webpack命令3、url-lo...

2020-03-22 10:06:16 286

原创 浅述浏览器多进程发展历程

一、浏览器的多进程概括要想搞明白什么是浏览器的多进程,首先得知道什么是进程。按照维基百科的说法:进程是计算机中已运行程序的实体。进程是线程的容器,进程本身不运行。程序本身只是指令的集合,进程才是程序(指令)的真正运行。每个程序可以有多个进程,每个进程都有自己的资源。简单来讲,进程就是CPU资源分配的最小单位,而线程则是CPU调度的最小单位。那什么又是单线程和多线程呢,我们来看一小段代码:v...

2020-03-22 10:05:04 224

原创 TCP可靠传输实现原理

预备知识:TCP报文格式字段1、分为首部和数据两部分,二十个字节固定首部; 2、分析: 1)两个字节源端口、两个字节目的端口; 2)四个字节序号(报文段序号)、四个字节确认号(期望收到对方下一个报文段的第一个数据字节的序号); 3)四位数据偏移、六位保留、六位控制位:紧急URG、确认ACK、推送PSH、复位RST、同步SYN、终止F...

2020-03-21 19:49:06 316

原创 tcp的拆包和粘包

简介拆包和粘包是在socket编程中经常出现的情况,在socket通讯过程中,如果通讯的一端一次性连续发送多条数据包,tcp协议会将多个数据包打包成一个tcp报文发送出去,这就是所谓的粘包。而如果通讯的一端发送的数据包超过一次tcp报文所能传输的最大值时,就会将一个数据包拆成多个最大tcp长度的tcp报文分开传输,这就叫做拆包。一些基本概念MTU泛指通讯协议中的最大传输单元。一般用来说明T...

2020-03-21 19:47:59 321

原创 强大的HTTP协议测试工具Postman ,了解一下?

Postman是一个API管理应用程序,具有测试功能,允许您将集合同步到云,以便随时访问数据,或与整个开发团队共享。1.构建HTTP请求以测试API并将它们组织成集合在Postman主窗口中,您可以使用Builder工具创建HTTP请求并定义自定义测试方案。该应用程序允许您存储它们供以后使用,因此您可以快速创建各种情况并收集在开发过程中非常有用的API响应。HTTP请求可以组织成集合并分组到文...

2020-03-21 19:46:50 473

原创 TCP与UDP挖掘机(二)套接字选项

套接字选项用于IP层的套接字选项(IPPROTO_IP)参数 解释IP_ADD_MEMBERSHIP 加入组播(广播)组。每个套接字最多可以连接一组IP_ADD_MEMBERSHIPS组。IP_ADD_SOURCE_MEMBERSHIP 加入特定于源的组播组。每个套接字最多可以连接一组IP_MAX_MEMBERSHIPS组。IP_BLOCK_SOURCE 阻止从给定源到给定多播组的数据...

2020-03-21 19:45:45 289

原创 FTP协议数据包命令含义详解

本节我们掌握FTP协议的数据包格式,为编码实现奠定基础。我们先看看控制命令的格式。当用户端通过控制命令通道想服务器端发送数据后,服务器端一定会产生回复。回复主要有三个目的,首先是让客户端确定服务端收到了消息,其次是通知客户端请求是否能被接收,第三通知客户端当前服务器的状态。数据包格式的组成特点是数字与文本信息相混合。服务器返回给客户端的数据包中一定包含回复码,该数值用来通知客户端数据包的格式和内...

2020-03-21 19:45:01 678

原创 Packet Checksum Recalculation

This afternoon, I was just going to demonstrate my packet modifying program to the customer, when I found that transport layer checksum values of all TCP/UDP packets were incorrect.I was upset. Why d...

2020-03-21 19:43:58 184

原创 Nginx + FastCgi + Spawn-fcgi + c 的架构尝试

Nginx + FastCgi + Spawn-fcgi + c 的架构尝试Php写的很有段时间了,最近看公司一些关键的后端CGI都是用C写的,以lighthttp 最为server 。忽然也有种学习用C写CGI的想法。虽然php结合php-fpm的fastcgi模式也有不错的性能,反正多学一种东西又有和不可以呢?何况,某些情况下C的性能还是php无法比拟的。先有必要有这样第一个认识:ngxi...

2020-03-21 19:43:11 214

原创 TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法

实际问题初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接。TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这些概念。TCP状态迁移面向连接...

2020-03-21 19:42:10 697

原创 端口与进程

端口与进程TCP 的包是不包含 IP 地址信息的,那是 IP 层上的事,但是有源端口和目的端口。就是说,端口这一东西,是属于 TCP 知识范畴的。我们知道两个进程,在计算机内部进行通信,可以有管道、内存共享、信号量、消息队列等方法。而两个进程如果需要进行通讯最基本的一个前提是能够唯一的标识一个进程,在本地进程通讯中我们可以使用「PID(进程标识符)」来唯一标识一个进程。但 PID 只在本...

2020-03-21 19:41:14 810

原创 Python 网络编程3:tcp客户端与tcp服务器以及下载器

一、TCP介绍1.1、TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。1.2、TCP通信需要经过 创建连接、数据传送、终止连接 三个步骤。1.3、TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,“打电话”,而D...

2020-03-21 19:40:09 183

原创 TCP、UDP以及TCP滑窗,它们的区别

我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。到了网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入到传输层(transport layer),协议的种类又开始繁多起来(比如TCP、UDP、SCTP等)。这就好像下面的大树,根部(连接层)分叉很多,然后统一到一个树干(网络层),到了树冠(传输层)部分又开始开始分叉,而每...

2020-03-21 19:38:41 122

原创 使用nc & pv测试发送速度

最近写了一个用于测试网络速度的发包工具,再工具发布之前,我使用nc配合pv对工具进行了测试,即确认工具发送的数据流量和nc/pv接收到的是一致的,确认工具是按设定参数发送数据。先说一下发送数据的工具的工作原理对于TCP,参数为每次写入的数据块的大小,以及数据块的数量,比如每次写入1M,共发送1000个,这样就发送了1G的数据。工具是服务端,收到客户端的任意数据后开始发送,所以可以配合nc使用,...

2020-03-21 19:38:08 423

原创 TCP理论带宽计算

TCP理论上的有效带宽计算(即每秒可以传输多少负载数据)以千兆网为例,首先要明确千兆网的速度为1000Mbps,即每秒可传输1000M个bit,且这儿1M = 1000 K = 1000000。那么千兆网的速度就是125MB/s,即每秒传输125000000个字节。(如果按MiB计算,就是119MiB/s)在TCP/IP网络,一般使用以太网传输,在以太网中传输的是以太网帧。而TCP段是封装在I...

2020-03-20 21:28:27 4972

原创 《TCP/IP协议 详解》思考总结 · TCP上篇

前言开始这篇文章之前,我非常的紧张,因为要写好这个TCP协议说实话并不简单。作为TCP/IP协议簇最为核心的部分,《TCP/IP协议 卷一》花了整整八章的篇幅去介绍它。如何在保证正确的前提之下,合理有序的写出一些有意义的内容,这是一个很大的挑战。整个看书学习的过程,实际也是一种享受。在了解TCP的各项策略时,你可以通过书本了解到前辈设计时的所思所想。如何在无连接不可靠的IP网络上实现一个可靠有...

2020-03-20 21:27:12 273

原创 《TCP/IP协议 详解》思考总结 · TCP下篇

前言这篇文章是整个读书总结系列的最后一篇,有关TCP我想总结的内容都会在这篇文章结束。当然这并不是TCP的全部,总共的五篇文章都只是计算机网络的基础。枯燥而又繁杂的知识点只是进入网络领域的入场券,学会理解了基础才可能继续往下深耕。作为上篇的承接,下篇我们开始着手认识TCP的拥塞避免策略。对于传统的TCP而言,拥塞的判断完全依赖于丢包的情况,这样判断的理由是基于对现实网络情况的总结经验。我们会考...

2020-03-20 21:25:52 310

原创 select和epoll区别

socket编程并发处理的问题中,select和epoll函数的区别一直是面试中的重点。关于他俩的区别很多博客中已经说明了,我在这里总结一下。参考select和epoll 原理概述&优缺点比较以及select、poll、epoll之间的区别总结[整理]select的过程调用select函数时到底发生了什么,即如何实现同时监听多个socket的。假设我们需要监听的读套接字read[],它...

2020-03-20 21:24:37 165

原创 c++正则表达式汇总

正则表达式Regex(regular expression)是一种强大的描述字符序列的工具。在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分。C++ regex正则表达式的规则和其他编程语言差不多,如下:一、校验字符的表达式1 汉字:1{0,}$2 英文和数字:2+$ 或 3{4,40}$3 长度为3-20的所有字符:^.{3,20}$4 由26个英文字母...

2020-03-20 21:23:20 453

原创 三种I/O多路复用方式优缺点比较

select的优缺点:优点:(1)select的可移植性好,在某些unix下不支持poll。(2)select对超时值提供了很好的精度,精确到微秒,而poll式毫秒。缺点:(1)单个进程可监视的fd数量被限制,默认是1024。(2)需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大。(3)对fd进行扫描时是线性扫描,fd剧增后,IO效率降低,...

2020-03-20 21:21:27 1320

原创 多进程、多线程和I/O多路复用三种Web服务器模型比较

1、多进程模型的优缺点(1)优点:1)每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系;2)通过增加CPU,就可以容易扩充性能;3)可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系;4)每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大。(2)缺点:1)逻辑控制复杂,需要和主程序交互;2)需要跨进程边界,如果有大数据量...

2020-03-20 21:20:23 1268

原创 gcc 编译器的 std=c99 选项

最近在学习关于 Linux 下的网络编程相关的知识,以前对这方面没有什么了解。跟着教程写完了代码,然后使用 gcc 进行代码编译,然后编译报错了。gcc tcpclient.c -o tcpclient.c:10:5: error: ‘for’ loop initial declarations are only allowed in C99 modefor (int i = 0; i &l...

2020-03-20 21:19:23 6388

原创 TCP 协议的三次握手

TCP 三次握手是一个很经典的问题,这里简单的整理一下 TCP 可以成功完成三次握手的流程。Socket API 的流程在进行 Socket 编程的时候,服务器端通常使用 socket、bind、listen 这三个 API 函数创建一个被动套接字,然后通过 accept 函数等待客户端的连接,调用 accept 函数后,程序会进行阻塞等待。客户端通过 socket、connect 两个 A...

2020-03-20 21:18:24 276

原创 大数据未来7大发展趋势

大数据一度野蛮生长,在利益催化之下出现浮华泡沫;但不可否认的是,在大数据时代,数据挖掘、分析,可以通过方方面面来影响我们的生活,不仅更便利,而且还直接可以提升幸福感。那么,大数据未来的发展趋势有哪些呢?美国PC Magazine总编辑柯斯塔表示,他认为大数据的发展趋势以数字汇流对未来最具冲击,结合物联网、区块链、人工智能、语音识别等技术,这些科技相辅相成。未来大数据应用七大趋势1趋势一:物联...

2020-03-20 21:17:41 570

原创 Linux 学习路线规划

1 抛弃旧文化,迎接Linux命令新文化Linux第一步,从Windows思维,切换到Linux的“命令行+文件”模式在Linux中,做什么都有相应命令。一般就在bin或者sbin目录下,数量繁多。如果你事先不知道该用哪个命令,很难通过枚举的方式找到。因此,在这样没有统一入口的情况下,就需要你对最基本的命令有所掌握。一旦找到某个命令行,替代输入框的是各种各样的启动参数。这些参数怎么填,一...

2020-03-19 21:03:45 532

原创 按键的长按与短按

按键的长按与短按是今年蓝桥杯的省赛(第九届)的一个难点,可以这样说,长按短按搞定了,那么这道题肯定会做出来,当然有一些小小的bug在考场上是很常见的。昨天我再次写了一下长按与短按,难度是有的,但是不大,实现方法也是有很多,但是我说说我的思想:1 .明确概念,什么是长按,什么是短按2 .什么时候才能把按键的键值传出去3 .按键值传出去之后又该怎么办题目中明确说明:按键持续按下的时间在800...

2020-03-19 21:01:59 5475 3

原创 7 种单例模式设计

饿汉式// final 不允许被继承public final class Singleton {// 饿汉式,先newprivate static Singleton singleton = new Singleton();// 私有构造不允许外部 newprivate Singleton(){ }public static Singleton getInstance(...

2020-03-19 20:58:39 258

原创 JAVA动态代理

代理模式为其他对象提供一个代理以控制对某个对象的访问。代理类主要负责为委托了(真实对象)预处理消息、过滤消息、传递消息给委托类,代理类不现实具体服务,而是利用委托类来完成服务,并将执行结果封装处理。其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。代理类和被代理类通常会存在关联关系(即上面提到的持有的被带离对象的引用),代理类本身不实现服务...

2020-03-19 20:56:32 92

原创 通俗易懂理解建造者模式

当一个产品的构建过程是固定且复杂多变的,则可以将该产品的构建过程抽象出来。从一个简单的例子出发比如:组装一台电脑,你一定需要有CPU、主板、内存、硬盘以及IO外设。而每个部分你都可以选择不同的类型:CPU可以是Arm或者Intel,内存可以是台电的或是三星的等等。这样的话,如果将构建电脑的过程抽象出来,就可以如下表示:public abstract class ComputerBuilde...

2020-03-19 20:54:07 532

原创 撸一个JSON解析器

JSONJSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。JSON与JS的区别以及和XM...

2020-03-19 20:51:56 108

原创 Java代理模式和切面编程

1、代理模式即Proxy Pattern,23种java常用设计模式之一。代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。1.1 介绍代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间...

2020-03-19 20:49:41 289

原创 编码规范 | Java函数优雅之道

内部函数参数尽量使用基础类型案例一:内部函数参数尽量使用基础类型现象描述:// 调用代码double price = 5.1D;int number = 9;double total = calculate(price, number);// 计算金额函数private double calculate(Double price, Integer number) {return ...

2020-03-19 20:46:44 137

原创 金三银四春招妥了!资深技术面试官教你这样准备 Java 面试

Java能力和面试能力,这是两个方面的技能,可以这样说,如果不准备,一些大神或许也能通过面试,但能力和工资有可能被低估。再仔细分析下原因,面试中问的问题,虽然在职位介绍里已经给出了范围,但针对每个点,面试官的问题是随机想的,甚至同一个面试官在两场相似的面试里,提的问题也未必一样。也就是说,如果让面试官自由提问,那么一旦问到你不熟悉的点,你可能就答不上,如果运气不好,再外加上不知道面试引导技巧等因...

2020-03-19 20:44:05 234

原创 记录一个App — 简单的来说一下Instagram

Instagram对于一些人可能比较陌生,苹果用户可以在App Store下载。大部分安卓用户都无法从应用商店下载,说起原因还是因为当初香港几万群众集会运动,“占领街道”,视频及图片在Instagram流传,由于害怕不良影响所以当时就把Instagram禁了。Instagram是什么Instagram是非常火的分享图片应用,活跃用户在2700万左右,而且当时还没有推出安卓版本。Instag...

2020-03-19 20:39:40 790

原创 闲谈人生之序列一

在2019新一期奇葩说里,蔡康永说了一句话让我很受感动。他说:“好多人跟我们说他们有特殊的才华,可是我后来看到的都是那个人成就某些事是因为热情。很多有才华而无热情的人,最后那个才华就付诸流水。是呀,才华能成就我们,也能毁掉我们。在这个世上,每个人无论处在怎样的年龄,身在怎样的境遇,有着怎样的经历,都会面对许多麻烦和困难。其实大多数时候,我们之所以会感到烦恼,并非由外因导致。是你的心态和状态,...

2020-03-15 22:26:32 1458

原创 闲谈人生之序列二

沧桑一词,可以形容人经历岁月的流逝而变得衰老,也可以形容环境的变化,大海变沙漠/森林变农田。在这里,我们谈论的是人经历岁月的流逝而变得衰老这一点,或者我们经常看到电视电影中那些不老是明星,被形容为四十年如一日,但是事实上真的是这样吗,他们只是化妆得好,或者靠补品去令身体延迟衰老,但他们的心灵上经历的沧桑,比平常人绝对要多,正所谓台上一分钟,台下十年功。当人生经理沧桑变化的时候,你第一时间会...

2020-03-15 22:26:08 1411

原创 闲谈人生之序列三

人生如一面镜子,你对它笑,它也对你笑,你对它哭,它也对你哭。下一秒会发生什么是一个难解的谜题,但我们可以选择怎样去面对。笑着过也是一天,哭着过也是一天。何不开开心心地度过每一天?人生虽苦,但我心有乐。简简单单的做人,轻轻松松的生活,对小人淡然一笑,对坏人置之无聊,用宽容见证你的品行,用大度彰显你的修养。所以凡事不要想太多,你就自然没有什么烦恼,快乐自然就会随你而来。从而我们可以看出,很多烦恼和...

2020-03-15 22:25:35 903

原创 说说区块链的事情

什么是区块链Blockchain?区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。从本质上讲,区块链技术,是一种交易记录的存储技术。它对交易记录进行永久性存储,而且存储之后永远无法删除,只能按照次序加入新的交易,由此对所有的交易历史进行...

2020-03-12 10:04:39 417

空空如也

空空如也

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

TA关注的人

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