day26-软件开发架构、CS和BS架构、网络编程、TCP协议工作原理、Socket

软件开发架构

开发软件,必须要开发一套 客户端 与 服务端。

客户端(client)

客户端:用户安装的软件;

作用:24小时不间断提供服务

服务端(server)

服务端:统一管理数据库的主机中的软件就叫做服务端,再后来服务端不只是管理数据,外加处理业务逻辑。

作用:如果想要找服务,就去寻找服务并享受

CS架构和BS架构

CS架构

  1. 用户操作系统安装客户端;产商操作系统部署服务端
  2. 每个用户需要独立安装软件、服务端升级也要每个用户升级

优点:
软件的使用稳定,并且可以节省网络资源。

缺点:
1.若用户想在同一个设备上使用多个软件,必须下载多个客户端。
2.软件的每一次更新,客户端也必须跟着重新下载更新。

BS架构

统一客户端即默认安装用户电脑中的浏览器,访问同种类的网站,具体业务的处理根据相应协议和标准提供通用的服务器程序,在不同的服务器处理

优点:
以浏览器充当客户端,无需用户下载多个软件,也无需用户下载更新软件版本,
直接在浏览器上访问需要使用的软件。

缺点:
消耗网络资源过大,当网络不稳定时,软件的使用也会不稳定。

网络编程

网络编程发展历史

所有先进的技术都源自于军事,希望通过远程获取数据,所以出现了"网络编程"。

互联网协议

互联网协议又称为网络七层协议,OSI七层协议,OSI是一个世界标准组织

OSI七层协议:应用层 - 表示层 - 会话层 - 传输层 - 网络层 - 数据链路层 - 物理连接层

应用层

规定应用程序的数据格式 ,http\ftp

传输层

建立端口到端口的通信,TCP/UDP协议

mysql: 3306
mongodb: 27017
Django: 8000
Tomcat: 8080
Flask: 5000
Redis: 6379

  • 端口号: 标识电脑上某个一个软件。

       - 端口号范围: 0-65535
       
       注意:
           1.操作系统中,一般0-1024的端口都被默认使用了(0-1024不要动)
           2.尽量使用8000之后的端口号 8001
    

网络层

引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

数据链路层

定义了电信号的分组方式

数据链路层的 "以太网协议",专门用于处理基于电信号发送二进制的数据。

        以太网协议:
            1.规定好电信号数据的分组方式。
            2.每一台连接网线的电脑都必须要由一块 "网卡"。
                - 网卡由不同厂商生产的
                    - 每块网卡都会有世界上独一无二12位的编号 "mac"地址。
                        - 前6位: 厂商号
                        - 后6位: 流水号

        - 交换机:
            可以让多台电脑连接到一起。

        基于以太网协议发送数据:
            特点:
                广播、单播

            弊端:
                广播风暴、不能跨局域网通信。

        - 互联网:
            让局域网之间进行通信。

物理连接层

主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0

TCP协议工作原理

  • TCP协议的工作原理:

    • TCP是一个流式协议

    • 三次握手,四次挥手(*******):

      • 三次握手建连接:
        建立双向通道,建立好连接。

        • listen: 监听
        • established: 确认请求建立连接
      • 发送数据:
        write
        read
        客户端往服务端发送数据,数据存放在内存中,需要服务端确认收到,数据才会在内存中释放掉。

        否则,会隔一段时间发送一次,让服务端返回确认收到。
        在一段时间内,若服务端还是不返回确认收到,则取消发送。并释放内存中的数据。

      • 四次挥手断连接:

        • TIME_WAIT: 时间等待

Socket

1.什么是Socket?
    socket是一个模块,可以写一套C/S架构的套接字。

2.为什么要使用Socket?
    socket套接字会封装好各层协议的工作。
    好处:
        可以节省开发成本。

3.如何使用
    import socket

注意: 客户端与服务端必须尊循:
一端send,另一端recv
不同两端同时send或recv

posted on 2019-10-17 15:50  shenblogs  阅读(271)  评论(0)    收藏  举报

导航