前言:网络基础知识并没有做系统的归纳学习,本系列记录网络基础(OSI)知识,太深的知识不会做过多表述和说明(因为已经涉及到硬件方面的知识),有错误或者表述有误的地方还请大佬指点,一起进步!
基本介绍
OSI参考模型(Open System Interconnect),即开放式系统互连。一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层架构。网络连接在标准规范下都需要经过七层架构,通过具体的IP地址定位到我们自己指定的电脑系统进行网络传输,实现应用。IP地址网段划分
最初设计互联网时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都是用同一个网络ID。网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址、E类地址。其中A、B、C类地址由InternetNIC在全球范围内统一分配,D、E类为特殊地址。类别 | 最大网络数 | IP地址范围 | 单个网段最大主机数 | 私有IP地址范围 |
---|---|---|---|---|
A | 126(2^7-2) | 1.0.0.1-127.255.255.254 | 16777214 | 10.0.0.0-10.255.255.255 |
B | 16384(2^14) | 128.0.0.1-191.255.255.254 | 65534 | 172-16.0.0-172.31.255.255 |
C | 2097152(2^21) | 192.0.0.1-223-255-255-254 | 254 | 192.168.0.0-192.168.255.255 |
A类IP地址
一个A类IP是指,在IP地址的四段号码中,第一段号码为网络号码,后面剩下的三段号码为本地计算的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络和3字节主机地址组成,网络地址的最高位必须是"0"。A类IP地址中网络标识长度为8位(bit),主机标识的长度为24位(bit),A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。
A类IP地址,地址范围1.0.0.1到127.255.255.254.最后一个是广播地址。
B类IP地址
一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是"10"。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台
B类IP地址范围128.0.0.1-192.255.255.254。最后一个是广播地址
B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台
C类IP地址
一个C类地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是"110"。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。
C类IP地址范围192.0.0.1-223.255.255.254。最后一个是广播地址。
C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台
D类IP地址
D类IP地址在历史上被叫做多播地址(multicast address),即组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是"1110",范围从224.0.0.0到239.255.255.255。
组播地址:组播报文的目的地使用D类IP地址,D类地址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据报传输的路径是从源地址路由到目的地址,利用"逐跳"的原理在IP网络中传输。然后在IP组播环中,数据包的目的地不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。
特殊的网址
1.每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;
2.IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;
3.IP地址凡是以"11110"开头的E类IP地址都保留用于将来和实验使用。
4.IP地址中不能以十进制"127"作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本地IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。
5.网络ID的第一个8位组也不能全置为"0",全"0"表示本地网络。
IPV4和IPV6
现有的互联网是在IPV4协议的基础上运行的。IPV6是下一版本的互联网协议,也可以说是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPV4定义的有限地址空间将被耗尽,而地址空间的不足必将妨碍互联网的进一步发展。
为了扩大地址空间,拟通过IPV6以重新定义地址空间。IPV4采用32位地址长度,大约只有43亿个地址,估计在2005-2010年将被分配完毕,而IPV6采用128位地址长度,几乎可以不受限制的提供地址。按保守方法估算IPV6实际可分配的地址,整个地球的每平方米面积上仍可分配1000多个地址。在IPV6的设计过程中除解决了地址短缺问题之外,还考虑了IPV4中其他问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
随着互联网的飞速发展和互联网用户对服务水平要求的不断提高,IPV6在全球将会越来越受到重视。实际上,并不急于推广IPV6,只需在现有的IPV4基础上将32位扩展到8位到40位,即可解决IPV4地址不够的问题。这样一来可用地址数就扩大到256倍。
网络七层架构
物理层
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等、它的主要作用是传输比特流(就是由1、0转化为电流来进行传输到底目的地后在转换为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特(bit)。
模数转换
全称模拟-数字转换,英文Analogue-To-Digital Conversion(ADC),作用就是将模拟信号转换为数字信号,简称信号数字化,通常需要设备或装置去进行转换传输,完成模数转换,一般的网线传输就是模数转换(光纤是通过光信号不是电信号)通过传播电磁波来传播比特信息,数字信号的传输都需要经过调制和解调,是否为模数转换要看使用何种物理设备进行传输
数模转换
全称数字-模拟转换,英文Digital-To-Analogue Conversion(DAC),作用就是将数字信号转换为模拟信号,简称数字信号化,是模数转换的逆过程。
数据链路层
主要将物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装;将源自物理层的数据可靠的传输到相邻节点的目标网络层。常把这一层的数据叫做帧,帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率使得与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放管理。
数据链路层需要以通信介质作为传输载体,通信媒介包含双绞铜线、光纤、电波等红外装置。在这一层上数据分发装置(设备)有交换机、网桥、中继器等,通过这些设备来传输中转数据。链路层中的任何设备又被称为节点(node),而沿着通信线路相邻节点之间的通信信道被称为链路(link)。
数据链路层基本概念(了解):
1.结点:数据链路层上的结点主要是主机和路由器。由物理线路联接起来的两个结点,又叫相邻结点。
2.链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
3.数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
4.帧:链路层的协议数据单元,作用是封装网络层数据报。
5.数据链路层的作用是负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
6.点到点,是指路由器和路由器通过广域网接口连接,这就是点到点。
数据链路层的意义:通常路由器和路由器之间的连接是广域网接口,广域网接口特点是传播的比较远,一段线就是一个链路,只有一段线是不能够通信的,还得加上协议才能实现数据的传输。链路+协议才叫做数据链路。
网络层
作用是从下层接收到的数据进行IP地址(例192.168.0.1)的封装和解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包
网络层介于传输层和数据链路层之间,其主要作用是实现两个不同网络之间的数据透明传送,具体包括路由选择,拥塞控制和网际互连等。网络层负责在不同的网络之间(基于数据报的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。
网络层是网络与网络之间通信的最底层,在数据从数据链路层向传输层进行数据传输的通信中,起到构建一个中间通信子网的作用。不同网络有着不同网络层协议和地址规范,如果一个网络中的用户不能识别其他网络的通信协议和地址规范,那么这两个网络之间就不能进行数据通信。就好比不同国家有着不同的交通法规,属于不同的交警系统管理,不允许他国车辆随便出入一样。不同网络也有不同的设计规范,属于不同的组织来管理,必须通过授权,并由专门的协议来负责网络间的通信。
如果只是同一局域网内的各个计算机之间的通信,单靠物理层和数据链路层就可以建立通信链路完成用户间的数据通信,但要扩大应用范围,连接不同的局域子网,就需要借助网络层处理各个网络子网的协议,从而进行计算机的网络互连,所以网络层在TCP/IP协议体系中叫网际互连层。
在网络体系中,每一层都是服务于对应的上下层。网络层也是服务于上层的传输层和下层的数据链路层。
传输层
定义了一些传输数据的协议和端口号(www端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,效率高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。主要是将下层接收的数据进行分段进行传输,到达目的地后再进行重组。常把这一层的数据叫做段。
传输层为相互通信的应用进程提供了逻辑通信,分段及封装应用层递来的数据。其主要目的:一是提供可靠(传输层要向会话层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错)的端到端(即源主机端口到目的主机端口)通信;二是向应用层提供独立于网络的传输服务,换言之,传输层利用网络层提供的服务,并通过传输层地址提供给高层用户传输数据的通信端口,使系统间高层资源的共享不必考虑数据通信方面(数据链路层)和不可靠的数据传输方面(传输层)的问题。
重要概念:在传输层中,通过端口进行寻址识别同一计算机中同时通信的不同应用程序(在数据链路层中,通过MAC地址来寻找局域网中的主机;在网络层中,通过IP地址来寻找网络中国互连的主机或路由器)/TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑来区分不同的服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是从0到65536。其中:
1.知名端口。ICANN指派和控制,从0到1023,一般固定分配给一些服务。
2.注册端口。1024-49125,IANA不指派也不控制,但须注册,这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义。
3.动态端口(短暂端口)。49152-65535,IANA不指派也不控制,无须注册。
传输层的多路复用和分用(分流):在网络上主机与主机之间的通信实质上是主机上运行的应用进行之间的通信。在进行通信时,往往同时运行多个应用程序。为了能够让一个计算机同时支持多个网络程序。并且同时保持与多台计算机进行连接,就需要使用多路复用和分用,具体如下:
多路复用:指当传输层用户进程的信息量较少时,将多个传输网络连接映射到一个网络连接上,以便充分利用网络连接传输率,减少网络连接数。
分用:传输层能够区分不同的进程数据,并且加以区分,即传输层收到数据交付给相应的应用进程,也叫多路分流。
协议:传输层有两种类型协议:面向连接的协议(TCP)和无连接协议(UDP)。
面向连接的协议TCP:Transmission Control Protocol(TCP传输控制协议)是一种面向连接(通讯双方交换数据之前必须建立连接)、可靠的(多种确保可靠性的机制)、基于字节流(8bit(1Byte)为最小单位构成的字节流)的传输层通信协议。TCP作为一种面向连接的协议,只有确认通信的另一端存在时,才会进行数据的传输。TCP在传输的过程中,为了保证不发生丢包,就给每个包一个序号,序号同时也保证了传送到接收端实体的包是按序接收,如果发送端实体在合理的往返时间内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCO用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和,确保数据的可靠传输。面向连接就是通信双方在通信时,要事先建立一条通信线路,然后进行通信。其过程分为三个阶段。第一阶段是建立连接。第二阶段是连接成功建立之后,进行数据传输。第三极端是在数据传输完毕后,释放连接。
面向无连接的协议UDP:User Datagram Protocol(用户数据报协议),是一种无连接,不可靠的协议。无连接是指通信双方不需要事先建立通信线路,而是把每个带有目的地址的包(报文分组)发送到线路上,由系统选定路线进行传输,不需要目标方进行回复。并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是网络拥堵的情况,UDP也无法进行流量控制等避免网络拥塞行为。此外,传输途中出现丢包,UDP也不负责重发。甚至当包到达时出现顺序错乱时也没有纠正功能。UDP常用于包总量较少的通信(DNS、SNMP等)、视频、音频等多媒体通信(即时通信)、限定于LAN等特定网络中的应用通信;广播通信(广播、多播)
备注:网络层和传输层有很大区别。传输层为应用进程之间提供逻辑通信,但网络层是为主机之间提供逻辑通信。
会话层
通过传输层(端口号:传输端口与接收端口)建立数据传输的通道。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识,可以是IP也可以是MAC或者是主机名)。 会话层(Session)组建在传输层之上,依据传输层带来的服务,使应用创建和维持会话,并能使会话取得同步。会话层采用校验点可使通讯会话在通讯失效时从校验点重新复原通讯。这个功能针对于传输大的文件极其重要。会话层的主要功能是在两个节点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送。在会话层和传输层都提到了连接,那么会话连接和传输连接到底有什么区别?
假设你对你的秘书说,给张三先生打个电话,这时你相当于会话层,而秘书相当于传输层。你提出建立连接的要求,但不必自己动手查找电话号码、拨号等。接着秘书着手打电话,开始建立传输连接。当拨号成功,对方拎起话筒,传输连接就建立起来。然后你接过电话,此时会话层(连接)建立成功。 会话层连接建立:会话连接和传输连接之间有三种关系:一对一关系,即一个会话连接对应一个传输连接;一对多关系,一个会话连接对应多个传输连接;多对一关系,多个会话连接对应一个传输关系,好比打电话,一个人讲完后可以换另一个人讲话,而不必让电信局知道换了人讲话。
表示层
主要是进行对接受的数据进行解释、加密和界面、压缩与解压缩(也就是把计算机能够识别的东西转换成人能够识别的东西(如图片、声音等))表示层主要作用之一是为不同主机通信提供一种公共语言,以便能进行交互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。每台计算机可能有它自己表示数据的内部方法,例如ASCII码与EBCDIC,所以需要表示层协定来保证不同的计算机可以彼此识别解析。 例如:IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要表示层来完成这种转换。如果想要记住该表示层,那就是"一种通用的数据格式"。表示层为应用层提供的服务有三项内容:
语法转换:语法转换涉及代码转换和字符集转换,数据格式的修改、数据结构操作的适配、数据压缩、数据加密等。
语法选择:语法选择是提供初始选择的一种语法和随后修改等选择的手段。
联接管理:利用会话层提供的服务建立表示联接,管理在这一联接之上的数据运输和同步控制,以及正常或非正常地终止联接。
应用层
主要是一些终端的应用,比如说FTP(各种文件下载),WEB(IE浏览)、QQ之类(理解成我们在屏幕上可以看到的东西,就是终端应用) 应用层功能:应用层提供各种各样的应用层协议,这些协议嵌入在各种我们使用的应用程序中,为用户与网络之间提供一个打交道的接口。我们要看网页,打开IE浏览器,输入一个网址,就进入了相应的网站,那么这个IE浏览器就是我浏览网页的应用工具,也是工作在应用层的。IE浏览器是基于HTTP协议开发的,Http是一个应用层的协议。应用层分工具和协议两种,我们要使用FTP上传下载一个文件,会首先打开FTP客户端,然后去连接FTP服务器,这个客户端就是应用层的工具。FTP客户端是基于FTP协议开发的,FTP协议也是应用层协议。 我要发一封E-mail,我会在电脑装一个Foxmail、OutLook等邮件客户端软件,然后编辑软件,发送给相应的人。OutLook、Foxmail是基于SMTP和POP3协议开发的,SMTP、POP3也是应用层的协议。单位是:
1:应用层的PDU称为数据;
2:传输层的PDU称为数据段;
3:网络层的PDU称为数据包;
4:网络接口层的PDU称为帧;
5:介质实际阐述实际使用的PDU称为比特(位)。