软件开发架构
osi七层协议(互联网通信协议)
网络层
传输层
tcp协议和udp协议,ip协议,以太网协议等
tcp协议的三次握手和四次挥手
————————————————————————————————————————
网络编程:网络编程是使用域名、IP地址、端口连接到另一台计算机上对应的程序,按照规定的协议(数据格式)来交换数据
客户端-------------网络传输---------------服务端
cliet sever 通常成为 C/S架构
客户端服务端是存在一定的问题:
当我们需要下载大量的软件的时候,会占有大量的资源,且使用不方便;可通过浏览器打开
而浏览器 是另一种形式的 客户端
浏览器(客户端)-------------------------网络传输---------------------服务端
通常称为 B/S架构 —— 本质上 B/S架构也是C/S架构
当下我们使用的软件架构模式是二者兼有
扩展:
服务端的特点:
1.24小时不间断提供服务
2.服务端要有一个公网IP(服务器部署------另外一台计算机)
3.常见的服务器 阿里云,腾讯云,华为云,等
————————————————————————————————————————OSI七层协议
什么是网络? 什么是上网?
其实就是上传和下载数据的过程
网络的组成:物理链接设备(路由器,交换器,网线等)+计算机界的英语(互联网通信协议)
物联网通信协议(osi七层协议)
协议是干什么的? 协议就是标准
七层划分: 物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
物理层 :
专门用来发送高低电频的,其实就是01二进制
物理层单纯的发送电频没有任何音译,不知道发送的电频什么意思,所以需要对发送的电频进行分组
数据链路层:
专门用来对物理层发送过来的数据进行分组,该层使用以太网协议
一组电信号构成一个数据报,叫做帧,或者叫数据帧,数据帧的组成: 报头head和 数据data
MAC地址
以太网协议规定,每一个接入互联网的设备都必须要有一个网卡,发送端和接受端的地址便是指网卡的地址 即MAC地址
通过一个MAC地址能不能确定局域网中唯一一台计算机? 可以确定
————————————————————————————————————————
网络层:
该层使用的是IP协议,规定每一个接入互联网的计算机都必须要有一个IP地址,网络层中的数据 称为 数据包
IP地址的组成格式:
分类: IPv4,IPv6,目前大多数用的都是IPv4,由于IPv4地址即将耗尽,所以其他场景开始使用IPv6了
IPv4:
0.0.0.0----------------------------------------------------》255.255.255.255
00000000.00000000.00000000.00000000----》11111111.11111111.11111111.11111111
注192.168开头基本为 局域网 ip
公网IP: 需要购买,阿里云,腾讯云的,会给你一个公网ip地址 固定不会改变
内网IP:192.168开头的地址基本上都是局域网中的ip地址
IPv6:十六进制表示法
如何查看自己的IP地址:
windows:ipconfig—— cmd (IP config)
linux(mac0S):ifconfig
其实是通过一个IP地址是可以定位 唯一一个局域网
JP+MAC地址确定世界范围内的唯一一台计算机?
是的因为arp协议通过你的 IP地址计算出MAC地址,归根结底还是: IP+MAC地址
记忆: 本地回环地址: 127.0.0.1(你自己的电脑)
192.168.1.252 127.0.0.1 localhost(这两个有时候会有区别)
————————————————————————————————————————传输层
该层使用的是TCP协议或者是UDP协议,暂且忽略,它也称之为是端口协议,一个端口可以代表一个正在运行的程序
端口的范围: 0-65535
1. 0-1024之间的端口号都是系统自己使用的
2.1024-8000之间的端口号一般是常用软件的端口号
MYSQL:3306
Django:8000
flask:5000
---
3.端口一般选择8000之后的到65535 且不能冲突
同一个端口号 只能够表示一个正在运行的应用程序,端口号不能够冲突,但是软件一旦关闭就会释放占用的端口号,别的应用程序就能够使用了
常用软件的端口号: 了解
———————————————————————————————————————应用层(Application):
该层就是离用户最近的一层,比如,微信 QQ 腾讯会议 pycharm等都是一个个的应用他们都在应用层
1.客户端 : 你想使用什么协议都行,自己开发的软件,协议你自己选择
2.浏览器 : 你就不能够随便使用了, 需要安装浏览器规定的协议使用,而浏览器使用的协议 恰好是HTTP协议
3.https协议
HTTP协议 HTTPS协议
hettp://www.baidu.com/
协议 :// 域名 /v1v2?参数
https://www.baidu.com/s?wd=%E%BE%E%E%A%B3
HTTP协议
1.是明文传输数据
2.不安全
HTTPS协议
1.是密问传输数据
2.安全
https = http+ ssl证书(是需要申请,国际机构,公钥,私钥……)
nginx服务器:配置文件,需要在配置文件中配置一些东西,就能够把你的 http 改成 https
域名解析:
DNS服务器它就是用来解析域名的,域名的本质其实就是IP地址,域名比ip地址易记最终把域名解析成ip地址
baidu.com 110.242.68.66
域名解析的过程:
1.首先会从本地开始解析hosts文件
2.会去对应平台的域名关系中取查询
———————————————————————————————————————TCP协议和UDP协议
客户端 服务端
客户端要想给服务端发送消息 需要建立链接
tcp协议也称为可靠协议,流式协议(发送数据可以分多次发送)
三次握手 -------------建立连接
《《《《《中间两次可以 和为一次》》》》》
四次挥手-------------断开连接
一定是客户端先给服务端发送消息,然后服务端给客户端做返回信息
《服务端可以给客服端发送消息, 需要使用 websocket协议!!!》一般用在即时通信
比如 客服系统 微信 QQ 等
《《《《《必须为四次 不可中断》》》》》》
客户端可以是多个的,服务端只有一个
**********
1.TCP、协议的可靠性,是因为建立了双向通道?
不是,是因为 TCP协议的反馈机制
2.四次挥手能不能省略为三次?
不能,会造成数据的丢失
***********
UDP协议:
它不可靠,是因为它不建立链接,没有三次握手、四次握手
速度快
远程控制