计算机网络-基础知识篇
1、什么是计算机网络?
计算机网络= 通信技术+计算机技术
计算机网络技术一种通信网络。
定义:计算机网络就是一种互联的、自治的计算机集合。
互联--互联互通,通信链路
自治--无主从关系
通过“交换网络”互联主机,交换网络的交换节点是交换机或者路由器
2、因特网构成具体描述
网络协议:计算机有序运行的重要保证
主机/端系统:所有与互联网相连的设备
分组交换机:从数据链路接收到达的分组,并从出通信链路转发该分组。两种最著名的分组交换机是路由器和链路层交换机,路由器通常用于网络核心中,链路层交换机通常用于接入网中。
ISP:因特网服务提供商
协议:端系统、分组交换机和其他因特网部件都要运行一系列协议,这些协议控制因特网中信息的接收和发送。
套接字接口socket:规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交互数据的方式。(因特网中发送数据的程序必须遵循的套接字借口,使因特网向接收数据的程序交付数据)
协议:定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送、接收报文或其他事件所采取的动作。
3、网络核心
分组交换
分组:端系统之间彼此交换报文,从原系统向目的系统发送一个报文,源将长报文划分为具体的数据块
在源和目的之间,每个分组都通过通信链路和分组交换机传送。
存储转发传输:交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。(所以在交换机接收一部分分组时,需要先缓存)
输出缓存/输出队列:用于存储路由器准备发往输出链路的分组。
排队时延:如果,到达的分组需要传输的链路正忙于其他分组,则该分组必须在输出缓存中等待。
丢包:因为存储空间的大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组充满了,到达的分组或是已经排队的分组之一将被丢弃。
电路交换
在端系统间通信回话期间,预留了端系统间沿路径通信所需要的资源(缓存、链路传输速率),典型应用-电话
频分复用FDM:在连接期间,电路为每条连接专用一个频段,该频带的宽度成为带宽。
时分复用TDM:时间被划万为固定期间的帧,每个帧又被划分为固定数量多的时隙
分组交换与电路交换:
分组交换不适合实时服务;
分组交换提供了比电路交换更好的带宽共享;
分组交换比电路交换更简单、更有效、实现成本更低。
吞吐量
瞬时吞吐量:主机A向主机B跨越计算机网络传送一个大文件,瞬时吞吐量就是主机B接受到该文件的速率。
平均吞吐量:该文件由F比特组成,主机B接收所有F比特用去T秒,则文件传输平均吞吐量为F/T bps.
4、协议层机器服务模型
协议栈:各层所有协议综合起来被称为协议栈。
因特网协议栈的5个层次:物理层、链路层、网络层、传输层、应用层
应用层:网络应用程序及他们的应用层协议存留的地方,包络很多协议HTTP(Web文档的请求和传送)、SMTP(电子邮件报文传输)、FTP(文件传输)。
应用层协议分布在多个端系统上,一个端系统的应用程序与另一个端系统的应用程序交换信息分组,在应用层的信息分组成为报文。
运输层:在应用程序端点之间传送应用层报文,运输层的分组为报文段。
运输层两种传输协议,TCP和UDP,TCP为面向连接的服务,包括了应用层向目的地的确保传送和流量控制(即发送方/接收方速率匹配);UDP为无连接服务,没有可靠性、没有流量控制、没有拥塞控制。
网络层:网络层传输的被称为数据报。
链路层:链路层的分组被称为帧。
物理层:将整个帧从一个网络元素移动到邻近的网络元素。
5、OSI七层模型
从下到上,七层结构为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
OSI网络模型分为七层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
应用层:应用层由网络应用程序使用(使用互联网的计算机应用)。在应用层中包含几十种协议,这些协议可以活跃在一个应用层上,为各种网络服务提供基础功能,比如:文件传输(FTP)、网上冲浪(HTTP/S)、电子邮件(SMTP)、虚拟终端(Telnet)等。应用层传输的信息分组称为-----报文
表示层:
表示层从应用层接收数据,这些数据主要是以字符和数字的形式出现。
表示层对数据进行以下处理:
- 翻译:表示层将数据转换成机器可以理解的二进制格式,例如将ASCII码转换成EBCDIC码
- 压缩:在数据传输之前,表示层为了减少用于表示原始数据的比特数,会对传输的数据进行压缩。压缩可以分为有损压缩和无损压缩。数据压缩可以减少原始 数据所需的存储空间,存储空间的减少可以是数据传输的时间减少。数据压缩对实时视频、音频的传输有很大的帮助
- 加密/解密:为保证敏感数据的安全,使用SSL(Secure Socket Layer, 安全套接字)协议进行加密/解密。
会话层:会话层对两个会话进程的建立、维持和结束进行协调和管理,对数据的交换进行管理。
会话层使用 API(应用程序编程接口) 为不同的应用提供服务。例如:NetBIOS(网络基本输入输出系统)允许不同计算机上的应用程序相互通信。
在会话或者连接建立连接之前,服务器执行身份验证”服务,对身份进行验证。在用户信息被发送到服务器之后,计算机和服务器之间的连接被建立。
如果身份验证成功,将检查用户授权,用来确认对文件的访问权限;如果身份验证失败,用户则会被告知无权访问此页面。
会话层会对下载的文件进行跟踪。例如网页包含的文本和图像等,这些文本和图像作为单独的文件存储在Web服务器上。当在Web浏览器中请求网站时,Web浏览器将打开与Web服务器之间的单独对话,来下载这些文本和图像文件。
这些文件以数据包的形式接收,因为一个文件会被分为多个数据包发送,会话层确定数据包是属于哪个文件。
会话层还确定这些数据包将去往何处,在这个例子中,接收到的数据包将发送到Web浏览器。因此会话层对会话管理很有帮助。
网络浏览器会执行应用层,表示层,会话层的所有功能,这也是TCP/IP五层模型出现的原因
传输层:传输层通过分段、流量控制、差错控制来保证通信的可靠性,另外还提供面向有链接和无连接的传输。
- 分段:传输层将从会话层接收到的数据划分为较小的数据单元 – – 段(segment)。每个段包含一个源端口号、目的端口号和序列号。这些信息保证引导每个段传向正确的应用程序,并保证段可以在接收端正确的重新组合成文件
- 流量控制:用于保证传输的最大速率。例如,一个移动设备连接到一个服务器,服务器的传输速率为100Mbps,而移动设备处理数据的速率是10Mbps。当移动设备从服务器下载数据,在刚开始,服务器以50Mbps的速度发送数据,高于移动设备的传输速度。此时移动设备可以通过传输层告知服务器端将数据传输速率降到10Mbps,这样就不会造成数据丢失。再例如,服务器传输数据的速率是5Mbps,移动设备就会告知服务器将传输速率提高至10Mbps,从而保证移动设备的性能。
- 差错控制:如果传输过程中有数据损坏或者丢失,传输层会使用自动重传重新传输丢失或损坏的数据。传输层在每一个数据段中添加一个校验和(checksum),用来找出所接收端接收到的错误的数据段。
- 面向连接传输和无连接传输:传输层主要包含两种协议,TCP(Transmission Control Protocol,传输控制协议)和UDP (User Datagram Protocol,用户数据报协议)。传输层提供两种服务:面向连接的传输和面向无连接的传输。
- 面向连接的传输通过TCP实现,面向无连接的传输通过UDP来传输。
UDP的传输速度比TCP要快,因为UDP协议不会反馈信息是否正确的传输,而TCP会给出反馈,因此在数据传输出现错误时,使用TCP会重新传输数据。
使用UDP时,是否接收到所有的数据并不重要。例如,流媒体电影、歌曲、游戏、IP语音、TFTP、DNS等。
TCP应用于数据必须完全传递的场合。例如万维网、电子邮件、FTP等
网络层:传输层将数据段传输给网络层,网络层将这些数据从一个网络的计算机传输到另一个网络的计算机。网络层的数据单元称为数据包。
网络层的功能是逻辑寻址、路由和路径确定。
- 逻辑寻址:在网络层进行的IP寻址称为逻辑寻址。网络中的每台计算机都有一个唯一的IP地址。网络层将发送方和接收方的IP地址添加到数据段,形成IP数据包。添加IP地址是为了确保每个数据包可以到达正确的目的地。
- 路由:路由是将数据包从源端移动到目的端的方法,这些方法基于IPv4和IPv6。
假设计算机A和网络1相连,计算机B和网络2相连。当计算机B提出访问FaceBook的请求时,FaceBook的服务器将做出回应,将数据包传输到计算机B。在网络中,每台设备的IP地址是独一无二的,因此这两台计算机都有一个唯一的地址。
Facebook服务器的网络层已经将发送方和接收方的IP地址添加到数据包中,假设掩码使用255.255.255.0,表明IP地址的前三个组合标识网络的地址(Network2的地址),最后一个组合代表主机(计算机2)在当前网络中的地址。基于IP地址和掩码,实现数据在网络中和终端之间的传输。
- 路径选择:计算机可以通过多种方式连接到Internet服务器,从源到目标数据传递的最佳可能路径称为“路径选择”。网络层设备使用的协议有OSPF、BGP(边界网关协议)、IS-IS(中间系统到中间系统),通过这些协议来确定数据传递的最佳可能路径。
数据链路层:数据链路层从网络层接收数据包,数据包包含发送方和接收方的IP地址。
寻址方式有两种:逻辑寻址和物理寻址。逻辑寻址在网络层完成,发送方IP地址和接收方IP地址加入数据段形成数据包。物理寻址在数据链路层完成,发送方和接收方的MAC地址加入数据包中形成数据帧。
MAC地址是由计算机制造商嵌入到计算机网卡的十二位字母数字号码,每台计算机拥有的MAC地址是唯一的。数据链路层中的数据单元称为“帧”。数据链路层作为软件嵌入到计算机的网卡中,并提供经由本地介质将数据从一台计算机传输到另一台计算机的方法。本地介质包括铜线,光纤或无线信号。
数据链路层拥有两个基本功能 :它允许上层使用帧之类的技术访问通讯介质以及控制数据如何通过传输介质投放和接收(介质访问控制、错误监测)
- 介质访问:
考虑两台不同的主机,一台笔记本电脑和一台台式机,这两台主机连接到不同的网络,使用网络层IP协议来相互通信。在本例中,台式机通过网线连接到路由器R1,笔记本电脑通过无线网连接到路由器R2,路由器R1和R2通过一些方式连接到其他地方。
现在台式机向笔记本电脑发送一些数据。首先数据通过连接台式机和路由器R1的传输介质,数据链路层向每个IP数据包的头和尾增添一些信息形成数据帧。路由器R1接收到这个数据帧之后,会将帧解封取得其中的IP数据包,通过数据包中的IP地址找到发送的路径之后,再次添加信息封装成为数据帧,通过最优的路径发送到路由器R2。R2接收到数据帧后解封装,通过IP数据包的IP地址找到请求数据的笔记本电脑后,将数据包再次封装成为无线数据链路帧发送。在笔记本电脑接收到数据帧之后,解封装帧取得IP数据包发送到网络层,最终应用层将接收到数据之后,通过应用层协议将接收到的数据显示在计算机的屏幕上。
因此,网络层或更高级的层能够在数据链路层的帮助下传输数据,即数据链路层向OSI模型中的更高层级提供了对介质的访问。
- 控制介质上数据的接收与投放:
用于获取介质中的数据帧的技术称为介质访问控制。连接在公共传输介质上的设备可能有多个,如果同一介质上连接的多个设备同时发送数据,这些数据可能会发生冲突,导致产生一个没有人可以理解的无用信息。为了避免发生冲突,数据链路层会监视传输介质何时是空闲的,这时设备就可以向接收方传递信息,这就是所谓的CSMA(载波侦听多路访问)技术。因此,数据链路层以及介质访问方法控制着数据的传输。
数据帧中包含着用于检测信息是否正确的检验位,导致错误发生的原因是因为传输介质的某些限制(电磁干扰等等)。
物理层:
需要传输的数据从应用层分割形成的数据段,到传输层的数据包,到数据链路层的数据帧,再到现在的物理层,是一种二进制序列。物理层可以将这些二进制序列转换成信号并在传输介质上传输。这些信号可以是铜缆上的电信号,光缆上的光信号或空气中的无线电信号,信号的类型取决于设备之间的传输介质的类型。
在接收端,物理层将接收到的信号,转换成为二进制信号,向数据链路层传输。之后数据链路层将数据帧解封装,将数据包向上传递,最终传递到应用层,在显示器上显示接收到信息