软件开发架构

1.什么是软件开发架构

编写项目之前需要遵循的代码层面上的规范

2.软件开发架构

c/s架构:
c:client 客服端(程序需要先安装后,才能运行在用户的电脑上,对用户的电脑的操作系统环境依赖较大)
s:server 服务端 ps:计算机上下载的各个互联网公司的app本质其实都是客户端
下载一个个客户端的目的说白了就是为了体验对应服务端的服务
客户端可以看作是即将去消费的客人
服务端可以看作是给你推荐服务的店
服务端具备的特征:
1.24小时不间断提供服务
2.固定的地址
3.可以同一时间服务很多人
b/s架构:
b:broswer 浏览器(其实也是一种客户端,它不需要安装应用程序,只需要在浏览器上通过HTTP请求服务器端相关的资源)
s:server 服务器
ps:b/s架构本质也是c/s架构
通过浏览器来充当各个服务器的客户端,用于想要体验服务不需要下载指定的客户端

3.架构优劣势

cs架构:
优势:下载对应的客户端,可以在客户端软件内高度制定相关服务
劣势:使用必须先下载客户端比较麻烦
bs架构:
优势:不需要下载客户端 能够快速体验服务
劣势:制定花里胡哨的功能

4.架构发展趋势

发展趋势:统一接口原则
微信:里面有许多小程序 可以直接体验其他服务
支付宝:里面有许多小程序 可以直接体验其他服务
后期就是cs与bs交错使用,互补各自劣势
ps:可以方便用户使用,更重要的是可以给自己圈用户便于后期收割

网络编程简介

1.如何理解网络编程

基于互联网编写代码,程序可以实现远程数据交互

2.网络编程的目的

网络编程的本质是为了解决计算机之间远程数据交互

3.网络编程的意义

学习网络编程之后,我们就可以编写一个c/s架构的软件

4.网络编程的起源

网络编程最早由美国军方开发
没有网络编程的时候,如果俩台计算机之间要交互数据,只能使用硬盘拷贝

5.网络编程的要求

1.早期的电话线,必须要有电话线
2.大屁股电脑,必须要有网线
3.笔记本电脑,必须要有网卡
计算机之间想要实现远程数据交互,俩者之间必须要有物理连接介质

OSI七层协议

1.了解知识

规定了计算机涉及到数据远程交互的时候,必须要经过的部件/流程
或者说就是所有的计算机在涉及到网络传输这块必须要有相同的零部件 这七层协议只争对网络协议

应用层、表示层、会话层、传输层、网络层、数据链路层、物理连接层
'''也可以合并成五层:'''
应用层、传输层、网络层、数据链路层、物理连接层
'''也可以合并成四层:'''
应用层、传输层、网络层、网络接口层
ps:记忆小技巧:记开头,,应、表、会、传、网、数、物

2. 各层特征

'''
各层特征:
数据发送出去的时候,是从上往下走
数据该收回来的时候,是从下往上走 '''
1.物理连接层
保证物理连接介质的条件,传递电信号(主要研究插网线情况)
2.数据链路层
1.规定了电信号的分组方式
2.规定每台计算机都必须有一块网卡
网卡上必须有一串记录,可以看作是它的身份证号-->以太网地址\mac地址
以太网地址\mac地址:前6位是生产编号,后6位是生产流水线
ps:有了太网地址\mac地址,我们就可以根据该地址查找计算机(基于mac地址实现数据交互)
3.网络层
IP协议:规定了任何接入互联网的计算机都必须有一个IP地址(身份的标识)
IP地址的特性:
IPV4:点分十进制,最小是0.0.0.0,最大是255.255.255.255
随着社会的发展,同时上网的人越来越多
IPV6:百度了解
IP特征:每个IP都自带定位
扩展知识:IP代理:隐藏自己的地址,但是还是可以找得到的
4.传输层
PORT协议(端口协议):规定了一台计算机上的每一个应用程序都必须有一个端口号
端口号相当于是计算机用来管理多个应用程序的标记
端口号的特征
1.端口号范围:0-65535
2.端口号是动态分配
3.同一时间同一台计算机端口号不能冲突,同一时间一个端口号只能给一个计算机使用
4.固定的使用范围:
0-1024范围是操作系统内部使用的
1024-8000范围是常见的软件已经使用了
我们以后写代码使用8000以后的端口号
扩展知识:
IP+PORT:表示全世界任意一台接入互联网的计算机上的某个具体的应用程序
什么是网址(URL):统一资源定位符,本质:IP+PORT

网络相关设施

1.交换机

能够让接入交换机的多台计算机实现彼此互联

2.以太网通信(mac通信)

原理:有了交换机之后,根据电脑的mac地址就可以实现数据交互
广播:在交换机中喊,所有接入交换机的设备都可以听到
单播:被喊得设备给与回应
缺陷:
mac地址通信仅限于局域网
接入设备过多的时候,会造成广播风暴

3.局域网

有某个固定区域组成的网络
广域网可以看作是一个更大区域的局域网

4.路由器

局域网与局域网直接不能直接跨着访问
路由器作用(功能):将多个局域网连接到一起,不同的局域网可以相互访问

网络编程、OSI七层协议的更多相关文章

  1. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  2. 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议

    Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...

  3. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  4. 软件开发架构与网络之OSI七层协议(五层)

    本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...

  5. 网络之OSI七层协议模型、TCP/IP四层模型

    13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...

  6. 网络编程-osi七层

    一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...

  7. python网络编程-OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  8. Java网络编程:OSI七层模型和TCP/IP模型介绍

    OSI(Open System Interconnection),开放式系统互联参考模型 .是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了7层.每一层都有相关.相对应的物理设备,比如常规的路 ...

  9. CSIC_716_20191204【网络编程 OSI 七层结构】

     软件开发架构 C/S架构: Client: 客户端 Server: 服务端 比如: 微信客户端.QQ客户端等... 优点: - 软件的使用稳定 - 节省网络资源 缺点: - 安装麻烦,用户体验差 - ...

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

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

随机推荐

  1. linux篇-linux LAMP yum版安装

    LAMP(linux.apache.mysql.php),是四个套件的合成,简单讲就是要把php运行在linux上,需要依赖apache和mysql数据库. 1 准备好一个linux系统(centos ...

  2. Android——RelativeLayout

    代码:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android= ...

  3. Fail2ban 配置详解 动作配置

    ### # 包含配置 ### [INCLUDES] before = iptables-common.conf ### # 定义动作 ### [Definition] actionstart = &l ...

  4. 聚类--DBSCN

    1.什么是DBSCN DBSCAN也是一个非常有用的聚类算法. 它的主要优点:它不需要用户先验地设置簇的个数,可以划分具有复杂形状的簇,还可以找出不属于任何簇的点. DBSCAN比凝聚聚类和k均值稍慢 ...

  5. 题解 P7075 [CSP-S2020] 儒略日

    当时考场上因为这个炸掉,一年后回来复仇. 这里提供一个与大多数人不一样的做法. 首先考虑一个简单一些的问题,怎么应付单个询问? 不难想到,我们对于一个日期,让他从 \(-4713\) 年 \(1\) ...

  6. 关于『HTML』:第三弹

    关于『HTML』:第三弹 建议缩放90%食用 盼望着, 盼望着, 第三弹来了, HTML基础系列完结了!! 一切都像刚睡醒的样子(包括我), 欣欣然张开了眼(我没有) 敬请期待Markdown语法系列 ...

  7. Mesokurtic,Leptokurtic, Platykurtic介绍

    [原文地址1] [原文地址2] 简要介绍 这三个东西其实是把峰度(Kurtosis)分成了三种类别,峰度也就是评测一个分布的尾部与正态分布的尾部有多不同的定量测量值(如下图所示). 对于一个正态分布的 ...

  8. 工具分享:清理 Markdown 中没有引用的图片

    前言: 之前,我写笔记的工具一直都是 notion,而且没有写博客的习惯.但是一是由于 notion 的服务器在国外,有时候很不稳定:二是由于 notion 的分享很不方便,把笔记分享给别人点开链接之 ...

  9. RocketMQ的基本使用

    第一步导入依赖: <!--Springboot 集成 RocketMQ依赖--> <dependency> <groupId>org.apache.rocketmq ...

  10. Java使用FreeMarker模版技术动态生成word实践

    一.序言 在日常开发中,常常有动态word文件生成的需求,通过编制模版,然后动态修改word内容以组合成新的文件.报告单.请假单.发票页等都可以使用动态生成word来解决. 笔者总结归纳出通用技术要点 ...