今日内容概要
- 软件开发架构
- 网络编程简介
- OSI七层协议
- 网络相关设施
软件开发架构
1.什么是软件开发架构
编写项目之前需要遵循的代码层面上的规范(代码运行的流程,环节,步骤)
2.软件开发架构的分类
在进行软件开发时,通常会在两种基本架构中进行选择,即C/S架构和>B/S架构。
- 什么是C/S架构?
C/S架构是客户端服务器端交互模式,是Client server的简称。它是早期常用的一种软件架构,这种架构的软件需要在用户的电脑上安装客户端程序,如下图所示。
- 什么是B/S架构?
B/S架构是浏览器/服务器交互模式,是Browser/Server的简称。它是目前最常用的一种软件架构,这种架构的软件不需要在用户的电脑上安装任何客户端程序,只需要在用户的电脑上安装浏览器即可。用户可以使用浏览器通过web服务器和数据库做交互,交互的结果将会以网页的形式显示在浏览器端。如下图所示:
3.三种架构的优缺点
- cs架构:
优势:下载对应的客户端 可以在客户端软件内高度定制相关服务
劣势:使用必须先下载客户端 比较繁琐- bs架构:
优势:不需要下载客户端 能够快速体验服务
劣势:定制花里胡哨的功能较为繁琐
4.架构发展趋势
上述架构与我们之前所学的三层架构其实一样。
发展趋势:统一接口原则
微信
里面有很多小程序,可以直接体验其他服务。
支付宝
里面有很多小程序,可以直接体验其他服务。
后续就是cs和bs交错使用,避免各自的劣势!
网络编程简介
1.如何理解网络编程
基于互联网编写代码,程序可以实现远程数据交互。
2.网络编程的目的
网络编程的本质是为了解决计算机之间远程数据交互。
3.网络编程的意义
学习网络编程之后,可以编写一个c/s架构的软件。
4.网络编程的起源
该技术源于美国军方后续转为民用
实际应用:
军方想要实现不同计算机之间数据交互
没有网络编程技术的时候只能拿U盘拷贝并携带
为了跨区域交互数据所以发明了网络编程
5.网络编程的要求
- 早期的电话
必须要有电话线- 大屁股电脑
必须要有网线- 笔记本电脑
必须要有网卡
计算机之间要想实现远程数据交互,首要条件就是要有物理连接介质
OSI七层协议
1.什么是OSI七层协议?
OSI是一个开放性的通信系统互连参考模型,它是一个定义的非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。OSI的7层从上到下分别是7应用层6表示层5会话层4传输层3网络层2数据链路层1物理连接层;其中高层(即7,6,5,4层)定义了应用程序的功能,下面3层(即3,2,1层)主要面向通过网络的端到端,点对点的数据流。
2各层功能
- 应用层
与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。- 表示层
这一层的主要功能是定义数据格式及加密。- 会话层
它定义了如何开始,控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而表示层看到的数据是连续的,在某种情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。- 传输层
这层的功能包括是选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX,PORT。PORT协议(端口协议) 用于标识一台计算机上面正在运行的应用程序(端口号类似于手牌号) 端口号的范围是:0~65535 0~1024:系统经常使用的端口号 1024~8000:常用软件的端口号 我们以后在写项目的时候推荐使用8000之后的端口。 1.同一时间同一台计算机上面端口号不能冲突; 2.端口号是动态分配的; eg:打开qq随机分配一个没有被使用的端口号8888 关闭qq重新打开那么会随机分配可能还是8888也可能是其他。
IP地址:用于标识全世界独一无二的一台接入互联网的计算机。 PORT号:用于标识一台计算机上面的某一个应用程序。 IP+PORT:能够标识全世界独一无二的一台计算机上面的某一个应用程序。 我们日常生活使用浏览器访问的各个网址其实就是IP+PORT eg:www.baidu.com 好记 14.215.177.29:80 难记 ip:port 很多常见的服务端都不需要指定端口,只要访问了ip地址内部去会自动映射。 域名解析: 将好记的地址解析成真正的地址 www.baidu.com解析202.108.22.5:80
- 网络层
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法、示例:IP,IPX等。IP协议: 规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线) IP地址目前有两个版本: 1.IPV4:点分十进制 最小:0.0.0.0 最大:255.255.255.255 # 随着社会的进步,计算机的使用越来越普遍IPV4地址不够用。 2.IPV6:十六进制 '''IPV6可以表示出地球上每一粒沙子''' # IP地址可以唯一标识地球上独一无二的一台接入互联网的计算机。
- 数据链路层
它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。1.规定了二进制数据的分组方式; 2.规定了“以太网协议” 但凡能够接入互联网的计算机都必须有一块网卡; 每块网卡在出厂的时候都会被烧制一个全世界独一无二的编号; 该编号室友12位16进制数组成; 前六位是产商编号; 后六位是流水线号; 这个独一无二的编号也有一个称呼>>>:'mac地址(类似于身份证号)' 基于mac地址就可以实现计算机之间的数据通信了!!!
- 物理连接层
为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成。一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路。
互联网相关专业名词
1.交换机
能够让接入交换机的多台计算机实现彼此互联。
交换是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应 路由 上的技术的统称。
交换机根据工作位置的不同,可以分为广域网交换机和 局域网交换机 。广域的交换机就是一种在通信系统中完成信息交换功能的设备,它应用在 数据链路层 。
交换机有多个端口,每个端口都具有 桥接 功能,可以连接一个 局域网 或一台高性能服务器或工作站。
实际上,交换机有时被称为多 端口网桥。网络交换机,是一个扩大网络的器材,能为子网络中提供更多的连接端口,以便连接更多的计算机。
2.以太网通信(mac通信)
原理
有了交换机之后 根据电脑的mac地址就可以实现数据交互。
广播:先在交换机中吼 所有接入交换机的设备都能收到;
单播:只有被查找设备 才会回复相应信息。
缺陷
1.mac地址通信仅限于局域网
2.接入交换机的设备过多 可能会造成广播风暴
广播风暴:类似于所有人同时吼!!!
3.局域网
有某个固定区域组成的网络;
局域网,LAN(Local Area Network)是指在某一区域内(如一个学校、工厂和机关内)由多台计算机互联成的计算机组。一般是方圆几千米以内。将各种计算机,外部设备和数据库等互相联接起来组成的计算机通信网。
4.广域网
广域网可以看成是更大区域的局域网;
广域网,WAN(Wide Area Network)也称远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
5.路由器
将多个局域网连接到一起的设备。
路由器又可以称之为网关设备。路由器就是在OSI/RM中完成的网络层中继以及第三层中继任务,对不同的网络之间的数据包进行存储、分组转发处理,其主要就是在不同的逻辑分开网络。而数据在一个子网中传输到另一个子网中,可以通过路由器的路由功能进行处理。在网络通信中,路由器具有判断网络地址以及选择IP路径的作用,可以在多个网络环境中,构建灵活的链接系统,通过不同的数据分组以及介质访问方式对各个子网进行链接。路由器在操作中仅接受源站或者其他相关路由器传递的信息,是一种基于网络层的互联设备。