NetWorking
文章平均质量分 68
「已注销」
程序员
展开
-
epoll 或者 kqueue 的原理是什么?
网卡设备对应一个中断号, 当网卡收到网络端的消息的时候会向CPU发起中断请求, 然后CPU处理该请求. 通过驱动程序 进而操作系统得到通知, 系统然后通知epoll, epoll通知用户代码. 大致流程是这样.-----------在内核的最底层是中断 类似系统回调的机制 不是轮询, 在这个基础上再去看 下面首先我们来定义流的概念,一个流可以是文件,socket,p原创 2015-07-27 15:02:47 · 611 阅读 · 0 评论 -
AOP面向切面编程(个人理解)
面向切面编程的目标就是分离关注点。什么是关注点呢,就是你要做的事,就是关注点。假如你是个公子哥,没啥人生目标,天天就是衣来伸手,饭来张口,整天只知道玩一件事!那么,每天你一睁眼,就光想着吃完饭就去玩(你必须要做的事),但是在玩之前,你还需要穿衣服、穿鞋子、叠好被子、做饭等等等等事情,这些事情就是你的关注点,但是你只想吃饭然后玩,那么怎么办呢?这些事情通通交给别人去干。在你走到饭桌之前,有一个专门的原创 2014-12-14 01:30:03 · 645 阅读 · 0 评论 -
协议森林07 傀儡 (UDP协议)
我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。到了网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入到传输层(transport layer),协议的种类又开始繁多起来(比如TCP、UDP、SCTP等)。这就好像下面的大树,根部(连接层)分叉很多,然后统一到一个树干(网络层),到了树冠(传输层)部分又开始开始分叉,转载 2015-01-08 09:19:19 · 431 阅读 · 0 评论 -
协议森林09 爱的传声筒 (TCP连接)
在TCP协议与"流"通信中,我们概念性的讲解了TCP通信的方式。可以看到,TCP通信最重要的特征是:有序(ordering)和可靠(reliable)。有序是通过将文本流分段并编号实现的。可靠是通过ACK回复和重复发送(retransmission)实现的。这一篇文章将引入TCP连接(connection)的概念。 TCP连接网络层在逻辑上提供了端口的概念。一个IP地址可以转载 2015-01-08 09:20:17 · 370 阅读 · 0 评论 -
协议森林15 先生,要点单吗? (HTTP协议概览)
我在TCP流通信中说明了,TCP协议实现了数据流的传输。然而,人们更加习惯以文件为单位传输资源,比如文本文件,图像文件,超文本文档(hypertext document)。*** 超文本文档中包含有超链接,指向其他的资源。超文本文档是万维网(World Wide Web,即www)的基础。 HTTP协议解决文件传输的问题。HTTP是应用层协议,主要建立在TCP协议之上(转载 2015-01-08 09:23:19 · 457 阅读 · 0 评论 -
UNIX网络编程书中源代码测试环境搭建(Centos/Mac os 10.10)
环境 Centos6.5 64位操作系统 1 :在你的工作目录下创建一个目录UnpStudy,然后进入该目录分别创建Inc,Unp1及Unp2目录,我这三个目录的作用分别是:Inc包含书中例子用到的头文件unp.h和config.h,而Unp1和Unp2目录分别用于存放书中卷1和卷2例子的源代码,每章节的例子分别放在ChapterX(X指代章节)中。原创 2015-05-26 11:14:50 · 2455 阅读 · 1 评论 -
IO 多路复用之select(理解)
IO 多路复用之select总结1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器原创 2015-05-27 13:13:09 · 469 阅读 · 0 评论 -
select/poll/epoll之间的区别总结(个人理解)
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝原创 2015-05-27 12:59:25 · 403 阅读 · 0 评论 -
协议森林14 逆袭 (CIDR与NAT)
IPv4由于最初的设计原因,长度只有32位,所以只提供了大约40亿个地址。这造成了IPv4地址的耗尽危机。随后,IPv6被设计出来,并可以提供足够多的IP地址。但是IPv4与IPv6并不兼容,IPv4向IPv6的迁移并不容易。一些技术,比如说这里要说的CIDR和NAT,相继推广。这些技术可以缓解IPv4的稀缺状态,成就了IPv4一时的逆袭。 CIDRCIDR(Classle转载 2015-01-08 09:22:30 · 470 阅读 · 0 评论 -
协议森林13 9527 (DNS协议)
在周星驰的电影《唐伯虎点秋香》中,周星驰饰演的主角一进入华府,就被强制增加了一个代号9527。从此,华府的人开始称呼主角为9527,而不是他的姓名。域名(domain name)是IP地址的代号。域名通常是由字符构成的。对于人类来说,字符构成的域名,比如www.yahoo.com,要比纯粹数字构成的IP地址(106.10.170.118)容易记忆。域名解析系统(DNS, domai转载 2015-01-08 09:22:01 · 451 阅读 · 0 评论 -
协议森林11 涅槃 (TCP重新发送)
TCP协议是一个可靠的协议。它通过重新发送(retransmission)来实现TCP片段传输的可靠性。简单的说,TCP会不断重复发送TCP片段,直到片段被正确接收。 TCP片段丢失 TCP头部的checksum接收方(receiver)可以通过校验TCP片段头部中checksum区域来检验TCP片段是否出错。我们已经接触过了IP协议详解的checksum算转载 2015-01-08 09:21:27 · 458 阅读 · 0 评论 -
协议森林12 天下为公 (TCP堵塞控制)
在TCP协议中,我们使用连接记录TCP两端的状态,使用编号和分段实现了TCP传输的有序,使用advertised window来实现了发送方和接收方处理能力的匹配,并使用重复发送来实现TCP传输的可靠性。我们只需要将TCP片段包装成IP包,扔到网络中就可以了。TCP协议的相关模块会帮我们处理各种可能出现的问题(比如排序,比如TCP片段丢失等等)。最初的TCP协议就是由上述的几大块构成的。转载 2015-01-08 09:22:00 · 435 阅读 · 0 评论 -
协议森林08 不放弃 (TCP协议与流通信)
TCP(Transportation Control Protocol)协议与IP协议是一同产生的。事实上,两者最初是一个协议,后来才被分拆成网络层的IP和传输层的TCP。我们已经在UDP协议中介绍过,UDP协议是IP协议在传输层的“傀儡”,用来实现数据包形式的通信。而TCP协议则实现了“流”形式的通信。TCP的内容非常丰富。我不能在一篇文章中将TCP讲完。这一篇主要介绍TCP协议的下面几转载 2015-01-08 09:19:47 · 681 阅读 · 0 评论 -
协议森林10 魔鬼细节 (TCP滑窗管理)
在TCP协议与"流"通信中,我们建立了滑窗(sliding window)的基本概念。通过滑窗与ACK的配合,我们一方面实现了TCP传输的可靠性,另一方面也一定程度上提高了效率。其工作方式如下面的视频所示:如果视频加载有问题,可点下面链接: http://v.youku.com/v_show/id_XNDg1NDUyMDUy.html然而,之前的解释只是概念性的。TCP转载 2015-01-08 09:20:47 · 569 阅读 · 0 评论 -
协议森林06 瑞士军刀 (ICMP协议)
到现在为止,我们讲解了网络层中最重要的IP协议(参考协议森林)。IP协议的一个重要补充是是ICMP协议。 ICMP协议ICMP(Internet Control Message Protocol)是介于网络层和传输层的协议。它的主要功能是传输网络诊断信息。 ICMP传输的信息可以分为两类,一类是错误(error)信息,这一类信息可转载 2015-01-08 09:18:24 · 447 阅读 · 0 评论 -
协议森林05 (IP协议详解)
在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学。 IPv4与IPv6头部的对比我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。头部是为了实现IP通信必须的附加信息,数据是IP通信所要传送的信息。 黄色区域 (同名区域)我们看到,三个黄色区域跨越了IPv转载 2015-01-08 09:18:21 · 533 阅读 · 0 评论 -
协议森林04 地址耗尽危机 (IPv4与IPv6地址)
IP地址是IP协议的重要组成部分,它可以识别接入互联网中的任意一台设备。在IP接力中,我们已经看到,IP包的头部写有出发地和目的地的IP地址。IP包上携带的IP地址和路由器相配合,最终允许IP包从互联网的一台电脑传送到另一台。在IP接力中,我们是以IPv4为例说明IP包的格式的。IPv4和IPv6是先后出现的两个IP协议版本。IPv4的地址就是一个32位的0/1序列,比如11000000转载 2015-01-08 09:17:46 · 514 阅读 · 0 评论 -
协议森林03 IP
网络层(networklayer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息。操作系统也会提供该层的socket,从而允许用户直接操作IP包。IP数据包是符合IP协议的信息(也就是0/1序列),我们后面简称IP数据包为IP包。I转载 2014-12-14 01:30:31 · 503 阅读 · 0 评论 -
协议森林02 广播
“小喇叭开始广播啦”,如果你知道这个,你一定是老一辈的人。“小喇叭”是五十年代到八十年代的儿童广播节目。在节目一开始,都会有一段这样的播音:“小朋友,小喇叭开始广播了!”听到这里,收音机前的小朋友就兴奋起来,准备好听节目了:这一期的内容是以太网(Ethernet)协议与WiFi。 我们在邮差与邮局中说到,以太网和WiFi是连接层的两种协议。在连接层,信息以帧(frame)为单位传输。帧像转载 2014-12-14 01:30:29 · 621 阅读 · 0 评论 -
协议森林01 邮差与邮局(protocol)
出处:http://www.cnblogs.com/vamei 信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(MorseCode),使用短信号和长信号的组合,来代表不同的英文字母。比如SOS(***---***,转载 2014-12-14 01:30:26 · 769 阅读 · 0 评论