计算机网络结构
国际标准化组织ISO 于1981年正式推荐了一个网络系统结构—-七层参考模型,叫做开放系统互连模型(Open System Interconnection,OSI)。由于这个标准模型的建立,使得各种计算机网络向它靠拢,大大推动了网络通信的发展。
网络架构
- 网络七层架构
- 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流。这一层的数据叫做比特。
- 数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。
- 网络层: 主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。
- 传输层:定义了一些传输数据协议和端口号(如80端口等),如TCP、UDP协议。主要是将下层接收的数据进行分断进行传输,到达目的的地址后在进行重组。常常把这一层数据叫做段。
- 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求。
- 表示层:主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西(如图片、声音等))
- 应用层:主要是一些终端的应用,比如说FTP(各种文件下载),WEB(IE浏览)(你就把它理解成我们在电脑屏幕上可以看到的东西.就 是终端应用)。
详细介绍
-
物理层 (physical layer)
在物理层上传输的数据单位是比特,物理层的任务就是透明的传输比特流。也就是说,发送方发送1(或0)时,接收方应当接收1(或0)而不是0(或1)。因此物理层要考虑的是多大的电流代表“1”或“0”,以及接收方如何识别发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚要如何连接。当然,哪几个比特代表什么意思,则不是物理层所需要管的。注意,传递信息的物理媒体,如双绞线、同轴电缆、光缆无线信道等,并不在物理层协议之内。
总结:规定了网络中的电气特性,负责传送0和1电气信号。 -
数据链路层(data link layer)
两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,两个相邻节点(主机和路由器之间或两个路由器之间)传送数据是直接传送的(点对点)。这是就需要专门的链路层协议。连个相邻节点之间传送数据时,数据链路层将网络层传下来的IP数据报组转城帧(framing),在连个相邻节点透明的传送帧(frame)中的数据。每帧中包含必要的控制信息(如同步信息、地址信息、差错控制等)。
以太网协议:以太网规定一组电信号组成帧,帧由标头(Head)和数据(Data)组成。
标头包含发送方和接收方的地址(MAC地址)以及数据类型等等。
数据则是数据的具体内容(IP数据包)。
MAC地址每个连入网络的设备都有网卡接口,每个网卡接口在出厂时都有一个独一无二的MAC地址。
通过ARP协议可以知道本网络内的所有机器的MAC地址,以太网通过广播的方式把数据发送到本网络内的所有机器上,让其根据MAC地址自己判断是否接受数据。 -
网络层
网络层负责为分组交换网上的不同主机提供服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。由于网络层使用IP协议,因此分组也叫做IP数据包,或简称数据报。
网络层的另一个任务就是选择合适的路由,是源主机运输层所传下来的分组,能够通过网络钟的路哟其找到目标主机。
因特网是一个很大的互联网,由大量的异构网络相互连接起来。因特网的主要网络层协议是无连接的网际层协议IP(Internat Protocol)和许多路由选择协议,因此网络层也叫做网际层或IP层。
依靠以太网的MAC地址发送数据,理论上可以跨地区寻址,但是以太网的广播方式发送数据,不仅效率低,而且局限在发送者所在的局域网。如果两台计算机不在一个子网内,广播是发不过去的。
因此有了网络层,它引入一种新的地址,使得能够区分两台计算机是否在同一个子网内,这套地址叫做网络地址,简称网址。
规定网络地址的协议叫IP协议,所定义的地址叫IP地址,由32个二进制位组成,从0.0.0.0一直到255.255.255.255。IP地址分为两个部分,前面一部分代表网络,后一部分代表主机。处于同一个子网的IP地址,其网络部分必定是相同的。例如前24位代表网络,后8位代表主机,IP地址172.251.23.17和172.251.23.108处在同一个子网。如何判断网络部分是多少位,这就需要子网掩码,它和IP地址都是32个二进制位,代表网络的部分都由1表示,主机部分位0。那么24位的网络地址,子网掩码就是255.255.255.0。将两个IP地址分别和其对应的子网掩码进行AND运算,结果相同说明两个IP在同一个子网络。
因此如果是同一个子网络,就采用广播方式发送,否则就采用”路由”方式发送。IP协议作用主要是为分配IP地址和判断那些IP在同一个网络。 -
运输层(transport layer)
运输层的任务就是负责两个主机进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用进程可同时使用运输层的服务,分用是运输层把收到的信息分别交付给上面的应用层的相应进程。
运输层主要使用两种协议: TCP-面向连接的,UDP-无连接的。
计算机有许多需要网络的的程序,比如QQ、浏览器等,如何区分从网上来的数据是属于谁的,于是有了一个参数,这个参数叫做端口(PORT),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。
“端口”是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
“运输层”的功能,就是建立”端口到端口”的通信。相比之下,”网络层”的功能是建立”主机到主机”的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做”套接字”(socket)。有了它,就可以进行网络应用程序开发了。 -
应用层(Application layer)
应用层是体系机构的最高层,应用层直接为用户提供进程服务。这里的进程值得就是正在运行的程序。应用层的协议很多,如HTTP、FTP、SMTP等。
应用程序收到”传输层”的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。
“应用层”的作用,就是规定应用程序的数据格式。
举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
TCP/IP 原理
TCP/IP 协议不是 TCP 和 IP 这两个协议的合称,而是指因特网整个 TCP/IP 协议族。从协议分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、应用层。
-
网络层(Internet Layer)
网络层(Internet Layer)是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序和发送的顺序也可能不同。高层如果需要顺序收发,那么就必须自行处理对分组的排序。互联网层使用因特网协议(IP,Internet Protocol)。 -
传输层(Tramsport Layer-TCP/UDP)
传输层(Tramsport Layer)使源端和目的端机器上的对等实体可以进行会话。在这一层定义了两个端到端的协议:传输控制协议(TCP,Transmission Control Protocol)和用户数据报协议(UDP,User Datagram Protocol)。TCP 是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。 为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP 是面向无连接的不可靠传输的协议,主要用于不需要 TCP 的排序和流量控制等功能的应用程序。
TCP | UDP |
---|---|
传输控制控制协议 | 用户数据协议 |
传输效率低 | 不注重 |
可靠性强,面向连接的 | 可靠性差,无连接 |
数据传输量大 | 数据传输量小 |
首部20个字节 | 一般8个字节的首部 |
全双工 | 可一对一,一对多,多对一,多对多的通信 |
面向字节流传输 | 面向报文传输 |
- 应用层(Application Layer)
应用层(Application Layer)包含所有的高层协议,包括:虚拟终端协议(TELNET,TELecommunications NETwork)、文件传输协议(FTP,File Transfer Protocol)、电子邮件传输协议(SMTP,Simple Mail Transfer Protocol)、域名服务(DNS,Domain Name 13/04/2018 Page 161 of 283Service)、网上新闻传输协议(NNTP,Net News Transfer Protocol)和超文本传送协议(HTTP,HyperText Transfer Protocol)等。