软件的开发架构有两种:
C\S架构:
C\S 架构是有客户端和服务端的架构,这种架构客户端一般都是有应用程序的,程序先安装到用户电脑,手机等硬件上面,这个架构对硬件的操作系统有依赖
B\S架构:
B\S架构就是使用浏览器浏览与服务器的架构,这种架构不依赖与操作系统,不管你是windons,Linux,mac还是说安卓系统,只要你有浏览器就可以
客户端:
我们电脑上面的微信,手机上的支付宝这些都是属于客户端
服务端:
服务端也叫服务器,服务器是24小时不断电不断网,属于全年都在等你的链接
OSI的七层协议:
一个完整的计算机是有硬件,操作系统,应用软件三个部分组成,一台计算机就可以在本地玩耍了了;如果想要和别人一起联机,哪呢你就必须联网,可以局域网和广域网也就是互联网。
互联网的核心就是有一堆协议组成的,协议就是标准,大家都按照统一的标准制造自己的电脑,手机设备这样大家九天可以相互通信,那么这个协议就是osi协议
OSI七层协议:
1.物理层链接:
就是我们网卡插得的网线,链接的交换机和路由器光缆这些都属于物理链接层,物理连接层是基于电信号传输0101010101的二进制数据链接
2.数据链接路层
1.规定了电信号的分组方式,就是说硬件传输的电信号,是代表了什么意思
2、规定了任何一台接入互联网的计算机都必须有一张网卡,不管是无线网卡还是蓝牙网卡,还是说4g网卡反正就是网卡,每台一张网卡上面都刻着全世界独一无二的编号,这个编号也就是mac地址,也就是这台电脑的身份证
mac地址是一个12位的16进制的数据
前6位是属于厂商的流水编号
后6位是流水线编号
3. 路由器(路由器交换机都有mac地址哦!!反正记住只要链接网络的都是有MAC地址的)
可以实现局域网与广域网之间的互联
4,交换机
基于以太网协议的通信
在不连接外网的时候只能在局域网内部们不能跨局域网
互联网那就是N+N多的局域网链接在一起的
A、网路层
IP协议规定了只要接入互联网的计算机必须有ID地址,ip地址目前有两个版本: ipv4 ipv6(由于ipv4已经不够表示目前存在的计算机,所有就有了ipv6)
ip地址的特点:是使用点十进制的方式
ip地址最小的:0.0.0.0
IP地址最大:255.255.255.255
总结:
IP地址是动态分配
Mac地址是固定不变的
5、传输层
TCP| UDP都是基于端口工作的协议
端口(port)
计算机与计算机之间的通信其实是计算机上面的应用程序和应用程序之间的通信
端口:是用来唯一标识一台计算机上的某个应用程序
端口号的范围:0~65535
通常:0~1024这些都是操作系统默认使用端口号
建议使用:8000之后的端口号
MYSQL 默认端口是:3306
Redis 默认端口: 6379
diango 默认端口: 80000
flask默认端口: 5000
端口号是动态分配的:
比如:
第一次启动微信端口号位:8784
将微信关闭后再次打开端口号就是随机分配的
总结:
IP地址是:用来唯一标识接入互联网的一台计算机
port端口:是用来唯一标识一台计算机上的某个应用程序
IP+PORT :唯一标识接入互联网一台计算机上面的应用程序
HTTP协议
fFTP、MQTT等
TCP协议
流式协议,可靠协议 ,双通道双工发送缓存&接收缓存)
基于tcp协议通信,必须先建立双向通道
tcp协议传输数据之所以可靠的原因就在于有返回机制
三次握手四次挥手:
三次握手建链接
创建双方链接通道
client--请求--> server # 第一次请求握手
server--同意及请求链接客户端---> client # 第二次握手 client到server通道创建成功
client--返回同意的链接--->server # 第三次握手双方通道创建成功
四次分手:
客户端----发送断开请求--->服务器
服务器-----回复收到客户端发送的断开请求----->客户端
服务器-----把没有发送和处理完成完成后发送断开链接----->客户端
客户端----发送断开--->服务器
原文:https://www.cnblogs.com/ioipchina/p/11311652.html