软件开发架构

规定了程序的请求逻辑、功能分块

1.C/S架构
Client:客户端
Server:服务端
"""
我们使用计算机下载下来的一个个app本质是各大互联网公司的客户端软件
通过这些客户端软件我们就可以体验到各个互联网公司给我们提供的服务
eg:
下载淘宝客户端 打开 体验淘宝服务端提供的购物服务
下载抖音客户端 打开 体验抖音服务端提供的视频服务
ps:一般情况下客户端与服务端交互需要互联网 但是有些不需要(因为客户端和服务端都在一台计算机上) 客户端:即将要去消费的客人
服务端:给客人提供服务的店 作为服务端必备的多个条件
1.24小时不间断提供服务
2.固定的地址
3.能够服务多个客人(高并发)
"""
2.B/S架构
Browser:浏览器
Server:服务器/端
"""
浏览器可以充当所有服务端的客户端 ps:B/S架构本质还是C/S架构
""" '''
C/S架构
优势:不同公司的客户端由不同公司独立开发 可以高度定制化客户端功能
劣势:需要下载才能使用
B/S架构
优势:不用下载直接访问
劣势:无法高度定制化 并且需要遵守很多规则
'''

架构总结

ATM:三层架构
选课系统:三层架构
本质也属于软件开发架构的范畴 软件设计的大方向>>>:统一接口
微信小程序
支付宝小程序

网络编程前戏

1.什么是网络编程
基于网络编写代码 能够实现数据的远程交互
2.学习网络编程的目的
能够开发cs架构的软件
3.网络编程的起源
"""
最早起源于美国军事领域
想实现计算机之间数据的交互
最早的时候只能用硬盘拷贝
之后发明了网络编程
"""
4.网络编程必备条件
数据的远程交互
1.早期的电话
电话线
2.早期的大屁股电脑
网线
3.笔记本电脑、移动电话
网卡
ps:实现数据的远程交互必备的基础条件是物理连接介质

OSI七层协议简介

"""
OSI七层协议:规定了所有的计算机在远程数据交互的时候必须经过相同的处理流程、在制造过程中必须拥有相同的功能硬件
"""
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
ps:应、表、会、传、网、数、物 '''常见的是整合之后五层或者四层'''
应用层
传输层
网络层
数据链路层
物理连接层 应用层
传输层
网络层
网络接口层 """
接收网络消息 数据由下往上传递
发送网络消息 数据由上往下传递
"""

OSI七层协议之物理连接层

主要用于确保计算机之间的物理连接介质 接收数据(bytes类型、二进制)

OSI七层协议之数据链路层

1.规定了电信号的分组方式
2.以太网协议
规定了计算机在出厂的时候都必须有一块网卡 网卡上有一串数字
该数字相当于是计算机的身份证号码是独一无二的
该数字的特征:12位16进制数据
前6位产商编号 后6位流水线号
该数字也称为:以太网地址/MAC地址

网络相关专业名词

计算机之间要想实现数据交互必须要'连接'到一起

1.交换机
能够将所有接入交换机的计算机彼此互联起来
2.广播
首次查找接入同一个交换机的其他计算机 需要朝交换机里面吼一嗓子
3.单播
首次被查找的计算机回应查找它的计算机 并附带自己的mac地址
4.广播风暴
接入同一台交换机的多台计算机同时发广播
5.局域网
可以简单的理解为有单个交换机组成的网络
在局域网内可以直接使用mac地址通信
6.广域网
可以简单的理解为范围更大的局域网
7.互联网
由所有的局域网、广域网连接到一起形成的网络
8.路由器
不同的局域网计算机之间是无法直接实现数据交互的 需要路由器连接

OSI七层协议之网络层

IP协议:规定了所有接入互联网的计算机都必须有一个IP地址 类似于身份证号
mac地址是物理地址可以看成永远无法修改
IP地址是动态分配的 不同的场所IP是不同的
IP地址特征:
IPV4:点分十进制
0.0.0.0
255.255.255.255
IPV6:能够给地球上每一粒沙分一个IP地址
IP地址可以跨局域网传输
ps:IP地址可以用来标识全世界独一无二的一台计算机

OSI七层协议之传输层

PORT协议(端口协议)
用来标识一台计算机上面的某一个应用程序
范围:0-65535
特征:动态分配(洗浴中心号码牌)
建议:
0-1024 系统默认需要使用
1024-8000 常见软件的端口号
8000之后的 URL:统一资源定位符(网址)
网址本质是有IP和PORT组成的!!! IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个应用程序 域名解析:将网址解析成IP+PORT 我们之所以不直接使用IP+PORT的原因是太难记 所以发明了域名(网址) IP:PORT 实际使用冒号连接
114.55.205.139:80

网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物理连接层、数据链路层、网络相关专业名词、OSI七层协议之网络层的更多相关文章

  1. python基础(29):网络编程(软件开发架构、网络基础、套接字初使用)

    1. 软件开发架构 我们了解的程序之间通讯的应用可分为两种: 第一种是应用类:qq.微信.百度网盘.腾讯视频这一类是属于需要安装的桌面应用. 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就 ...

  2. JDBC事务--软件开发三层架构--ThreadLocal

    JDBC事务--软件开发三层架构--ThreadLocal 一.JDBC事务 1.概述: 事务是指逻辑上的一组操作!这一组操作,通常认为是一个整体,不可拆分! 特点:同生共死;事务内的这一组操作要么全 ...

  3. 学java编程软件开发,非计算机专业是否能学

    近几年互联网的发展越来越好,在国外,java程序员已经成为高薪以及稳定职业的代表,虽然国内的有些程序员很苦逼,但是那只是少数,按照国外的大方向来看,程序员还是一个很吃香的职业.根据编程语言的流行程度, ...

  4. 《深入浅出嵌入式底层软件开发》—1. ARM汇编编程基础

    1.1 ARM CPU寄存器 ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以要搞清楚ARM有哪些寄存器:ARM寄存器分为两类:普通寄存器和状态寄存器:普通寄存器一共有16个,分别为R0——R ...

  5. 一种脱离VC编程软件的方法学习C/C++编程(搭建EditPlus实现在文本编辑框中执行.c文件

    网上下载一个EditPlus记事本安装好后就可以按照下面步骤进行搭建环境了: 一.工具(Tools)→配置用户工具(Configure UserTools...),[添加工具](Add Tool> ...

  6. 软件开发架构、网络基础知识、osi七层模型

    一.软件开发的架构 涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就可以 ...

  7. 你不得不用的MAC软件开发工具软件,个个万里挑一

    作为软件行业,尤其是程序员,Mac上都不得不安装一些必备的MAC软件开发工具软件,下面给大家分享一些必装的MAC软件开发工具软件,以备日后之需,有备无患. 其中,包含各种语言的主流 IDE.开发辅助. ...

  8. python网络编程-Json序列化功能扩展-软件开发架构-OSI七层协议-TCP-01

    面向对象补充知识点(面向对象的应用) 扩展json序列化所支持的数据类型(分析源码) import json from datetime import datetime, date # ------- ...

  9. 1、网络并发编程--简介、软件开发架构、OSI七层协议

    python复习 变量与常量 基本数据类型 内置方法 字符编码.文件操作 函数 函数参数.闭包函数.装饰器 面向对象 封装.继承.多态 """ 什么是对象 数据与功能的结 ...

  10. 软件开发架构,网络编程简介,OSI七层协议,TCP和UDP协议

    软件开发架构 什么是软件开发架构 1.软件架构是一个系统的草图. 2.软件架构描述的对象是直接构成系统的抽象组件. 3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯. 4.在实现阶段,这些抽 ...

随机推荐

  1. KingbaseES R6 集群repmgr witness 手工配置案例

    使用见证服务器: 见证服务器是一个正常的KingbaseES实例,不是流复制群集的一部分; 其目的是,如果发生故障转移情况,则提供证明它是主服务器本身不可用的证据,而不是例如在不同物理位置之间的网络分 ...

  2. K8S_CNI

    CNI 插件 定义: Container Network Interface 容器通用接口 K8S 中可选的 CNI 插件如下: Flannel 较流行 Calico 性能棒,比Flannel快1% ...

  3. Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器

    Java 监控直播流rtsp协议转rtmp.hls.httpflv协议返回浏览器 目录 需求背景: 一:了解音视频流协议: 二:方案一 rtsp 转rtmp 1.下载nginx + nginx-rtm ...

  4. Java 多线程:基础

    Java 多线程:基础 作者:Grey 原文地址: 博客园:Java 多线程:基础 CSDN:Java 多线程:基础 顺序.并行与并发 顺序(sequential)用于表示多个操作『依次』处理.比如把 ...

  5. ES 7.13版本设置索引模板和索引生命周期管理

    第一步:索引管理中查看都有哪些索引文件,然后添加索引模式(后面的日期用*表示) 第二步:索引生命周期管理 自带的有一个log,就使用这个,不用再新建了,根据需求修改里面的配置就行了 第三步:添加索引模 ...

  6. 通过helm搭建Harbor

    文章转载自:http://www.mydlq.club/article/66/ 系统环境: kubernetes 版本:1.20.1 Traefik Ingress 版本:2.4.3 Harbor C ...

  7. Docker网络详解——原理篇

    安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .host 网络模式 简介 Host 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP ...

  8. 使用coverlet统计单元测试的代码覆盖率

    单元测试是个好东西, 可以在一定程度上兜底 虽然写单元测试这件事情非常麻烦 但是好的单元测试可以显著提高代码质量, 减少bug, 避免无意中的修改导致其他模块出错 写测试用例的过程中, 靠人力去确保所 ...

  9. 【前端必会】webpack 插件,前进路绕不过的障碍

    背景 webpack的使用中我们会遇到各种各样的插件.loader. webpack的功力主要体现在能理解各个插件.loader的数量上.理解的越多功力越深 开始 https://webpack.do ...

  10. WPF开发经验-实现自带触控键盘的TextBox

    一 引入 项目有个新需求,当点击或触碰TextBox时,基于TextBox的相对位置,弹出一个自定义的Keyboard,如下图所示: 二 KeyboardControl 先实现一个自定义的Keyboa ...