因特网(Internet) 是世界上最大的互连网络【小写i
的internet
是通用名词,互连的网络都叫internet
】
因特网的前身是1969年创建的第一个分组交换网:ARPANT
普通用户如何接入因特网?
通过ISP
接入因特网。ISP
可以从因特网管理机构申请到成块的IP
地址,同时拥有通信线路以及路由器等连网设备,任何机构和个人只要向ISP
交纳规定的费用,就可以从ISP
得到所需要的IP
地址。互联网上的主机都必须有IP
地址才能通信
互联、自治、计算机系统的集合
硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。
软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP 程序、聊天程序等)。软件部分多属于应用层。
协议是计算机网络的核心,如同交通规则制约汽车驾驶一样,协议规定了网络传输数据时所遵循的规范。
边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享;核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。
按交换技术:①电路交换网络 ②报文交换网络 ③分组交换网络
按使用者:①公用网 (Public Network)②专用网(Private Network)
按传输介质:①有线网络 ②无线网络
按传播技术:①广播式 ②点对点
按覆盖范围:
①广域网WAN( Wide Area Network) ②城域网MAN(Metropolitan Area Network) ③局域网LAN( Local Area Network) ④个域网PAN( Private Area Network)
广域网和局域网之间的差异不仅在于所覆盖范围不同,还在于他们所使用的协议和网络技术不同,广域网使用点对点技术,局域网使用广播技术
若中央处理器之间的距离非常近(如仅1m的数量级或更小),则一般称为多处理器系统,而不称为计算机网络
按拓扑结构:①总线型网络 ②星型网络 ③环型网络 ④网状型网络
拓扑结构主要是指通信子网的拓扑结构
性能指标可以从不同的方面来度量计算机网络的性能
Speed
(比特率/数据率)比特
计算机中的数据量单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1
或0
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率
注意:
速率提高体现在单位时间内发送到链路上的比特数增多了,而并不是比特在链路上跑得更快了。所以速率才可以称为比特率或数据率
带宽在模拟信号系统中的意义
信号所包含的各种不同频率成分所占据的频率范围
单位:Hz(kHz,MHz,GHz)
带宽在计算机网络中的意义
传送数据的能力,最高速率
单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)
一条通信线路的"频带宽度"越宽,其所传输数据的"最高数据率"也越高
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或额定速率的限制
在处理过程中所需要的时间
包括发送时延、传播时延、处理时延、排队时延
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互
我们有时很需要知道双向交互一次所需要的时间
因此,往返时间RTT(Round-Trip Time)
也是一个重要的性能指标
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
网络利用率:全网络的信道利用率的加权平均
U
到50%
时,时延急剧增大。100%
时,时延趋于无穷大因此一些拥有较大主干网的ISP
通常会控制它们的信道利用率不超过50%
。如果超过了,就要准备扩容,增大线路带宽
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
具体可分为:接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们意识不到丢包
分组丢失的两种情况
丢包率反映了网络的拥塞情况
0
1%~4%
5%~15%
我们把计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。换言之,计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义,它是计算机网络中的层次、各层的协议及层间接口的集合。需要强调的是,这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系结构的实现(Implementation)问题。体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件
第n层实体实现的服务为第n+1层所利用。在这种情况下,第n层称为服务提供者,第n+1层则服务于用户。
每一层还有自己传送的数据单位,其名称、大小、含义也各有不同。
在计算机网络体系结构的各个层次中,每个报文都分为两部分:一是数据部分,即SDU;二是控制信息部分,即PCI,它们共同组成PDU。
在实际的网络中,每层的协议数据单元都有一个通俗的名称,如物理层的PDU称为比特,数据链路层的PDU称为帧,网络层的PDU称为分组,传输层的PDU称为报文段。
在各层间传输数据时,把从第n+1层收到的PDU作为第n层的SDU,加上第n层的PCI,就变成了第n层的PDU,交给第n-1层后作为SDU发送,接收方接收时做相反的处理,因此可知三者的关系为
具体地,层次结构的含义包括以下几方面:
任何可发送或接收信息的硬件或者软件进程,通常是一个特定的软件模块
对等实体
收发双方相同层次中的实体
控制两个对等实体进行逻辑通信(这种通信实际上不存在,只是便于我们考虑问题) 的规则的集合,是水平的
三要素
协议由语法,语义,同步三部分构成.
一个完整的协议通常应该具有线路管理(建立\连接\释放连接),差错控制,数据转换等功能
服务原语: 上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
OSI参考模型将原语划分为4类
接口是同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定
在典型的接口上,同一结点内相邻两层间实体通过服务访问点SAP
进行交互,服务是通过SAP
提供给上层使用的
服务访问点SAP(Service Access Point)
:在同一系统中相邻两层的实体交换信息的逻辑接口(就像Web里的request域,后端前端都能取到) ,用于区分不同的服务类型,每个SAP
都有一个能唯一标识它的地址
帧的"类型"字段
IP数据报首部中的"协议字段"
"端口号"
一定要注意,协议和服务在概念上是不一样的。首先,只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。另外,并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才称为服务。
国际标准化组织(ISO)提出的网络体系结构模型,称为开放系统互连参考模型(OSI/RM),通常简称为OSI参考模型。OSI参考模型有7层,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。低三层统称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能:高三层统称为资源子网,它相当于计算机系统,完成数据的处理等功能。
物理层的传输单位是比特,功能是在物理媒体上为数据端设备透明地传输原始比特流。物理层主要定义数据终端设备(DTE)和数据通信设备(DCE)的物理与逻辑连接方法,所以物理层协议也称物理层接口标准(物理层规程)
物理层接口标准很多,如EIA-232C、EIA/TIARS-449、CCITT的X.21等
物理层主要研究以下内容:
采用什么信号表示比特0/1
数据链路层的传输单位是帧,任务是将网络层传来的IP数据报
封装成帧
物理层的功能可以概括为:封装成帧、差错控制、流量控制和传输管理等
广播式网络在数据链路层还要处理新的问题,即对共享信道的访问。物理层的一个特殊的子层——介质访问层,就是专门处理这个问题的
典型的数据链路层协议有SDLC、HDLC、PPP、STP和帧中继等
网络层的传输单位是数据报,它关心的是通信子网的运行控制,主要任务是把网络层的协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务。
关键问题是对分组进行路由选择,并实现流量控制、拥塞控制、差错控制和网际互连等功能。
因特网是一个很大的互联网,它由大量异构网络通过路由器(Router)相互连接起来。因特网的主要网络层协议是无连接的网际协议(Internet Protocol,IP)
和许多路由选择协议
因特网的网络层也称网际层或IP层
注意,网络层中的“网络”一词并不是我们通常谈及的具体网络,而是在计算机网络体系结构中使用的专有名词
网络层的协议有 IP、IPX、ICMP、IGMP、ARP、RARP和OSPF等
传输层也称运输层,传输单位是报文段,传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务,为端到端连接提供流量控制、差错控制、服务质量、数据传输管理等服务。
数据链路层提供的是点到点的通信,传输层提供的是端到端的通信,两者不同。通俗地说,点到点可以理解为主机到主机之间的通信,一个点是指一个硬件地址或I地址,网络中参与通信的主机是通过硬件地址或地址标识的;端到端的通信是指运行在不同主机内的两个进程之间的通信,一个进程由一个端口来标识,所以称为端到端通信。
使用传输层的服务,高层用户可以直接进行端到端的数据传输,从而忽略通信子网的存在。通过传输层的屏蔽,高层用户看不到子网的交替和变化。由于一台主机可同时运行多个进程,因此传输层具有复用和分用的功能。
传输层的协议有TCP、UDP。
会话层允许同主机上的各个进程之间进行会话。会话层利用传输层提供的端到端的服务,向表示层提供它的增值服务。这种服务主要为表示层实体或用户进程建立连接并在连接上有序地传输数据,这就是会话,也称建立同步(SYN)。
会话层负责管理主机间的会话进程,包括建立、管理及终止进程间的会话。会话层可以使用校验点使通信会话在通信失效时从校验点继续恢复通信,实现数据同步。
表示层主要处理在两个通信系统中交换信息的表示方式。不同机器采用的编码和表示方法不同,使用的数据结构也不同。为了使不同表示方法的数据和信息之间能互相交换,表示层采用插象的标准方法定义数据结构,并采用标准的编码形式。数据压缩、加密和解密也是表示层可提供的数据表示变换功能。
应用层是OSI参考模型的最高层,是用户与网络的界面。应用层为特定类型的网络应用提供访问0SI参考模型环境的手段。因为用户的实际应用多种多样,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,因此应用层是最复杂的一层,使用的协议也最多。
典型的协议有用于文件传送的FTP、用于电子邮件的SMTP、用于万维网的HTTP等。
ARPA在研究 ARPAnet 时提出了TCP/IP 模型,模型从低到高依次为网络接口层(对应OSI参考模型中的物理层和数据链路层)、网际层、传输层和应用层(对应OSI参考模型中的会话层、表示层和应用层)。TCPIIP 由于得到广泛应用而成为事实上的国际标准。
网络接口层的功能类似于OSI参考模型的物理层和数据链路层。它表示与物理网络的接口,但实际上TCP/IP 本身并未真正描述这一部分,只是指出主机必须使用某种协议与网络连接,以便在其上传递IP分组。具体的物理网络既可以是各种类型的局域网,如以太网、令牌环网、令牌总线网等,也可以是诸如电话网、SDH、X.25、帧中继和 ATM等公共数据网络。网络接口层的作用是从主机或结点接收IP分组,并把它们发送到指定的物理网络上。
网际层(主机-主机)是TCP/IP 体系结构的关键部分。它和0SI参考模型的网络层在功能上非常相似。
网际层将分组发往任何网络,并为之独立地选择合适的路由,但它不保证各个分组有序地到达,各个分组的有序交付由高层负责。网际层定义了标准的分组格式和协议,即 IP。
同样和OSI参考模型中的传输层类似
1)传输控制协议(Transmission Control Protocol,TCP),能够提供可靠的交付。
2)用户数据报协议(User Datagram Protocol,UDP)。它是无连接的,数据传输的单位是用
户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
应用层(用户-用户或进程-进程)包含所有的高层协议,如虚拟终端协议(Telnet)、文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)和超文本传输协议(HTTP)。
IP协议是因特网中的核心协议:TCP/IP可以为各式各样的应用提供服务(所谓的everything over IP),同时TCP/IP也允许IP协议在由各种网络构成的互联网上运行(所谓的IPover everything)。正因为如此,因特网才会发展到今天的规模。
TCP/IP模型与OSI参考模型有许多相似之处。
两个模型除具有这些基本的相似之处外,也有很多差别。
OSI | TCP/IP | |
---|---|---|
网络层(TCP/IP叫网际层) | 无/有连接 | 仅无连接 |
传输层 | 仅无连接 | 无/有连接 |
图1.14通信协议栈的通信过程示例 |
学习计算机网络时,我们往往采取折中的办法,即综合OSI参考模型和TCP/IP模型
当我们利用浏览器发送网页请求到服务器并发生响应的过程中,数据会怎么变化呢?
浏览器发送
HTTP协议
的规定构建一个HTTP请求报文(请求要干什么) 。应用层将HTTP请求
的报文交给运输层处理HTTP请求
报文添加一个TCP首部(区分应用进程) ,使之成为TCP报文段
。运输层将TCP报文段
交给网络层处理TCP报文段
添加一个IP首部(使之可以在互联网上传输) ,使之成为IP数据报
。网络层将IP数据报
交付给数据链路层处理IP数据报
添加一个首部(让其能在一段链路上传输,能被相应主机接收) 和一个尾部(让目的主机检查所接收到的帧是否有误码) ,使之成为帧。数据链路层将帧交给物理层路由器转发
IP数据报
首部,从中提取目的网络地址,然后查找自身路由表,确定转发端口。接着数据链路层封装,物理层再封装,将比特流变成信号发送出去。服务器接收
IP数据报
后,去除IP首部
,将其交付给运输层 (交付的实际是TCP报文)TCP报文
后,从中得知是与哪个端口上的进程通信,去除TCP头部
后,交付给应用层 (交付的实际是HTTP请求报文)HTTP请求
报文后,将其解析给对应进程,并执行相关操作,返回HTTP响应报文一般来说,我们希望数据传输能快一些,但如果发送方把数据发送得过快,接收方就可能来不及接收,这会造成数据的丢失
流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收(即接收缓存有可能溢出) ,因此流量控制可以说是一种速度匹配服务
传输层和数据链路层的流量控制的区别
传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相邻结点的流量控制。另外,数据链路层的滑动窗口协议的窗口大小不能动态变化,传输层的则可以动态变化
在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况叫做拥塞
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降
当网络的流量特征可以准确规定且性能要求可以事先获得时,适合使用开环控制。
当网络的流量特征不能准确描述或者当网络不提供资源预留时,适合使用闭环控制。因特网采用的就是闭环控制方法。
根据拥塞信息的反馈形式,可将闭环拥塞控制算法分为:
从拥塞节点(即路由器)向源点提供关于网络中拥塞状态的显式反馈信息。
源点自身通过对网络行为的观察(例如超时重传或往返时间RTT)来推断网络是否发生了拥塞。TCP采用的就是隐式反馈算法。
拥塞控制并不仅仅是运输层要考虑的问题。显式反馈算法就必须涉及网络层。虽然一些网络体系结构(如ATM网络)主要在网络层实现拥塞控制,但因特网主要利用隐式反馈在运输层实现拥塞控制。
进行拥塞控制是需要付出代价的
然而,为了确保网络性能的稳定,不会因为输入负载的增长而导致网络性能的恶化甚至出现崩溃,使用拥塞控制而付出一定的代价是值得的。
流量控制:以接收方的接收能力控制发送方(源点)的发送速率,只与特定的点对点通信的发送方和接收方之间的流量有关
拥塞控制:源点根据各方面因素,按拥塞控制算法自行控制发送速率,全局性问题,涉及网络中所有的主机、路由器等
直接相连的结点之间的通信称为点到点通信,不涉及程序或进程的概念
端到端通信建立在点到点通信的基础上,以完成应用程序进程之间的通信
点到点通信 | 端到端通信 | |
---|---|---|
程序或进程 |