网络笔记
文章平均质量分 67
DaveLee001
科学付出,才能高效
展开
-
ACL基础知识汇总
ACL(Access Control list,访问控制列表)一般用来进行流量过滤和流量分类。1.过滤就是对数据包流量进行过滤,包含了防火墙的功能(应用到三层网络层),商业级的防火墙一般都需要能应用到网络上面的应用层。过滤的两个动作:permit(允许)、deny (拒绝)ACL做过滤时都是绑定在交换机或路由器的接口(Interface)上,其中需要注意:一个接口(Interfa...原创 2020-04-20 16:15:16 · 2147 阅读 · 0 评论 -
红黑树的实现源码(第二次修订版)
我曾经写过两个两个红黑树的实现, 分别在:http://www.cppblog.com/converse/archive/2006/10/07/13413.htmlhttp://www.cppblog.com/converse/archive/2007/11/28/37430.html最近因为要给ccache加入红黑树的支持, 找出来曾经实现的代码作为参考, 这才发现原来的实现转载 2014-06-26 10:37:16 · 615 阅读 · 0 评论 -
TCP 的那些事儿(上)
这篇文章分为上下两篇转载 2014-05-28 13:06:33 · 4447 阅读 · 0 评论 -
TCP 的那些事儿(下)
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资转载 2014-05-28 13:07:48 · 5418 阅读 · 0 评论 -
Linux /proc第一篇---->/proc/pid记录了什么
由于自己Linux系统知识基础比较薄弱,准备比较全面学习,准备从/proc这个目录开始。实际上这个目录也基本上记录所有系统运行时和内核的一些信息,所以如果想对linux系统有一个比较全面的了解,从/proc入手应该是个不错的选择。准备将自己学习的过程记录下来,分享给同样需要的朋友,也便于以后查阅。今天准备介绍一下/proc/pid这个目录到底是做什么用的,它到底记录了哪些信息。转载 2014-08-04 11:40:10 · 731 阅读 · 0 评论 -
存储入门
第1章 网络存储主要技术 1.1 NAS简介 1.2 SAN简介 1.3 NAS、SAN和DAS的区别 1.4 SCSI访问控制原理介绍 1.5 NAS实现类型对比:统一式、网关式和横向扩展式(Scale-out) 1.6 SAN网络性能问题排错指南 (新) 第2转载 2014-07-10 10:34:43 · 884 阅读 · 0 评论 -
C 语言中的段位操作
C 语言中的段位操作1.位段结构中位段的定义格式为: unsigned : 例如: struct bytedata {unsigned a:2; /*位段a,占2位*/ unsigned:6; /*无名位段,占6位,但不能访问*/ unsigned:0; /*无名位段,占0位,表下一位段从下一字边界开始*/ unsigned b:10; /*位段b,占1转载 2014-08-15 14:43:56 · 1493 阅读 · 0 评论 -
Linux下忽略信号SIGPIPE的方法
最近为测试自己写好的一个服务器,zi原创 2014-10-30 18:55:56 · 16825 阅读 · 4 评论 -
poll和epoll原理对比、分析
随着2.6内核对epoll的完全支持,网络上很多的文章和示例代码都提供了这样一个信息:使用epoll代替传统的poll能给网络服务应用带来性能上的提升。但大多文章里关于性能提升的原因解释的较少,这里我将试分析一下内核(2.6.21.1)代码中poll与epoll的工作原理,然后再通过一些测试数据来对比具体效果。 POLL: 先说poll,poll或select为大原创 2014-03-05 09:53:24 · 1543 阅读 · 0 评论 -
socket中的函数遇见EINTR的处理
这几天,写服务器代码过程当中,遇见EINRT信号的问题,我是借鉴 《unp 》,采用continue或者goto again循环解决的。但是感觉这个还是很有必要记录一下。网络上查找到的信息很多。下面是我查找到的和EINTR有关的介绍:1 http://blog.csdn.net/yanook/article/details/7226019 慢系统调用函数如何处理中断信号EINTR2转载 2015-09-10 11:41:34 · 646 阅读 · 0 评论 -
SNMP从入门到开发:进阶篇 2
管理信息库:MIB我们要扩展mib首先必须清楚mib是如何定义的,用的什么语言,有哪些约定,遵循哪些规则等等。这些基本东西掌握过后,我们就可以很轻松的来写自己的mib文件了。所谓管理信息库,或者MIB,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合,或者叫管理对象的集合,在RFC 1213 [McColghrie 和Rose 1991]中定义了MIB-II,即第二版的转载 2015-08-20 14:04:03 · 1941 阅读 · 0 评论 -
SNMP从入门到开发:基础篇 1
SNMP协议入门1、引言基于TCP/IP的网络管理包含3个组成部分:1) 一个管理信息库MIB(Management Information Base)。管理信息库包含所有代理进程的所有可被查询和修改的参数。RFC 1213[McCloghrie and Rose 1991]定义了第二版的MIB,叫做MIB-II。2) 关于MIB的一套公用的结构和表示符号。叫做管理信息结构SMI转载 2015-08-20 14:01:24 · 6400 阅读 · 2 评论 -
linux awk命令详解
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfr转载 2015-11-12 15:51:26 · 459 阅读 · 0 评论 -
linux下IPTABLES配置详解
如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinat转载 2016-02-23 17:56:54 · 705 阅读 · 0 评论 -
scala基础——控制结构和函数
这两周项目提测与上线,好久没写Scala的笔记了scala中几乎构造的所有语法结构都有值原创 2017-03-25 14:39:50 · 584 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
includeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeusing namespace std;define MAXLINE 5define OPEN_MAX 100define原创 2017-10-21 14:26:40 · 368 阅读 · 0 评论 -
NAT 详解
From:http://wwwcisco.blog.51cto.com/218089/39837CCNA学习笔记之NAT:http://sweetpotato.blog.51cto.com/533893/1392884网络地址转换NAT原理及应用:http://blog.csdn.net/xiaofei0859/article/details/6630467NAT技术基本原理与应用:h...转载 2018-10-11 14:36:27 · 692 阅读 · 0 评论 -
一致性hash算法
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的转载 2014-03-24 15:40:21 · 581 阅读 · 0 评论 -
OTL学习笔记--OTLHelper的实现
OTL简介OTL是Oracle, ODBC and DB2-CLI Template Library的缩写,目前版本是4.0,是基于C++模板机制的C++库。OTL 4.0 由一个C++模板框架(C++ template framework)和许多OTL适配器(OTL-adapters)组成。框架是OTL streams的泛型实现,OTL适配器是底层数据库API的包装类,作为对象的转载 2014-03-19 17:28:31 · 1600 阅读 · 0 评论 -
TCP/IP 协议簇下的各报文结构总结
一、TCP/IP 协议簇层次结构:二、具体的协议有:说明:1. ARP和RARP 用于物理地址和网络地址间的转换,应属于物理链路层。但由于ARP和RARP在以太网帧中都有各自的帧类型,所以画在以太网驱动程序和IP之间。2. ICMP和IGMP 通常用于查询网络管理,也就是被认为是IP层的组成部分。但它们都是被封装在IP报文中传输,在IP的协议类型字段有自己的字段,所以画转载 2013-05-24 17:09:19 · 960 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步、I/O模型
socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了转载 2013-05-30 15:29:28 · 742 阅读 · 0 评论 -
DNS解析过程详解
先说一下DNS的几个基本概念: 一. 根域就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。根域服务器我们知道有13台,但是这是错误的观点。根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可转载 2013-06-05 17:18:44 · 851 阅读 · 0 评论 -
snmp学习笔记——开篇
SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”。SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和转载 2013-08-27 20:55:35 · 878 阅读 · 0 评论 -
Windows中的管道技术
在以前学Linux的时候,碰到过管道的问题,认为管道不过是一个程序的输出作为一个程序的输入。就像这样: #cat file | grep "abc" 这里,cat file的output,直接当作grep "abc"这个命令的input,利用管道,可以改变程序默认的input与output. 今天无意中翻MSDN,看到windows当中也有Pipe的概念.以前转载 2013-09-16 15:28:09 · 1202 阅读 · 0 评论 -
快照技术原理
一、概念解释 像照相机一样,机器快门一闪,很快就把刚刚的人像停留在了相纸上。存储系统中的数据“快照”与我们生活中所说的“照片”非常相似,所不同的是,照片的对象不是人,而是数据。如同照片留住了我们过去的摸样和岁月,快照把数据在某一时刻的映像也保留了下来。因此我们可以根据快照查找数据在过去某一时刻的映像,常常用来作为增强数据备份系统的一种技术,它可以很大的缩短RTO和RPO两个指标。转载 2013-09-17 15:18:23 · 17671 阅读 · 1 评论 -
TCP中RTT的测量和RTO的计算
内核版本:3.2.12本文主要剖析:RTT的测量、RTO的计算作者:zhangskd @ csdn 概述 RTO(Retransmission TimeOut)即重传超时时间。TCP超时与重传中一个很最重要的部分是对一个给定连接的往返时间(RTT)的测量。由于网络流量的变化,这个时间会相应地发生改变,TCP需要跟踪这些变化并动态调整超时时间RTO。R转载 2013-11-10 20:58:26 · 2098 阅读 · 0 评论 -
tcp的option字段
找到了RFC文档中关于tcp报头中option字段的内容,好好阅读一下,有时间再给翻成中文的。 TCP选项(RFC793和更新的RFC1323)– 这里充满了各种组合的可能性– 应答方式“Query-Reply”,可以把多个选项放到一个包中– 有些高级选项在新的协议栈实现中加入TCP选项 每个选项的开始是1字节的kind字段,说明选项的类型。Kind=转载 2013-11-10 22:01:46 · 18335 阅读 · 0 评论 -
libev入门
引言实现应用的捷径是充分利用开放源代码和开放标准等资源。为了实现视频服务器,研究了开源视频服务器DarwinStreamingServer,Reactor并发编程设计模式,同时还评估了Boost.Asio、ACE、libevent以及 libev等网络编程相关的库。得出的结论是基于DarwinStreamingServer的设计思想,采用Reactor设计模式实现一个更加高效并可扩展的视频转载 2013-11-26 13:55:27 · 2340 阅读 · 0 评论 -
libev库的用法
libev是一个高性能的事件循环库,比libevent库的性能要好。Nodejs就是采用它作为底层库。libev的官方文档在 这里 ,文档比较长。本文结合里面的例子对它的用法做些简单的总结。Contents例子事件循环观察器ev_ioev_timerev_periodicev_signalev_childev_stat其他功能Python绑定转载 2013-11-26 13:56:57 · 12626 阅读 · 0 评论 -
Libevent参考手册:evbuffer:缓冲IO实用功能
libevent的evbuffer实现了为向后面添加数据和从前面移除数据而优化的字节队列。evbuffer用于处理缓冲网络IO的“缓冲”部分。它不提供调度IO或者当IO就绪时触发IO的功能:这是bufferevent的工作。除非特别说明,本章描述的函数都在event2/buffer.h中声明。1 创建和释放evbuffer接口这两个函数的功能很简明:转载 2013-11-26 13:53:41 · 7355 阅读 · 0 评论 -
RTMP/RTP/RTSP/RTCP的区别
用一句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没有看到相关的部分。而在私有RTSP的代码中,有关控制、同步等,是在RTP Header中做扩展定义实现的。另外,RFC3550可以看作是RFC1889的升级文档,只看RFC3550即转载 2013-11-14 10:27:36 · 1409 阅读 · 0 评论 -
浅谈时间函数gettimeofday的成本
我们在程序中会频繁地取当前时间,例如处理一个http请求时,两次调用gettimeofday取差值计算出处理该请求消耗了多少秒。这样的调用无处不在,所以我们有必要详细了解下,gettimeofday这个函数做了些什么?内核1ms一次的时钟中断处理真的可以支持tv_usec字段达到微秒精度吗?它的调用成本在i386/x86_64体系架构上代价一样吗?如果在系统繁忙时,频繁的调用它有问题吗?转载 2013-12-12 11:40:51 · 1003 阅读 · 0 评论 -
TCP数据包重组实现分析
参照TCP/IP详解第二卷24~29章,详细论述了TCP协议的实现,大概总结一下TCP如何向应用层保证数据包的正确性、可靠性,即TCP如何实现对数据报文的重组。首先要设计两个报文队列,一个存放正常来到的报文,一个存放失序到来的报文。 比如正常报文队列最后一个报文数据如下: 报文数据段第一字节的序号 数据报长度转载 2013-12-20 14:16:24 · 2801 阅读 · 0 评论 -
linux中select()函数分析
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2014-03-04 16:52:25 · 871 阅读 · 0 评论 -
Socket心跳包机制
心跳包的发送,通常有两种技术方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线;同样,如果客户端在一定时间内没 有收到服务器的心跳包,则认为连接不可用。方法转载 2014-03-14 16:04:06 · 1530 阅读 · 0 评论 -
GDB多线程调试基本命令和实现简介以及一个常见问题的解决
先介绍一下GDB多线程调试的基本命令。info threads显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。前面有*的是当前调试的线程。thread ID切换当前调试的线程为指定ID的线程。thread apply ID1 ID2 command让一个或者多个线程执行GDB命令command。threa转载 2014-03-17 16:53:33 · 706 阅读 · 0 评论 -
IP协议号和传输端口号
网络层-数据包的包格式里面有个很重要的字段叫做协议号。比如在传输层如果是tcp连接,那么在网络层ip包里面的协议号就将会有个值是6,如果是udp的话那个值就是17-----传输层传输层--通过接口关联(端口的字段叫做端口)---应用层 协议号是存在于IP数据报的首部的20字节的固定部分,占有8bit.该字段是指出此数据报所携带的是数据是使用何种协议,以便目的主机的IP层知道将转载 2012-07-05 16:09:35 · 15089 阅读 · 0 评论