首页 > 其他 > 详细

10.17软件开发架构,网络编程,互联网协议,Socket

时间:2019-10-17 21:18:31      阅读:47      评论:0      收藏:0      [点我收藏+]

软件开发架构

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

客户端

寻找服务,并享受

服务端

24小时不间断提供服务

软件开发架构分为两种

C/S架构

Client

客户端

Server

服务端

优点

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

缺点

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

    C/S架构的软件

    例如:手机软件,电脑软件

    B/S架构

    Browser

    浏览器(客户端)

    Server

    服务端

    优点

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

    缺点

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

    B/S架构的软件

    例如:在浏览器(客户端)上输入某个软件的域名

    网络编程

    网络编程发展历史

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

    早期远程通信

    电话→电话线
    大头电脑→网线,有线网卡
    笔记本→网卡

    实现通信必备

    物理连接介质

    网卡

    互联网协议

    人与人之间沟通的介质:交流语言
    计算机之间沟通的介质:"互联网协议"

    互联网协议

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

    OSI七层协议

    应用层
    表示层
    会话层
    传输层
    网络层
    数据链路层
    物理连接层

    学习由下到上

    需要优先了解的五层协议

    物理链接层

    基于电信号发送二进制的数据

    数据链路层

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

    以太网协议

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

    交换机

    可以让多台电脑连接到一起

    基于以太网协议发送数据

    特点

    广播
    单播

    弊端

    广播风暴
    局域网与局域网之间不能跨网通信

    互联网

    让局域网之间进行通信

    网络层

    IP地址

    用于标识一台计算机(局域网)的唯一地址

    IP

    点分十进制:0.0.0.0~255.255.255.255

    IPv4/IPv6

    IPv4:一开始用电脑人不多,就出现IPv4
    IPv6:IPv4不够用了,就出现IPv6,包含了IPv4内信息,用来扩展地址

    本机IP

    回环地址:127.0.0.1

    传输层

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

    端口号

    标识电脑上的某一个软件

    端口号范围

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

    开发中常用软件的端口

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

    若想服务端与客户端进行通信,必须要建立连接,产生两条管道

    一条是客户端往服务端发送消息的
    另一条是服务端往客户端发送消息的

    应用层

    http

    ftp

    总结

    IP

    用于标识具有唯一标识的某一台计算机的位置

    port

    端口用于确认计算机上的应用软件

    IP+PORT

    世界上某一台计算机上的软件

    TCP协议工作原理

    TCP协议是一个流式协议

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

    三次握手建连接

    发送连接请求;反馈确认请求,并也发送连接请求;反馈确认连接;成功连接
    建立双向通道,建立好连接

    listen

    监听

    established

    确认请求建立连接

    发送数据

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

    四次挥手断连接

    发送断连接信息,反馈信息;确认信息完整,发送同意断连接信息,反馈信息;连接断开.

    TIME_WAIT

    时间等待

    Socket

    什么是Socket

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

    为什么要使用socket

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

    优点

    可以节省开发成本

    怎么使用socket

    python内置模块
    直接import socket使用

    注意

    客户端与服务端必须遵循
    一端send,另一端recv
    不能两端一样

10.17软件开发架构,网络编程,互联网协议,Socket

原文:https://www.cnblogs.com/793564949liu/p/11695005.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!