自顶向下

计算机网络:自顶向下方法笔记 ———— 进程通信

随声附和 提交于 2020-02-26 07:29:17
Date : 2020 - 02 - 25 Author : Soler HO Book : 计算机网络:自顶向下方法 Description : 进程通信 进程通信 进程(process):运行在主机(端系统)中的一个程序。 当进程运行在相同的端系统上时,所使用进程间通信机制相互通信。 进程间通信的规则:由端系统(主机)上的操作系统确定。 进程在两个不同的端系统(主机)之间,通过 报文(message) 而相互通信。 1、客户和服务器进程 将一个进程标识为 客户 ,另一个进程标识为 服务器 ,所以客户和服务器的定义如下: 客户:发起通信方 服务器:等待联系方 另外,在应用层的P2P体系结构中,也有客户端和服务器端。 2、套接字Sockets 进程通过 套接字(socket) 的软件接口向网络 发送 报文和从网络 接收 报文。 例子:进程类似于房子,套接字类似于一扇门 发送进程需要推开套接字这个门,就通过运输设备将报文传送到其他的目的主机,接收来自传递给套接字的进程。 3、进程寻址过程 为了接收报文,进程必须有一个 标识符 。 该类标识符必须有两种信息: 主机的IP地址 端口号(port numbers) 端口号的例子: HTTP服务器:80 邮箱服务器:25 主机有 唯一的(unique) 32比特的IP地址标识。 来源: oschina 链接: https://my

计算机网络自顶向下方法【九】——安全

纵饮孤独 提交于 2020-02-03 08:45:11
  这两周,加班,周末团建,朋友喊出去吃饭看电影……似乎好多好多事情,都能成为不看书的理由啊!但归根结底,还是自己懒惰了。   这次看的是计算机安全。我才加入项目时,就在改安全,直到今天,已经近一年了,还是没改完安全。办公桌周围熟悉的面孔倒是少了不少,我竟从刚进来时的萌新,变成了别人眼中有经验的人了!   没看之前,我也看过不少安全方面的东西,加密、SQL注入,要用占位符不能直接拼,前台不能写表名SQL语句(这个很坑,是前人有个大佬在前台封装了个好用的控件),响应和请求不能有敏感信息……   看看这本书里是怎么理解“安全”的吧!   安全,一直是我们希望拥有的东西,就像理财时我们希望能保本并且盈利一样,书中举了个例子:Alice和Bob是一对私下里保持秘密关系的人;他们当然希望相互之间的通信是安全的。   安全通信,需要的特性:机密性(报文需要加密)、报文完整性(发送的内容未被改变)、端点鉴别(和我通信的人,是我想通信的那个人吗?)、运行安全性(防火墙)。   入侵者可能做的操作:窃听(看到2人的报文)、修改2人之间的报文。   应对这个问题,做出的应对就是加密。和我工作里做的处理一样嘛。   这边提到了密码学原则。我知道的是,我们现在系统里用的是对称加密,这在之后肯定是需要改变的。   密码学就是,发出报文前加密,这样在传输过程中传的就是密文,接收方接受时先解密,再查看报文

自顶向下网络设计基础(更新中)

此生再无相见时 提交于 2020-01-26 13:42:18
1 使用自顶向下设计方法论 自顶向下网络设计主要是指根据OSI模型,从上往下设计网络,从应用层,会话层,数据传输层再到设备选型,链路选择等。 自顶想下设计网络流程包括分析所服务组织结构,找出使用网络的用户,和能够为提供网络设计提供有价值信息的人员。 避免一开始就深入过多细节,首先要做的是对用户需求有整体了解,之后可以收集更详细信息,包括扩展性要求,对技术的邀要求,随着了解更多信息,一开始的网络设计可能会有变化。 1.1 结构化网络设计流程 自顶向下网络设计概念是由结构化编程和结构化系统分析演变而来。结构化系统分析是为了更清晰的收集用户需求。 结构化系统分析有以下特点: 系统是按照从自顶下下设计的; 设计过程中,可以使用多种技术和模型对现存网络进行分析,了解用户新需求,提出合适未来系统的结构; 结构化分析时,需要将重点放在数据流,数据类型,数据处理上; 逻辑设计在物理设计前进行;逻辑设计是指根据功能建立系统模块,物理设计是指设备和技术的部署选择; 规格说明在收集网络需求时得出。 对于大规模的网络设计项目,模块化是非常有必要的。设计应该将各网络功能分割到不同的模块,例如接入模块,VPN和广域网模块等。 1.2 网络发展生命周期 网络设计四个主要阶段包括: 需求分析。通过收集信息,了解新网络/系统商业和技术目标。需要收集的信息包括逻辑和物理拓扑,网络性能等

0-1背包自顶向下非递归算法

三世轮回 提交于 2020-01-14 09:00:34
//0-1背包动态算法 //给出两点地杰斯特拉算法满足动态规划算法的需求 // A 到 b c d e f h 已知学生家的距离,求老师家到每个学生家的最短路径,好让王老师做出计划 // 写出0-1背包自顶向下的非递归动态规划算法 # include <iostream> # include <string> using namespace std ; int n ; int * input1 ( ) { cout << "请输入物品总数n:" << endl ; cin >> n ; int * w = new int [ n ] ; cout << "请输入个物品的重量:" << endl ; for ( int i = 0 ; i < n ; i ++ ) { cin >> w [ i ] ; } return w ; } int * input2 ( ) { int * v = new int [ n ] ; cout << "请输入各个物品的价值:" << endl ; for ( int i = 0 ; i < n ; i ++ ) cin >> v [ i ] ; return v ; } int min ( int a , int b ) { if ( a < b ) return a ; else return b ; } int max ( int a ,

《计算机网络—自顶向下方法》 第六章Wireshark实验:Ethernet and ARP

巧了我就是萌 提交于 2019-12-21 13:10:30
实验描述: 在本实验中,我们将 研究以太网协议和 ARP 协议 。在开始实验之前, 您可以查看课本的 6.4.1 节(链路层地址和 ARP)和 6.4.2(以太网), 您也可以去看 RFC 826(ftp://ftp.rfc-editor.org/in-notes/std/std37.txt)了解关于 ARP 的协议详细信息, 该协议可以根据 IP 地址获取远程主机的的物理地址(MAC地址)。 实验过程: 第一部分:捕获和分析以太网帧 让我们从 捕获一组以太网帧 开始研究。 请执行下列操作 : 首先,确保浏览器的缓存为空(清除浏览器缓存), 对于Chorme浏览器,如下图所示 ,然后启动 Wireshark数据包嗅探器。 打开以下 URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-lab-file3.html 您的浏览器应显示相当冗长的美国权利法案。 接下来停止 Wireshark数据包捕获,找到您向 gaia.cs.umass.edu的 HTTP GET消 息的数据包编号以及 gaia.cs.umass.edu相应您的 HTTP回应。您的抓包结果应 看起来向下面一样: 由于本实验是关于以太网和 ARP的,我们对 IP或更高层协议不感兴趣。 因此,让我们更改 Wireshark的“捕获数据包列表”窗口

计算机网络自顶向下方法【六】——网络层

♀尐吖头ヾ 提交于 2019-12-18 21:14:07
  网络层,也是个中间层,分为数据平面和控制平面。   本章说的是数据平面。   其中最主要的是路由选择与转发。   转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。   路由选择:当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径。   这个好像和以前学java的servlet时,转发和重定向有点类似?但仔细想想好像也没什么关联。   路由器是网络层的重要工具。   每个路由器都有一个转发表,路由器根据分组目的地前缀与该路由表中的表项进行匹配,找到对应的出口进行转发。   转发主要使用最长前缀匹配规则。   有三种交换方式,内存、总线、互联网络。   交换时会发生排队,排队时用先进先出的算法,还有一个优先级判断。   还有IPv4与IPv6,两个ip相关的。前段时间听说中国也会有自己的,不知道什么时候会出现。IPv6书上说,推行了好多年了,只有很小的进展,不到10%的样子。看来网络层的协议很难更改。   后续,之后弄懂了补上 来源: https://www.cnblogs.com/weixin-tt/p/11073260.html

集成测试

空扰寡人 提交于 2019-12-06 13:04:35
集成测试 什么是集成测试 就是将部分代码集成一块进行测试 集成测试关注的重点 单元间的接口:1.代码的相互调用 ​ 2.消息接口 集成后的功能:不同模块不同功能是否相互影响 ,观察部分代码集成后功能实现是否正确,内部调用是否正确 接口: (例如,函数接口:将一个数据输入函数,返回一个结果,如果结果于预期结果一直就通过(单元测试的测试内容)) 集成测试的层次 具体怎么集成还是要根据具体情况来看; 集成测试策略的主要模式 大爆炸集成 ** 自顶向下集成 ** 自底向上集成 ** 三明治集成 ** 基干集成 分层集成 基于功能的集成 基于消息的集成 基于进度的集成 基于风险的集成 大爆炸集成方式 在这种集成方式中,首先对每个模块分别进行单元测试,然后再把 所有单元 组装在一起进行测试, 最终得到要求的软件系统 大爆炸集成方式的优点: 大爆炸集成可以迅速完成集成测试,井且只要极少数的驱动和桩模块设计。它需要的测试用例也是最少的; 该方法比较简单; 多个测试人员可以并行工作,对人力,物力资源利用率较高 大爆炸集成方式的缺点: 这种一次性组装 方式试图在辅助模块的协助下, 在模块单元测试的基础上,将所测模块连接起来进行测试。但是由于程序中不可避免地存在模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大; 在发现错误的时候,其问题定位和修改都比较困难;

从2-3-4树模型到红黑树实现

只谈情不闲聊 提交于 2019-12-06 06:26:32
目录 从2-3-4树模型到红黑树实现 前言 2-3-4树 查找 插入 树的生长 删除 左倾红黑树 查找 插入 删除 总结 参考文献 从2-3-4树模型到红黑树实现 前言 红黑树,是一个高效的二叉查找树。其定义特性保证了树的路径长度在黑色节点上完美平衡,使得其查找效率接近于完美平衡的二叉树。 但是红黑树的实现逻辑很复杂,各种旋转,颜色变化,直接针对其分析,大多数都是死记硬背各种例子,不太容易有个直观的理解。实际上,红黑树是实现手段,是其他概念模型为了方便在二叉树上实现进而定义的节点颜色这个信息。如果从概念模型入手,再一一对应,就容易理解的多了。而红黑树能够对应的模型有2-3树,2-3-4树等,下面我们会以2-3-4树作为概念模型,对红黑树进行分析。 2-3-4树 2-3-4树是对完美平衡二叉树的扩展,其定义为: 在一个节点中,可以存在1-3个 key 。 2-节点,拥有1个 key 和2个子节点。 3-节点,拥有2个 key 和3个子节点。 4-节点,拥有3个 key 和4个子节点。 子节点为空的节点称为叶子节点。 任意从根节点到叶子节点的路径拥有相同的长度,即路径上的链接数相同。 下图就是一个2-3-4树: 查找 2-3-4树的查找很简单,类似于二叉树,步骤如下: 将查找 key 和节点内的 key 逐一对比。 如果命中,则返回节点内 key 的对应值。 如果节点内的 key

计算机网络自顶向下方法【八】――链路层_2

匿名 (未验证) 提交于 2019-12-02 23:48:02
  这几周加班很多= =没有太多时间看书,明天也得去加班……只能趁着现在,拿1个多小时出来重点看看Web页面请求的历程这一节了。   请求一个网页背后发生了多少事情,我以前从未想过。   我注意到书里用到了下载网页一词,客户端从服务器下载……把网页下载到本地么,然后浏览器再处理下载下来的东西,记得以前也看过类似说法,然后有次写bug时以为是浏览器渲染太慢了,后来发现是没用回调,数据库没执行完毕的原因……   DHCP、UDP、IP和以太网   首先,没有IP地址就做不了任何事情,所以第一个网络相关动作便是运行DHCP协议,从本地获取一个IP地址及其他信息。   1、操作系统生成DHCP报文,放入具有目的端口的67和源端口68的UDP报文段,该UDP报文段被放置在具有广播IP目的地址和源IP地址中,因为本地还没有一个IP地址   2、包含DHCP请求报文的数据包被放置在以太网帧中,他有目的地MAC地址,把该帧广播到与交换机连接的所有设备里,他的源MAC地址是本地机器的MAC地址。   3、包含DHCP请求的广播以太网帧是第一个发送到以太网交换机的帧,在所有出端口广播入帧。   4、被分解上到达UDP   5、DHCO报文被放入一个UDP报文段中,UDP被放入IP数据报中,IP被放入一个以太网帧中。   6、再由路由器发往交换机,寻址。。   7、初始化好网络组件,准备处理Web网页

计算机网络 自顶向下方法 第七版

六眼飞鱼酱① 提交于 2019-11-28 21:17:56
本书是经典的计算机网络教材之一,采用了作者独创的自顶向下方法来讲授计算机网络的原理及其协议,自16年前第1版出版以来已经被数百所大学和学院选作教材,被译为14种语言。第7版保持了以前版本的特色,继续关注因特网和计算机网络的现代处理方式,注重原理和实践,为计算机 本书是经典的计算机网络教材之一,采用了作者的自顶向下方法来讲授计算机网络的原理及其协议,自16年前dy 版出版以来已经被数百所大学和学院选作教材,被译为14种语言。第7版保持了以前版本的特色,继续关注因特网和计算机网络的现代处理方式,注重原理和实践,为计算机网络教学提供了一种新颖和与时俱进的方法。同时,第7版进行了相当多的修订和更新,改变了各章的组织结构,将网络层分成两章(第4章关注网络层的“数据平面”,第5章关注网络层的“控制平面”),并将网络管理主题放入了新的第5章中。此外,为了反映自第6版以来计算机网络领域的新变化,对其他章节也进行了更新,删除了FTP和分布式散列表的材料,用流行的因特网显式拥塞通告(ECN)材料代替了ATM网络的材料,更新了有关802.11(所谓WiFi)网络和蜂窝网络(包括4G和LTE)的材料,全面修订并增加了新的课后习题,等等。 目录 出版者的话 作译者简介 译者序 前言 第1章 计算机网络和因特网1 1.1 什么是因特网1 1.1.1 具体构成描述1 1.1.2 服务描述4 1.1.3