计算机通信与网络第一章
1.1、计算机网络在信息时代的作用
计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施
计算机网络已经像水,电,煤气这些基础设施一样,成为我们生活中不可或缺的一部分
我国互联网发展状况
1.2、因特网概述
1、网络、互连网(互联网)和因特网
网络:网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
互连网(互联网):多个网络通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互连网(互联网)。因此,互联网又称为“网络的网络(Network of Networks)”。
因特网:因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
internet与Internet的区别
internet(互联网或互连网)是一个通用名词,它泛指多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。
Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络互连而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。
任意把几个计算机网络互连起来(不管采用什么协议),并能够相互通信,这样构成的是一个互连网(internet) ,而不是互联网(Internet)。
2、因特网(覆盖全球,特定的互联网)发展的三个阶段
因特网服务提供者ISP(Internet Service Provider)
普通用户是如何接入到因特网的呢?
答:通过ISP接入因特网
ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。任何机构和个人只需缴纳费用,就可从ISP的得到所需要的IP地址。
因为因特网上的主机都必须有IP地址才能进行通信,这样就可以通过该ISP接入到因特网
中国的三大ISP:中国电信,中国联通和中国移动
基于ISP的三层结构的因特网
一旦某个用户能够接入到因特网,那么他也可以成为一个ISP,所需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户可以和他相连。
3、因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的作用。
因特网在指定其标准上的一个很大的特点是面向公众。
因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载;
任何人都可以随时用电子邮件发表对某个文档的意见或建议。
因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
制订因特网的正式标准要经过一下4个阶段:
1、因特网草案(在这个阶段还不是RFC文档)
2、建议标准(从这个阶段开始就成为RFC文档)
3、草案标准
4、因特网标准
4、因特网的组成
因特网可以分为边缘部分与核心部分
边缘部分
由所有连接在因特网上的主机组成(台式电脑,大型服务器,笔记本电脑,平板,智能手机等)。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
路由器是一种专用计算机,但我们不称它为主机,路由器是实现分组交换的关键构建,其任务是转发收到的分组,这是网络核心最重要的部分。
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统 (end system)。
端系统在功能上可能有很大的差别:
小的端系统可以是一台普通个人电脑,具有上网功能的智能手机,甚至是一个很小的网络摄像头。
大的端系统则可以是一台非常昂贵的大型计算机。
端系统的拥有者可以是个人,也可以是单位(如学校、企业、政府机关等),当然也可以是某个ISP(互联网服务提供者,即运营商)。
补充:
端系统(处在互联网边缘部分、连接在互联网上的所有主机)之间通信的含义
“主机 A 和主机 B 进行通信”实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。即“主机A的某个进程和主机B上的另一个进程进行通信”。简称为“计算机之间通信”。
端系统之间的通信方式(主机A和主机B之间进行的通信)通常可划分为两大类:
客户-服务器方式:
客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。
客户 - 服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
服务请求方和服务提供方都要使用网络核心部分所提供的服务。
对等连接方式:
对等连接(peer-to-peer,简写为P2P) 是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
只要两个主机都运行了对等连接软件 ( P2P 软件) ,它们就可以进行平等的、对等连接通信。
双方都可以下载对方已经存储在硬盘中的共享文档。
1.3 三种交换方式
网络核心部分是互联网中最复杂的部分。
网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
网络核心部分的作用是为了两个主机之间提供连通性
在网络核心部分起特殊作用的是路由器(router)。
路由器是实现分组交换(packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
1、电路交换(Circuit Switching)
传统两两相连的方式,当电话数量很多时,电话线也很多,就很不方便
所以要使得每一部电话能够很方便地和另一部电话进行通信,就应该使用一个中间设备将这些电话连接起来,这个中间设备就是电话交换机
电话交换机接通电话线的方式称为电路交换;
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
电路交换的三个步骤:
1、建立连接(分配通信资源)
2、通话(一直占用通信资源)
3、释放连接(归还通信资源)
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。
这是因为计算机数据是突发式地出现在传输线路上的。
所以计算机通常采用的是分组交换,而不是电路交换
2、分组交换(Packet Switching)
通常我们把表示该消息的整块数据成为一个报文。
在发送报文之前,先把较长的报文划分成一个个更小的等长数据段,在每一个数据段前面。加上一些由必要的控制信息组成的首部后,就构成一个分组,也可简称为“包”,相应地,首部也可称为“包头”。
首部包含了分组的目的地址
分组从源主机到目的主机,可走不同的路径。
1、发送方:构造分组、发送分组
2、路由器:缓存分组、转发分组。简称为“分组转发”。在路由器中的输入和输出端口之间没有直接连线。
路由器处理分组的过程是:
1)、把收到的分组先放入缓存(暂时存储);
2)、查找转发表,找出到某个目的地址应从哪个端口转发;把分组送到适当的端口转发出去。
3、接收方:接收分组、还原报文
3、报文交换(Message Switching)
报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要较大的缓存空间。报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代。
三种交换方式的对比(电路交换、报文交换。分组交换)
假设A,B,C,D是分组传输路径所要经过的4个结点交换机,纵坐标为时间
分析:
电路交换:
通信之前首先要建立连接;连接建立好之后,就可以使用已建立好的连接进行数据传送;数据传送后,需释放连接,以归还之前建立连接所占用的通信线路资源。
一旦建立连接,中间的各结点交换机就是直通形式的,比特流可以直达终点;
报文交换:
可以随时发送报文,而不需要事先建立连接;整个报文先传送到相邻结点交换机,全部存储下来后进行查表转发,转发到下一个结点交换机。
整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间。
分组交换:
可以随时发送分组,而不需要事先建立连接。构成原始报文的一个个分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组。
构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,(限制了分组的大小)同时也有利于进行差错控制。
1.4 计算机网络的定义和分类
定义
计算机网络的精确定义并未统一
计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合。
互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
自治:是指独立的计算机,它有自己的硬件和软件,可以单独运行使用;
集合:是指至少需要两台计算机;
计算机网络的较好的定义是:计算机网络主要是由一些通用的,可编程的硬件(一定包含有中央处理机CPU)互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
计算机网络的分类
1、按交换技术分类:
电路交换网络
报文交换网络
分组交换网络
2、按使用者分类:
公用网
专用网
3、按传输介质分类:
有线网络
无线网络
4、按覆盖范围分类:
广域网WAN(Wide Area Network)
作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。
城域网MAN
作用范围一般是一个城市,可跨越几个街区甚至整个城市
局域网LAN
一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 km 左右)
个域网PAN
就是在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。
5、按拓扑结构分类:
总线型网络
星型网络
环形网络
网状型网络
1.5 计算机网络的性能指标
速率(由数据量比特引出速率):
注意:数据量与速率的转换单位不一致
带宽
带宽在计算机网络中的意思是最高数据率
吞吐量
带宽1 Gb/s的以太网,代表其额定速率是1 Gb/s,这个数值也是该以太网的吞吐量的绝对上限值。因此,对于带宽1 Gb/s的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。
注意:吞吐量还可以用每秒传送的字节数或帧数表示
时延
时延时指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
网络时延由几部分组成:
发送时延
主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延
电磁波在信道中传播一定的距离需要花费的时间。
处理时延
主机或路由器在收到分组时要花费一定时间进行处理
排队时延
分组在进入网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
有时会把排队时延看成处理时延 一部分
总时延 = 发送时延 + 传播时延 + 处理时延 (处理时延 + 排队时延)
当处理时延忽略不计时,发送时延 和 传播时延谁占主导,要具体情况具体分析
时延带宽积
时延带宽积 = 传播时延 * 带宽
带宽在计算机网络中代表的是最高数据率
往返时间
互联网上的信息不仅仅单方向传输而是双向交互的。因此,我们有时很需要知道双向交互一次所需的时间。
分组在传输过程中出现误码,被结点交换机检测出误码(此原理将在后续课程中讲述),进而被丢弃。
假设路由器R5当前的输入缓冲区已满,此时主机分组到达该路由器,路由器没有存储空间暂存该分组,只能将其丢弃。实际上,路由器会根据自身的拥塞控制方法,在输入缓存还未满的时候就主动丢弃分组。
1.6 计算机网络体系结构
1 常见的计算机网络体系结构
2计算机网络体系分层的必要性
3计算机网络体系结构分层思想举例
4计算机网络体系结构中的专业术语(重点和难点)
1、常见的计算机网络体系结构
为了使不同体系结构的计算机网络都能够互连,国际标准化组织于1977年成立了专门机构研究该问题,不久提出了一个使全世界的计算机能够互联的标准框架--开放系统互连参考模型(OSI)
因特网于1983年开始使用TCP/IP协议族
如今用的最多的是TCP/IP体系结构,现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准。TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层,并去掉了会话层和表示层。TCP/IP在网络层使用的协议是IP协议,IP协议的意思是网际协议,因此TCP/IP体系结构的网络层称为网际层.
TCP/IP是一种体系结构
用户的主机必须使用TCP/IP协议。
在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族。而用于网络互连的路由器中,也带有符合TCP/IP体系结构标准的TCP/IP协议族。只不过路由器一般只包含网络接口层和网际层。
主机中TCP/IP协议族为4层,路由器中TCP/IP协议族为两层。
TCP/IP体系结构的网络接口层并没有规定什么具体的内容,这样的目的是可以互连全世界各种不同的网络接口。例如:有线的以太网接口,无线局域网的WIFI接口,而不限定仅使用一种或几种网络接口。因此本质上TCP/IP体系结构只有上面的三层。IP协议是TCP/IP体系结构网际层的核心协议。
IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务。TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠的传输服务。UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供不可靠传输的服务。
网络接口层:并没有规定具体内容,这样做的目的是可以互连全世界各种不同的网络接口,例如:有线的以太网接口,无线局域网的WIFI接口等。
网际层:它的核心协议是IP协议。
运输层:TCP和UDP是这层的两个重要协议。
应用层:这层包含了大量的应用层协议,如 HTTP , DNS 等。
IP协议(网际层)可以将不同的网络接口(网络接口层)进行互连,并向其上的TCP协议和UDP协议(运输层)提供网络互连服务
而TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠的传输服务。
UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供不可靠的传输服务。
TCP/IP体系结构中最重要的是IP协议和TCP协议,因此用TCP和IP来表示整个协议大家族。
网络互连有两种体系结构:OSI体系结构、TCP/IP体系结构
如今用的最多的是TCP/IP体系结构,现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准。
TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层,并去掉了会话层和表示层。
TCP/IP在网络层使用的协议是IP协议,IP协议的意思是网际协议,因此TCP/IP体系结构的网络层称为网际层
网络接口层:并没有规定具体内容,这样做的目的是可以互连全世界各种不同的网络接口,例如:有线的以太网接口,无线局域网的WIFI接口等。
网际层:它的核心协议是IP协议。
运输层:TCP和UDP是这层的两个重要协议。
应用层:这层包含了大量的应用层协议,如 HTTP , DNS 等。
IP协议(网际层)可以将不同的网络接口(网络接口层)进行互连,并向其上的TCP协议和UDP协议(运输层)提供网络互连服务
而TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠的传输服务。
UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供不可靠的传输服务。
TCP/IP体系结构中最重要的是IP协议和TCP协议,因此用TCP和IP来表示整个协议大家族。
教学时把TCP/IP体系结构的网络接口层分成了物理层和数据链路层
2、计算机网络体系结构分层的必要性
物理层问题
将上图的三个问题划归为物理层。
但是,第一,严格来说,传输媒体并不属于物理层
第二,计算机传输的信号,并不是图示的方波信号
这样举例只是让初学者容易理解
数据链路层问题
网卡上的MAC地址,这就是主机在网络中的地址,主机在发送数据时,应该给数据附加上目的地址,当其他主机收到地址后,根据目的地址和自身地址,来决定是否接受数据。
这种总线型网络早已淘汰,现在常用的是使用以太网交换机将多台主机互连形成的交换式以太网(右下图),以太网交换机又是如何实现的呢?
因特网是由非常多的网络和路由器互连起来的
网络层问题
N1网络连接的设备均是192.168.1.XXX。N2网络连接的设备军事192.168.0.XXX
运输层问题
如何标识与网络通信相关的应用进程:一个分组到来,我们应该交给哪个进程处理呢?浏览器进程还是QQ进程
由于路由器繁忙,丢弃分组,出现传输错误,如何处理?
至此,如果我们解决了物理层,数据链路层,网络层以及运输层各自的问题,则可以实现进程之间基于网络的通信。在此基础上,只需制定各种应用层协议,并按协议标准编写相应的应用程序,通过应用进程间的交互来完成特定的网络应用。
应用层问题
应用层该用什么方法(应用层协议)去解析数据
总结
3、计算机网络体系结构分层思想举例
例子:主机的浏览器如何与Web服务器进行通信
解析:
主机属于网络N1,Web服务器属于网络N2.我们使用主机中的浏览器来访问Web服务器,当在主机在浏览器中输入网址后,主机会向Web服务器发送请求。Web服务器收到请求后,会发回相应的响应。主机的浏览器收到响应后,将其解析为具体的网页内容显示出来。
主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信
体系结构的各层在整个过程中起到怎样的作用?
1、发送方发送
第一步:
应用层按照HTTP协议的规定构建一个HTTP请求报文
应用层将HTTP请求报文交付给运输层处理
第二步:
运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段
TCP报文段的首部格式作用是区分应用进程以及实现可靠传输
运输层将TCP报文段交付给网络层处理
第三步:
网络层给TCP报文段添加一个IP首部,使之成为IP数据报
IP数据报的首部格式作用是使IP数据报可以在互联网传输,也就是被路由器转发
网络层将IP数据报交付给数据链路层处理
第四步:
数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧(图示右边为首部,左边为尾部)
假设N1为以太网,这是以太网帧首部的格式
该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收
该尾部的作用是让目的主机检查所接收到的帧是否有误码
数据链路层将帧交付给物理层
第五步:
物理层先将帧看做是比特流,这里的网络N1假设是以太网,所以物理层还会给该比特流前面添加前导码
前导码的作用是为了让目的主机(Web服务器)做好接收帧的准备
物理层将装有前导码的比特流变换成相应的信号发送给传输媒体
第六步:
信号通过传输媒体到达路由器,接下来看路由器的处理过程
2、路由器转发
在路由器中
物理层将信号变为比特流,然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧
数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际交付的是IP数据报
网络层解析IP数据报的首部,从中提取目的网络地址
在路由器中
提取目的网络地址后,查找自身路由表。确定转发端口, 以便进行转发
网络层将IP数据报交付给(路由器)的数据链路层
数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧
数据链路层将帧交付给物理层
物理层先将帧看成比特流,这里的网络N2假设是以太网,所以物理层还会给该比特流前面添加前导码
物理层将装有前导码的比特流变换成相应的信号发送给传输媒体,信号通过传输媒体到达Web服务器
3、接收方接收
和发送方(主机)发送过程的封装正好是反着来
在Web 服务器上
物理层将信号变换为比特流,然后去掉前导码后成为帧,交付给数据链路层
数据链路层将帧的首部和尾部去掉后成为IP数据报,将其交付给网络层
网络层将IP数据报的首部去掉后成为TCP报文段,将其交付给运输层
运输层将TCP报文段的首部去掉后成为HTTP请求报文,将其交付给应用层
应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文
发回响应报文的步骤和之前过程类似
4、计算机网络体系结构中的专用术语
以下介绍的专用术语来源于OSI的七层协议体系结构,但也适用于TCP/IP的四层体系结构和五层协议原理体系结构。
专业术语中由三个典型代表:实体、协议、服务。
实体
协议
协议:控制两个对等实体进行逻辑通信的规则的集合
协议三要素:
语法:定义所交换信息的格式
语义:定义收发双方所要完成的操作
同步:定义收发双发的时序关系
这是IP数据报格式,小格子称为字段或域。数字表示字段的长度,单位是位(也就是比特)。语法就是定义了这些小格子的长度和先后顺序。
主机要访问远程Web服务器,会构建一个HTTP的GET请求报文,然后将其发送给Web服务器,Web服务器收到该报文并进行解析,知道这是一个HTTP的GET请求报文,于是在自身内部查找所请求的内容,并将所找到的内容封装在一个HTTP响应报文中发回给主机。主机收到HTTP响应报文后,对其进行解析,取出所请求的内容并由浏览器解析显示。
这个例子可以体现出通信双方收到分组后完成怎样的操作。这是HTTP协议的语义所定义的
这是TCP采用“三报文握手”建立连接的过程。要想进行运输层TCP实体间的逻辑通信,首先必须建立连接,从连接建立的过程可以看出,TCP客户端和TCP服务器之间的时序关系以及各自的状态转换。只有双方建立连接后,才能进行TCP数据传输。
这个例子可以充分体现出计算机网络协议三要素中的同步。
服务
1、例如,物理层对等实体在物理层协议的控制下向数据链路层提供服务。
4、我们可以看见手机为我们提供的各种服务,但我们只是享受这些服务,没必要弄懂手机的工作原理。
对通信双方所交互的数据包有专门的术语。将对等层次之间传送的数据包称为该层的协议数据单元(PDU)
例如,物理层对等实体逻辑通信的数据包称为比特流