计算机网络概述

什么是计算机网络

计算机网络(computer network)是自主计算机的互连集合。(ANDREW S. TANENBAUM)

计算机网络是利用通信设备和线路将地理位置不同的、功 能独立的多个计算机系统***连接***起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统。 简单来说就是连接两台或多台计算机进行通信的系统。(维基百科)

直接连接的网络

点到点网络 (point-to-point network)

  • 单向(simplex):通信线路上的数据按单一方向传送
  • 半双工(half duplex):一段时间内只有一边向另一边传送,如对讲机
  • 全双工(full duplex):接收数据的同时也能传送数据,如电话

多路访问网络 (multiple access network)

  • 单播(unicast):每个时刻一个站点发送一个站点接收的通信方式
  • 多播(multicast):一对多的通信方式
  • 广播(broadcast):一对所有的通信方式

点到点网络: 1

多路访问网络: 2

3 四个,ABE 共享链路为一个直连网,BC 点到点连接为一个直连网,CDF 共享链路为一个,FG 点到点连接为一个,共四个直连网。

间接连接的网络

  • 中间节点、路由器(router)
  • 包(packet)
  • 存储转发(store-and-forward)
  • 路由选择(routing)
  • 路由(route)
  • 目的地(destination),下一跳(next hop)
  • 路由表(routing table)

网络互连

用路由器(或网关)连接起来构成的网络称为互连网络(internetwork 或 internet)。因特网 (Internet) 是一种互连网络。

flowchart TB
路由器---网络1
路由器---网络2
路由器---网络3
  • 系统域网(System Area Network, SAN)
  • 局域网(Local Area Network, LAN):一般限定在较小的区域内(小于 10km 的范围),通常采用有线的方法连接起来。实验室一般采用局域网的连网方式。
  • 城域网(Metropolitan Area Network, MAN):规模局限在一座城市的范围内。
  • 广域网(Wide Area Network, WAN):网络跨越国界、洲界,甚至遍及全球范围。因特网属于广域网 WAN。

  • 个人区域网(PAN):一般指家庭一台或多台电脑所使用的网络。
  • 无线局域网(WLAN):是指通过无线设备建立的,给支持无线通信的设备使用的,比如无线网卡,或手机上的 WIFI。

什么是因特网

ISP ( Internet Service Provider),即因特网服务提供商。顶层 ISP 也称为主干网。第 2 层 ISP 是更小的 ISP(常常是区域 ISP),是顶层 ISP 的客户,可 以连到顶层 ISP 或其它第 2 层 ISP。终端系统可以通过第 2 层 ISP 或本地 ISP 网络(接入网络)连 入互联网。

  • 终端系统(end system):主机
    • 运行网络应用程序 (例如,浏览器)
  • 通信链路(communication link)
    • 光纤, 铜线, 无线电, 卫星
    • 传输速率=带宽
  • 路由器(router)

  • network core – 主干网
  • access network – 接入网
  • network edge – 网络边界(主机及网络程序)

网络提供的服务

数据链路层一般都提供 3 种基本服务,即无确认的无连接服务、有确认的无连接服务、有确认的面向连接的服务。

  • 无确认的无连接服务 无确认的无连接服务是源机器向目的机器发送独立的帧,而目的机器对收到的帧不作确认。如果由于线路上的噪声而造成帧丢失,数据链路层不作努力去恢复它,恢复工作留给上层去完成。这类服务适用于误码率很低的情况,也适用于像语音之类的实时传输,实时传输情况下有时数据延误比数据损坏影响更严重。大多数局域网在数据链路层都使用无确认的无连接服务。
  • 有确认的无连接服务 这种服务仍然不建立连接,但是所发送的每一帧都进行单独确认。以这种方式,发送方就会知道帧是否正确地到达。如果在某个确定的时间间隔内,帧没有到达,就必须重新发此帧。
  • 有确认的面向连接的服务 采用这种服务,源机器和目的机器在传递任何数据之前,先建立一条连接。在这条连接上所发送的每一帧都被编上号,数据链路层保证所发送的每一帧都确实已收到。而且,它保证每帧只收到一次,所有的帧都是按正确顺序收到的。面向连接的服务为网络进程间提供了可靠地传送比特流的服务。

可靠的服务包括:

  • 文件传输
  • 浏览网页
  • 电子邮件
  • 电子商务

不可靠的服务包括:

  • 视频直播
  • IP 电话
  • 网络会议

面向连接的服务,无连接的服务

有确认的服务,无确认的服务 在有确认的服务中,作为对请求原语的反应,接收方要发出一个明确的响应原语。

数据报服务:无连接无确认

请求响应和消息流服务

下面的电信模式分别使用的服务类型:

普通邮件:无连接无确认的服务(尽力服务) 电话:面向连接的服务 快件:无连接有确认的服务

因特网体系结构

  • 应用层:提供对某些专门应用的支持,如文件服务(ftp),邮件(smtp),网页(http)
  • 传输层:进程之间的数据传送(端到端,end-to-end),如 TCP,UDP
  • 网络层:路由选择,实现到互连网中的数据传送(主机到主机,host-to-host),如 IP,routing protocols
  • 数据链路层:在物理网络中传送包(跳到跳,hop-to-hop 节点到节点 node-to-node),ppp,Ethernet
  • 物理层:线上的比特(传送原始比特流)

4 5 6

  • 每一层都可以有多个协议,每个协议都可以使用下层提供的服务并为上层提供服务。
  • 同一个互连网络中要求网络层协议相同而链路层协议可以不同
  • 应用层对应消息 message
  • 传输层对应数据段 segment
  • 网络层对应数据报 datagram
  • 链路层对应帧 frame 然后将 source 封装起来,从一个主机经过网络层从高到低发送出去,到达另外一个主机,由低到高到达应用层。

ISO/OSI 参考模型

一般网络体系结构(OSI 参考模型)将网络协议分为七层;TCP/IP 体系结构将网络协议分为五层。因特网没有这两层,如果需要,可以在应用程序中实现。

  • 表示层(presentation): 提供数据转换服务, 例如,加密解密,压缩解压缩,数据 格式变换
  • 会话层(session): 简化会话实现机制,例如,数据流的检查点设置和回滚以及多 数据流同步。

网络性能分析:延迟和丢包

7

当一个包到达时如果有空闲缓存则排队等待转发,产生延迟(delay)。如果没有空闲缓存,则丢弃该包,造成丢失 (loss)

包交换(packet-switching)中的延迟

节点延迟:d(nodal) = d(proc) + d(queue) + d(trans) + d(prop)

  1. 处理延迟(processing)
    • 检查比特错
    • 确定输出链路
  2. 排队延迟(queueing)
    • 在输出链路队列等待发送
    • 依赖于路由器的拥塞程度
  3. 传输延迟(transmission delay)
    • 包长(bits)/链路带宽(bps),也称为发送延迟
  4. 传播延迟(propagation delay)
    • 物理链路长度/信号传播速度(~2*10^8m/sec)9

带宽和吞吐量

  • 带宽(bandwidth):一条链路可达到的最大数据传送速率(bits per second,bps)
  • 吞吐量(throughput):发送者和接收者之间的数据传送速率(bps)
    • 瞬时吞吐量:某个时刻的数据速率
    • 平均吞吐量:在某个较长时期的数据速率

注:一条链路的带宽(bandwidth)一定大于等于其吞吐量(throughput)

例题

一条点到点链路长 200 公里,传播速度为 2×10^8 米/秒。如果发送一个 100 字节的包, 以多少带宽(bps)它的传播延迟(propagation delay)会等于其传输延迟(transmit delay)?(只 写最后结果,单位为 Kbps)

8 * 100 / X(bps) = 200*1000/(2×10^8)= 1 / 1000
X = 800000bps = 800Kbps

一条点到点链路长 200 公里,传播速度为 2×10^8 米/秒,带宽为 100Mbps。发送一个 20000 比特的包通过该链路需要多长时间(ms)?  考虑从第一位发送到收到最后一位的时间。

200000/200000000+20000/100000000=1ms+0.2ms = 1.2ms

如果一个长度为 3000 字节的文件用一个数据包从源主机通过一段链路传给了一个交换 机(采用 store-and-forward 方式),然后再通过第二段链路到达目的主机。如果在包交换 机的延迟为 2ms,  两条链路上的传播延迟都是 2×10^8 米/秒,带宽都是 1Mbps,  长度都是 6,000 公里。问这个文件在这两台主机之间的总延迟是多少?

在源主机发出和交换机发出之后,均包括传输延迟和传播延迟,所以需要*2,结果为 110ms。

(存储转发方式:收到整个包再发送)

假定 12 个包同时到达包交换机的输出接口,此时并没有任何包在此输出接口处发送或 排队。如果每个数据包的长度都是 300 字节,该接口的带宽为 1Mbps。这些数据包的平 均排队延迟是多少?

每个包的发送时间为 300bytes/1Mbps,即 2.4ms。

第一个排队时间为 0,第二个包的排队时间为 12.4ms,…,第 12 包的排 队时间为 112.4ms。

因此,平均排队时间为: (0+……+11)2.4/12 =662.4ms/12=13.2ms