基石为勤能补拙的迷宫之旅——客户端/服务器架构,OSI模型

一、客户端/服务器架构

    服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的“服务”。它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求。
    客户端因特定的需求而联系服务器,并发送必要的请求数据,然后等待服务器的回应,最后完成请求或给出故障的原因。服务器无限地运行下去,并不断地处理请求;而客户端会对服务进行一次性请求,然后接收该服务,最后结束它们之间的事务。客户端在一段时间后可能会再次发出其他请求,但这些都被当作不同的事务。

1.1 硬件客户端/服务器架构

    打印(打印机)服务器是硬件服务器的例子。打印(打印机)服务器处理传入的打印作业并将其发送给系统中的打印机(或其他的打印设备)。这样的计算机通常可以通过网络进行访问,并且客户端计算机将向它发送打印请求。
    另一个例子文件服务器是拥有庞大通用存储容量的计算机,可以被客户端远程访问。客户端计算机会挂载服务器计算机上的磁盘,其目标就是让用户得到与访问本地磁盘完全相同的体验。

1.2 软件客户端/服务器架构

    软件服务器也运行在一块硬件之上,但是没有像硬件服务器那样的专用外围设备(如打印机、磁盘驱动器等)。软件服务器提供的主要服务包括程序执行、数据传输检索、聚合、更新,或其他类型的编程或数据操作。
    最常见的软件服务器就是 Web 服务器,在Web服务器上安装希望提供给用户的 Web 页面和 Web 应用程序,用户通过个人计算机上的浏览器(Browser)向Web服务器发送请求,Web服务器持续监听请求,获得请求之后向(Web)客户端回送 Web 页面,然后等待下一个客户端的请求。上面有提到服务器一旦开启都将可能永远运行,虽然不能绝对保证,但是会尽可能保证运行状态。
    数据库服务器是另一种类型的软件服务器。它们接受客户端的存储或检索请求,响应请求,然后等待更多的事务。
    窗体(window)服务器,几乎可以认为这些服务器是硬件服务器。它们运行在一台附带(外接)显示设备(如显示器)的计算机上。窗体客户端其实就是一些程序,这些程序需要一个窗口化的环境来运行。这些通常被当作图形用户界面(GUI)应用程序。如果在没有窗体服务器的情况下执行它们,也即意味着在一个基于文本的环境中,如 DOS 窗口或一个 UNIX shell 中,那么将无法启动它们。一旦能够访问窗体服务器,那么一切都会正常。

二、OSI模型

2.1 定义

开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,一个试图使各种计算机在世界范围内互连为网络的标准框架。
OSI模型

2.2 OSI七层协议

    应用层表示层会话层传输层网络层数据链路层物理连接层,越往上越接近软件,反之接近计算机硬件。
    要想实现远程通信,第一个需要具备的条件就是:物理连接介质。那什么是物理连接物质呢?网卡、网线、交换机、路由器、防火墙,以上都能称之为物理连接介质,但仅仅是拥有这些介质就行了吗?我们知道不同国家的人进行交流通常会使用全球公共的语言英语作为媒介,所以计算机与计算机之间要想实现远程通信,光有物理连接介质是不够的,它也需要一个共同的标准——协议

物理连接层:

实现计算机之间的物理连接,传输的数据都是电信号,因为电信号的高低电平刚好对应二进制中的1、0

数据链路层

  1. 规定了二进制数据的分组方式
  2. 规定了只要是介入物联网的计算机,都必须有一块网卡,网卡上面刻有世界唯一的编号——mac地址,12位16进制数表示:前六位生产厂家,后六位流水线号

    以上两个规定就是以太网协议(Ethernet),目前使用最广泛的局域网技术,通信基本靠“吼”,无法跨局域网通信。
    广播:是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。当所需通知到的设备接收到广播会回应此次广播,这就是局域网通信的方式。
    广播风暴:广播风暴(broadcast storm)简单的讲是指当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪,这就是广播风暴。

网络层(IP协议)

规定了计算机都必须有一个IP地址,IP地址是4个点分十进制组成(IPV4),新出的IPV6是为了兼容更多的计算机。IPV4最小的地址是0.0.0.0 ,最大的255.255.255.255。IP协议可以跨局域网传输,IP地址可以唯一标识互联网中独一无二的一台机器。

传输层(端口协议)

    TCP,UDP基于端口工作的协议
    其实计算机之间的通信是计算机上面的应用程序与应用之间的通信,所以我们引出端口(port)这个概念。
    端口(port):唯一标识一台计算机上某一个基于网络通信的应用程序
    端口范围:0~65535(动态分配),0-1024通常都是操作系统分配的端口号,通常情况下,我们写的软件端口号建议起在8000之后,比如Flask框架默认端口5000,Django默认端口8000,MySQL默认端口3306,Redis默认端口6379
    一台计算机同一时间一个端口号只能被一个应用程序占用。

TCP协议(流式协议,可靠协议)
    可靠原因:给对方发消息,对方必须回复确认收到传输的数据才会被删除,否则会在一定时间间隔之内,反复发送,直到对方接受,或者超时
    三次握手:建立连接。
在这里插入图片描述
    四次挥手:断开连接
在这里插入图片描述

应用层(HTTP协议,ftp协议)

猜你喜欢

转载自blog.csdn.net/weixin_43860025/article/details/89676736