软件开发架构
1.c/s架构 类似app
client : 客户端
server: 服务端
优势:可以高度定制化客户端内容
2.b/s架构 类似网站 (本质也是c/s架构)
browser: 浏览器
server : 服务端
优势:不用下载直接访问
服务端必备的几个条件:
1.24小时不间断提供服务
2.固定的地址
3.能够高并发
三层架构也属于软件开发架构的范畴
网络编程
1.网络编程就是基于网络编写代码,能够实现数据的远程交互
2.学习网络编程是为了开发出cs架构的软件
3.网络编程最早起源于美国军事
4.网络编程的必备条件
实现数据的远程交互必备的基础条件是物理连接介质
OSI七层协议
OSI七层协议:
规定了所有的计算机在远程数据交互的时候必须经过相同的处理流程,在制造过程中必须拥有相同的功能硬件
"""
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
"""
也可以整合为四层或五层
"""
应用层
传输层
网络层
数据链路层 -|_____网络接口层
物理连接层 -|
"""
各层的功能作用
# 1.物理连接层
主要用于确保计算机之间的物理连接介质,接收数据(bytes类型,二进制类型)
# 2.数据链路层
-1.数据链路层规定了电信号的分组方式
-2.以太网协议:
1) 规定了计算机在出厂的时候都必须要有一块网卡 网卡上有一串数字(以太网地址/MAC地址)
2) 这串数字相当于计算机的身份证号是独一无二的
3) 这串数字由12位16进制数据构成
# 3.网络层
-1.IP协议:规定了所有连接到互联网的计算机都必须有一个IP地址(可以标识全世界独一无二的一台计算机)
-2.IP地址与MAC地址区别:
mac地址是物理地址无法被修改
ip地址是动态分配的,不同场所的ip也是不同的
-3.IP地址的特点
IPV4:点分十进制 0.0.0.0/ 255.255.255.255
IPV6: 比IPV4可以接入的计算机更多,甚至可以给每一粒沙子分到一个IP
# 4. 传输层
-1.PORT协议(端口协议)
用来标识一台计算机上面的某一个应用程序
端口范围: 0-65535
端口特征: 动态分配
"""
0-1024 系统默认使用的端口号
1024-8000 常见软件的端口号
8000后 我们可以自己使用的
"""
-2.URL(网址):统一资源定位符
网址本质是由IP+PORT组成,我们用www.~.com 其实是用了域名
IP+PORT能够定位一个计算机上的一个应用程序,是独一无二的
-3.域名解析:
就是将网址域名解析成了IP+PORT
-4.IP:PORT
-5.TCP协议与UDP协议(都是用来规定通信方式的)
不遵循协议也是可以进行通讯的,但是遵循了协议后进行的通讯会更合法合规。
应用层
-应用层相当于程序员自己写的应用程序,里面的协议非常多
例: http、https、FTP...
网络相关专业名词
"""计算机之间要想实现数据交互就必须要 ‘连接’ 到一起"""
1.交换机
能够将所有接入交换机的计算机彼此互联起来
2.广播
首次查找接入同一个交换机的其他计算机,需要朝交换机里吼一嗓子
3.单播
首次被查找的计算机回应查找它的计算机,并且会附带自己的mac地址
4.广播风暴
接入同一台交换机的多台计算机同时发广播
5.局域网
理解为由单个交换机组成的网络,局域网内可以使用MAC地址通信
6.广域网
理解为范围更大的局域网
7.互联网
由所有局域网,广域网连接到一起形成的网络
8.路由器
不同局域网的计算机之间无法直接实现数据交互,需要路由器连接