【笔记】《计算机网络 自顶向下方法》第一章 计算机网络和因特网
计算机网络的定义:将分布在不同地理位置上的具有独立工作能力的计算机、终端及其附属设备用通信设备和通信线路连接起来,并配置网络软件,以实现计算机资源共享的系统。
1.1 什么是因特网
具体构成描述
基本硬件和软件组成角度:Internet 互联了众多称作主机或者终端系统的设备,他们被认为位于网络边缘,主机又可分为客户机(client)和服务器(server)。
这些设备通过通信链路(也就是物理线缆)连接,链路中间还有分组交换机。主机之间交换数据时将数据分组发送,并通过分组交换机分配包数据。
常见的分组交换机有路由器和链路层交换机。主机通过ISP(Internet 服务提供商)接入Internet 。所有Internet 通讯必须遵循一定的协议。其规范称作互联网标准。
服务描述
Internet是提供这么一些服务的计算机网络:允许离散的应用在终端上交换数据,比如下载软件和浏览器等等。
他还为这些应用提供两种服务:面向连接的服务(TCP)以及无连接的无依赖性服务(UDP)。
简单地说,面向连接的服务有握手程序,还必须确认包是否正确发送和接受,但是无连接服务不需要担心另一方的问题,只要发或者接就行了。
名词解释
端系统/主机:和因特网相连的计算机等设备(如TV,Web服务器,手提电脑)。
通信链路:同轴电缆;铜线;光缆;无线电频谱
分组:当一台端系统有数据要向另一台端系统发送时,端系统将数据分段并在每段加上首部字节,由此形成的信息包称为分组。一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径。
协议:定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和接收或其它事件方面所采取的动作
1.2 网络边缘
接入网:将端系统连接到边缘路由器(edge router)的物理链路。
边缘路由器:端系统到任何其他远程端系统的路径上的第一台路由器。
1.3 网络核心
网络核心,即互联了因特网端系统的分组交换机和链路的网状网络。
- 电路交换
电路交换(circuit switching):每个主机都直接与一个交换机直接相连,各个交换机之间有物理线缆,如果两台主机要传送信息,其对应的交换机之间必须有一条预留电路。
假定每个交换机都有n条电路,那么连接期间该连接获得链路带宽的1/n。
电路交换网络中的多路复用
-
频分多路复用(Frequency-Division Multiplexing,FDM)
-
时分多路复用(Time-Division Multiplexing,TDM)
-
分组交换
分组交换(packet swiitching):各种应用在完成任务时要交换报文,报文包含协议要求的内容。主机会把较大的报文分组并发送到分组交换机。交换机使用存储转发传输机制,简单地说就是接受一个报文的全部分组后才输出,这样就会产生存储转发时延。同时,对于每个输出链路,分组交换机还为之生成一个输出缓存或输出队列,因为同一时刻只能向一条链路输出一组信息,其他信息只能在队列中等待,这样会产生排队时延。如果队列已满,新到达的报文分组无法入队,就会产生丢包。 -
优劣对比
分组交换的批评者:分组交换因其端到端时延是变动的和不可预测的(主要是因为排队时延的变动和不可预测所致),故不适合实时服务(例如,电话和视频会议)。
分组交换的支持者:它提供了比电路交换更好的带宽共享。它比电路交换更简单、 更有效,实现成本更低。
1.4 分组交换网中的时延,丢包和吞吐量
时延概述
时延分为节点处理时延(nodal processing delay),排队时延(queuing delay),传输时延(transmission delay)和传播时延(propagation delay),这些加起来就是节点总时延(total nodal delay),即节点总时延 = 节点处理时延 + 排队时延 + 传输时延 + 传播时延
-
处理时延(通常几个微妙或者更少)。
排队时延(取决于拥塞等级)
在队列中,当分组在链路上等待传输时所需的时间,取决于先期到达的,正在排队等待想链路传输分组的数量。 -
传输时延(L/R,对低速链路很大)
1、将所有分组的比特推向链路所需要的时间。
2、用L比特表示分组的长度,用R bps表示从路由器A到路由器B的链路传输速率。 -
端到端时延
假定在源主机和目的主机之间有N-1台路由器(那么实际有N条小路径),并且该网络是无拥塞的(因此排队时延是微不足道的),处理时延为dproc,每台路由器和源主机的输出速率是 R bps,每条链路的传播时延是dprop,节点时延累加起来得到端到端时延:
dend-end = N(dproc + dtrans + dprop)
dtrans = 分组长度L / R
计算机网络中的吞吐量
吞吐量:单位时间内通过某个网络(或信道、接口)的数据量,是瓶颈链路(bottleneck link,即找速度最短的那一条链路)的传输速率。
吞吐量分为瞬时吞吐量(instancous throughput)和平均吞吐量(average throughput),我们可以把他们类比为以前物理学过的瞬时速度和平均速度。
在如以太网路及封包无线电之类的电信网络之中,吞吐量或网络吞吐量是指于一通讯通道上单位时间能成功传递的平均资料量,资料可以于实体或逻辑链接上传递,或通过某个网络节点。吞吐量的单位通常表示为位元每秒(bit/s或bps),有时也可看到封包每秒或封包每时槽等单位。
1.5 协议层次及其服务模型
网络中引入协议栈(protocol stack)概念,自顶向下分别是:应用层,运输层,网络层,链路层,物理层。
应用层
包含大量应用普遍需要的协议,支持网络应用。
我们把应用层的信息称为报文。
- 协议为:HTTP、SMTP、FTP等。
HTTP: 超级文本传输协议是访问万维网的载体
SMTP: 简单邮件传输协议是电子邮件服务的主要协议
FTP: 文件传输协议用于将文件从一台主机传输到另一台主机
TELNET: 远程登陆 和SSH:安全外壳 用于访问远端的站点
SNMP: 简单网络管理协议,用于对Internet全局或局部进行管理
DNS: 域名系统:使其他的协议能够查询另一台计算机的网络层地址
IGMP: 英特网组管理协议,用于管理一个组的成员资格
运输层:主机到主机数据传输,负责从应用层接收消息,并传输应用层的message,到达目的后将消息上交应用。
- 协议为: TCP、UDP等。
- TCP: 传输控制协议是一个面向连接的协议,在传输数据之前,在两台主机之间建立逻辑连接。TCP协议在两个TCP层之间创建一个管道传输字节流,并提供流量控制、差错控制、拥塞控制。
- UDP: 无连接协议,传输数据之前不需要建立逻辑连接,这里的无连接的意思是每个用户数据报是一个独立的实体。在发送较短消息且不能容忍TCP在分组损坏或丢失时使用重发机制的时候采用。
网络层:负责将数据报(datagram,处于网络层的分组)从主机移动到另一主机,使两端能够互连且决定最佳路径。
从运输层拿到报文段和目标地址。然后进行路由。网络层的典型协议是IP协议,用来识别目标地址。另一典型协议是网络控制消息协定(ICMP),它是IP的主要部分,一般不用于在两点间传输数据。它通常不由网络程序直接使用,除了ping和traceroute这两个特例。
链路层:在两个网络实体之间提供数据链路连接的创建、维持和释放管理。
- 协议为PPP
构成链路层的分组(称之数据帧或帧),并对帧定界、同步、收发顺序的控制。
负责传输过程中的流量控制,差错检测和差错控制等方面。
数据链路层中的数据封装是指:封装的数据信息中,包含了地址段和数据段等。地址段含有点对点发送节点和接收节点的地址(如MAC),控制段用来表示数格连接帧的类型,数据段包含实际要传输的数据。
网络层将数据报下发给链路层,链路层传输后,上报给目标结点的网络层。
典型协议:异步传输模式(ATM)、帧中继(frame relay)、高级数据链路控制(HDLC)。
交换机、桥接器是本层设备。而集线器是物理层设备,不是数据链路层设备。
物理层
物理层负责将链路层帧中每一位(bit)从链路的一端传输到另一端。
典型协议如:蓝牙协议、数字用户线路(DSL)等等
常见物理层设备:网卡、光纤、集线器
协议分层图
因特网协议栈自顶向下传输时,各层会将上层信息包装,上层信息包装为有效载荷字段,本层信息包装为首部字段。
下图中从上往下为封装,下往上为解封装。
- 封装
- 因特网协议栈自顶向下传输时,各层会将上层信息包装,上层信息包装为有效载荷字段,本层信息包装为首部字段。
- 应用层报文 -> 运输层报文段 -> 网络层数据报 -> 链路层帧
1.6 面对攻击的网络
- 用病毒和木马形成僵尸网络(肉鸡)。
- 拒绝服务攻击,包括弱点攻击(攻击bug)、带宽洪泛(常见、常是分布式,砸流量使丢包和延时)、连接洪泛(伪造大量TCP连接)
- 分组嗅探:抓包,窃取隐私。
- 伪造分组:IP哄骗等等。
1.7 计算机网络和因特网的历史
- 分组交换的发展:1961~1972
- 专用网络和网络互联:1972~1980
- 网络的激增:1980~1990
- 因特网爆炸:20世纪90年代
- 最新发展
参考文章:
https://blog.csdn.net/eric_niezhangyu/article/details/51969833
https://www.jianshu.com/p/d388d0528524