zoukankan      html  css  js  c++  java
  • day_26

    软件开发架构

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

    客户端与服务端的作用

    服务端:

    24小时不间断提供服务

    客户端:

    到服务端获得需要的服务

    软件开发架构分为两种

    C/S架构

    Client:客户端

    Server:服务端

    优点:

    软件的使用稳定,并且可以节省网络

    缺点:

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

    C/S构架的软件:

    qq pycharm 微信 等...

    B/S构架

    Browser:浏览器(客户端)
    Server:服务端

    优点:

    以浏览器充当客户端,无需用户下载多个软件,也无需用户下载更新软件版本,

    直接在浏览器上访问需要使用的软件

    缺点:

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

    B/S架构的软件:

    例如在浏览器上输入某个软件的域名

    互联网协议

    七层协议

    物理层

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

    数据链路层

    定义了电信号的分组方式

    以太网协议

    一组电信号构成一个数据报,叫做'帧',每一数据帧分成:报头head和数据data两部分

    • head包含:(固定18个字节)
      • 发送者/源地址,6个字节
      • 接收者/目标地址,6个字节
      • 数据类型,6个字节
    • data包含:(最短46字节,最长1500字节)

    head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

    每一台连接网线的电脑都必须要有一块网卡,每块网卡都会有世界上独一无二12位的编号mac地址,前6位:厂商号,后6位:流水号

    网络层

    IP地址:用于表示唯一的一台计算机(局域网)的地址

    IP:点分十进制

    ​ 最小值:0.0.0.0

    ​ 最大值:255.255.255.255

    本机IP:回环地址127.0.0.1----》localhost

    传输层

    TCP/UDP协议,他们都是基于端口工作的

    • 端口号:表示电脑上某一个软件
    • 端口号范围:0-65535

    注意:

    1. 操作系统中,一般0-1024的端口都被默认使用了
    2. 尽量使用8000之后的端口号

    常用的默认端口号:

    mysql:3306

    mongodb:27017

    Django:8000

    Tomcat:8080

    Flask:5000

    Redis:6379

    应用层

    应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式

    应用层功能:规定应用程序的数据格式。

    • 例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”

    总结:

    IP:用于唯一表示某一台计算机的位置。

    port:端口用于确认计算机上的一个应用软件

    IP+port:世界上某一台电脑上的一个应用软件

    会话层

    表示层

    TCP协议的工作原理

    TCP是一个流式协议

    三次握手,四次挥手

    三次握手建连接

    建立双向通道,建立好连接

    • listen:监听
    • established:确认请求建立连接

    发送数据

    write

    read

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

    四次挥手断连接

    • TIME_WAIT:时间等待

    Socket

    什么是socket

    一个模块,可以写一套C/S架构的套接字

    为什么要用socket

    socket套接字会封装好各层协议的工作

    可以节省开发成本

    如何使用

    import socket

  • 相关阅读:
    使用UOS微信桌面版协议登录,wechaty免费版web协议又可以用了
    angular之$watch方法详解
    webpack配置这一篇就够
    select设置disable后ie修改默认字体颜色暂时解决
    201901251946
    new year
    test
    mysql密码忘记解决方法
    bianmayujianmatest
    jinzhizhuanhuan
  • 原文地址:https://www.cnblogs.com/maqiaobin/p/11692886.html
Copyright © 2011-2022 走看看