补基础:自学:计算机科学导论 第六章 计算机网络

6.1 引言

6.1.1 网络标准

1. 性能

2. 可靠性

3. 安全

6.1.2 物理结构

  1. 连接类型
    网络由两个或两个以上通过链路连接的设备构成。
    链路是数据从一个设备传输到另一个设备的通信通道。
    点对点连接:提供了两个设备间的专用链路
    多点连接:两个以上的指定设备共享一个链路
  2. 物理拓扑:指网络在物理上的布置方式。
    两个或多个设备连接到一个链路,一个或多个链路形成拓扑。
    有四种可能的基本结构:网状型、星型、总线型和环形
    网状拓扑中,每个设备都有专用的点对点链路与其他每个设备相连。
    星型拓扑中,每个设备都有专用的点对点链路,只与集线器相连。
    总线拓扑中,使用多点链路,一根长电缆(称之为总线)把网络中所有的设备连接在一起。节点使用分支线和连接头与总线相连。
    环形拓扑中,每个设备都有专用的点对点链路,只与两边的设备相连。信号只以一个方向沿着环从一个设备传输到另一个设备,直到到达目的地。环中的每个设备连接一个中继器。
  优点 缺点
网状拓扑
  • 保证每个连接都能传输它自己的数据负载,消除流量问题。
  • 如果一条链路不能使用,不会影响整个网络
  • 主要缺点与电缆的数量和需要的输入/输出口的数量有关
星型拓扑
  • 容易安装和重构
  • 简化故障隔离
  • 环的断裂会使整个网络不可用
总线拓扑
  • 安装简单
  • 总线电缆的鼓掌或断裂将终止所有的传输
环形拓扑
  • 具网状拓扑其大多数优点
  • 价格低廉
  • 容易安装
  • 可伸缩性好
  • 整个拓扑依赖单个点(集线器),如果集线器停机,整个网络就不工作了

6.1.3 网络分类

  1. 局域网(LAN)
    常常是私有的,连接单个办公室,大楼或校园里的设备。
    LAN是为个人计算机或工作站间的资源共享而设计的。共享的资源包括硬件(如打印机),软件或者数据。
  2. 广域网(WAN)
    提供长距离的数据、图像、音频和视频信息的传输
  3. 城域网(MAN)
    大小介于LAN和WAN之间的网络。通常覆盖一个镇或一个城市。

6.1.4 互联网

网络都是互连在一起的,当两个或多个网络连接在一起时,它们就变成互联网。

6.1.5 因特网

由成千上万个互相连接的网络组成。

6.2 TCP/IP协议族

允许使用不同技术的局域网和广域网互相连接到一起。

TCP/IP协议族通常被定义成5层

应用层    5

传输层    4

网络层    3

数据链路层    2

物理层    1

上图显示了从设备A发送到设备B时涉及的层,可能经过许多路由器,路由器只是用前三层。

6.3 层

6.3.1 应用层:负责向用户提供服务

允许人或软件访问网络。

提供对电子邮件、远程文件访问和传输、浏览万维网等服务的支持。

应用层是唯一一个大多数因特网用户能够看到的层

1. 客户/服务器体系结构

每个应用由两个分开但相关的程序组成:客户端程序和服务器端程序。

服务器端程序需要一直运行。运行此程序的计算机称为服务器

客户端程序只在需要时运行

客户端和服务端程序间的通信称为进程到进程的通信。

2. 应用层地址

当客户需要向服务器发送请求时,它需要服务器应用层的地址。
URL(统一资源定位符)用来标识一个特殊的HTTP站点。

服务器应用层地址不是用来发送消息的,而是帮助客户找到服务器计算机的实际地址。

网络中的每台计算机都有一个称为逻辑地址或IP地址的地址

服务器应用层地址能帮助客户端找到服务器计算机的IP地址。客户端进程应该已经知道DNS(域名服务器)地址。这些服务器都将域名匹配到IP地址的目录。客户端准备和发送消息到DNS服务器,询问它所需要的服务器的实际IP地址。当收到响应之后,客户端服务器就知道了所需服务器的IP地址。

6.3.2 传输层:负责客户和服务器进程间的消息的逻辑传输

建立客户和服务器计算机的传输层的逻辑通信。

1.传输层的地址(端口号)

当消息到达服务器时,它必须被指向正确的进程。同时需要另一个地址来标识服务器进程,称为端口号。类似给某个大楼里的某个人发送消息,需要知道大楼的地址和房间号码。IP地址类似大楼地址,端口号与房间号码类似。

虽然客户端端口号可以由运行客户端进程的计算机临时指定,但是因特网限制了临时端口号的范围,以避免破坏众所周知的端口地址范围。

2. 多路复用和解多路复用

好比住宅小区的门卫,住户可以把邮件交给门卫,门卫把这些邮件交给邮递员(多路复用);门卫把收到的邮件分发给住户(解多路复用)。

传输层使用端口号(与门卫使用的公寓号码相似)完成多路复用和解多路复用。

服务器进程使用众所周知的端口号,而客户端进程使用传输层指定的临时端口号。

3. 拥塞控制

物理上传送数据包的下层网络可能发生交通拥塞。这个可能引起网络丢弃(失去)一些数据包。

有些协议为每隔进程使用缓冲区,消息在发送前存储在缓冲区中。如果传输层检测到网络上有拥塞,就暂缓发送。

4. 流量控制

发送端的传输层能监控接收端的传输层,检查接收者接收到的数据包是否过量。

5. 差错控制

消息的传输过程中,它有可能被损坏、丢失、重复或乱序。传输层的发送负责确保消息被目的传输层正确接收。

传输层可以在缓冲区(临时存储)中保留消息的副本,直到它从接收者那里接收到包无损坏到达和次序正确的确认。

如果在预期时间内没有确认,那么发送者就重新发送数据包。

6. 传输层协议

  1. UDP(用户数据报协议)
    完成多路复用和解多路复用。
    通过给包增加校验和来进行差错控制。接收者会重新计算校验和,如果接收者得出结论这个包被损坏,它会丢掉这个包,而不通知发送者重新发送。
    UDP速度快,效率高,并且会自己完成流量控制或差错控制。
    DNS服务器,处理视频都使用的是UDP
    UDP被称为无连接协议,因为UDP不提供属于单个消息的数据包间的逻辑连接。换句话说,UDP中的每个包都是一个单独的实体,没有序号。好比需要发送一组有次序的包裹到目的地,邮局不能保证这些包裹按次序分发。
  2. TCP(传输控制协议)
    支持传输层所有职责的协议。
    没有UPD快速和高效。
    TCP使用序号、确认号和检验和。
    发送方还使用缓冲区,这种配置提供了多路复用、解多路复用、流量控制、拥塞控制和差错控制
    TCP被称为面向连接的协议,因为它在两个传输层间提供逻辑连接。如果数据包到达的顺序错了或丢失了,将被重新发送。接收端的传输层不把次序错的数据包发送给应用程序,但保留消息中的所有数据包,知道他们以正确的次序被接受。
  3. SCTP(流控制传输协议)
    结合了UDP和TCP的优点。适用于音频和视频的实时传输,同时也提供差错控制和流量控制。

6.3.3 网络层:负责单个数据包从源主机到目的主机的发送

保证每个数据包从源点到最终目的地,它可能跨多个网络。

1. 网络层地址

从客户端到服务器的数据包和从服务器返回的数据包需要网络层地址。服务器的地址由服务器提供,而客户端地址是客户端计算机所知道的。

网络层使用它的路由表找到下一条(路由器)的逻辑地址,把这个地址传递给数据链路层。使用数据链路层需要的这个逻辑地址来找到下一个路由器的数据链路层地址。

2. 路由选择:指雪顶数据包的部分或全部路径

因为因特网是网络(LAN、WAN和MAN)的集合,因此从源到目的地的数据包发送可能是几个发送的组合:

源到路由器的发送、几个路由器到路由器的发送、路由器到目的地的发送。

当一个路由器接收到一个数据包时,它检查路由表,决定这个数据包到最终目的地的最佳路线。路由表提供了下一个路由器的IP地址,当数据包到达下一个路由器时,下一个路由器再做出新的决定。

注意:路由器只是用TCP/IP的前三层

路由器是根据路由选择协议来更新路由表的。此协议向网上的所有路由器发送自己的消息,更新它们关于路由的信息。

路由选择协议有:RIP、OSPF和BGP

3. 网络层协议

TCP/IP支持一个主协议(IP)和几个辅助协议,帮助IP完成职责

  1. IP(因特网协议)
    IPv4负责从源计算机到目的地计算机的数据包发送。全球的计算机和路由器都用32位的IP地址标识,使用点分十进制记法表示。
    在消息的源头,IPv4把源和目的地IP地址加到从应用层传送来的数据包中。
  2. 辅助协议
    ICMP(因特网控制消息协议):用来报告一定数目的差错给源计算机。例如,由于拥堵,路由器丢失一个数据包,ICMP可以发送一个数据包给源计算机,警告它拥堵。
    IGMP(因特网小组管理协议):用来增加IP的多播能力。IP本质上是单播传输的协议,一个源,一个目的地。多播传输是指一个源、多个目的地。
    还有别的辅助协议,如ARP(地址解析协议)和RARP(反向地址解析协议)

6.3.4 数据链路层:负责数据帧的节点到节点的发送

1. 数据链路层地址

一个设备可以静态或动态地找到另一个设备的数据链路层地址。

静态方法中,设备创建具有两列的表,用于存储网络层和数据链路层地址对。

动态方法中,设备可以广播一个含有下一设备IP地址的特定数据包,并用这个IP地址询问邻近节点,邻近节点返回它的数据链路层地址。

数据链路层的地址是不通用的,每个数据链路协议可能使用不同的地址格式和大小。以太网协议使用48位地址,通常被写成十六进制格式,例如: 07:01:02:11:2C:5B。数据链路层地址被称为MAC地址(物理地址或介质访问控制)

2. 差错控制和流量控制(有些数据链路层协议在数据链路层中使用)

方法与传输层相同,但是,它只在节点发出点和节点到达点间实现。差错会被检查多次,但没有一个差错检查覆盖了路由器内部可能发生的差错。

6.3.5 物理层:完成在物理介质上传输二进制流所需要的功能。

负责组成帧的单个二进制位从一个节点到另一个节点的传送。换言之,数据链路层传送的单元是帧,物理层传送的单元式二进制位。帧中的每个位被转化为电磁信号,通过物理介质(无线或电缆)传播。

物理层不需要地址,传播方式是广播。

6.3.6 层的总结

6.4 因特网应用(不作展开)

6.4.1 电子邮件

6.4.2 文件传输协议

6.4.3 远程登录 – TELNET

6.4.4 万维网

6.4.5 其他因特网应用

时间: 2024-10-05 06:16:11

补基础:自学:计算机科学导论 第六章 计算机网络的相关文章

补基础:自学:计算机科学导论 第四章 数据运算

4.1 逻辑运算:指那些应用于模式中的一个二进制位,或在两个模式中相应的两个二进制位的相同基本运算. 4.1.1 位层次上的逻辑运算 0 代表逻辑 假, 1 代表逻辑 真. 4种操作: 非(NOT):只有一个输入 如果输入是0, 则输出为1.反之亦然 应用:对整个模式求反 与(AND)有两个输入 如果输入都是1, 则输出为1.输入中只要有一位是0,则结果为0 应用:把一个位模式的指定位复位(置0).这种情况下,第二个输入称为掩码,掩码中的0位对第一个输入中相应的位进行复位. 或(OR)有两个输入

补基础:自学:计算机科学导论 第五章 计算机组成

计算机的组成部件分为三大类(或子系统): 中央处理器(CPU) 主存储器 输入/输出子系统 5.1 中央处理单元(CPU) 用于数据的运算. CPU又有三个组成部分: 算术逻辑单元(ALU):可对数据进行,逻辑.移位和算数运算 控制单元:控制各个子系统的操作.控制是通过从控制单元发送到其他子系统的信号来进行 寄存器组(快速存储单元):用来临时存放数据的高速独立的存储单元. 1. 数据寄存器     提高运算速度,保存这些运算的中间结果 2. 指令寄存器     CPU从内存中逐条地取出指令,并将

补基础:自学:计算机科学导论 第三章 数据存储 续

3.2.2 存储实数 1. 浮点表示法 该表示法允许小数点浮动,用于维持正确度或精度. 在此表示法中,无论十进制还是二进制,一个数字都由3部分组成: 符号 位移量: 显示小数点应该左右移动构成实际数字的位移量. 定点数:小数点位置固定的定点表示法 例子 3.18 - 3.19 展示了如何使用科学技术法,比如 + 7425000000000000000000.00可表示为 +7.425 * 1021  或者是+7.425E21 例子 3.20 用浮点格式表示数字(10100100000000000

小甲鱼零基础汇编语言学习笔记第六章之包含多个段的程序

在前面的几个章节中,我们的程序都是只有一个代码段,本章我们开始学习如何编写包含多个段的程序. 1.在代码段中使用数据 首先考虑这样一个问题,计算以下8个数据的和,结果存放在ax寄存器中: 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H 在前面的课程中,我们都是累加某些内存单元中的数据,并不关心数据本身,可现在我们要累加就是已经给定了数值的数据. 代码如下: 1 assume cs:codesg 2 codesg segment 3 dw 0123H

《计算机科学导论》第二章课后作业解答(个人版)

1.定义一个数字系统. 数字系统定义了如何用独特的符号表示一个数字.在不同的系统中,数字有不同的表示方法 2.辨析位置化和非位置化数字系统. 位置化数字系统中,数字中符号所占据的位置决定了其表示的值:非位置化数字系统中,符号所占用的位置通过与其值无关——每个符号的值都是固定的. 3.定义位置化数字系统中的底或基数.位置化数字系统中底与符号的数量有什么关系? 底与位置化数字系统中符号所表示的值有关.位置化数字系统中底与符号的数量相同. 4.简述十进制系统.为什么称作decimal?该系统的底是多少

算法导论第六章 堆排序

堆的时间复杂度是建O(n),时间复杂度为堆排序O(NLogN),细节如以下的算法看到: #include <iostream> using namespace std; void swap(int &i,int &j) { int temp=i; i=j; j=temp; } void shiftDown(int *A, int start,int len) { int temp=A[start]; int i=start; int j=2*i+1; while (j<l

《计算机科学导论》第一章课后作业解答(个人版)

1.定义一个基于图灵模型的计算机. 这是一种图灵设想的通用计算设备,所有的计算都可以在这种设备上运行.通过给这种计算机输入数据,计算机中的程序就可以指导计算机来给数据进行处理,处理完后输出结果. 2.定义一个基于冯·诺伊曼模型的计算机. 基于冯·诺伊曼模型的计算机由存储器.算术逻辑单元.控制单元和输入/输出单元组成.存储器用来存储数据和程序:算术逻辑单元用来进行计算和逻辑运算:控制单元对该计算机内的子系统进行控制:输入/输出于从外部接收输入数据和程序以及将计算机的处理结果输出到计算机外部. 3.

算法导论 第六章 思考题 6-1 用插入的方法建堆

BUILD-MAX-HEAP'(A) heap-size[A]<-1 for i <- 2 to length[A] do MAX-HEAP-INSERT(A, A[i]) 如上,题目给出一种使用插入的办法建堆的算法,而书中6.4节给出的建堆算法如下: BUILD-MAX-HEAP(A) heap-size[A] <-- length[A] for i <-- length[A] / 2 downto 1 do MAX-HEAPIFY[A, i] 可以发现元素调整的方向恰好反过来了

算法导论 第六章 思考题 6-3 d叉堆

d叉堆的实现相对于二叉堆变化不大,首先看它如何用数组表示. 考虑一个索引从1开始的数组,一个结点i最多可以有d个子结点,编号从id - (d - 2) 到 id + 1. 从而可以知道一个结点i的父结点计算方法为: (i + d - 2) / d. 第二个问题是 一个含有n个元素的d叉堆的高度,就是一个简单的等比数列的问题,可以知道的是一颗高度为h的满d叉树所含的结点数目为(d^(h +1) - 1) / (d - 1) 从而一颗含有 n个结点的d叉树满足的条件为: ,从而得到高度h为: 接下来