结构化与非结构化网络 非结构化的P2P网络是指网络节点之间不存在组织关系,节点之间完全是对等的,比如第一代P2P网络Napster。 结构化的P2P网络与非结构化恰好相反,我们认为网络在逻辑上存在一个人为设计的结构,比如Chord假定网络是一个环,Kadelima则假定为一颗二叉树。有了这些逻辑结构,就给我们资源查找引入了更多的算法和思路。 引言 我们在 计算机网络–详解P2P对等网络(一)—BitTorrent协议 这一篇博客中讲述了BT下载的过程:在对等用户拿到种子文件的时候,首先会联系tracker服务器,然后加入用户集群,并在用户集群中寻找自己所需的内容,最后与拥有内容的对等用户进行联系。 从BT下载的过程中引出本节所要讨论的问题:如何高效的从用户集群中找出哪些对等用户拥有你正在寻求的具体内容? 在历史中有三种比较典型的模型来解决这个问题: Napster:使用一个中心服务器接收所有的查询,服务器告知去哪下载其所需要的数据。存在的问题是中心服务器单点失效导致整个网络瘫痪。 继续阅读 >>


董恒毅 18/06/28 21:24:59
IP地址的基础知识 在TCP/IP通信中,IP地址用于识别主机和路由器。 1.IP地址的定义 IPv4地址为32位,IPv6地址为128位。(以下以IPv4为例) 将32位的IP地址分为4组,每组8位,每组间用“.”隔开,再将每组数转为十进制数。例如: 127.0.0.1 通常一块网卡只设置一个IP地址,其实也可以配置多个IP地址。一个路由器通常配置两个以上的网卡,因此可以设置两个以上的IP地址。 2.IP地址的组成 IP地址由网络标识和主机标识两部分组成。 不同段的网络标识不同;相同段内不同主机的网络标识相同,主机标识不同。从而保证了IP地址的唯一性。 对于IP地址唯一性的理解: Tnternet分为公网地址与私网地址。IP地址的唯一性是对于公网而言的,在公网中,只有IP地址是唯一的才能正确发送数据,否则会造成混乱。那我们经常看到的路由器IP为192.168.0.1或192.168.1.1,那岂不是我们的IP有可能是相同的?这是因为我们使用的路由器在为自己分配IP时就成了 继续阅读 >>


王良 18/06/23 23:26:52
1.MAC地址 MAC地址长48字节。在使用网卡的情况下,一般会将MAC地址烧入到ROM中,任何一个网卡的MAC地址都是唯一的。例如 00:10:5A:70:33:61 MAC地址的3~24位表示厂商识别码,每个NIC厂商都有特定唯一的识别数字。25~48位是厂商内部为识别每个网卡而用。因此,保证MAC地址的唯一性。 2.共享介质网络 从通信介质的使用方法上看,网络可分为共享介质型和非共享介质型。 共享介质型网络指多个设备共享一个通信介质的一种网络。设备之间使用同一个载波信道进行发送和接收。采用半双工通信方式,并对介质进行访问控制。 共享介质型网络中有两种介质访问控制方式:争用方式和令牌传递方式。 - 争用方式 指争夺数据传输的权力。通常令每个站采用先到先得的方式占用信道发送数据,若多个站同事发送帧,会导致冲突,造成网络拥堵与性能下降。 有一部分以太网使用CSMA/CD方式,要求每个站提前检查冲突,一旦发生冲突,今早释放信道。工作原理: - 如果载波信道上没有数据流动,则都 继续阅读 >>


王良 18/06/21 14:13:04
注:本篇文章内容借鉴自:浅入浅出BitTorrent协议,其中加入了博主的部分原创,感谢,侵删~ 对等网络的概念 以下定义主要摘抄自维基百科与中科院计算技术研究所: 对等式网络(peer-to-peer,简称P2P),又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系。它的作用在于,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体,减低以往网路传输中的节点,以降低资料遗失的风险。与有中心服务器的中央网络系统不同,对等网络中的每个用户端既是资源(服务和内容)提供者(Server),又是资源获取者(Client),任何一个节点无法直接找到其他节点,必须依靠其用户群进行信息交流。 对等网络的模型 P2P网络的简易模型图如下: 如图,我们可以总结出P2P网络的一些特征: 非中心化:P2P是全分布式系统,网络中的资源和服务 继续阅读 >>


董恒毅 18/06/21 11:15:10
1.数据包首部 每个分层中都会对所发送的数据附加一个首部,其中包含了该层必要的信息,如发送端地址、接收端地址以及协议等相关信息。 2.发送数据包 1)应用程序处理 进行编码处理(相当于表示层功能),管理何时建立通信何时发送数据等功能(相当于会话层功能)。建立连接后将数据发送给下一层的TCP,再做实际的转发处理。 2)TCP模块的处理 TCP根据应用的提示,负责建立连接、发送数据以及断开连接。提供可靠传输。 在数据前端附加一个TCP首部,包括源端口号、目标端口号(用以识别发送主机跟接收主机上的应用)、序号以及校验和(判断数据是否被损坏)。再将数据发送给IP。 3)IP模块的处理 IP在TCP传过来的数据前附加IP首部,包括接收端IP、发送端IP、上层协议等信息。 IP包生成后,参考路由控制表决定接收此IP包的路由或主机。随后将数据发送给连接这些路由器或主机网络接口驱动程序,以实现真正的数据发送。 如果不知道接收端MAC地址,则通过ARP查找。 4)网络接口( 继续阅读 >>


王良 18/06/19 21:58:12
1. 计算机网络分类(按规模) 局域网:覆盖范围10公里以下,一般以学校、公司等为单位组建 广域网:覆盖范围几十公里到几万公里,横跨国家、大洲,形成全球性计算机网络 城域网:位于局域网与广域网之间,覆盖范围几十公里 2. 协议分层 1)OSI参考模型 该模型分为7层,只是对各层的作用做了一系列粗略的界定,并没有对协议和接口进行详细的定义。 层号 分层名称 功能 7 应用层 为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输(FTP)、电子邮件(SMPT)、远程登陆(Telnet)等协议 6 表示层 主要负责数据格式的转换(设备固有数据格式->网络标准传输格式)。将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。 5 会话层 建立和断开通信连接 4 传输层 管理两个节点间的数据传输,确保数据被可靠的传送到目标地址 3 网络层 网络 继续阅读 >>


王良 18/06/18 21:27:11
注:本文内容摘抄自CDN详解 — 不挑食的程序员,博主在其基础上进行了少量修改并加入了部分原创,感谢,侵删~ 之前我们已经学习过缓存机制以及Web代理,但对于大型网站的构建,这些还远远不够。要想真正的构建一个流行的网站,内容分发网络(Content Delivery Network)简称CDN,是一项不可或缺的技术。 什么是CDN? 以下内容摘自维基百科: 内容分发网络(CDN)是指一种通过互联网互相连接的计算机网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户。 如果对整个CDN系统做一个简单的描述: CDN系统主要由4大部分组成,每部分都由集群所构成。这4部分分别由CDN专属DNS服务器、全局负载均衡设备、区域负载均衡设备、CDN缓存服务器(边缘节点)构成。除过CDN专属DNS服务器,其他3部分集群都有源服务器上对应资源的全部或部分副本。CDN系统通过各部分的负载均衡算法,最终指示客户端使用附近最优的边缘节点中的一台缓存 继续阅读 >>


董恒毅 18/06/18 20:35:04
版权声明:本文出自“丁胖胖的BLOG”,请务必保留此出处:http://z00w00.blog.51cto.com/515114/1031287。 引言 我们在之前的Web缓存机制一文中提到,缓存服务器就可以作为一种代理服务器。 代理分为正向代理、反向代理、透明代理等等。今天我们着重介绍这三种代理方式。 什么是代理?什么是代理服务器? 在正式开始前,我们先对标题中的概念进行定义,以下摘自维基百科: 代理(英语:Proxy):也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。 代理服务器(英文:Proxy Server):提供代理服务的计算机系统或其它类型的网络终端。 正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术 继续阅读 >>


董恒毅 18/06/12 21:36:18
序言 对于大多数人来说,我想,接触的第一个电子邮箱应该都是QQ邮箱。我也不例外,从第一次接触QQ邮箱开始,就对这种有别于传统邮箱的软件产生了一些兴趣,却由于种种原因一直都没有去探究它。前段时间刚好在找实习,期间凸显了电子邮箱的重要性,刚好最近也有了一些空闲的时间,遂在了解了电子邮件的基本工作原理之后,将其整理为这篇博客。 使用电子邮件的好处 很多人还不清楚使用电子邮件的好处,我贴一下。内容节选自:为什么要使用Email及如何用好Email 写Email跟用笔写信是一样的,你可以经过深思熟虑,将语言精心组织之后再写下来,也就是说,在工作中使用它更加正式,而且可以留下记录作为证据。长期使用Email会锻炼你的写作能力和语言组织能力; 如果我们都习惯使用“回复”或“全部回复”,通过一个邮件就可以看到关于一个项目全部的沟通信息; 上级经常不知道我们打电话或者发IM消息给客户到底在谈些什么,而发Email时“抄送”给他,通常情况下他都会很乐意接收,当然你也可以“抄送”或者“密送”给其他你希望看到 继续阅读 >>


董恒毅 18/06/08 14:34:36
新建一个专门用于 EventLoop 的线程 实现:启动一个线程,在其中运行 EventLoop::loop() 功能:运行Evenloop 知识点 条件变量使用:当多个线程对同一个变量进行操作时使用条件变量对其进行保护,条件变量同互斥锁一同起作用。 代码及分析: EventLoopThread.h // Copyright 2010, Shuo Chen. All rights reserved. // http://code.google.com/p/muduo/ // // Use of this source code is governed by a BSD-style license // that can be found in the License file. // Author: Shuo Chen (chenshuo at chenshuo dot com) #include <muduo/net/EventLoop 继续阅读 >>


楚东方 18/03/11 21:35:14