zoukankan      html  css  js  c++  java
  • day 26

    day 26 网络编程

    01.软件开发架构

    1. 开发软件,必须要开发一套客户端与服务端
      1. 服务端;24小时不间断提供服务
      2. 客户端;用户使用,寻找服务端,获取服务
    2. 软件开发架构;
      1. C/S架构;
        1. Client;客户端
        2. Server;服务端
        3. 优点;软件的使用稳定,并且可以节省网络资源
        4. 缺点;
          1. 若用户想在同一个设备上使用多个软件,必须下载多个客户端
          2. 软件的每一次更新,客户端也必须跟着重新下载更新
        5. C/S架构软件;
          1. 电脑上的QQ、Pycharm等,移动端的微信、天猫等。。。
      2. B/S架构;
        1. Browser;浏览器
        2. Server;服务端
        3. 优点;
          1. 以浏览器充当客户端,无需下载多个软件
          2. 也无需版本更新,直接在浏览器上访问需要使用的软件
        4. 缺点;
          1. 消耗网络资源过大,当网络不稳定时,软件的使用也不稳定
        5. B/S架构的软件;
          1. 在浏览器(客户端)上输入某个域名比如京东(https://www.jd.com

    02.网络编程

    1. 网络编程发展历史;
      1. 所有先进技术都来自军事,通过远程获取数据,所以出现了‘网络编程’。
      2. 早期如何实现远程通信;
        1. 打电话——>电话线
        2. 电脑——>网卡——>网线
        3. 笔记型电脑——>无线网卡——>移动网络
      3. 要实现远程通信必须具备;
        1. 物理连接介质;网卡
        2. 互联网协议;计算机与计算机沟通的介质,相当于计算机之间说话的语言
    2. 互联网协议
      1. 互联网协议又称之为网络七成协议
      2. OSI七层协议;数据传输从上到下运行,接收则从下往上运行
        1. 应用程
        2. 表示层
        3. 会话层
        4. 传输层
        5. 网络层
        6. 数据链路层
        7. 物理连接层
      3. 物理连接层;基于电信号发送二进制的数据
      4. 数据链路层;‘以太网协议’专门处理基于电信号发送到二进制数据
        1. 以太网协议;
          1. 规定好的数据分组方式
          2. 每一台连接网线的电脑都必须要由一有‘网卡’
          3. 每一块网卡都拥有世界上独一无二的编号
            1. 前六位;场上编号
            2. 后六位;流水线号
        2. 交换机;可以让多台电脑连接到一起
        3. 以太网;广播,单播;
          1. 弊端;广播风暴、不能跨局域网通信。
        4. 互联网;让局域网之间可以通信
      5. 网络层;
        1. IP地址;用于唯一标识计算机(局域网)的地址
        2. IP地址;点分十进制
          1. 最小值;0.0.0.0
          2. 最大值;255.255.255.255
        3. IPv4;一开始用电脑人数少时,出现的协议版本,地址长度为32位
        4. IPv6;用来扩展IPv4,地址长度为128位,允许协议进行扩充
        5. 本机IP;回环地址 :127.0.0.1——>localhost
      6. 传输层;
        1. TCP/UDP协议;他们都是基于端口
        2. 端口号;表示电脑上的某一个软件,相当于软件的IP地址
        3. 端口号范围;0~65535
        4. 操作系统中;一般0~1024的端口都被默认使用了(尽量不要动),推荐尽量使用8000之后的端口号
        5. 开发中常用软件的默认端口号
          1. mysql;3306
          2. nibgidb;27017
          3. Django;8000
          4. Toncat;8080
          5. Flask;5000
          6. Redis;6379
        6. 若想服务端与客户端进行通行,必须建立连接,产生两条管道
          1. 一条是客户端往服务端发送消息的
          2. 一条是服务端往客户端发送消息的
        7. TCP协议的工作原理;TCP协议是流式协议
          1. 反馈机制;(正反相同)
            1. 客户端往服务端发送消息(存放于内存中),服务端接收到消息后,必须要给客户端返回一个确认收到。
            2. 否则客户端会在某个时间段内,不停的发送,超过该时间释放内存,删掉该信息。
          2. 三次握手;建连接
            1. 发送链接请求
            2. 发送收到该请求,发送同意该请求
            3. 发送收到已同意请求
          3. 发送数据
            1. write
            2. read
          4. 四次挥手;断连接
            1. 发送断开链接请求
            2. 发送收到该请求
            3. TIME_WAIT;等待时间
            4. 确认再没有消息传来,发送同意该请求
            5. 发送收到已同意请求
      7. 应用层
        1. http
        2. ftp

    03.Socket

    1. Socket在python中是一个模块,可以写一套C/S架构的套接字。
    2. Socket套接字会封装好隔层协议的工作,可以节省开发成本。
    3. import socket # socket为python内置模块
  • 相关阅读:
    自制 os 极简教程1:写一个操作系统有多难
    面试官问我redis数据类型,我回答了8种
    全网最硬核讲解计算机启动流程
    cinder-volume Required RPC API Old
    Docker swarm 容器流量追踪
    postgres schema访问权限设置
    骑士cms < 6.0.48任意文件包含漏洞简记
    Socket学习
    网络编程
    交换机和路由器的区别
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11695280.html
Copyright © 2011-2022 走看看