【CS与BS介绍】
(软件开发架构)
1 规定了程序的请求逻辑、功能分块 2 ------------------------------------------------------ 3 1.C/S架构 主要应用于局域网内。 4 Client:客户端,这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 5 Server:服务器端,服务器是计算机的一种,它比普通计算机运行更快、负载更高 6 ------- 7 我们使用计算机下载下来的一个个app本质是各大互联网公司的客户端软件 8 通过这些客户端软件我们就可以体验到各个互联网公司给我们提供的服务 9 eg: 10 下载淘宝客户端 打开 体验淘宝服务端提供的购物服务 11 ps:一般情况下客户端与服务端交互需要互联网 但是有些不需要(因为客户端和服务端都在一台计算机上) 12 ------- 13 客户端:即将要去消费的客人 14 服务端:给客人提供服务的店 15 ----------------------------------------------- 16 作为服务端必备的多个条件 17 1.24小时不间断提供服务 18 2.固定的地址 19 3.能够服务多个客人(高并发) 20 -------------------------------------------------- 21 2.B/S架构 主要应用于广域网中 22 Browser:浏览器 其实也是一种客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。 23 Server:服务器/端 24 三层:Browser客户端、webapp服务器端和DB(数据库)端。 25 Browser客户端:只有简单的输入输出功能 26 webapp服务器端:事物处理,同时向数据库发送请求 27 数据库端:存放大量数据 28 """ 29 浏览器可以充当所有服务端的客户端 30 ps:B/S架构本质还是C/S架构 31 """ 32 --------------------------------------------------- 33 优劣势分析: 34 C/S架构: 35 优势:不同公司的客户端由不同公司独立开发 可以高度定制化客户端功能,服务器压力有所减轻,把一部分资源分开保存 36 劣势:需要下载才能使用,成本高,维护费力,数据的存储和管理比较透明,app逆向 37 B/S架构: 38 优势:不用下载直接访问,维护方式简单,成本比较低,选择性多 39 劣势:无法高度定制化 并且需要遵守很多规则,服务器数据太多,负载严重
网络通信:
但它们之间要想实现通信,就必须通过网络,那什么是网络通信呢?
网络存在的意义:跨地域数据传输===》称之为通信
网络=物理链接介质+互联网通信协议(计算机网络中实现通信必须共同遵守的规则)
【网络编程前戏】
1 1.什么是网络编程 2 基于网络编写代码,能够实现数据的远程交互!!!!!! 3 4 2.学习网络编程的目的 5 能够开发cs架构的软件 6 7 3.网络编程的起源 8 9 -------------------------------------------- 10 """ 11 最早起源于美国军事领域 12 想实现计算机之间数据的交互 13 最早的时候只能用硬盘拷贝 14 之后发明了网络编程 15 """ 16 17 18 4.网络编程必备条件 19 数据的远程交互 20 1.早期的电话:用电话线 21 2.早期的大屁股电脑:用网线 22 3.笔记本电脑、移动电话:用网卡 23 ps:实现数据的远程交互,必备的基础条件是:物理连接介质 24 --------------------- 25 网络编程就是进行两台计算机之间的数据交互和传递, 26 实现双机开发的原理,类似于两台计算机进行QQ聊天或者收发邮件的功能, 27 要实现网络编程需要实现"三要素"。 28 29 1、对方电脑和本机的IP地址,IP地址就是计算机在互联网上的唯一地址。 30 2、端口号:虚拟端口 相当于收信人 31 3、协议:指互联网之间交互的数据格式---相当于写信的语言。
【网络基础】
1 1.一个程序如何在网络上找到另一个程序? 2 首先,程序必须要启动。 3 其次,必须有这台机器的地址, 4 我们都知道我们人的地址大概就是国家\省\市\区\街道\楼\门牌号这样字。 5 那么每一台联网的机器在网络上也有自己的地址,它的地址是怎么表示的呢? 6 就是使用一串数字来表示的,例如:100.4.5.6 7 8 ------------------------------------------------- 9 10 IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 11 12 --------------------------------------- 13 14 什么是ip地址? 15 IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。 16 IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。 17 18 --------------------------------------- 19 20 什么是端口? 21 "端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。 22 23 --------------------------------------- 24 25 在windows上查看端口占用的情况: 26 netstat -aon|findstr "49157" 49157就是你要查的端口数字 27 28 --------------------------------------- 29 30 因此ip地址精确到具体的一台电脑,而端口精确到具体的程序。
【OSI七层协议】
1 OSI七层模型 (Open System Interconnect),全称为开放系统互相连接 2 它将网络分为七层从低到高分别是: 3 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 4 5 每一层的功能是独立的。它利用其下一层提供的服务并为其上一层提供服务。 6 这里所谓的“服务”就是下一层向上一层提供的通信功能和层之间的会话规定,一般用通信原语实现。 7 两个开放系统中的同等层之间的通信规则和约定称之为协议。 8 通常把1~4层协议称为下层协议,5~7层协议称为上层协议。 9 10 引子: 11 须知一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的) 12 13 ---------------------------------- 14 15 如果你要跟别人一起玩,那你就需要上网了,什么是互联网? 16 互联网的核心就是由一堆协议组成,协议就是标准。 17 比如全世界人通信的标准是英语,如果把计算机比作人,互联网协议就是计算机界的英语。 18 所有的计算机都学会了互联网协议, 19 那所有的计算机都就可以按照统一的标准去收发信息从而完成通信了。
****************************************************************
协议:规定数据的组织格式
头部+数据部分
接收网络消息 数据由下往上传递 发送网络消息 数据由上往下传递
但我们现在常用五层协议
应用层-------传输层-----------网络层----------数据链路层----------物理层
一些名词:
1.1物理层负责发送电信号
一组物理层数据称之为:位
单纯的电信号毫无意义,必须对其进行分组
1.2数据链路层负责发送帧:ethernet以太网协议
规定一:一组数据称之为一个数据帧
规定二:数据帧分成两部分==》头+数据
头包含:源地址(发送者,6个字节)、目标地址(接收者,6个字节)、数据类型(6个字节)
数据包含:网络层整体的内容
规定三:规定但凡接入互联网的主机必须有一个网卡,每块网卡在出厂时都烧制好一个全球唯一的48位地址,这个地址就是网卡的MAC地址
1.3网络层负责发送数据包:IP协议
要达到的目的:
划分广播域
每一个广播域但凡接通外部,一定要有一个网关帮内部的计算机转发包到公网
网关与外界通信走的是路由协议
规定1:一组数据称之为一个数据包
规定2:数据帧分成两部分==》头+数据
头包含:源地址(发送者)、目标地址(IP地址)
数据包含:传输层发过来的整体的内容
PS补充:01.IP协议:
规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
范围0.0.0.0-255.255.255.255
一个ip地址通常写成四段十进制数,例:172.16.10.1
ip地址分成两部分:网络部分:标识子网 主机部分:标识主机
02.子网掩码:
所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。
比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
---------------------------------------------------------------
总结:
ip地址+mac地址=======》可以标识全世界范围内独一无二的一台计算机
ip地址===========》表示全世界范围内独一无二的一台计算机