计算机网络工作原理:是将地理位置不用的具有独立功能的多台计算机及其外部设备、通过通信线路连接起来
、在网络操作系统、网络管理软件及网络通信协议的管理和调节下,实现资源共享和信息传递。计算机网络向用户提供最重要的功能有两个、连通性和共享
而计算机的通信最基本的是参考OSI七层参考模型和TCP/IP四层协议簇
1、OSI七层参考模型:
OSI七层是由国际标准化组织与1984年颁布了开放系统互联(OSI)参考模型,OSI参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上依次是、物理层、数据链路层、网络层、传输层、会话层、表示层、和应用层。
(1)物理层
物理层:主要功能是完成相邻节点之间原始比特流的传输。
(2)数据链路层
数据链路层:负责将上层数据封装成固定格式的帧,在数据帧内封装发送端和接收端的数据链路层地址(在以太网中为 MAC地址,MAC地址是用来标识网卡的物理地址:在广域网中点到多点的连接情况下,可以是一个链路的标识),并且为了防止在数据传输过程中产生误码,要在帧尾部加上校验信息,发现数据错误时,可以重新传数据帧。
(3)网络层:
网络层:的主要功能是实现数据从源端到目的端的传输,在网络层,使用逻辑地址来标识一个点,将上层数据封装成数据包,在数据包的头部封装源和目的端的逻辑地址。网络层根据数据包头部的逻辑地址选择最佳的路径,将数据送达目的端。
(4)传输层:
传输层:主要功能是实现网络中不同主机上用户进程之间的数据通信,网络层和数据链路层负责将数据送法目的端主机,而这个数据需要什么用户进程去处理,就需要传输层来分配。
(5)会话层:
会话层:允许不同机器上的用户之间建立会话关系。会话层允许进行类似传输层的普通数据的传送。
(6)表示层:
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等
(7)应用层
应用层:OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
2、TCP/IP四层参考模型:
(1):物理层和数据链路层
在物理层和数据链路层,TCP/IP并没有定义任何特定的协议,它支持所有标准的和专用的协议,网络可以是局域网。城域网和广域网。
常见的协议有:
1) MAC:媒体接入控制,主要功能是调度,把逻辑信道映射到传输信道,负责根据逻辑信道的瞬时源速率为各个传输信道选择适当的传输格式。MAC层主要有3类逻辑实体,第一类是MAC-b,负责处理广播信道数据;第二类是MAC-c,负责处理公共信道数据;第三类是MAC-d,负责处理专用信道数据。
2)RLC:无线链路控制,不仅能载控制面的数据,而且也承载用户面的数据。RLC子层有三种工作模式,分别是透明模式、非确认模式和确认模式,针对不同的业务采用不同的模式。
3)BMC:广播/组播控制,负责控制多播/组播业务。
4)PDCP:分组数据汇聚协议,负责对IP包的报头进行压缩和解压缩,以提高空中接口无线资源的利用率。
(2)网络层:
在网络层。TCP/IP定义了网络互联协议(internet Protocol,IP),而IP又由四个支撑协议组成:ARP(地址解析协议)、RARP(逆地址解析协议)、 ICMP(网际控制报文协议)和IGMP(网际组管理协议)
常见的协议有:
1)IP:IP协议提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。IP地址是重要概念
2)ARP:地址解析协议。基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核必须知道目的端的硬件地址才能发送数据。P2P的连接是不需要ARP的。
3)RARP:反向地址转换协议。允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。局域网网关路由器中存有一个表以映射MAC和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器。
4)IGMP:组播协议包括组成员管理协议和组播路由协议。组成员管理协议用于管理组播组成员的加入和离开,组播路由协议负责在路由器之间交互信息来建立组播树。IGMP属于前者,是组播路由器用来维护组播组成员信息的协议,运行于主机和和组播路由器之间。IGMP 信息封装在IP报文中,其IP的协议号为2。
5)ICMP:Internet控制报文协议。用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
7)RIP:路由信息协议。是一种分布式的基于距离矢量的路由选择协议。
(3)传输层:
传统上,TCP/IP有两个传输层协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP协议传输更加稳定可靠。UDP协议传输效率更高。
常见的协议有:
1)TCP: 一种面向连接的、可靠的、基于字节流的传输层通信协议。
3)RTP: 实时传输协议,为数据提供了具有实时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据。
4)SCTP: 一个面向连接的流控制传输协议,它可以在两个端点之间提供稳定、有序的数据传递服务。SCTP可以看做是TCP协议的改进,它继承了TCP较为完善的拥塞控制并改进TCP的一些不足:
a. SCTP是多宿主连接,而TCP是单地址连接。
b.一个TCP连接只能支持一个流,一个SCTP连接可以支持多个流。
c.SCTP有更好的安全性。
(4)应用层:
在应用层,TCP/IP定义了许多协议,如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统解析协议)
常见的协议有:
1)HTTP:超文本传输协议,基于TCP,是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。
2)SMTP:简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
3)SNMP:简单网络管理协议,由一组网络管理的标准组成,包含一个应用层协议、数据库模型和一组资源对象。
4)FTP:文件传输协议,用于Internet上的控制文件的双向传输。同时也是一个应用程序。
5)Telnet:是Internet远程登陆服务的标准协议和主要方式。为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。
6)SSH:安全外壳协议,为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
7)NFS:网络文件系统,是FreeBSD支持的文件系统中的一种,允许网络中的计算机之间通过TCP/IP网络共享资源
3.数据传输过程(数据封装与解封装过程)
数据封装过程:
(1)应用层传输过程:
在应用层,数据被”翻译”为网络世界使用的语言 --二进制编码数据。
(2)传输层传输过程:
在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部,应用层将人们需要传输的信息转换成计算机能识别的二进制数据后,些数据往往都是海量的,一次性传输如此庞大的数据,一旦网络出现问题而导致数据出错就要重新传输,数据量过大也会增加出错的概率,最终可能导致网络资源耗尽。因此,将数据先分割成小段再传输,一旦数据传输出现错误只需要重新传这一小段数据即可。
在TCP头部有一个关键的字段信息—端口号,它用于识别上层的协议或应用程序,确保上层应用数据的正常通信。对于一台主机就需要搞清楚另外一台主机发送的数据要对应哪个应用程序实施通信。但是对于传输层而言,它是不可能看懂应用层传输数据的具体内容的,因此只能借助一种标识来确定接收到的数据对应的应用程序,这种标识接收端口。
(3)网络层:
在网络层,上层数据被封装上新的报文头部-----IP地址,在IP头部中包含目标IP地址和源IP地址,在网络传输过程中的一些中间设置,如路由器,会根据目标IP地址来进行逻辑寻址,找到正确的路径将数据传转发到目的端主机,如果没有发现目的 IP地址是不可能到达的,它将会把该信息传回发送端主机,因此在网络层需要同时封装目标IP和源IP。
(4)数据链路层
在数据链路层中,上层数据被封装一个MAC头部,其内部有一个关键的字段信息------MAC地址,它是计算机的物理地址,具有全球唯一性,和IP头部类似,在MAC头部也同样封装这目标MAC地址和源MAC地址。
(5)物理层传输过程:
无论在之前封装的报文头部还是上层的数据信息都是由二进制数组成的,在物理层,将这些二进制数组成的比特流传换成电信号在网络中传输。
数据解封装过程:
在物理层,首先将电信息转换成为二进制数据,并将数据发送到数据链路层,在数据链路层,将看目标MAC地址,判断是否与自己的MAC地址吻合,并据此完成后续处理,如果数据报文的目标MAC地址就是自己的MAC地址,数据的MAC头部将被拆掉,并将剩余的数据发送到上一层(网络层),如果目标MAC地址不是自己的MAC地址,对于终端设置来说,它将会丢弃数据。网络层与数据链路层类似,目标IP地址将被核实是否与自己的IP地址相同,从而确定是否发送到上一层,到了传输层,首先要根据TCP头部判断数据段送往那个应用层协议或者应用程序,然后将之前被分组的数据段重组,再送往应用层,在应用层,这些二进制数据将经历复杂的解码过程,以还原成发送者所传输的最原始的信息。