软件开发架构与网络协议
软件开发架构与网络协议
后续课程目录
网络编程(2d)
并发编程(3d)
数据库MySQL(5d)
前端开发(5d~7d)
django框架(12d)
bbs练习项目(4d 可以看成是django框架阶段总结)
django restframework(5d~7d)
商城项目(可以看成是drf阶段总结)
毕业答辩(7d)
网络爬虫、缓存数据库(redis\mongodb)等诸多必备知识
软件开发架构
什么是软件开发架构
在编写项目之前需要遵循的代码层面上的规范(也就是代码运行的流程 环节步骤)
逻辑架构
软件系统系统当中的各个元件之间所存在的关系,比如外部系统接口、用户界面、商业逻辑元件、数据库等。
物理架构
究竟是怎样做到在硬件当中放置软件元件。例如处于上海与北京进行分布的分布式系统的物理架构,这也就是说全部的元件都是属于物理设备,主要的有主机、整合服务器、应用服务器、代理服务器、存储服务器、报表服务器、Web服务器、网络分流器等。
系统架构
系统架构一般涉及到两个方面的内容,其一是业务架构,其二是软件架构。业务架构描述了业务领域主要的业务模块及其组织结构。软件架构是一种思想,一个系统蓝图,是对软件结构组成的规划和职责设定。一个软件里有处理数据存储的处理业务逻辑的、处理页面交互的、处理安全的等许多可逻辑划分出来的部分。
软件开发架构
C/S架构
c:client 客户端
s:server 服务端
客户端(Client)是指与服务器相对应并为客户提供本地服务的程序。 除了仅在本地运行的某些应用程序外,它们通常安装在普通客户端上,并且需要与服务器一起使用。
服务器端:顾名思义是服务的,客户端发送的请求交给服务器端处理,是以response对象存在,服务器端处理完毕后反馈给客户端。
2.2B/S架构
b:broswer 浏览器
s:server 服务器
3.优缺点
C/S架构的优缺点:
优点:
1.客户端因为是独立设计,所以可以实现个性化
2.因为客户端是需要进行安装的,可以不需要重复安装和加载
3.因为客户端是独立开发的,所以有能力对客户端进行安全设计
4.如果遇到不同的操作系统,需要为不同的操作系统各开发一套客户端
缺点:
1.因为客户端是不需要重复安装,所以用户可以不更新与升级,增加了维护成本。
2.因为需要开发客户端和服务器两套程序,所以开发成本会增加
B/S架构的优缺点:
优点:
1.因为B/S架构具备通用性,所以开发成本较低。
2.因为不需要安装客户端,所以客户端不需要进行升级,只需要更新后台代码即可实现所有客户端的更新。
3.因为B/S架构多用WEB网页进行开发,所以增、删功能也非常**,只需要修改网页即可完成
缺点:
1.耗流量,每次都要加载全部的内容(不过有缓存可以降低流量损耗)
2.因为没有独立的客户端,所以无法实现个性化(**账号体系可以实现)
3.因为没有独立设计客户端,所以客户端难以实现安全控制(HTTPS、控件)。
4.难以实现特殊的操作(删本地文件),所以所有的杀毒软件都是C/S架构的。
B/S架构更多的时候是使用了HTTP协议、而C/S架构更多的时候使用的WinSocket协议(TCP、UDP)
软件开发发展趋势
-
安全开发成为企业数字化创新不可逾越的门槛
-
云原生带来的软件开发资源利用高效率
-
软件开发的可观测性将必不可少
-
低代码与无代码逐渐成为软件开发的热门
-
微服务架构设计成为软件开发平台发展的重要基础
-
软件机器人向前后端、测试、运维的全栈开发迈进
网络编程简介
什么是网络编程
- 网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。
网络编程的目的
- 网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理,代码、开发工具、数据库、服务器架设和网页设计这5部分你都要接触。
OSI七层协议
OSI各层功能简介:
物理层:
将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人
数据链路层:
决定访问网络介质的方式,在此层将数据分帧,并处理流控制。本层 指定拓扑结构并提供硬件寻 址。相当于邮局中的装拆箱工人
网络层:
使用权数据路由经过大型网络 相当于邮局中的排序工人
传输层:
提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员
会话层:
允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书
表示层:
协商数据交换格式 相当公司中简报老板、替老板写信的助理
应用层:
用户的应用程序和网络之间的接口老板
分层协议:
1、应用层协议
应用层协议工作在OSI模型的上层,提供应用程序间的交换和数据交换。
比较常用的应用层协议有:SMTP 、BOOTP、FTP 、HTTP、AFP 、SNMP 、SMB 、TFTP、NCP 、NFS 、telnet、dns
2、传输层协议
传输层协议提供计算机之间的通信会话,并确保数据在计算机之间可靠地传输。
主要的传输层协议有:TCP、SPX、NWL INK、ATP、NBP、NetBEUI、udp
3、网络层协议
网络层协议提供所谓的链路服务,这些协议可以处理寻址和路由信息、错误检测和重传请求。
网络层协议包括:IP 、IPX/SPX、DDP 、NetBEUI、X.25、Ethernet、arp、rarp、icmp
各层的功能协议:
1,物理层
物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。
在这一层,数据的单位称为比特(bit)。
属于物理层定义包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
2,数据链路层
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协议包括:SDLC、HDLC、PPP、STP、帧中继等。
3,网络层
网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。
在这一层,数据的单位称为数据包(packet)。
网络层协议包括:IP、IPX、RIP、OSPF、ARP、RARP、ICMP、IGMP等。
4,传输层
传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。
在这一层,数据的单位称为数据段(segment)。
传输层协议的包括:TCP、UDP、SPX等。
5,会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
6,表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
7,应用层
应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。
TCP与UDP用一个端口发送信息是否冲突
不冲突,TCP,UDP可以绑定同一个端口来进行通信,许多协议已经这样做,udp/53和tcp/53,因为数据接受时根据五元组(传输协议,源ip,目的ip,源端口,目的端口)判断接受者
OSI缩减
五层模式
应用层(表示层,会话层),传输层,网络层,数据链路层,物理连接层
四层模式
应用层,传输层,网络层,接口层(数据链路层,物理连接层)
网络相关名词
交换机
能够让接入交换机的多台计算机实现彼此互联
以太网通信(mac通信)
原理
有了交换机之后 根据电脑的mac地址就可以实现数据交互
广播:先在交换机中吼 所有接入交换机的设备都能收到
单播:只有被查找设备 才会回复相应信息
缺陷
1.mac地址通信仅限于局域网
2.接入交换机的设备过多 可能会造成广播风暴
广播风暴:类似于所有人同时吼!!!
局域网
有某个固定区域组成的网络
广域网可以看成是更大区域的局域网
路由器
将多个局域网连接到一起的设备
域名解析
域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
DSN
配置DNS
域名申请成功之后首先需要做域名解析。点DNS解析管理,然后增加IP,增加别名以及邮件MX记录。先增加IP。如想要实现去掉3W的顶级域名亦可访问网站,除了要在空间里绑定不加3W的域名外,还要解析,主机名为空。
修改DNS
(1)条件:要更改为的主、辅DNS服务器都必须是注册过的、合法的DNS服务器名称,否则修改会失败。
如果要查询DNS是否为合法的DNS,可以点击:国际域名DNS查询界面、国内域名DNS查询界面通用顶级域名DNS查询界面使用方法:输入DNS服务器的名称,选中第三个选项Nameserver,查询如果查询出有DNS注册的信息,如注册商,名称对应的IP地址,则这个DNS是合法的。国内域名DNS查询界面使用方法: 在“主机”一栏中输入DNS服务器的名称,点击查询,如果查询出有DNS注册的信息,如注册商,名称对应的IP地址,则这个DNS是合法的
(2)修改方法:通过相应域名注册公司进行域名变更DNS操作。
解析生效时间
通用顶级域名解析是2小时内生效,国家顶级域名解析24小时内生效。
是否解析成功
因为域名解析需要同步到DNS根服务器,而DNS根服务器会不定时刷,只有DNS根服务器刷新后域名才能正常访问,新增解析一般会在10分钟左右生效,最长不会超过24小时,修改解析时间会稍微延长。可以用ping命令来查看域名是否生效。点击开始菜单>运行>输入"CMD">敲回车键,进入 命令提示符窗口,输入"ping 您的域名",如果红线部分为您主机的IP即解析成功。
网络模型
网络模型:描述网络的结构原理和工作原理
OSI参考模型:七层
Internet网络模型:四层
网络协议:指定层上进行数据交换的规则。
Internet的网络层协议:IP协议;DNS协议(辅助协议)
套接字
套接字(Sockets):应用程序和 [3] 网络协议的接口。
Java Sockets:Java应用程序和网络协议的接口,提供若干个类的定义。
Java应用程序利用这些类继承网络协议的行为,实现网络通信。
TCP Sockets:使用TCP协议实现可靠的网络通信。
UDP Sockets:使用UDP协议实现效率较高的网络通信。