计算机网络
文章平均质量分 79
逍遥子_
重点关注大并发处理、分布式计算、微服务、物联网、大数据等领域
展开
-
windows 笔记本连接公共wifi不弹出登录页面的处理办法
1、设置IP地址和DNS为自动获取;2、如果设置了DNS“自动获取”还是没有弹出登录页面,使用windows电脑的朋友可以试试清除一下DNS的cache。打开cmd(Win+R,输入cmd),在命令行中输入:ipconfig /flushdns...原创 2020-05-25 08:58:29 · 37194 阅读 · 0 评论 -
github使用方法
1.在github上注册账号;2.下载并安装github的windows客户端,下载地址:https://git-scm.com/download/win检查是否安装成功,使用命令:git --version,出现如下显示信息:3.搜索ssh-keygen的安装路径(github客户端安装时会带上,因此在github客户端的安装目录寻找即可),例如:C:\Program File...原创 2016-08-04 16:55:54 · 802 阅读 · 0 评论 -
TCP通信的基本流程
1. 简单的示例伪程序服务端伪代码:// 1. 建立一个监听socket listen_socket = socket(AF_INET, SOCK_STREAM, 0); // 2. 创建一个监听socket绑定的本地地址结构体 serverAddr.sin_family = AF_INET; serverAddr.sin_addr.s_addr = h原创 2016-01-21 11:09:29 · 5828 阅读 · 0 评论 -
数据链路层的一些总结
在网络中,主机与主机之间总是通过一个网线把各自的网卡对接起来,数据链路层的功能就是把一帧数据从当前主机(的某个网卡)传递到相连的下一个主机上(的某个网卡); 数据链路层为适应物理层采用的不同硬件,它支持多种协议,例如以太网、令牌环网、FDDI等,在我们日常使用过程中,以太网是最常见,也是TCP/IP采用的主要局域网技术,它采用CSMA/CD(带冲突检测的载波侦听多路介入)的媒体接入方法,速率为10原创 2016-09-21 10:27:33 · 1827 阅读 · 0 评论 -
IP、主机名和域名
在网络通信中,每个IP可唯一标识一台主机,在多网卡或者路由器等的情况下,每个主机可以有多个IP,通过哪个IP都可以找到该主机;但是IP地址是一个32位的数字,为了便于记忆,我们通常把按每字节划分,然后用10进制表示出来,即我们通常说的点分十进制(在IPV6的中采用的是冒号分十六进制)。如下图的网络抓包,可以看到一个我们常见的IP地址:192.168.100.1的实际存在形式用16进制就是:c0 a...原创 2016-09-21 10:13:32 · 26918 阅读 · 3 评论 -
Linux服务器集群系统(四)——LVS集群的负载调度
原文地址:http://www.linuxvirtualserver.org/zh/lvs4.html本文主要讲述了LVS集群的IP负载均衡软件IPVS在内核中实现的各种连接调度算法。针对请求的服务时间变化很大,给出一个动态反馈负载均衡算法,它结合内核中的加权连接调度算法,根据动态反馈回来的负载信息来调整服务器的权值,来进一步避免服务器间的负载不平衡。1. 前言 在上一篇文章中,我们主要讲述了转载 2016-09-10 09:21:02 · 1055 阅读 · 0 评论 -
Linux服务器集群系统(三)——LVS集群中的IP负载均衡技术
原文地址:http://www.linuxvirtualserver.org/zh/lvs3.html本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)的工作原理,以及它们的优缺点。1.前言在 前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实转载 2016-09-10 09:18:29 · 1546 阅读 · 0 评论 -
Linux服务器集群系统(一)——LVS项目介绍
原文地址:http://www.linuxvirtualserver.org/zh/lvs1.htmlLVS项目介绍 章文嵩 (wensong@linux-vs.org) 2002 年 3 月本文介绍了Linux服务器集群系统--LVS(Linux Virtual Server)项目的产生背景和目标,并描述了LVS服务器集群框架及目前提供的软件,列举LVS集群系统的特点和一些实际应用,最后,本文谈转载 2016-09-10 09:12:43 · 1384 阅读 · 0 评论 -
Linux服务器集群系统(二)——LVS集群的体系结构
原文地址:http://www.linuxvirtualserver.org/zh/lvs2.html本文主要介绍了LVS集群的体系结构。先给出LVS集群的通用体系结构,并讨论了其的设计原则和相应的特点;最后将LVS集群应用于建立可伸缩的Web、Media、Cache和Mail等网络服务。1.引言 在过去的十几年中,Internet从几个研究机构转载 2016-09-10 09:15:29 · 1035 阅读 · 0 评论 -
LVS 工作模式以及工作原理
原文地址:http://blog.csdn.net/caoshuming_500/article/details/8291940LVS 简介 LVS 是 Linux Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责转载 2016-09-09 17:31:33 · 1071 阅读 · 0 评论 -
TCPIP协议卷2之io中断
一、操作系统关于网络部分的分层处理操作系统完成用户和物理链路之间的转换,这种转换可简单分为三个层面,如下图所示:插口层,直接对应用户的系统调用,完成用户调用参数校验等等,它不设计任何网络协议相关的工作;协议层,完成协议相关的操作,例如将插口层交过来的数据加上tcp/udp和ip层的头部等等。网络接口层,完成与物理传输媒介的交互,它包括数据链路层和网卡驱动,它一端对接协议层,一端对接原创 2016-08-05 14:37:40 · 1892 阅读 · 0 评论 -
unix文件描述符——socket
在unix系统中,socket和普通文件一样对待,因为它可以像普通文件一样被读和写,但是它还有一些自己独特的特点,例如,文件的读写位置可以设置,但是socket只能被顺序的读写等等,那么在unix系统中,是如何实现这种方式的呢?如下图,其中有以下重要数据结构:proc、filedesc、file等,对这些重要数据结构及其之间的关系弄清楚之后,上面的问题自然就有答案了。在本文介绍中,使用的操作系原创 2016-07-16 13:12:12 · 6029 阅读 · 0 评论 -
关于推送系统设计的一些总结与思考(二)
**三、 消息推送的工作模式** 常见的消息推送系统的工作模式有:推模式、拉模式以及推拉混合模式三种,在很多推送系统中,采用在线消息直接推送下去,离线消息让客户端拉取,这种方式很容易造成漏消息的问题。本节将介绍几种“特殊定义“的推送模式的特点和应用场景,它们的含义与通常理解的略微有些差异。 在线用户:个人认为在线用户是指网络正常、弱网、网络异常等情况下的用户,这些用户实际上正在使用系统,只是由于原创 2016-11-24 19:40:05 · 10081 阅读 · 0 评论 -
关于推送系统设计的一些总结与思考(三)
**四、 推送系统的集群化**4.1长连接集群推送系统作为一项基础服务,它需要承载全部在线用户量,对于移动互联网行业,在设计之初的期望目标用户量就非常大,并且用户未来一段时间的增长量通常难以预估,因此要求在设计推送系统时,都要求能够集群化部署、支持动态扩展。那么长连接集群化设计时需要解决那些问题呢? 个人认为长连接服务需要解决三个问题:路由、管理和动态扩展;另外,如果想要锦上添花,让长连接通道更加原创 2016-11-24 19:43:51 · 3370 阅读 · 0 评论 -
使用LVS实现负载均衡原理及安装配置详解
本文转自:http://www.cnblogs.com/liwei0526vip/p/6370103.html 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍 LB集群的架构转载 2017-02-15 08:54:53 · 958 阅读 · 0 评论 -
Mosquitto安装及使用简介
1、源码下载:(1)官方源码下载:http://mosquitto.org/files/source/(2)性能优化版源码下载:https://github.com/houjixin/mosquitto-1.4.11-opt(3)性能优化版优化方案:https://blog.csdn.net/hjx_1000/column/info/mqtt2、编译解压下载的压缩包后会生...原创 2019-08-20 12:19:36 · 4746 阅读 · 0 评论 -
LVS简介及使用
一.LVS是什么?LVS的英文全称是LinuxVirtualServer,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。二.LVS能干什么?LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级...转载 2019-04-01 11:35:17 · 806 阅读 · 0 评论 -
使用LVS实现负载均衡原理及安装配置详解
使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分...转载 2019-04-01 11:24:20 · 433 阅读 · 0 评论 -
如何让Mosquitto动态加载配置文件
欢迎加入QQ群:221779856,国内最活跃的Mosquitto沟通社区,关于MQTT、Mosquitto、IM、推送系统、物联网、高并发处理等技术。Mosquitto的动态加载配置文件目前只有支持SIGHUP信号的linux系统支持(可使用Kill命令发送);其内部实现原理如下:在源代文件src/mosquitto.c代码里,自定义了针对SIGHUP信号的处理函数handle...原创 2019-03-20 10:45:05 · 1929 阅读 · 1 评论 -
58 到家数据库 30 条军规解读
军规适用场景:并发量大、数据量大的互联网业务军规:介绍内容解读:讲解原因,解读比军规更重要 一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表、数据字段必须加入中文注释解读:N年后谁tm知道...转载 2018-10-23 15:55:00 · 522 阅读 · 1 评论 -
epoll示例程序——客户端
源码:#include #include #include #include #include //这里配置服务器的ip地址和端口号#define SERVER_LISTEN_PORT 3557#define SERVER_HOST "192.168.1.202"#define MAX_BUF_SIZE 1024#define INVALID_SOCKET -1//返原创 2016-02-16 14:30:48 · 1094 阅读 · 0 评论 -
mosquitto支持websocket的使用方法
欢迎加入QQ群:221779856,国内最活跃的Mosquitto沟通社区,关于MQTT、Mosquitto、IM、推送系统、物联网、高并发处理等技术。mosquito的版本要大于1.4.2;1.修改配置:打开configure.mk中的WITH_WEBSOCKETS配置项,如下:WITH_WEBSOCKETS:=yes2.编译make3.安装webs...原创 2018-04-02 14:59:39 · 21831 阅读 · 7 评论 -
大数据平台在分布式服务中的应用
对大数据平台的一些理解大数据是目前比较火的领域,它涉及的领域比较广泛,例如数据挖掘、机器学习等等;所有这些基于数据的操作能够正常工作的前提是:搭建相应的大数据收集平台,在该平台中能够通过主动和被动的方式收集到足够的数据;一般情况下,大数据平台里的数据来源主要有:(1) 日志数据,相对于大数据平台,这是一种主动收集数据的方式;这种方式可能是大数据平台中最主要的数据来源,并且随着用户请求量、服务数量原创 2017-06-27 18:03:22 · 3752 阅读 · 2 评论 -
mosquitto源码分析(一)
本文由逍遥子撰写,转发请标注原址:http://blog.csdn.net/houjixin/article/details/21461225一、 Mosquitto简介mosquitto是一款实现了消息推送协议MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,例如现在应用广泛的低功耗传感器,手原创 2014-03-18 15:22:26 · 25060 阅读 · 2 评论 -
nginx源码分析之IO多路复用流程
一、 主流程几乎所有的服务器程序的工作模式都是:(1) 初始化一些参数;(2) 开启监听socket;(3) 在主线程的死循环(一般都是死循环)中对监听socket和业务socket进行IO状态监控(IO多路复用),并对IO进行处理;Nginx的主要工作模式是多进程模式,那么它的工作方式也是类似的。只不过是它的死循环被分散到了各个工作进程中。这原创 2017-03-02 20:35:40 · 4324 阅读 · 1 评论 -
epoll示例程序——服务端
源码:#include #include #include #include #include #include #include #include #include //返回值的宏定义,在开发linux环境时,用0表示成功#define RES_SUC 0#define RES_FAIL -1#define FD_NULL 0#define null 0#de原创 2016-02-16 14:28:56 · 2206 阅读 · 0 评论 -
将网卡中断分布到多个cpu上的方法
Linux下默认的一个网卡的中断操作只是有一个cpu来处理,目前多数主机都是多核cpu,在网络io操作比较多的服务器上,io操作往往成为瓶颈。最直观的体现就是,当网络操作较多时,应用程序的cpu飙升到100%,但是再查看每个cpu的负载情况,会发现压力都被击中到了某个cpu上,其他的cpu都还是空的,例如:图1出现上述情况时就应考虑是不是由于io太多的原因了,这里的Mosq原创 2015-08-11 15:11:58 · 9129 阅读 · 2 评论 -
一些值得好好学习的博客或者网站
讲解wireshark的http://blog.jobbole.com/70907/原创 2014-07-10 14:38:03 · 1143 阅读 · 0 评论 -
wireshark windows版数据过滤插件安装及使用
1、下载wireshark和数据过滤插件以及本文中所涉及的全部下载资源:http://download.csdn.net/detail/hjx_1000/6442019 2、数据过滤插件的安装方法: 2.1、下载插件generic.dll(Windows)或者 generic.so(Linux),地址为:http://wsgd.free.fr/download.h原创 2013-10-23 14:40:10 · 7309 阅读 · 1 评论 -
性能调优攻略
关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的《代码优化概要》,这篇文章基本上告诉你——要进行优化,先得找到性能瓶颈转载 2014-07-25 14:26:31 · 1228 阅读 · 0 评论 -
redis命令执行流程分析
Redis中各种操作都可以通过命令来完成,因此理解redis对命令的处理流程会有助于理解redis的整个流程。本文主要对redis的命令处理流程进行详细分析。Redis将所有它能支持的命令以及对应的“命令处理函数”之间对应关系存放在数组redisCommandTable[]中,该数组中保存元素的类型为结构体redisCommand,此中包括命令的名字以及对应处理函数的地址,如:stru原创 2014-05-27 11:26:00 · 6494 阅读 · 3 评论 -
tcp对连接断开的感知——保活定时器
根据tcp/ip协议的描述,tcp连接建立之后,如果双方没有通信,连接可以一直保存下去,假如中间路由器崩溃或者中间的某条线路断开,只要两端的主机没有被重启,连接就一直被保持着。 在实际应用中,这是一个很重要的问题:在很多时候服务器与客户端建立tcp连接之后,基于各种异常原因,经常发生客户端还没有来得及向服务器发送断开连接时就崩溃掉了的问题,服务器就需要能够感知这种变化。然而,TCP规范原创 2014-02-13 10:19:54 · 4977 阅读 · 0 评论 -
mosquitto源码分析(三)
一、 Mosquito的核心功能分析3.1、订阅树Mosquitto通过订阅树的方式来管理所有的topic以及客户端的订阅关系,它首先将所有的topic按照/分割并组织成一棵树结构,从根节点到树中的每个节点即组成该节点所对应的一个topic,每个topic都保存一个订阅列表,该订阅列表中保存了所有订阅当前topic的客户端信息。例如有如下订阅关系:客户端a1,a2,a3订阅了topi原创 2014-03-18 15:30:16 · 11206 阅读 · 8 评论 -
mosquitto源码分析(二)
一、 Mosquito的数据结构1) struct mosquito结构体struct mosquito主要用于保存一个客户端连接的所有信息,例如用户名、密码、用户ID、向该客户端发送的消息等,其定义为:struct mosquitto { int sock; char*address; char *id; char*username; ch原创 2014-03-18 15:24:27 · 12143 阅读 · 3 评论 -
epoll源码分析
源码分析使用版本为:linux2.6.9;分析文件为:eventpoll.c,所有的epoll实现代码都在此文件中。1、 sys_epoll_create()Epoll通过sys_epoll_create创建一个epoll文件,并返回该epoll文件的描述符,在该文件中也将同时创建该epoll文件的文件结构体,i节点等,需要注意的是,其中创建了一个eventpoll结构体,该结构原创 2014-02-13 10:45:51 · 1817 阅读 · 1 评论 -
关于socket的一些总结
在linux下socket是用一个文件描述符来表示,对于linux来说从某个socket读数据和从某个文件读数据是一样的;linux下文件描述符的范围是1024,也就是有个用户进行所能使用的最大的文件描述符的数量不能超过此值,但是这个值可以进行修改,在服务器程序中,该值可以修改为10w、20w甚至更大的值。 socket可以用一个五元组来标识:例如:地址为A的主机欲用tc原创 2014-01-24 16:50:27 · 2945 阅读 · 0 评论 -
tcpcopy使用方法
1、下载tcpcopyhttp://code.google.com/p/tcpcopy/downloads/list2、配置、编译、安装依此使用如下命令:配置:./configure 编译:make安装:make install 3、使用方法下面以mosquitto为例,说明tcpcopy的用法,tcpcopy分为客户端(称为tcpcopy)和服务原创 2014-01-14 10:17:43 · 2359 阅读 · 0 评论 -
select,poll,epoll区别
原文地址:http://blog.csdn.net/Sunboy_2050/article/details/5971779select的本质是采用32个整数的32位,即32*32= 1024来标识,fd值为1-1024。当fd的值超过1024限制时,就必须修改FD_SETSIZE的大小。这个时候就可以标识32*max值范围的fd。对于单进程多线程,每个线程处理多个fd的情况,sel转载 2013-07-24 10:20:14 · 1208 阅读 · 0 评论 -
抓包及分析包的常用命令
tcpdump抓包命令:tcpdump port 1883 -w /tmp/mosq.pcapwireshark常用的过滤命令:(1)等号使用 == 或者 eq,不等于使用 != 或者 ne例如:端口为80的包tcp.port eq 80或者:tcp.port == 80(2)过滤条件可以用and 或者or进行连接:例如:过滤出来包内容中含有"set"或者"原创 2014-09-28 16:23:47 · 2931 阅读 · 0 评论 -
The C10K problem
The C10K problem[Help save the best Linux news source on the web -- subscribe to Linux Weekly News!]It's time for web servers to handle ten thousand clients simultaneously, don't you think? After转载 2014-11-14 16:43:54 · 1999 阅读 · 0 评论