当前位置: 首页 > news >正文

对网站建设建议临夏州建设厅官方网站

对网站建设建议,临夏州建设厅官方网站,网站做优化得话从哪里优化,姓名查询一、什么是计算机网络、计算机协议#xff1f; 计算机网络就是由计算机作为收发端#xff0c;不同计算机相互连接的网络#xff0c;包括互联网#xff08;Internet#xff09;#xff0c;公司或者家用网络#xff08;intranet#xff09;等等#xff1b;其中Internet…一、什么是计算机网络、计算机协议 计算机网络就是由计算机作为收发端不同计算机相互连接的网络包括互联网Internet公司或者家用网络intranet等等其中Internet是最大的网络他是把所用网络串联起来的网络是网络之网络。如下图 不同的设备终端被称为host通信链路包括无线电、路由器、光纤等等。图中圆柱子体是交换网络由路由器和中转器构成负责控制信号的发送路径。 计算机协议 计算机协议就是规定了网络实体之间所交换的消息的格式、意义和顺序以及针对收到信息所发生的事件采取的动作。是对网络中数据交换而建立的规则标准或路径。 计算机协议一般以RFCRequest file comment文档的形式保存。 计算机协议三要素 语法规定数据或命令传递的格式和规则。 语意规定当终端接收到数据后应该做出什么反应 时序保证信息收发的有序性不会产生传输冲突。 二、计算机网络结构概览 计算机结构三部分 网络边缘主机和一些网络应用 接入网络、物理介质有线或无线通信的链路 网络核心核心网络互相连接的路由器或其他分组转发设备、网络之网络 网络边缘 指主机一些特殊的主机运行着一些网络应用程序的服务。 客户/服务器client/server应用模型 客户发送请求接收服务器响应。一般都由客户端主动发送请求服务端被动接收请求例如Web应用、文件传输FTP应用等等。 对等peer-peerP2P应用模型 由任意两台主机直接互联进行信息传递通信在实体之间直接进行这种应用如Gnutella、BT、Skype、QQ等。 接入网络 住宅接入网络、机构接入网络、移动接入网络 用户最关心的是网络的带宽以及网络的接入方式是与别人共享接入还是独占接入。 数字用户线路接入网络类型一 利用已有的电话线连接中心局的DSLAM通过信号的频率不同来确定该发往何种网络。 这种方式的上行传输速率2.4Mbps(典型速率1Mbps);下行速率24Mbps(典型速率10Mbps)所谓上行就是用户往网络中发送的传输速率下行就是从网络中下载数据的传输速率。 FDM频分多路复用技术 50kHz - 1MHz用于下行 4kHz - 50kHz用于上行 0kHz -4kHz用于传统电话。 混合光纤同轴电缆HFC方式接入网络类型二 此种方式采用混合光纤同轴电缆作为传输介质同样是非对称的上行速率2Mbps下行速率30Mbps。 不同于DSL的独占式cable modem方式是共享接入所以有时同样是2Mbps的带宽cable modem方式上行会更慢因为接入设备过多带宽平均之后就小了 典型家庭网络的接入 后面会详细学习 企业/机构接入网络以太网 主要用于高校公司等通过以太网交换机直接接入ISP互联网通常传输速率为10Mpbs、100Mbps、1Gbps、10Gbps 无线接入 无线局域网LANs在同一建筑物内通过共享的无线接入网络实现端系统电脑、手机等和路由器的连接。 广域无线接入通过电信运营商蜂窝网该方式覆盖范围广一个基站覆盖范围为几十公里带框一般为1、10、100Mbps例子是移动互联网的普及。 网络核心 网络核心的主要功能路由和转发。 网络核心解决的问题数据如何通过网络核心从源主机到达目的主机。 路由路由是指路由器遵循某种路由协议遵循协议中的算法得出来路由表其记录了输入数据分组对应的输出链路确定输出链路的过程就叫做路由。 转发路由完毕后将输入的分组交换到正确的端口输出即为转发。 网络之网络Internet 端系统通过接入ISPaccess ISPs接入到Internet它将各种网络笼络形成一个巨大的复杂结构。因其复杂性无法给出固定的细化结构但可以宏观概览。 构建方案一不可行 构建方案二运用路由器 可以用一个全球或国家之间的大的ISP网络来中转接入此ISP网络中的各种数据信号。 这些大的ISP之间有两种连接方式直接通过ISP种某台路由器互相连接通过IXP高速网络线路实现ISP之间的连接 黄色部分是一些区域性的ISP或者运营上ISP接如最大ISP的过程。 实际网络结构中会存在多级ISP可能会有一级ISP二级ISP....最后是access ISPs接入ISP 一些网络内容提供商也会构建自己的网络保证就近为用户提供内容如谷歌 为什么要进行数据交换 如果没有数据交换设备和设备之间直接连接那么假设设备有n个就需要n*(n-1)/2条数据线路线路过于繁杂实现难度大。 我们在设备之间加上一个交换设备通过它将每个设备发送的数据转发到指定设备就使线路简化。 但同样上面这种方式如果主机相互之间相隔较远仍无法合理的实现数据转发所以我们可以用多个转换设备构成一个交换网络将相距较远的计算机通过交换设备连接到一起从而实现数据远距离传递。 交换的几种类型 电路交换、报文交换、分组交换 一电路交换 典型电话网络 当两部电话需要连通首先拨号交换机建立A-B的线路然后通话开始通话完毕电话挂断电路释放。 在整个过程对线路的占用是独占方式当两方通话过程中第三方无法占用前两者的线路传输数据。 所以电话网络可以概括为以下三个过程 建立连接、数据交换、释放连接 多路复用技术 在两对通讯设备的连接链路中我们发现圈圈的地方都是共用的链路虽然电话的连接在逻辑上是独占的但是数据在传输的过程中还是会有链路在共同使用。 因为一对占用方往往无法消耗完链路性能多数据传输共享可以让链路使用最大化。 多路复用技术把链路/网络资源划分为“资源片”资源片被分配到各个call用户端因为各呼叫call是独占分配到的资源片进行通信所以资源片有可能会“闲置”。 多路复用Multiplexing的分类 频分多路复用技术frequency division multiplexing   FDM) 每个用户指定用一段频率发送数据不同用户发送数据所用频率不会重叠所以可以共享链路所谓频分多路复用 时分多路复用技术time division multiplexing TDM) 该技术把时间分成等份的多个时间片段叫做帧每个帧由多个时间隙每个用户占用帧中一个时间隙只有自己时间隙到时才能够发送数据。所以同一用户所用时间隙是周期性出现的。 波分多路复用技术wavelength division multiplexing  WDM) 是一种用光纤作为传递介质光作为传递媒介的数据传输方式的特殊频分复用技术依靠不同波长来区分不同用户不同用户可以共享使用链路。 码分多路复用技术code division multiplexing  CDM) 该技术多应用在无线链路共享如蜂窝网卫星通信等 不同于上面的技术将时间分配和频率/波长分类该技术给每个用户分配一个唯一的m比特bit的码片序列chipping sequence其中“0”用“-1”表示“1”用“1”表示。 如S站的码片序列为-1 -1 -1 1 1 -1 1 1要S站要发送的数据必须用这个码片序列编码后发送。 编码后数据码片序列 * 原始数据。如要发送的数据是1则编码后为-1 -1 -1 1 1 -1 1 1如果发送的数据是-1则编码后的数据是1 1 1 -1 -1 1 -1 -1每位取反即可。 我们可以看到如果我们要发送1则发送本站S的m bit的码片序列如果我们要发送0则发送本站S的m bit的码片序列的反码。 在下面我们会用到两个概念 规格化内积两个向量每位相乘再相加的合/位数例如我们两个码片序列-1 1 -1 1-1 -1 1 1的规格化内积就是[-1*-1 1*-1-1*11*1]   /  4 0; 正交指两个向量的规格化内积为0的情况即两个向量相互垂直 我们用Si或Sj来表示某个站的码片序列m表示码片序列的位数。用d0来表示要发送的数据 码分多路技术满足下面的关系 不同站点的的码片序列的规格化数为1相同站点的码片序列的规格化数为0 不同站点的码片序列和码片序列反码的规格化内积为-1相同站点的码片序列和码片序列的反码规格化数为0 单对站两个用户互发消息发送信息和接收信息的过程 发送端在两个时隙发送了两个数据分别是1和-1经过编码Pdi * Si后发送到接收端接收端接收数据di Si * P / m Si * Si * di/m。这时关键就是看Si*Si的值如果接收端用要接收端的码片序列获取di若Si对应则Si * Si  /  m 为1则结果为di若不是要接收端的数据则Si * Si / m为0则结果为0不能收到数据。 多对站多个用户互发消息发送信息和接收信息的过程 如上图多组信息同时传递因为没有时隙分配必然会产生数据叠加如时隙0中两个用户发送的数据编码后在传输的过程中就叠加为了2 0 2 0 2 -2。 那么在接收的过程中如何确定叠加后的数据是否含有自己需要接收的数据 可见在解码阶段如果叠加后数据含有要接收的数据则内积为1能够得出正确结果。如果是-1一样能得出结果。如果没有要接收的数据就为0数据被过滤。 确定含有之后用要接收端的码片序列进行计算即可得到自己需要的数据。                                                       二报文交换、分组交换 报文交换 这种方式发送的是一个信息的整体比如说一个文件或者一张图片报文。 分组交换 把报文分成一个一个小的部分每个部分加上头信息包括在报文中的顺序等信息这个过程需要拆分和重组需要源主机和目的主机产生性能消耗很小。 特点 因为这种方式统计多路复用是对小块对象所以可以共享占用目的主机会识别是否是自己需要的数据。这样就实现了数据共享增加了链路的利用率。如下图 储存-转发 报文交换和分组交换都用到了分组交换的方式不同的是报文交换是一次性就将报文全部发送到目标主机分组交换是将报文分成几组每组一个个转发。储存是对数据的分组和保存转发是数据的转发过程。 报文交换和分组交换哪个方式好 分组交换的传输时延指一个分组从第一个bit开始到最后一个bit传输结束所用的的时间假设我们每组为L 个bit链路每秒能够传输R 个bit则传输时延 L / R。 报文交换的传输时延如果报文大小为M链路每秒能够传输的数据为R个bit则报文的传输时延 M / R。 为什么叫传输时延因为目的主机在接收到第一组数据时才算接到数据在分组发送完毕前即还收到数据故为传输时延。 我们假设报文大小为M7.5Mbits每个分组大小为1500bitsM5000L一共5000组链路带宽为R1.5Mbits从而计算报文交换和分组交换最终报文交付所需要的时间。 报文交换方式 每经过五秒7.5/1.55M向右移动一个位置第一个五秒M到达第一个路由器-第二个五秒M到达第二个路由器-第三个五秒M到达目标主机。故一共需要15秒时间。 同样路由器要保证容量7.5报文容量这样报文越大路由器容量也必须提高。 分组交换方式 第1个1ms1500bits/1.5Mbits), 第一个分组到达第一个路由器。 第2个1ms第一个分组到达第二个路由器同时第二个分组到达第一个路由器。 第3个1ms,第一个分组到达第目标主机第二个分组到达第二个路由器。 第4个1ms第二个分组到达目标主机第四个分组到达第一个路由器第三个分组到达第二个路由器。 ....(从3ms开始每过1ms就会有一组到达目标主机一共有5000组 第5002个1ms最后一组到达目标主机。一共用时5002ms5.002秒。 对比可知5.002s(分组转发方式  15s 报文转发方式再加上分组转发方式路由器需要的容量也很小仅一个分组容量即可。 结论因为分组转发方式具有的优越性现在被广泛采用。 分组交换方式交付时间通用公式 所谓跳步数即指源主机到目标主机经过的段数。 分组交换方式与电路交换方式哪个好 电路交换方式的特点独占、频段分配分组交换的特点共享、无需分配 例如多个用户通过一个路由器接入互联网路由器输出端链路为1Mb/s。 用户在使用网络过程中并不是全部时间都是用网络进行数据交换用于网络数据交换的时间仅占总上网时间的10%设每次数据传输时需要的带宽为100kb/s占总带宽的10%。 电路交换方式因为独占方式所以有用户使用时其他用户就不能使用所以最多允许10个用户同时接入。 分组交换方式对于35个用户最大同时有10个人同时使用网络传输数据的可能性0.0004。 结论分组交换允许更多人同时使用网络能更充分利用带宽资源。 那分组交换是完美的吗 优点特别适合突发数据传输网络计算机网络等突发就是突然有很多请求和数据传入。 缺点因为无需共享无需确定连接当同时传输数据用户过多时就容易造成数据阻塞产生分组延迟和数据丢失的可能。 其无法提供电路级的性能保障像打视频电话时的卡顿等等都是数据阻塞等原因造成的电路交换方式就能够保证少出现这类问题。 三、计算机性能 一计算机网络性能指标  A、速率数据传输速率、比特率 指单位时间内s链路能够传输数据的量bit经常表示的单位有b/s    kb/s     Mb/s   Gb/s。 速率往往都是指额定速率或标称速率指的是往往无法达到最大只能无限接近每秒传输数据往往没有那么大。 B、带宽bandwidth 本义指信号具有的频带宽度最高的频率Hz和最低的频率Hz的差值。 计算机网络中的“带宽”通常是数字信道所能传送的“最高数据率”单位是b/sbps等。 二分组交换为什么会发生丢包和时延 路由器都会有一段缓存用来存储从输入端传过来的分组当输出端的链路产生数据拥堵时传入分组就会继续存储在路由器内部当存入分组超过路由器最大缓存就会产生丢包。 三四种延迟网络传输过程中产生的延迟 A、结点处理延迟nodal processing delay) 路由器在收到分组之后确定包要输出的链路差错检测所需要的时间这种延迟时间很短常常不到毫秒级。 B、排队延迟queueing delay 因为路由节点要输出的链路产生拥堵就会将要发送的分组咱存在自身等待链路通畅等待时间就是排队延迟。 排队时间取决于链路的拥塞程度拥塞程度越高等待时间越久。 我们设链路带宽bps为R分组长度bits为L平均分组到达速率为a则流量强度公式为La/R其强度和排队时间的关系如图所示。 C、传输延迟transmission delay 指每个分组在按比特传输过程中完整将一个分组传入输出路径需要的时间。 该延迟受链路带宽bps和分组长度bits的影响带宽或分组长度越大则传输延迟越小表达式L/R  L为分组长度R为链路带宽。 D、传播延迟propagation delay 是指数据在链路上从一个路由器传到另一个路由器所需要的时间改时间的长短严重取决于物理链路的长度、信号传播的速率。 常用的传输介质有光缆、同轴电缆等同轴电缆的传输速率能够达到0.7倍的光速-2 * 10^8 m/sec),公式排队延时物理链路长度/信号传播速度。 四其他的性能指标 A、时延带宽积 可以看成bit带宽的链路中当第一个bit到达对端时链路中所拥有的bit数是一种用bit表示的链路长度。 B、丢包率 丢包率丢包分组数/已发送分组总数 C、吞吐量 表示发送端到接收端之间的数据传送速率。即时吞吐量给定某一时刻的速率平均吞吐量一段时间内的平均速率。 瓶颈电路在端到端路径上限制端到端吞吐量的链路。 决定吞吐量大小的往往是所有链路中带宽最小的链路瓶颈电路决定的下面是一个理论图 实际场景中互联网带宽往往很大限制吞吐量的链路一般存在于发送端和接收端的接入网路的链路。 五、计算机网络结构 一复杂系统的分层结构 A、为什么要将计算机网络体系用分层结构研究 计算机网络非常复杂是一个非常复杂的系统涉及到很多组成部分包括主机、路由器routers、各种链路links、应用application、协议protocols、硬件、软件需要一种结构来为研究提供架构。 这种结构每一层都有固定的功能上层要完成其服务要依赖下层提供的服务每层之间依靠协议完成自身功能。 计算机网络体系结构是计算机网络各层及其协议的集合。 网络体系结构是从功能上描述计算机网络各层并不关注如何实现功能。 体系结构是抽象的是人为了研究计算机网络而提出来的。 采用分层结构有以下优势 结构清晰有利于复杂系统部件及其关系。 模块化的分层易于系统更新和维护。 有利于标准化各厂商要遵循的标准。 B、分层网络体系结构的基本概念 实体指任何可以发送或者接收数据的硬件或软件进程。 协议是控制两个对等实体进行通信的规则的集合协议是“水平的”是同一层之间使用的标准。 任何一层的实体都需要调用下一层提供的服务遵循本层协议实现本层功能。自己也为上一层提供服务。 下层协议对于上层来讲是透明的不可见的。同系统的相邻实体间通过接口进行交互通过服务访问点SAPService Access Point交换原语指定下层要提供的服务。下层的原语返回的是服务调用状态。 二OSI模型 A、介绍OSI模型 该模型是由ISO国际标准化组织于1984年提出的分层结构网络模型。它将计算机网络分为七层每层都有自己的功能多层之间相互协调配合完成网络功能下面是七层的具体内容 为什么会出现OSI结构因为当时计算机网络不同公司都在用自己研制的网络为了不同公司通过网络交流国际标准化组织就给出了通用的结构标准为了不同网络之间的互联互通异构网络系统的国际标准。 它虽然在商业实现上是失败的但是在研究网络结构确实是极好的网络模型。 B、OSI模型的具体流程 如上图所示主机A、主机B、中间系统路由器等他们都拥有或多或少的层。相邻位置的对应层用协议互相通信注意这种通信之所以用虚线是因为二者的通信指示逻辑方向真正数据流动的方向不是直接通信。 过程主机A应用层先将数据根据本层协议编码后发送给下一层下一层再编码一直到主机A的物理层根据物理层协议编码后通过传输介质来到中间系统的物理层物理层根据主机A和中间系统确定的协议解析数据内容后向上发送数据链路层解析完数据后再向上发送。网络层解析完数据后指明下一步要通过的链路方向。数据继续下流首先在中间系统的网络层完成编码根据中间系统和主机B的协议而后向下到达数据链路层编码后经物理层再编码而后通过传输介质来到主机B的物理层经过层层解析向上最终主机B的应用层完成了信息的解码工作数据传递实现完毕。         特点分析 实线是真实的数据传递路径虚线是对于每一层的数据传输路径逻辑上的比如我们之前寄信在寄信人和收信人看来信是直接在二者之间传递的但实际是邮局到火车到快递员这个过程       相邻两层之间通过接口进行对下一层的服务调用和对上一层的服务反馈。 观察发现前四层应用层、表示层、会话层、传输层是直接从源主机对着目标主机的所以我们称这四层为end-end层。 C、数据封装和通信 主机A的用户数据在应用层进行处理时应用层会在用户数据加上一些本层独有的信息称为“头”构成协议数据单元以后向下每一层都会被加上对应层独特的“头”到达物理层时其给协议数据文件前后都加上了内容构成帧到达物理层之后就变成了01比特流到达主机B后从下往上逐层去掉头信息最后返回用户B的就是用户A发送的原信息了。 为什么一定要给数据加上“头” “头”就是一种控制信息这种控制信息包括 数据接收方地址信息数据纠错和排错信息可选数据的优先级、协议控制服务质量和安全控制等一些特殊数据包会用到。 D、物理层的功能 因为要实现数据传输所以物理层向上提供的接口一定具有电气特性、功能特性、规程特性、机械特性。 具有比特编码能力即将数据编为bit进行传输的能力。 控制时钟同步保证数据发送方发送的数据能够被接收方接到。 还要考虑数据传输效率数据率 物理层有四种传输模式 单工simplex两端一端只能发送数据另一端只能接收数据数据流动是单向的。 半双工half-duplex两端都能发送和接收数据但是一端发送数据时另一端只能接收数据。 全双工full-duplex两端都能接收和发送数据两端可以同时收发数据一边发送一边接收可以利用双线实现 E、数据链路层的功能 负责结点-结点的数据传输结点到结点指同一线路左右两个结点。 负责把网络层传入的数据加上“头”和“尾”信息组成数据帧以便接收端识别并接收。 有物理寻址功能在数据“头”中加入发送端和接收端的物理地址供接收端识别。 如上图就很好看出了在广播线路中如果没有源物理地址和目的物理地址发送的数据将被所有其他主机接收。 其还要实现流量控制避免发送端流量过大超过接收端缓存速度从而导致数据丢失。 负责差错控制插入数据纠错信息接收端检测错误尝试修复。 访问控制像上图的电路要保证只用一个主机占用线路发送数据避免多个主机同时发送数据产生冲突。 F、网络层的功能 负责将来自传输层的协议数据单元加上分组信息负责源主机到目的主机的数据分组。在大的网络环境下物理地址就不起作用需要一个全局范围的地址标识例如internet的IP地址。故其具有逻辑寻址的功能。 要保证数据正确到达目的主机路由功能也必不可少路由器或者网关互联网络不断将分组传给下一级正确路由器最终到达目的主机。路由能够实现分组转发。下面是网络层分组转发示意图。 源主机将目标主机唯一标识Ip加入数据“头”经过链路层和物理层将协议数据单元传到第一级路由器第一级路由经过物理层、数据链路层、到网络层层层解析后根据自身路由表给出输出链路同时将下一级路由标识加入“头”。在整个数据传输的过程中源主机和目标主机的Ip始终不变。 G、传输层功能 分段与重组 负责将来自会话层的协议数据单元分成不同的段发往网络层。 该层主要负责将会话层完整报文的传输。其面对的是计算机互联网中两个主机的对应进程。 此外还有连接控制、流量控制、差错控制等 H、会话层的功能 表述层不会将数据截断称不同的份但是会在数据中添加一些同步点。 另外会话层也负责会话的建立和断开。 I、表示层的功能 每个主机在对数据编码的时候用的编码方式存在不同表示层就负责将通用的数据转化为接收主机能够识别的数据实现数据的正确表示。 当然也有压缩/解压缩、加密/解密的操作。 J、应用层 提供一个服务接口可以为用户提供服务。网络应用有下面几个类型 文件传输FTP、电子邮件SMTP、web应用HTTP 三TCP/IP模型 不同于OSI模型的先有理论后实践失败的发展路径TCP/IP模型是先在计算机网络中实践后才形成的模型所以更有使用性。 观察上图可发现该模型有两个特点 everything over IP  and  IP over  everything  所有都依赖IPIP下面的层只需要保证能够有要到达的IP即可这样就很简化了OSI的模型并且这种模型现在亦然在互联网中广发使用。 OSI模型的优点在于对网络分层能够更清楚解释网络数据传输的细节所以我们将两种模型结合起来更有利于研究计算机网络。 四计算机网络发展历史 1961-1972年Kleinrock在论文中提出分组交换适合突发性数据传输奠定理论基础。 1972-1980 网络互联大量新型网络涌现Xerox设计以太网、私有网络体系结构DECnet、XNA、SNA、固定长度分组交换ATM网路先驱。 75年、ARPnet移交给美国航空管理局。 cerf和cahn提出网络互联体系结构提出互联网的基本原则极简、自治、尽力服务模型、无状态路由器、分散控制。 1980-1990年新型网络协议和网络的激增。 1983年TCP/IP部署到ARPnet网络。1982年STMP协议出现、1983定义DNS、1985定义FTP、1988在TCP协议中实现TCP拥堵控制。 新型国家网络诞生BITnet NSFnet等后NSFnet发展为现代互联网。 1990-2000初 网络商用化web应用诞生。 ARPnet退役、NSFnet1991年解除商用限制私营企业开始运营。 1992年因特网协会诞生ISOC成立。被人为互联网的诞生日。 web应用的出现促进了互联网的普及。网络安全问题出现。 2005年至今宽带接入网络的部署无线接入网络的部署互联网大公司构建自己的网络以绕够Internet直接给用户提供服务。互联网深刻改变生活。“云”应用的使用和发展。 四、应用层 一互联网应用的体系结构 A、客户端-服务器结构Client-Server 服务端特点​​​​​​​ 7*24h不间断的提供服务。提供永久性的Ip地址和域名方便用户找到服务使用服务。利用大量服务器实现可扩展性因为一些大的网络应用服务商要面向大量用户提供服务故要构建集群或者说是服务农场。 客户机特点 与服务器通信使用网络服务器提供的服务。间歇性的接入网络。可能使用动态IP因为作为客户机不需要为谁提供服务。不会与其他客户机直接通信。 这种结构的应用有Web应用如Safari浏览器等等。 B、端对端peer to peer、P2P 特点 没有永远在线的服务器热议端系统/结点之间可以直接通讯节点间歇地接入网络节点可能改变IP地址 优点可伸缩性强缺点难于管理。 C、混合结构p2p和client-server的结合 两种方式的结合可以扬长避短。 例如napster这应用就使用了混合结构搜索文件时使用client-server模式向其他用户发送文件时使用P2P结构。用户可以将自己的资源注册到中央处理器中这样其他用户就可以通过中央处理器搜索获得。用户也可以直接发送给用户而不经过中央处理器。 二网络进程间的通信 A、不同位置两个进程通信方式不同 进程指主机上运行的程序同一主机上的进程通过一定的进程间通信机制和操作系统提供。不同主机上进程之间通过消息交换实现通信。 客户机进程指发起通信的进程服务器进程指等待通信请求的进程。P2P结构也存在进程等待。 B、套接字Socket 进程之间利用Socket传递数据发送数据进程先将数据送入Socket中操作系统会根据传输基础设施提供的API传输协议的选择、参数的设置等等调用命令将Socket中数据传入到目的主机的Socket中从而实现信息的传递。 C、进程寻址 用唯一IP来标识主机用端口号来标识主机上的某个进程例如HTTP server占用80端口mail server 占用60端口。所以要想找到一个进程实现通信需要IP 端口号如下图 D、应用层协议 应用进程之间要在传递数据时需要遵循共同的规范才能实现发送端到接收端的信息传递能够正常识别与转换。 协议分为公开的协议和私有协议 公开协议由RFCrequest for comments来定义和规范常见的公开协议由HTTP、SMTP等现在的大多数应用都是建立在HTTP协议之上的。 私有协议出于商业竞争考虑一些P2P结构的应用会自己设计协议确保自己应用数据的安全性和特殊性。 E、协议的内容 消息的类型是请求消息还是响应消息 消息的语法是键值对还是value都有哪些字段。 字段的语意字段中信息的含义一般是约定俗成。 规则rules进程何时发送和响应消息。 F、Internet提供的传输服务两种传输层协议的对比 不同应用对传输服务的要求 数据丢失/可靠性 一些对数据丢失要求不高的网络应用如网络电话。 某些对数据可靠性要求高传输的数据必须完整不能丢失如文件传输。 时间/延迟 网络电话和网络游戏要求低延迟要保证数据传输的速度。有些应用必须在延迟低到一定程度才能正常运行。 带宽 网络视频必须在带宽达到一定程度才能正常观看否则卡顿严重甚至黑屏。 email应用对带宽无要求因为该类型应用本身就是异步的。 TCP 面向连接客户端的进程和服务端的进程需要建立连接。 传输是可靠的正因为需要建立连接所以连接是可靠的。 流量控制能够控制发送端发送数据的流量大小方式超过接收方处理能力导致数据丢失。 拥塞控制当网络负载过重时能够限制发送方的数据发送速度。 不提供时间/延迟保障不提供最小带宽保障。 UDP 无连接、不提供可靠数据传输、不提供流量控制、拥塞控制、延迟保障、带宽保障。 仅提供网络数据传输的基本功能 三Web应用与HTTP A、Web应用的特点 发明者Tim Berners-Lee一位专注科研的值的敬佩的人 Web的诞生使Internet称为全世界使用最广泛的网络同样HTTP协议也顺势称为使用最广泛的Web应用层协议 特点 通过网页的互相连接实现应用。 网页包含多个对象HTML文件、JPEG图片、视频文件、动态脚本等HTML文件是最基本的其含有对其他对象的链接。 网页之间寻址方式通过URL统一资源定位器寻址URL格式-     协议名://ip或者域名:端口号/文件路径     下面是百度新闻的一个网址实例。 https://content-static.cctvnews.cctv.com/snow-book/index.html B、HTTP协议Web应用层协议 HTTPHyperText Transfer Protocol 面向CSClient-Server结构 客户端发送请求接收返回信息、展示获得的web对象。 使用TCP传输服务 服务器在80端口等待客户请求浏览器发送到服务器的TCP连接创建套接字服务器接受来自浏览器的TCP连接浏览器和服务器交换HTTP消息关闭TCP。 HTTP是无状态的 服务器不会维护任何有关客户端的历史请求信息不会有记忆。 为什么是无状态的因为如果有状态那么维护状态就需要一定时间如果发生客户端断开则客户端下次连接产生的状态不一致就需要很复杂的逻辑花费代价较大。 C、HTTP的两个版本1.0、1.1 1.0:  非持久性连接的不会维持连接1.1:默认是持久连接的一旦连接建立就不会轻易断开。 案例前置客户端从服务器中获取一个HTML文件文件中包含10个图片引用。 非持久性连接1.0 客户端向指定URL发起建立连接请求 -  服务器同意建立连接返回同意信息  -  客户端发送要请求的资源地址URL后面部分 - 服务器返回HTML资源  - 客户端解析HTML文件发现10个新的对象引用 -  再次请求连接 -同意连接 - 发送资源路径 - 返回资源   ....... -客户端收到最后的对象引用。 如果我们客户端到服务器发送一个小数据包并获得返回的时间为RRTRound Trip Time那么发起建立连接请求和获得同意发送资源地址和返回资源一共需要2RRT因为返回资源时间较大故获得HTML文件所用时间为1RRT 文件请求和发送时间。总共获得完整HTML页面时间为11RRT 文件请求和发送时间。因为有十个对象连接所以频繁建立连接服务器返回后自动断开连接很浪费资源。如果HTML页面和十个连接对象的请求获取都需要1RRT那么总共消耗22RRT。 操作系统为每个TCP建立连接都会开销系统资源可见单次连接的HTTP会大量开销系统资源用于建立TCP连接。 持久性连接 服务器发现客户端连接请求后建立连接然后一直保持跟客户端的连接状态后续的HTTP请求都通过该连接发送。 无流水的持久性连接客户端只有收到前一个请求返回的资源后才会发送下一个请求。每个被引用的对象获得消耗1个RTT整个下来获得完整的HTML页面需要12RRT。 带有流水机的持久性连接客户端在收到第一个对象后确保连接畅通就尽可能发送所有的引用对象路径请求理想情况下只需要1个RRT就可以获得所用引用对象。这样一共需要2RRT。 什么是流水流水就是在固定时钟周期内要作哪些事情像流水线不会等待响应或者说在等待流水段等不到回应就判定失败 非流水要以收到回应为下一步操作的条件故会受限于服务器的返回速度。 D、HTTP请求消息的内容 两类消息请求消息request、响应消息reponse 请求消息 用ASCII编码编成直接可读部分内容结构如下 请求头信息和请求体用换行隔开请求头内容包括一些必要的信息如请求资源的路径信息使用的代理接收的语言等等。 请求方法 get该方式请求数据跟在路径后面post请求中携带的数据被放到请求体中 HEAD要求返回时不携带请求体一般用于测试。 put该请求方式将请求携带的文件放到路径指定位置1.1 delete删除指定路径对应文件。1.1) 响应消息 请求头中包含请求状态码代表不同的服务器响应结果HTTP代表所用协议。DATE是响应时间Last0Modified是要返回内容最近一次修改时间。 E、Cookie技术的出现 为什么会出现Cookie技术 前面提到HTTP协议是无状态的但是一些网络应用需要记录用户在所有请求中的行为如网络购物身份验证等等所以HTTP协议就在它的请求头中增加了一个属性叫做Cookie用于识别用户身份。 Cookie使用流程 客户端发起请求服务器收到请求后生成Cookie值加入响应头中返回给客户端浏览器浏览器将Cookie保存此后客户端在一定时间内再次发送请求会携带Cookie值客户端收到Cookie值就可以查到该Cookie对应的用户之前做了什么操作从而实现服务端对用户行为的记录。 Cookie使用带来的风险 Cookie一但被窃取就能够冒用身份盗取信息为犯罪创造条件。 F、Web服务代理/缓存技术 为什么会有代理和缓存技术 一些大型应用商为了缓解中心应用服务器压力会部署服务器代理一些资源用户不访问服务器可以从就近的代理服务器中获取这样就减少了中心服务器的压力。运用代理有如下好处 用户离代理服务器较近能够缩短客户请求的响应时间。缓解机构或组织的流量压力。可以实现资源的大范围的有效分发。 Web缓存/代理的工作原理 如上图当客户端需要资源时请求会先到达代理服务器如果代理服务器有该资源则直接返回给客户端/用户不经过真正服务器如果代理服务器没有该资源则会请求服务器返回对应资源到代理服务器代理服务器保存后返回给用户/客户端下次再访问统一资源则会直接返回。 从上面的分析我们可以看出代理服务器有两重身份代理服务、用户。 代理服务器一般由ISP网络应用提供商架设。 Web缓存如何缓解接入网络压力 上图是一个公司网络接入互联网示意图在没有缓存的情况下如果要从互联网上请求1.5Mbps的资源直接就将网络带宽占满造成网络堵塞严重影响传输性能。 如果我们在本地接入缓存缓存命中率为0.4那么1.5Mbps的资源有40%都可以在本地的缓存中得到如不会变的网站图标等等这样就大大减轻了接入网络的带宽压力也足够经济实惠。 本地缓存如何实现资源更新 本地缓存会发送条件get请求请求头中有属性If-modified-since:date代表请求文件从指定日期开始是否有修改如果有返回最新如果没有不需要返回新的对象。服务器收到请求后会根据对应资源的修改时间做出判断如果没有修改则返回含304 Not Modified状态码的响应头响应体为空如果有修改则返回最新的文件以实现更新。如下图 (四Email应用与SMTP协议 A、Email应用的实现模式 Email客户端将要发送的信息发送到email服务器中要发送的信息会被保存到服务器对应账户的代发送消息队列中如果是接收消息对应账户会收到其他服务器发送过来的信息保存在服务器的收件位置进行储存。 B、SMTP协议 协议内容也包括两部分请求头、请求体。要经历的三个阶段握手、消息传输、关闭。与HTTP的请求响应模式不同SMTP使用的是命令响应模式。因为EMAI的方式比较简单所以用命令传递给服务器指定信息即可完成Email服务。 C、SMTP协议的扩展 开始时SMTP仅允许发送7位的ACSII码请求头只有To、From、Subject发件人、收件人、主题信息请求体里面放邮件的具体内容。可见本来的SMTP是不能够发送多媒体文件的。 后来因为实际需要对SMTP的请求头进行了扩展MIME版本增加关于多媒体的请求行   这样如果客户端要发送或者接收数据就可以根据指定的编码格式和文件类型进行编码接收方也可以根据请求行定义内容对文件进行正确的解码从而实现文件的正确获取。编码后的数据放在请求体中进行传递。 D、POP协议和IMAP协议 与邮件发送和服务器间传递使用的SMTP协议不同IMAP协议/POP协议是用于用户从服务器上获取邮件的协议。 POP协议Post Office Protocol 该协议分为三个阶段握手确认身份认证/授权、邮件的上传或下载。 该协议是无状态的。 IMAP协议Internet MAIL Access Protocol 该协议比POP协议相比功能更复杂能够操纵服务器上的消息。现在被广泛采用。 HTTP协议 当然HTTP协议也可以实现邮件阅读和删除的功能例如QQ等。 五DNS服务器 A、为什么要有DNS服务器 我们在计算机网络中是用IP寻找到指定主机但是IP不便辨识和记忆所以就出现了域名域名用英文表示每个域名与IP是一一对应关系DNS是专门提供域名到IP解析服务的服务器。 B、DNS域名解析系统的特点 多层命名服务器构成的分布式数据库共同组成DNS域名解析服务。 DNS协议是应用层协议域名解析在应用层完成。 为什么域名解析要在应用层完成 在前面我们提到要保持网络核心路由器或网络层的简单性将DNS这一复杂的互联网核心操作放到应用层实现也保持了网络核心的简单不会拖慢网络传输的效率。 其系统结构如下 第一层是根DNS服务器第二层是不同后缀的DNS服务器最后一层是各网络服务提供商的域名解析器DNS。 例当用户想要请求www.amazon.com对应的服务时会先向根DNS服务请求根DNS并不会保存全部IP和域名映射根DNS查找到请求域名时com结尾的DNS服务器将新域名DNS地址发送给用户用户再次请求com DNS服务器查找到地址对应域名解析服务器再amazon.com DNS上所以再次把对应新DNS服务器发送给用户用户再次访问DNS获得真正的域名。 从上面过程可以看出来这种方式有利有弊 利避免大量请求同时涌入一台DNS服务器造成单点故障缓解DNS服务器带宽压力。 避用户解析域名需要发送多次请求请求过于频繁。 顶级域名服务器com org net edu等顶级域名和国家顶级域名cn uk fr会归专门的部门或公司维护。Network Solutions 维护com顶级域名服务器。Educause维护着edu顶级域名服务器。 权威域名服务器由服务提供商负责维护。 C、本地域名解析服务器DNS 不属于域名解析系统范畴但是起着用户代理的作用用户发出的请求中的域名解析请求都由本地DNS代为处理。下面展示两种域名解析过程 左边是迭代请求方式右边是递归请求方式。二者区别观察可以发现递归请求方式本地用户和代理DNS都只需要发送1次请求即可获得IP地址其他由DNS系统内部处理。 本地域名解析服务器拥有缓存功能一些经常访问的域名会被本地DNS服务器缓存下来只有在本地DNS没有时才会访问Root DNS。 现在世界上的13根域名服务器都设在其他国家中国没有。 D、DNS协议 什么是DNS协议 是DNS服务在相互交流中需要用到的协议。 DNS协议的特点 查询query和回复reply类型的协议发送查询信息返回查询结果。 查询的格式和回复的格式相同。 DNS服务器中保存内容 DNS服务器中保存的是资源记录RRResource record格式如下 namevaluetypettl不同类型的name与value代表的意义不一样。 下表列出了不同类型对应的三个值的对比 typenamevaluettl过期时间A主机域名IP地址过期时间NS域如edu cn等 该域权威解析域名解析服务器 的主机域名 Type 某一真实域名 的别名 真实域名MX邮件服务客户端存疑相对应的邮件服务器 DNS协议的内容 identification用来确定查询的身份识别查询以正确返回 flags用来记录是否递归查询、这是回复/查询消息等信息。 questions用来记录查询的四个元素name、value、type、ttl answers用来记录回复信息。 后两列分别代表权威机构的回复和其他机构的回复。 E、新公司如何注册域名 在域名管理机构注册域名假设域名为“networkutopia.com”。 需要向域名管理机构提供你的权威域名解析服务器的名字和IP地址。域名管理机构向com顶级域名解析服务器中插入两条记录如下 最后在自己的权威域名解析服务器中加入A类型的信息www.networkuptopia.com-真实IP。 六P2P应用 A、什么是P2P 上面提到的都是CS结构即客户端-服务器模式Peer to Peer模式是两台主机直接互联发送信息的结构具有管理难度大没有固定IP等特点。 B、从一个问题研究P2P在文件分发方面的优势 问题从一个服务器向N个节点分发一个文件需要多长时间假设网络有足够的带宽上传带宽不一致。 如上图可以知道我们有n个主机需要接收文件File所以Server服务器上传文件需要的时间就是NF/Us,同样每个主机都需要下载文件受最慢接入网络带宽主机传输限制所以N个主机并行下载需要F/mindi的时间才能下载完毕所以可见 这里N得值越大即用户数量越多传输和下载文件所要耗费的时间就越大耗费时间和N的值是线性关系。 如果我们用P2P结构做同样的事情结果会如何 首先服务器必须至少发送一个文件副本耗时F/Us客户机需要F/di时间下载总共需要下载NF个bit故最快的上传速率为Us u1 ... Ui)。 可以看到当N越大其对整体的传输度的影响就越小。所以我们可以用下图描述两种方式对节点数量的敏感程度。 C、BitTorrentP2P得运作模式 tracker跟踪参与torrent的节点 chunk是用于交换的文件块。 torrent交换同一个文件的文件块的节点组如下图 新增的用户如何加入节点组 如上图节点加入torrent会先从tracker中获取已经在该torrent中的节点然后与torrent中的某些节点建立连接从这些节点下载需要的数据并保存到本地在这个过程中其他节点都又可能离开掉线所以同一份文件会同时保存到许多节点中这样就避免了数据丢失。 节点组如何保持chunk的流动性和更新 在给定的任意时刻不同节点持有文件的不同chunk集合每个节点会定期查询自己连接的其他主机的chunk列表如果存在自己还没有的chunk则发送获取请求补全缺失的chunk。 节点如何决定该向何节点发送数据 每个节点会定期向自己连接的结点的前四名给自己发送数据最多的前四名发送chunk没过4s重新评选top4。 同时每隔30秒还会随机选择一个其他节点向其发送chunk以此保证数据的一致性、平衡性。 从上面分析中可以看出torrent中节点之间数据的流动是双向的用top4来促进各节点传输文件的积极性。 D、索引 什么是索引 索引就是用来记录每个节点对应文件的目录。 使用 如电驴用于文件互传、qq用于动态IP的确定。 集中式索引 所有的节点都会将自己所拥有的文件列表同步到一个centrallzed directory server上如果一个节点想要获取指定文件要先访问centrallzed directory server获得拥有该文件的节点列表然后再访问对应节点获得数据文件。 缺点单点失效问题、性能瓶颈问题带宽限制、版权问题因为集中式资源一目了然懂 分布式索引 覆盖网络overlay network的概念指已经存在了TCP连接的各个节点形成的网络节点的邻居数少于10个。 每个主机都自带索引标识自己拥有的文件列表。如下图最左边的主机想要获取某个文件先向自己建立了TCP连接的其他节点发送请求其他节点检索自身索引如果有就返回如果没有再以自己为基点向和自己有TCP连接的主机发送资源索取请求如果有主机有就逐级返回拥有文件的主机节点信息最左边主机得到后建立与彼主机的TCP连接获取数据文件。 其缺点 会产生大量请求直接全部覆盖查询消耗节点性能和网络通畅度。 层次式覆盖网络集中式和分布式的结合 每个大的节点相当于一个集中节点集中索引其下面的小节点将自己信息注册到他们上面大的节点之间构成分布式索引完美避免了前两者的弊端。 七Socket编程 A、什么是Socket 简单理解就是它是应用层调用传输层使用传输层发送和接收数据功能的接口即API。应用层一般情况下用不到传输层的服务当应用层需要用到传输层服务来发送和接收数据时就会创建SocketSocket中包含了一些指令相当于调用传输层服务的接口通过调用对应指令实现数据收发。 传输层在操作系统之中由操作系统管理Socket相当于将操作系统的功能通过接口提供给应用程序应用程序可以让传输层做指定操作从而实现两层通信。 B、Socket的标识 两个引用层相互传递数据时因为每台主机上都有多个应用程序在跑所以就通过IP端口号来唯一标识某个应用程序内部标识通过创建Socket时自动生成的套接字描述符来确定进程每个套接字描述符会被抽象为文件或指定数据结构进行管理里面记录着对应进程的相关信息如下 数据结构如下 C、Socket函数说明使用的是windows对原始API扩展的函数 WINSocket在Socket基础上很多指令还是Socket指令在UnixUnix中用的Socket中一样适用。一些纯小写指令是Socket和WINSocket通用指令。 WSAStartup、WSACleanupWINSocket特有指令因为其使用的独特技术动态socket库 创建Socket之前要先开启动态Socket库关闭Socket后还要清理动态Socket库以释放库。 socket 创建一个Socket 三个参数一个返回值。 返回值sd是操作系统创建完socket 返回的Socket描述符。 第一个参数是协议族protofamilyPF_INET,代表服务的协议是TCP/IP协议。 在Socket诞生之初仅仅服务TCP/IP后来演变为什么都可以服务所以需要协议族来声明 第二个参数是套接字类型 type SOCK_STREAM,SOCK_DGRAM,SOCK_RAW(TCP/IP) SOCK_STREAM,面向TCP协议可靠面向连接字节流传输点对点的Socket SOCK_DGRAM,面向UDP协议不可靠无连接可一对多的Socket。 SOCK_RAW,直接越过传输层和网络层通信创建该Socket一般需要计算机的最高权限 第三个参数是遵守的协议协议号表示 connect 调用套接字使本地计算机和指定计算机的特定端口的套接字进行连接 三个参数。 sdsocket的描述符用来确定要连接的socket。 saddr要连接的Socket的IP地址。 saddrlen指定地址的长度。 如下图 当有多个Socket向同一个Socket发起连接请求时Socket内部的队列会储存要连接的Socket信息排队连接队列先进先出 同时注意 该函数在CS结构中只能客户端调用。 TCP协议使用connect函数时是真正意义上的建立连接UDP使用connect函数时因为其是无连接的所以仅仅是将数据发送方向指向了指定地址的Socket罢了。 bind  服务端用来连接客户端套接字的指令 三个参数。 sdSocket描述符用来识别Socket。 localaddr指定要连接的客户端IP地址用INADDR_ANY通配符式指定IP地址。 不固定制定那是为何原因如下 服务端是一客户端是多不同客户端的Socket对应的IP不一样并且如果是动态IP那么同一个客户端也会有不同的IP地址。故指定为INADDR_ANY,如下 listen 监听命令配合bind使用动态指定端点地址IP端口号 功能置服务端的流套接字处于监听状态仅仅服务端调用面向连接的流套接字无连接还连接什么哈哈。 两个参数。 sdSocket描述符用来识别计算机上不同进程。 queuesize设置连接请求队列的大小即允许等待连接数。 返回值0成功SOCKET_ERROR  失败 Closeocket 关闭一个Socket 功能关闭一个描述符为sd的套接字。  如果多个进程共享一个套接字那么调用Closesocket只会使套接字中引用数减1只用当引用数为0时才会真正关闭Socket套接字。 如果一个进程中的一个线程调用了closesocket即使Socket没有真正关闭该进程中的其他线程都不能再访问该套接字。 返回值0成功SOCKET_ERROR 失败 ​​​​​​​accept 用在listen之后接收客户端请求。 ​​​​​​​ ​​​​​​​功能调用后服务端从监听状态的流套接字sd的客户端请求队列中取出排在最前的一个客户请求并且创建一个新的套接字来与客户端相连并开始提供服务和交换数据。 accept 是一个阻塞式函数当没有请求进来其会一直等待。 仅用于TCP套接字流套接字仅用于服务器端。 为什么要创建新的套接字来与客户端进行通信在原来套接字的基础上不好吗 这是因为服务端提供的服务都是多线程的只有新建一个套接字给指定线程使用以给用户提供服务才能将原套接字空闲出来继续执行accept函数接收更多请求建立更多套接字或共享以实现服务端一对多的服务实现见过哪个服务器一次仅服务一个人 如果再原来套接字的基础上跟客户端建立连接则一次仅能服务一个客户对象。 send sendto 用于不同情况下的数据发送 ​​​​​​​ send函数用于TCP套接字客户端与服务端或调用了connect函数的UDP客户端套接字注意这里并未真正建立连接 sendto函数用于UDP服务器端套接字与未调用connect函数的UDP客户端套接字。 recv、recvfrom recv函数从TCP连接的另一端接收数据或者从调用了connect函数的UDP客户端套接字接收服务器发来的数据 recvfrom函数用于从UDP服务端套接字与未调用connect函数的UDP客户端套接字接收对端数据。 setsockopt、getsockopt setsockopt函数用来设置套接字sd的选项参数。 getsockopt函数用来获取任意类型、任意状态套接口的选项当前值并把结果存入optval。 函数调用概览 D、关于网络字节顺序 TCP/IP协议定义了关于协议头的二进制整数表示网络字节顺序network byte order 某些Socket API函数的参数需要储存为网络字节顺序如IP地址、端口号。 一些函数可以实现本地字节顺序和网络字节顺序的转换。
http://www.yutouwan.com/news/22813/

相关文章:

  • 网站开发经理招聘应用网站制作
  • 做网站域名需哪些百度做网站推广
  • 自建网站备案天津关键词优化效果
  • 太原建站塔山双喜网站建设如何找本地客户
  • 做环保的网站有哪些学生个人网页制作简单教程
  • seo外包公司湖南网站seo
  • 网站 公司实力家居小程序源码下载
  • 泰州网站建设 思创小米市场营销案例分析
  • 怎么做网站推广云浮八爪鱼采集器WordPress接口
  • 怎么做跟P站一样的网站外贸开源网站
  • 淄博网站制作高端成都住建局官网住建蓉e办
  • html5网站实例网络设计的关键是什么
  • 网站开发外包合同模板网站建设开发上线流程
  • 东莞网推广网站建设大型网站建设
  • 站长推荐网站水果销售网站开发文献综述
  • 先做网站还是先做app网络运营商怎么看
  • 深圳网站建设 迈如何成立一家公司
  • 智能模板网站建设收费wordpress怎么修改首页网址导航
  • 用自己网站做邮箱域名个人网站免费域名获取
  • 通过网站做国际贸易的成本抖音小程序模板
  • 湖南长工工程建设有限公司官方网站紫金保险车险官方网站
  • 邢台企业网站制作公司网站优化外包找谁
  • 宁波新亚建设公司网站网站做中英版
  • 哪里的赣州网站建设微博如何做外链到时自己网站
  • 中企动力做网站费用wordpress 响应模板
  • 做的网站 如何在局域网内访问公众号小程序如何开发
  • 网站开发设计流程图网站优化怎样做外链
  • 西安企业网站建设哪家专业阿里云网站托管
  • 买的网站模板里面是什么如何做阿里巴巴国际网站
  • 自己在家怎么做网站服务器网站做飘浮怎么做