计算机网络概念总结
本文最后更新于729天前,其中的信息可能已经有所发展或是发生改变。

计算机网络基础概念

  1. 主机:计算机网络上任何一种能够连接网络的设备都被称为主机或者说是端系统,比如手机、平板电脑、电视、游戏机、汽车等,随着 5G 的到来,将会有越来越多的终端设备接入网络。
  2. 通信链路:通信链路是由物理链路(同轴电缆、双绞线、光纤灯)连接到一起组成的一种物理通路。
  3. 传输速率:单位是 bit/s ,用来度量不同链路从一个端系统到另一个端系统传输数据的速率。
  4. 分组:当一台端系统向另外一台端系统发送数据时,通常会将数据进行分片,然后为每段加上首部字节,从而形成计算机网络的专业术语:分组。这些分组通过网络发送到端系统,然后再进行数据处理。
  5. 转发表:路由内部记录报文路径的映射关系的一种记录。
  6. 路由器:英文术语 router,路由器是连接因特网中各局域网、广域网的设备。路由器中维护着路由表,数据发送前路由器会查询路由表,然后根据路由表中记录的信息选择最佳传输路径,它是一种网络层的设备。
  7. 交换机:英文术语 switch,是一种光电信号转发设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路,它是一种数据链路层设备。
  8. 集线器:英文术语 hub,它是一种能够将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。它发生在物理层。
图片

交换机和集线器的功能非常相似,交换机具有记忆功能,它广播之后能够缓存目标 Mac,后续的数据包就会直接通过缓存的路径发送,交换机是一种全双工通信模式。而集线器工作的时候,如果局域网中的一台电脑要发送消息,则局域网内的所有电脑都可以接收到这个消息,安全性较差,而且集线器是一种半双工模式。所以现在大多数都是用交换机,集线器慢慢被淘汰了。

  1. 半双工模式:连接在集线器中的端系统每次只能有数据包一个发送,只有这个发送完毕其他电脑才能再发送,这称为半双工模式。
  2. 全双工模式:连接在交换机中的端系统可以彼此之间相互通信,相互发送消息互不影响。
  3. 路径:一个分组所经历一系列通信链路和分组交换机称为通过这个网络的路径。
  4. 因特网服务商:ISP,不是 lsp(lao se pi)。这个好理解,就是网络运营商,我国的三大运营商:移动、电信、联通。
  5. 网络协议:网络协议是计算机网络中进行数据交换而建立的规则、标准或者约定。
  6. IP:网际协议,它规定了路由器和端系统之间发送和接收的分组格式。
  7. TCP/IP 协议簇:不仅仅只有 TCP 协议和 IP 协议,而是以 TCP、IP 协议为主的一系列协议,比如 ICMP 协议、ARP 协议、UDP 协议、DNS 洗衣、SMTP 协议等。
  8. 丢包:在计算机网络中指的是分组出现丢失的现象。
  9. 吞吐量:吞吐量在计算机网络中指的是单位时间内成功传输数据的数量。
  10. 报文:通常指的是应用层的分组。
  11. 报文段:通常把运输层的分组称为报文段。
  12. 数据报:通常将网络层的分组称为数据报。
  13. :一般把链路层的分组称为帧。
  14. 电路交换:是通信网中最早出现的一种交换方式,一般多用于电话网,电路交换的过程中,数据交换是独占信道的,电路交换方式的优点是数据传输可靠、迅速,数据不会丢失,缺点是电路空闲时信道容量容易被浪费。
  15. 报文交换:报文交换是先将整个报文传送到临界点,全部存储下来之后再转发到下一个节点。
  16. 分组交换:分组交换是通信双方以分组为单位、使用存储-转发机制实现数据交互的通信方式,分组交换不会独占信道,从而资源利用率比较高。缺点是时延抖动、开销比较大。
  17. 带宽:带宽指单位时间能通过链路的数据量。通常以 bps 来表示,即每秒可传输的位数。
  18. 频分复用:多用于模拟信号,频分复用的各路信号是并行的。
  19. 时分复用:多用于数字信号,时分复用的各路信号是串行的。
  20. 时延:时延指的是一个报文或者分组从网络的一端传递到另一端所需要的时间,时延分类有发送时延、传播时延、处理时延、排队时延,总时延的计算方式:总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。
  21. 处理时延:检查分组首部和决定分组传输路径所需要的时延被称为处理时延。
  22. 排队时延:分组在链路上等待的时间被称为处理时延。
  23. 传输时延:在实际链路中由一端传到网络从开始发送分组到发送完毕所耗费的时间被称为传输时延,可以理解为推出分组所需要的时间。
  24. 传播时延:分组从一台路由器传播到另一台路由器所需要的时间。
  25. 单播:单播最大的特点就是 1 对 1,早期的固定电话就是单播的一个例子
  26. 广播:我们一般小时候经常会广播体操,这就是广播的一个事例,主机和与他连接的所有端系统相连,主机将信号发送给所有的端系统。
图片

34.多播:多播与广播很类似,也是将消息发送给多个接收主机,不同之处在于多播需要限定在某一组主机作为接收端。

图片

35.任播:任播是在特定的多台主机中选出一个接收端的通信方式。虽然和多播很相似,但是行为与多播不同,任播是从许多目标机群中选出一台最符合网络条件的主机作为目标主机发送消息。然后被选中的特定主机将返回一个单播信号,然后再与目标主机进行通信。

图片

计算机网络应用层

  1. 应用程序体系结构:其实就是应用层程序的两种组织结构,分为 CS 和 P2P。
  2. 客户-服务体系:它是一种面向网络应用的体系结构。把系统中的不同端系统区分为客户和服务器两类,客户向服务器发出服务请求,由服务器完成所请求的服务,并把处理结果回送给客户。在客户-服务器体系结构中,有一个总是打开的主机称为 服务器(Server),它提供来自于 客户(client) 的服务。我们最常见的服务器就是 Web 服务器,Web 服务器服务于来自 浏览器 的请求。
图片

3.P2P 体系:对等体系结构,相当于没有服务器了,大家都是客户机,每个客户既能发送请求,也能对请求作出响应。

图片
  1. 进程:进程其实就是运行在端系统的程序,应用程序进行通信的最基本单位就是进程。
  2. 分布式应用程序:多个端系统之间相互交换数据的端系统被称为分布式应用程序。
  3. 套接字接口:指的就是 socket 接口,这个接口规定了端系统之间通过因特网进行数据交换的方式。
图片
  1. 客户端:在客户-服务器架构中扮演请求方的角色,通常是 PC,智能手机等端系统。
  2. 服务器:在客户-服务器架构中扮演服务方的角色,通常是大型服务器集群扮演服务器的角色。
  3. IP 地址:IP 地址就是网际协议地址,在互联网中唯一标识主机的一种地址。每一台入网的设备都会有一个 IP 地址,这个 IP 又分为内网 IP 和公网 IP。
  4. 端口号:在同一台主机内,端口号用于标识不同应用程序进程。
  5. URI:它的全称是(Uniform Resource Identifier),中文名称是统一资源标识符,使用它就能够唯一地标记互联网上资源。
  6. URL:它的全称是(Uniform Resource Locator),中文名称是统一资源定位符,它实际上是 URI 的一个子集。
  1. HTML:HTML 称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的 Internet 资源连接为一个逻辑整体。HTML 文本是由 HTML 命令组成的描述性文本,HTML 命令可以说明文字,图形、动画、声音、表格、链接等。
  2. Web 页面:Web 页面也叫做 Web Page,它是由对象组成,一个对象(object) 简单来说就是一个文件,这个文件可以是 HTML 文件、一个图片、一段 Java 应用程序等,它们都可以通过 URI 来找到。一个 Web 页面包含了很多对象,Web 页面可以说是对象的集合体。
  3. Web 服务器:Web 服务器的正式名称叫做 Web Server,Web 服务器可以向浏览器等 Web 客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个 Web 服务器是 Apache、 Nginx 、IIS。
  4. CDN:CDN 的全称是Content Delivery Network,即内容分发网络,它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。CDN 是构建在现有网络基础之上的网络,它依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
  5. 专用 CDN:由内容提供商特有 CDN 。
  6. 第三方 CDN:它代表多个内容提供商提供服务。
  7. WAF:WAF 是一种 应用程序防护系统,它是一种通过执行一系列针对 HTTP / HTTPS的安全策略来专门为 Web 应用提供保护的一款产品,它是应用层面的防火墙,专门检测 HTTP 流量,是防护 Web 应用的安全技术。
  8. WebService :WebService 是一种 Web 应用程序,WebService 是一种跨编程语言和跨操作系统平台的远程调用技术
  9. HTTP:TCP/IP 协议簇的一种,它是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
  10. Session:Session 其实就是客户端会话的缓存,主要是为了弥补 HTTP 无状态的特性而设计的。服务器可以利用 Session 存储客户端在同一个会话期间的一些操作记录。当客户端请求服务端时,服务端会为这次请求开辟一块内存空间,这个对象便是 Session 对象,存储结构为 ConcurrentHashMap
  11. Cookie:HTTP 协议中的 Cookie 包括 Web Cookie浏览器 Cookie,它是服务器发送到 Web 浏览器的一小块数据。服务器发送到浏览器的 Cookie,浏览器会进行存储,并与下一个请求一起发送到服务器。通常,它用于判断两个请求是否来自于同一个浏览器,例如用户保持登录状态。
  12. SMTP 协议 :提供电子邮件服务的协议叫做 SMTP 协议, SMTP 在传输层也使用了 TCP 协议。SMTP 协议主要用于系统之间的邮件信息传递,并提供有关来信的通知。
  13. POP3:邮件访问协议,协议较为简单,功能有限。
  14. DNS 协议:由于 IP 地址是计算机能够识别的地址,而我们人类不方便记忆这种地址,所以为了方便人类的记忆,使用 DNS 协议,来把我们容易记忆的网络地址映射称为主机能够识别的 IP 地址。
  1. 根 DNS 服务器:最顶级的 DNS 服务器,全世界有 400 多台根域名服务器,由 13 个不同的组织管理,根域名服务器提供 TLD 服务器的 IP 地址。
  2. 顶级域 DNS 服务器:这个我们比较熟悉,像是常见的顶级域(如 com、org、net、edu 和 gov)和所有的国家顶级域(uk、fr、ca 和 jp),TLD 服务器提供了权威 DNS 服务器的 IP 地址。
  3. 权威 DNS 服务器:这个服务器就是因特网上具有公共可访问主机的 DNS 记录的服务器。
  4. 本地 DNS 服务器:一般来说,每个 ISP 都有一台本地 DNS 服务器,本地 DNS 服务器会临近主机端。
图片
  1. TELNET 协议:远程登陆协议,它允许用户(Telnet 客户端)通过一个协商过程来与一个远程设备进行通信,它为用户提供了在本地计算机上完成远程主机工作的能力。
图片
  1. SSH 协议:SSH 是一种建立在应用层上的安全加密协议。因为 TELNET 有一个非常明显的缺点,那就是在主机和远程主机的发送数据包的过程中是明文传输,未经任何安全加密,这样的后果是容易被互联网上不法分子嗅探到数据包来搞一些坏事,为了数据的安全性,我们一般使用 SSH 进行远程登录。
  2. FTP 协议:文件传输协议,是应用层协议之一。FTP 协议包括两个组成部分,分为 FTP 服务器和 FTP 客户端。其中 FTP 服务器用来存储文件,用户可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。FTP 协议传输效率很高,一般用来传输大文件。
图片
  1. MIME 类型,它表示的是互联网的资源类型,一般类型有 超文本标记语言文本 .html text/html、xml文档 .xml text/xml、普通文本 .txt text/plain、PNG图像 .png image/png、GIF图形 .gif image/gif、JPEG图形 .jpeg,.jpg image/jpeg、AVI 文件 .avi video/x-msvideo 等。
  2. 多路分解:在接收端,运输层会检查源端口号和目的端口号等字段,然后标识出接收的套接字,从而将运输层报文段的数据交付到正确套接字的过程被称为多路分解。
  3. 多路复用:在发送方,从不同的套接字中收集数据块,然后为数据块封装上首部信息从而生成报文段,然后将报文段传递给网络层的过程被称为多路复用。
  4. 周知端口号:在主机的应用程序中,从 0 - 1023 的端口号是受限制的,被称为周知端口号,这些端口号一般不能占用。

计算机网络传输层

  1. 可靠数据传输:确保数据能够从程序的一端准确无误的传递给应用程序的另一端。
  2. 容忍丢失的应用:应用程序在发送数据的过程中可能会存在数据丢失的情况。
  3. 非持续连接:每个请求/响应会对经过不同的连接,每一个连接都会经过建立、保持、销毁这个过程。并且每个请求/响应后都会断开连接。
  4. 持续连接:每个请求/响应都会经过相同的连接,也就是说每个请求/响应都可以复用这个连接,并且在每个请求/响应后不会断开连接。
  5. 传输控制协议:英文名 TCP,通过名称可以大致知道 TCP 协议有控制传输的功能,主要体现在其可控,可靠性。TCP 为应用层提供了一种可靠的、面向连接的服务,它能够将分组可靠的传输到其他主机。
  6. 用户数据包协议:英文名 UDP,它为应用层提供了一种无需建立连接就可以直接发送数据报的方法。
  7. 三次握手:TCP 连接的建立需要经过三个报文段的发送,这种连接的建立过程被称为三次握手。
  8. 最大报文段长度:即 MSS,它指的是从缓存中取出并放入报文段中的最大值。
  9. 最大传输单元:即 MTU,它指的是通信双方能够接收有效载荷的大小,MSS 通常会根据 MTU 来设。
  10. 冗余 ACK:就是再次确认某个报文段的 ACK,报文段的丢失会导致冗余 ACK 的出现。
  11. 快速重传:即在报文段定时器过期之前重传丢失的报文段。
  12. 选择确认:在报文段出现丢失的情况下,TCP 能够选择确认失序的报文段,这个机制通常和重传一起使用。
  13. 拥塞控制:拥塞控制说的是,当某一段时间网络中的分组过多,使得接收端来不及处理,从而引起部分甚至整个网络性能下降的现象时采取的一种抑制发送端发送数据,等过一段时间或者网络情况改善后再继续发送报文段的一种方法。
  14. 四次挥手:TCP 断开链接需要经过四个报文段的发送,这种断开过程是四次挥手。
  15. 发送缓存:英文 send buffer,在发送报文时,TCP 不会立刻将报文发送出去,而是存储到内核的发送缓冲区中,等待合适的时机再发送。
  16. 接收缓存:英文 receive buffer,同样在接收报文时,主机不会立刻对报文进行处理,而是存储到内核的接收缓冲区中,等待合适的时机再进行处理。
  17. 图片
  18. SYN:Synchronize Sequence Numbers,是 TCP/IP 建立连接时发送的数据包,这个数据包就是一个同步序列号,标识客户端发送的是哪个请求。
  19. ACK:Acknowledge character,ACK 是对请求进行响应的数据包。
  20. FIN:Finish ,带有 FIN 标志位的数据包表示客户端希望断开连接。
  21. 三次握手中的状态变化图片
    • LISTEN: 表示等待任何来自远程 TCP 和端口的连接请求。
    • SYN-SEND: 表示发送连接请求后等待匹配的连接请求。
    • SYN-RECEIVED: 表示已接收并发送连接请求后等待连接确认,也就是 TCP 三次握手中第二步后服务端的状态
    • ESTABLISHED: 表示已经连接已经建立,可以将应用数据发送给其他主机
  22. 四次挥手中的状态变化图片
    • FIN-WAIT-1: 表示等待来自远程 TCP 的连接终止请求,或者等待先前发送的连接终止请求的确认。
    • FIN-WAIT-2: 表示等待来自远程 TCP 的连接终止请求。
    • CLOSE-WAIT: 表示等待本地用户的连接终止请求。
    • CLOSING: 表示等待来自远程 TCP 的连接终止请求确认。
    • LAST-ACK: 表示等待先前发送给远程 TCP 的连接终止请求的确认(包括对它的连接终止请求的确认)。
    • TIME-WAIT: 表示等待足够的时间以确保远程 TCP 收到其连接终止请求的确认。
    • CLOSED: 表示连接已经关闭,无连接状态。
  23. 滑动窗口:英文 sliding window,它是一种流量控制技术,在互联网早期,通信双方通常不会考虑网络情况,一般都会直接进行通信,同时发送数据,很容易导致阻塞,谁也发不了数据,针对这种现象,提出了滑动窗口,通过滑动窗口,接收方会告诉发送方自己能够接收多少数据。
  24. 窗口长度:窗口长度指的是已发送但还未确认的分组范围,如下图中的发送窗口结构就是窗口长度。图片
  25. 累积确认:TCP 规定在一段时间内发送方只要收到最后一条接收方返回的确认 ACK ,而不用重传报文段。
  26. 冗余ACK:由于 TCP 采用的是累计确认机制,即当接收端收到比期望序号大的报文段时,便会重复发送最近一次确认的报文段的确认信号,我们称之为冗余 ACK。
  27. 选择确认:可选择性的确认失序报文段,而不是重传最后一个报文段。

计算机网络网络层

  1. 路由选择算法:网络层中决定分组发送路径的一种算法。
  2. 转发:它指的是将分组从一个输入链路转移到合适的输出链路的动作。
  3. 路由选择:指确定分组从一端发送到另一端所选择路径的处理过程。
  4. 三种路由交换技术:内存交换、总线交换、互联网络交换。
  5. 分组调度:分组调度讨论的是分组如何经输出链路传输的问题,主要有三种调度方式:先进先出、优先级排队和"循环和加权公平排队"。
  6. 先入先出:FIFO,或者称为 FCFS,先到达的分组优先进行处理。图片
  7. 优先权排队:priority queue,到达输出链路的分组会被放入优先级队列里面。图片
  8. 循环排队规则:round robin queuing discipline,这种就是循环调度器会在队列进行轮流提供服务。图片
  9. IPv4:网际协议的第四个版本,也是被广泛使用的一个版本。IPv4 是一种无连接的协议,无连接不保证数据的可靠性交付。使用 32 位的地址。
  10. IPv6:网际协议的第六个版本,IPv6 的地址长度是 128 位,由于 IPv4 最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6 的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
  11. 接口:主机和物理链路之间的边界。
  12. ARP 协议:ARP 是一种解决地址问题的协议,通过 IP 位线索,可以定位下一个用来接收数据的网络设备的 MAC 地址。如果目标主机与主机不在同一个链路上时,可以通过 ARP 查找下一跳路由的地址。不过 ARP 只适用于 IPv4 ,不适用于 IPv6。
  13. RARP:RARP 就是将 ARP 协议反过来,通过 MAC 地址定位 IP 地址的一种协议。
  1. 代理 ARP:用于解决 ARP 包被路由器隔离的情况,通过代理 ARP 可以实现将 ARP 请求转发给临近的网段。
  2. ICMP 协议:Internet 报文控制协议,如果在 IP 通信过程中由于某个 IP 包由于某种原因未能到达目标主机,那么将会发送 ICMP 消息,ICMP 实际上是 IP 的一部分。
图片
  1. DHCP 协议:DHCP 是一种动态主机配置协议,又被称为即插即用协议或者零配置协议,使用 DHCP 就能实现自动设置 IP 地址、统一管理 IP 地址分配,实现即插即用。
  2. NAT 协议:网络地址转换协议,它指的是所有本地地址的主机在接入网络时,都会要在 NAT 路由器上讲其转换成为全球 IP 地址,才能和其他主机进行通信。
  3. NAT 转换表:和路由表类似,NAT 转换表记录了私有 IP 地址和公共 IP 地址的转换记录。
  4. NAT 穿越:NAT 穿越用来解决处于使用了 NAT 设备的私有 TCP/IP 网络中主机之间建立连接的问题。
  5. IP 隧道:IP 隧道技术说的是由路由器把网络层协议封装到另一个协议中从而跨过网络传输到另外一个路由器的过程。
  6. OSPF:是根据 OSI 的 IS-IS 协议提出的一种链路状态型协议。这种协议还能够有效的解决网络环路问题。
  7. BGP:边界网关协议,这个协议将因特网中数以千计的 ISP 连接起来。
  8. IGP:内部网关协议,一般用于企业内部自己搭建的路由自治系统。
  9. EGP:外部网关协议,EGP 通常用于在网络主机之间相互交换路由信息。
  10. RIP :一种距离向量型路由协议,广泛应用于 LAN 网。

计算机网络数据链路层和物理层

  1. 节点:一般指链路层协议中的设备。
  2. 链路:一般把沿着通信路径连接相邻节点的通信信道称为链路。
  3. MAC 协议:媒体访问控制协议,它规定了帧在链路上传输的规则。
  4. 奇偶校验位:一种差错检测方式,多用于计算机硬件的错误检测中,奇偶校验通常用在数据通信中来保证数据的有效性。
  5. 向前纠错:接收方检测和纠正差错的能力被称为向前纠错。
  6. 以太网:以太网是一种当今最普遍的局域网技术,它规定了物理层的连线、电子信号和 MAC 协议的内容。
  7. VLAN:虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,所以称为虚拟局域网。
  8. 基站:无线网络的基础设施。
  9. 奇偶校验位:一种进行差错检测的方式。
  10. 向前纠错:接收方检测和纠正差错的能力被称为向前纠错,也就是 FEC。
  11. 校验和:checksum,在数据处理和数据通信领域中,用于校验目的地一组数据项的和。
  12. 循环冗余检测:CRC ,一种现如今正在使用的差错检测技术,使用多项式来进行差错检测。
  13. CSMA/CD:具有碰撞的载波侦听多路访问,CSMA/CD 会要求每个介质提前检查一下链路上是否有可能产生冲突的现象,一旦发生冲突,那么尽可能早地释放信道。
  14. 共享介质型网络:故名思义就是多个设备共同使用同一个通信介质的网络。
  15. 非共享介质型网络:与共享介质型网络相对,这种网络不会使用相同的通信介质。
  16. 令牌环:一种共享介质型网络传输方式。
图片

17.过滤:在链路层是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机的一种功能。

18.转发:转发决定一个帧应该导向那个接口,并把帧移动到那些接口的交换机的一种功能。

19.交换机表:交换机的过滤和转发功能都依靠交换机表来完成。

20.MPLS:它是一种标记交换技术,标记交换会对每个 IP 数据包都设定一个标记,然后根据这个标记进行转发。

计算机网络安全

  1. 安全通信的四大要素:机密性、保温完整性、端点鉴别和运行安全性。
  2. 机密性:报文需要在一定程度上进行加密,用来防止窃听者截取报文。
  3. 报文完整性:在报文传输过程中,需要确保报文的内容不会发生改变。
  4. 端点鉴别:发送方和接收方都应该证实通信过程中所对方的身份。
  5. 运行安全性:设施保护报文防止被攻击的能力。
  6. 明文:没有被加密过的内容都被称为明文。
  7. 加密算法:对原来明文的文件或数据按照某种算法进行处理,这种算法就是加密算法。
  8. 密文:对明文进行加密生成后的报文称为密文。
  9. 解密算法:对密文进行解密的算法。
  10. 密钥:解密算法对密文进行解密的工具叫做密钥。
  11. 对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
  12. 块密码:块密码也叫做分组密码,顾名思义,它把加密和解密序列分成了一个个分组,最后把每一块序列合并到一起,形成明文或者密文。
  13. 流密码:流密码也叫做序列密码,每次加密都通过密钥生成一个密钥流,解密也是使用同一个密钥流,明文与同样长度的密钥流进行异或运算得到密文,密文与同样的密钥流进行异或运算得到明文。
  14. 公钥:公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据
  15. 私钥:私钥通常是公钥的另一半,私钥只有自己知道,可以用来加密或解密。
  16. CA 认证中心,CA 的职责就是使识别和发行证书合法化。
  17. 防火墙:一种软硬件结合体,将机构的内部网络和整个因特网隔离,允许一些分组通过,阻止一些分组通过。
  18. 防火墙一般分为三种:分组过滤器、状态过滤器和应用程序网关。
  19. 分组过滤器:机构将内部网络与外部网络进行隔离,所有离开和进入内部网络的分组都会经过这个路由器,这个路由器会检查每个分组的信息。
  20. 状态分组过滤器:根据分组中的 TCP 连接状态进行过滤。
  21. 应用程序网关:一个应用程序网关是一个特定的应用程序,所有应用程序的数据都会经过它。
  22. 入侵检测系统:观察到潜在恶意流量时能够产生警告的设备称为入侵检测系统
  23. 入侵防止系统:过滤恶意流量的设备称为入侵防止系统。

随着使用计算机人数的不断增加,计算机也经历了一系列的发展,从大型通用计算机 -> 超级计算机 -> 小型机 -> 个人电脑 -> 工作站 -> 便携式电脑 -> 智能手机终端等都是这一过程的产物。计算机网络也逐渐从独立模式演变为了 网络互联模式

图片

可以看到,在独立模式下,每个人都需要排队等待其他人在一个机器上完成工作后,其他用户才能使用。这样的数据是单独管理的。

图片

现在切换到了网络互联模式,在这种模式下,每个人都能独立的使用计算机,甚至还会有一个服务器,来为老大哥、cxuan 和 sonsong 提供服务。这样的数据是集中管理的。

计算机网络按规模进行划分,有 WAN(Wide Area Network, 广域网)LAN(Local area Network, 局域网)。如下图所示

图片

上面是局域网,一般用在狭小区域内的网络,一个社区、一栋楼、办公室经常使用局域网。

图片

距离较远的地方组成的网络一般是广域网。

最初,只是固定的几台计算机相连在一起形成计算机网络。这种网络一般是私有的,这几台计算机之外的计算机无法访问。随着时代的发展,人们开始尝试在私有网络上搭建更大的私有网络,逐渐又发展演变为互联网,现在我们每个人几乎都能够享有互联网带来的便利。

计算机网络发展历程

批处理

就和早期的计算机操作系统一样,最开始都要先经历批处理(atch Processing)阶段,批处理的目的也是为了能让更多的人使用计算机。

批处理就是事先将数据装入卡带或者磁带,并且由计算机按照一定的顺序进行读入。

图片

当时这种计算机的价格比较昂贵,并不是每个人都能够使用的,这也就客观暗示着,只有专门的操作员才能使用计算机,用户把程序提交给操作员,由操作员排队执行程序,等一段时间后,用户再来提取结果。

这种计算机的高效性并没有很好的体现,甚至不如手动运算快。

分时系统

在批处理之后出现的就是分时系统了,分时系统指的是多个终端与同一个计算机连接,允许多个用户同时使用一台计算机。分时系统的出现实现了一人一机的目的,让用户感觉像是自己在使用计算机,实际上这是一种 独占性 的特性。

图片

分时系统出现以来,计算机的可用性得到了极大的改善。分时系统的出现意味着计算机越来越贴近我们的生活。

还有一点需要注意:分时系统的出现促进了像是 BASIC 这种人机交互语言的诞生。

分时系统的出现,同时促进者计算机网络的出现。

计算机通信

在分时系统中,每个终端与计算机相连,这种独占性的方式并不是计算机之间的通信,因为每个人还是在独立的使用计算机。

到了 20 世纪 70 年代,计算机性能有了高速发展,同时体积也变得越来越小,使用计算机的门槛变得更低,越来越多的用户可以使用计算机。

没有一个计算机是信息孤岛促使着计算机网络的出现和发展。

计算机网络的诞生

20 世纪 80 年代,一种能够互连多种计算机的网络随之诞生。它能够让各式各样的计算机相连,从大型的超级计算机或主机到小型电脑。

20 世纪 90 年代,真正实现了一人一机的环境,但是这种环境的搭建仍然价格不菲。与此同时,诸如电子邮件(E-mail)万维网(WWW,World Wide Web) 等信息传播方式如雨后春笋般迎来了前所未有的发展,使得互联网从大到整个公司小到每个家庭内部,都得以广泛普及。

计算机网络的高速发展

现如今,越来越多的终端设备接入互联网,使互联网经历了前所未有的高潮,近年来 3G、4G、5G 通信技术的发展更是互联网高速发展的产物。

许多发展道路各不相同的网络技术也都正在向互联网靠拢。例如,曾经一直作为通信基础设施、支撑通信网络的电话网。随着互联网的发展,其地位也随着时间的推移被 IP(Internet Protocol) 网所取代,IP 也是互联网发展的产物。

图片

网络安全

正如互联网也具有两面性,互联网的出现方便了用户,同时也方便了一些不法分子。互联网的便捷也带来了一些负面影响,计算机病毒的侵害、信息泄漏、网络诈骗层出不穷。

在现实生活中,通常情况下我们挨揍了会予以反击,但是在互联网中,你被不法分子攻击通常情况下是无力还击的,只能防御,因为还击需要你精通计算机和互联网,这通常情况下很多人办不到。

通常情况下公司和企业容易被作为不法分子获利的对象,所以,作为公司或者企业,要想不受攻击或者防御攻击,需要建立安全的互联网连接。

互联网协议

协议这个名词不仅局限于互联网范畴,也体现在日常生活中,比如情侣双方约定好在哪个地点吃饭,这个约定也是一种协议,比如你应聘成功了,企业会和你签订劳动合同,这种双方的雇佣关系也是一种 协议。注意自己一个人对自己的约定不能成为协议,协议的前提条件必须是多人约定。

那么网络协议是什么呢?

网络协议就是网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议

没有网络协议的互联网是混乱的,就和人类社会一样,人不能想怎么样就怎么样,你的行为约束是受到法律的约束的;那么互联网中的端系统也不能自己想发什么发什么,也是需要受到通信协议约束的。

我们一般都了解过 HTTP 协议, HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范

但是互联网又不只有 HTTP 协议,它还有很多其他的比如 IP、TCP、UDP、DNS 协议等。下面是一些协议的汇总和介绍

网络体系结构协议主要用途
TCP/IPHTTP、SMTP、TELNET、IP、ICMP、TCP、UDP 等主要用于互联网、局域网
IPX/SPXIPX、NPC、SPX主要用于个人电脑局域网
AppleTalkAEP、ADP、DDP苹果公司现有产品互联

ISO 在制定标准化的 OSI 之前,对网络体系结构相关的问题进行了充分的探讨,最终提出了作为通信协议设计指标的 OSI 参考模型。这一模型将通信协议中必要的功能分为了 7 层。通过这 7 层分层,使那些比较复杂的协议简单化。

图片

在 OSI 标准模型中,每一层协议都接收由它下一层所提供的特定服务,并且负责为上一层提供服务,上层协议和下层协议之间通常会开放 接口,同一层之间的交互所遵守的约定叫做 协议

OSI 标准模型

上图只是简单的介绍了一下层与层之间的通信规范和上层与下层的通信规范,并未介绍具体的网络协议分层,实际上,OSI 标准模型将复杂的协议整理并分为了易于理解的 7 层。如下图所示

图片

互联网的通信协议都对应了 7 层中的某一层,通过这一点,可以了解协议在整个网络模型中的作用,一般来说,各个分层的主要作用如下

图片
  • 应用层:应用层是 OSI 标准模型的最顶层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。包括文件传输、电子邮件远程登录和远端接口调用等协议。
  • 表示层: 表示层向上对应用进程服务,向下接收会话层提供的服务,表示层位于 OSI 标准模型的第六层,表示层的主要作用就是将设备的固有数据格式转换为网络标准传输格式。
  • 会话层:会话层位于 OSI 标准模型的第五层,它是建立在传输层之上,利用传输层提供的服务建立和维持会话。
  • 传输层:传输层位于 OSI 标准模型的第四层,它在整个 OSI 标准模型中起到了至关重要的作用。传输层涉及到两个节点之间的数据传输,向上层提供可靠的数据传输服务。传输层的服务一般要经历传输连接建立阶段,数据传输阶段,传输连接释放阶段 3 个阶段才算完成一个完整的服务过程。
  • 网络层:网络层位于 OSI 标准模型的第三层,它位于传输层和数据链路层的中间,将数据设法从源端经过若干个中间节点传送到另一端,从而向运输层提供最基本的端到端的数据传送服务。
  • 数据链路层:数据链路层位于物理层和网络层中间,数据链路层定义了在单个链路上如何传输数据。
  • 物理层:物理层是 OSI 标准模型中最低的一层,物理层是整个 OSI 协议的基础,就如同房屋的地基一样,物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。

TCP/IP 协议簇

TCP/IP 协议是我们程序员接触最多的协议,实际上,TCP/IP 又被称为 TCP/IP 协议簇,它并不特指单纯的 TCP 和 IP 协议,而是容纳了许许多多的网络协议。

OSI 模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次

图片

和 OSI 七层网络协议的主要区别如下

  • 应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在 TCP/IP 协议中,它们被合并为应用层一个层次。
  • 由于数据链路层和物理层的内容很相似,所以在 TCP/IP 协议中它们被归并在网络接口层一个层次里。

我们的主要研究对象就是 TCP/IP 的四层协议。

下面 cxuan 和你聊一聊 TCP/IP 协议簇中都有哪些具体的协议

IP 协议

IP 是 互联网协议(Internet Protocol) ,位于网络层。IP是整个 TCP/IP 协议族的核心,也是构成互联网的基础。IP 能够为运输层提供数据分发,同时也能够组装数据供运输层使用。它将多个单个网络连接成为一个互联网,这样能够提高网络的可扩展性,实现大规模的网络互联。二是分割顶层网络和底层网络之间的耦合关系。

ICMP 协议

ICMP 协议是 Internet Control Message Protocol, ICMP 协议主要用于在 IP 主机、路由器之间传递控制消息。ICMP 属于网络层的协议,当遇到 IP 无法访问目标、IP 路由器无法按照当前传输速率转发数据包时,会自动发送 ICMP 消息,从这个角度来说,ICMP 协议可以看作是 错误侦测与回报机制,让我们检查网络状况、也能够确保连线的准确性。

ARP 协议

ARP 协议是 地址解析协议,即 Address Resolution Protocol,它能够根据 IP 地址获取物理地址。主机发送信息时会将包含目标 IP 的 ARP 请求广播到局域网络上的所有主机,并接受返回消息,以此来确定物理地址。收到消息后的物理地址和 IP 地址会在 ARP 中缓存一段时间,下次查询的时候直接从 ARP 中查询即可。

TCP 协议

TCP 就是 传输控制协议,也就是 Transmission Control Protocol,它是一种面向连接的、可靠的、基于字节流的传输协议,TCP 协议位于传输层,TCP 协议是 TCP/IP 协议簇中的核心协议,它最大的特点就是提供可靠的数据交付。

TCP 的主要特点有 慢启动、拥塞控制、快速重传、可恢复

UDP 协议

UDP 协议就是 用户数据报协议,也就是 User Datagram Protocol,UDP 也是一种传输层的协议,与 TCP 相比,UDP 提供一种不可靠的数据交付,也就是说,UDP 协议不保证数据是否到达目标节点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP 是一种无连接的协议,传输数据之前源端和终端无需建立连接,不对数据报进行检查与修改,无须等待对方的应答,会出现分组丢失、重复、乱序等现象。但是 UDP 具有较好的实时性,工作效率较 TCP 协议高。

FTP 协议

FTP 协议是 文件传输协议,英文全称是 File Transfer Protocol,应用层协议之一,是 TCP/IP 协议的重要组成之一,FTP 协议分为服务器和客户端两部分,FTP 服务器用来存储文件,FTP 客户端用来访问 FTP 服务器上的文件,FTP 的传输效率比较高,所以一般使用 FTP 来传输大文件。

DNS 协议

DNS 协议是 域名系统协议,英文全称是 Domain Name System,它也是应用层的协议之一,DNS 协议是一个将域名和 IP 相互映射的分布式数据库系统。DNS 缓存能够加快网络资源的访问。

SMTP 协议

SMTP 协议是 简单邮件传输协议,英文全称是 Simple Mail Transfer Protocol,应用层协议之一,SMTP 主要是用作邮件收发协议,SMTP 服务器是遵循 SMTP 协议的发送邮件服务器,用来发送或中转用户发出的电子邮件

SLIP 协议

SLIP 协议是指串行线路网际协议(Serial Line Internet Protocol),是在串行通信线路上支持 TCP/IP 协议的一种点对点(Point-to-Point)式的链路层通信协议。

PPP 协议

PPP 协议是 Point to Point Protocol,即点对点协议,是一种链路层协议,是在为同等单元之间传输数据包而设计的。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

网络核心概念

传输方式

网络根据传输方式可以进行分类,一般分成两种 面向连接型和面向无连接型

  • 面向连接型中,在发送数据之前,需要在主机之间建立一条通信线路。
  • 面向无连接型则不要求建立和断开连接,发送方可用于任何时候发送数据。接收端也不知道自己何时从哪里接收到数据。

分组交换

在互联网应用中,每个终端系统都可以彼此交换信息,这种信息也被称为 报文(Message),报文是一个集大成者,它可以包括你想要的任何东西,比如文字、数据、电子邮件、音频、视频等。为了从源目的地向端系统发送报文,需要把长报文切分为一个个小的数据块,这种数据块称为分组(Packets),也就是说,报文是由一个个小块的分组组成。在端系统和目的地之间,每个分组都要经过通信链路(communication links)分组交换机(switch packets) ,分组要在端系统之间交互需要经过一定的时间,如果两个端系统之间需要交互的分组为 L 比特,链路的传输速率为 R 比特/秒,那么传输时间就是 L / R秒。

一个端系统需要经过交换机给其他端系统发送分组,当分组到达交换机时,交换机就能够直接进行转发吗?不是的,交换机可没有这么无私,你想让我帮你转发分组?好,首先你需要先把整个分组数据都给我,我再考虑给你发送的问题,这就是存储转发传输

存储转发传输

存储转发传输指的就是交换机在转发分组的第一个比特前,必须要接受到整个分组,下面是一个存储转发传输的示意图,可以从图中窥出端倪

图片

由图可以看出,分组 1、2、3 向交换器进行分组传输,并且交换机已经收到了分组1 发送的比特,此时交换机会直接进行转发吗?答案是不会的,交换机会把你的分组先缓存在本地。这就和考试作弊一样,一个学霸要经过学渣 A 给学渣 B 传答案,学渣 A 说,学渣 A 在收到答案后,它可能直接把卷子传过去吗?学渣A 说,等我先把答案抄完(保存功能)后再把卷子给你。

排队时延和分组丢失

什么?你认为交换机只能和一条通信链路进行相连?那你就大错特错了,这可是交换机啊,怎么可能只有一条通信链路呢?

所以我相信你一定能想到这个问题,多个端系统同时给交换器发送分组,一定存在顺序到达排队的问题。事实上,对于每条相连的链路,该分组交换机会有一个输出缓存(output buffer)输出队列(output queue) 与之对应,它用于存储路由器准备发往每条链路的分组。如果到达的分组发现路由器正在接收其他分组,那么新到达的分组就会在输出队列中进行排队,这种等待分组转发所耗费的时间也被称为 排队时延,上面提到分组交换器在转发分组时会进行等待,这种等待被称为 存储转发时延,所以我们现在了解到的有两种时延,但是其实是有四种时延。这些时延不是一成不变的,其变化程序取决于网络的拥塞程度。

因为队列是有容量限制的,当多条链路同时发送分组导致输出缓存无法接受超额的分组后,这些分组会丢失,这种情况被称为 丢包(packet loss),到达的分组或者已排队的分组将会被丢弃。

下图说明了一个简单的分组交换网络

图片

在上图中,分组由三位数据平板展示,平板的宽度表示着分组数据的大小。所有的分组都有相同的宽度,因此也就有相同的数据包大小。下面来一个情景模拟: 假定主机 A 和 主机 B 要向主机 E 发送分组,主机 A 和 B 首先通过100 Mbps以太网链路将其数据包发送到第一台路由器,然后路由器将这些数据包定向到15 Mbps 的链路。如果在较短的时间间隔内,数据包到达路由器的速率(转换为每秒比特数)超过15 Mbps,则在数据包在链路输出缓冲区中排队之前,路由器上会发生拥塞,然后再传输到链路上。例如,如果主机 A 和主机 B 背靠背同时发了5包数据,那么这些数据包中的大多数将花费一些时间在队列中等待。实际上,这种情况与许多普通情况完全相似,例如,当我们排队等候银行出纳员或在收费站前等候时。

转发表和路由器选择协议

我们刚刚讲过,路由器和多个通信线路进行相连,如果每条通信链路同时发送分组的话,可能会造成排队和丢包的情况,然后分组在队列中等待发送,现在我就有一个问题问你,队列中的分组发向哪里?这是由什么机制决定的?

换个角度想问题,路由的作用是什么?把不同端系统中的数据包进行存储和转发 。在因特网中,每个端系统都会有一个 IP 地址,当原主机发送一个分组时,在分组的首部都会加上原主机的 IP 地址。每一台路由器都会有一个 转发表(forwarding table),当一个分组到达路由器后,路由器会检查分组的目的地址的一部分,并用目的地址搜索转发表,以找出适当的传送链路,然后映射成为输出链路进行转发。

那么问题来了,路由器内部是怎样设置转发表的呢?详细的我们后面会讲到,这里只是说个大概,路由器内部也是具有路由选择协议的,用于自动设置转发表。

电路交换

在计算机网络中,另一种通过网络链路和路由进行数据传输的另外一种方式就是 电路交换(circuit switching)。电路交换在资源预留上与分组交换不同,什么意思呢?就是分组交换不会预留每次端系统之间交互分组的缓存和链路传输速率,所以每次都会进行排队传输;而电路交换会预留这些信息。一个简单的例子帮助你理解:这就好比有两家餐馆,餐馆 A 需要预定而餐馆 B 不需要预定,对于可以预定的餐馆 A,我们必须先提前与其进行联系,但是当我们到达目的地时,我们能够立刻入座并选菜。而对于不需要预定的那家餐馆来说,你可能不需要提前联系,但是你必须承受到达目的地后需要排队的风险。

下面显示了一个电路交换网络

图片

在这个网络中,4条链路用于4台电路交换机。这些链路中的每一条都有4条电路,因此每条链路能支持4条并行的链接。每台主机都与一台交换机直接相连,当两台主机需要通信时,该网络在两台主机之间创建一条专用的 端到端的链接(end-to-end connection)

分组交换和电路交换的对比

分组交换的支持者经常说分组交换不适合实时服务,因为它的端到端时延时不可预测的。而分组交换的支持者却认为分组交换提供了比电路交换更好的带宽共享;它比电路交换更加简单、更有效,实现成本更低。但是现在的趋势更多的是朝着分组交换的方向发展。

分组交换网的时延、丢包和吞吐量

因特网可以看成是一种基础设施,该基础设施为运行在端系统上的分布式应用提供服务。我们希望在计算机网络中任意两个端系统之间传递数据都不会造成数据丢失,然而这是一个极高的目标,实践中难以达到。所以,在实践中必须要限制端系统之间的 吞吐量 用来控制数据丢失。如果在端系统之间引入时延,也不能保证不会丢失分组问题。所以我们从时延、丢包和吞吐量三个层面来看一下计算机网络

分组交换中的时延

计算机网络中的分组从一台主机(源)出发,经过一系列路由器传输,在另一个端系统中结束它的历程。在这整个传输历程中,分组会涉及到四种最主要的时延:节点处理时延(nodal processing delay)、排队时延(queuing delay)、传输时延(total nodal delay)和传播时延(propagation delay)。这四种时延加起来就是 节点总时延(total nodal delay)

如果用 dproc dqueue dtrans dpop 分别表示处理时延、排队时延、传输时延和传播时延,则节点的总时延由以下公式决定: dnodal = dproc + dqueue + dtrans + dpop。

时延的类型

下面是一副典型的时延分布图,让我们从图中进行分析一下不同的时延类型

图片

分组由端系统经过通信链路传输到路由器 A,路由器A 检查分组头部以映射出适当的传输链路,并将分组送入该链路。仅当该链路没有其他分组正在传输并且没有其他分组排在该该分组前面时,才能在这条链路上自由的传输该分组。如果该链路当前繁忙或者已经有其他分组排在该分组前面时,新到达的分组将会加入排队。下面我们分开讨论一下这四种时延

节点处理时延

节点处理时延分为两部分,第一部分是路由器会检查分组的首部信息;第二部分是决定将分组传输到哪条通信链路所需要的时间。一般高速网络的节点处理时延都在微妙级和更低的数量级。在这种处理时延完成后,分组会发往路由器的转发队列中

排队时延

在队列排队转发过程中,分组需要在队列中等待发送,分组在等待发送过程中消耗的时间被称为排队时延。排队时延的长短取决于先于该分组到达正在队列中排队的分组数量。如果该队列是空的,并且当前没有正在传输的分组,那么该分组的排队时延就是 0。如果处于网络高发时段,那么链路中传输的分组比较多,那么分组的排队时延将延长。实际的排队时延也可以到达微秒级。

传输时延

队列 是路由器所用的主要的数据结构。队列的特征就是先进先出,先到达食堂的先打饭。传输时延是理论情况下单位时间内的传输比特所消耗的时间。比如分组的长度是 L 比特,R 表示从路由器 A 到路由器 B 的传输速率。那么传输时延就是 L / R 。这是将所有分组推向该链路所需要的时间。真实情况下传输时延通常也在毫秒到微妙级

传播时延

从链路的起点到路由器 B 传播所需要的时间就是 传播时延。该比特以该链路的传播速率传播。该传播速率取决于链路的物理介质(双绞线、同轴电缆、光纤)。如果用公式来计算一下的话,该传播时延等于两台路由器之间的距离 / 传播速率。即传播速率是 d/s ,其中 d 是路由器 A 和 路由器 B 之间的距离,s 是该链路的传播速率。

传输时延和传播时延的比较

计算机网络中的传输时延和传播时延有时候难以区分,在这里解释一下,传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。而传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的倒数,而与分组长度和链路传输速率无关。从公式也可以看出来,传输时延是 L/R,也就是分组的长度 / 路由器之间传输速率。传播时延的公式是 d/s,也就是路由器之间的距离 / 传播速率。

排队时延

在这四种时延中,人们最感兴趣的时延或许就是排队时延了 dqueue。与其他三种时延(dproc、dtrans、dpop)不同的是,排队时延对不同的分组可能是不同的。例如,如果10个分组同时到达某个队列,第一个到达队列的分组没有排队时延,而最后到达的分组却要经受最大的排队时延(需要等待其他九个时延被传输)。

那么如何描述排队时延呢?或许可以从三个方面来考虑:流量到达队列的速率、链路的传输速率和到达流量的性质。即流量是周期性到达还是突发性到达,如果用 a 表示分组到达队列的平均速率( a 的单位是分组/秒,即 pkt/s)前面说过 R 表示的是传输速率,所以能够从队列中推出比特的速率(以 bps 即 b/s 位单位)。假设所有的分组都是由 L 比特组成的,那么比特到达队列的平均速率是 La bps。那么比率 La/R 被称为流量强度(traffic intensity),如果 La/R > 1,则比特到达队列的平均速率超过从队列传输出去的速率,这种情况下队列趋向于无限增加。所以,设计系统时流量强度不能大于1

现在考虑 La / R <= 1 时的情况。流量到达的性质将影响排队时延。如果流量是周期性到达的,即每 L / R 秒到达一个分组,则每个分组将到达一个空队列中,不会有排队时延。如果流量是 突发性 到达的,则可能会有很大的平均排队时延。一般可以用下面这幅图表示平均排队时延与流量强度的关系

横轴是 La/R 流量强度,纵轴是平均排队时延。

丢包

我们在上述的讨论过程中描绘了一个公式那就是 La/R 不能大于1,如果 La/R 大于1,那么到达的排队将会无穷大,而且路由器中的排队队列所容纳的分组是有限的,所以等到路由器队列堆满后,新到达的分组就无法被容纳,导致路由器 丢弃(drop) 该分组,即分组会 丢失(lost)

计算机网络中的吞吐量

除了丢包和时延外,衡量计算机另一个至关重要的性能测度是端到端的吞吐量。假如从主机 A 向主机 B 传送一个大文件,那么在任何时刻主机 B 接收到该文件的速率就是 瞬时吞吐量(instantaneous throughput)。如果该文件由 F 比特组成,主机 B 接收到所有 F 比特用去 T 秒,则文件的传送平均吞吐量(average throughput) 是 F / T bps。

单播、广播、多播和任播

在网络通信中,可以根据目标地址的数量对通信进行分类,可以分为 单播、广播、多播和任播

单播(Unicast)

单播最大的特点就是 1 对 1,早期的固定电话就是单播的一个例子,单播示意图如下

图片

广播(Broadcast)

我们一般小时候经常会跳广播体操,这就是广播的一个事例,主机和与他连接的所有端系统相连,主机将信号发送给所有的端系统。

多播(Multicast)

多播与广播很类似,也是将消息发送给多个接收主机,不同之处在于多播需要限定在某一组主机作为接收端。

任播(Anycast)

任播是在特定的多台主机中选出一个接收端的通信方式。虽然和多播很相似,但是行为与多播不同,任播是从许多目标机群中选出一台最符合网络条件的主机作为目标主机发送消息。然后被选中的特定主机将返回一个单播信号,然后再与目标主机进行通信。

图片

物理媒介

网络的传输是需要介质的。一个比特数据包从一个端系统开始传输,经过一系列的链路和路由器,从而到达另外一个端系统。这个比特会被转发了很多次,那么这个比特经过传输的过程所跨越的媒介就被称为物理媒介(phhysical medium),物理媒介有很多种,比如双绞铜线、同轴电缆、多模光纤榄、陆地无线电频谱和卫星无线电频谱。其实大致分为两种:引导性媒介和非引导性媒介。

双绞铜线

最便宜且最常用的引导性传输媒介就是双绞铜线,多年以来,它一直应用于电话网。从电话机到本地电话交换机的连线超过 99% 都是使用的双绞铜线,例如下面就是双绞铜线的实物图

图片

双绞铜线由两根绝缘的铜线组成,每根大约 1cm 粗,以规则的螺旋形状排列,通常许多双绞线捆扎在一起形成电缆,并在双绞线的外面套上保护层。一对电缆构成了一个通信链路。无屏蔽双绞线一般常用在局域网(LAN)中。

同轴电缆

与双绞线类似,同轴电缆也是由两个铜导体组成,下面是实物图

借助于这种结构以及特殊的绝缘体和保护层,同轴电缆能够达到较高的传输速率,同轴电缆普遍应用在在电缆电视系统中。同轴电缆常被用户引导型共享媒介。

光纤

光纤是一种细而柔软的、能够引导光脉冲的媒介,每个脉冲表示一个比特。一根光纤能够支持极高的比特率,高达数十甚至数百 Gbps。它们不受电磁干扰。光纤是一种引导型物理媒介,下面是光纤的实物图

图片

一般长途电话网络全面使用光纤,光纤也广泛应用于因特网的主干。

陆地无线电信道

无线电信道承载电磁频谱中的信号。它不需要安装物理线路,并具有穿透墙壁、提供与移动用户的连接以及长距离承载信号的能力。

卫星无线电信道

一颗卫星电信道连接地球上的两个或多个微博发射器/接收器,它们称为地面站。通信中经常使用两类卫星:同步卫星和近地卫星。

点击数:10

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇