网络编程
二、网络编程
1、软件开发架构
c/s架构:
client:客户端
server:服务端
比如:微信客户端,QQ客户端
优点:
-软件的使用稳定
-节省网络资源
缺点:
-安装麻烦,用户体验 差
-软件的每一次更新,用户都需要程序下载或更新版本
b/s架构:
browser(本质上也是一个客户端):浏览器
sever:服务端
比如:在浏览器上输入一个网址
优点:
- 软件件的使用方便
- 无需跟着软件的更新去下载
缺点:
- 如果我网络不稳定,软件的使用就不稳定
#现在比较流行:b/s架构,用户体验感高
客户端与服务端:
服务端:24小时不间断提供服务。(比如:惠州淡水区某一个美丽的场所是一个服务端,可以提供服务)
客户端:客户想要找服务时,就去访问服务端(比如:xxx去寻求心灵辅导,比如学习英文)
三 往后学习的脉络
- 学习网络编程,并发编程,数据库---> 可以开发一套c/s架构的软件
- 学习前端(html/css/js),web框架(Django)---> 可以开发一套 b/s架构的软件
四 计算机与计算机之间的通信
- 语言是人与人之间沟通的介质
- 协议是计算机与计算机之间沟通的介质
五 网络编程
- 所有最新最牛的技术,都源自于军事:
-可以远程实时获取数据,实现远程通信
- 如何实现远程通信:---> 物理连接介质
- 电话:---> 电话线
- 纯屏电脑:---> 网线
- 笔记本电脑:---> 网线,网卡
电脑与电通信:--->“互联网协议”
让所有的生产商的电脑都遵循这套协议,实现所有电脑之间无障碍通信
“互联网协议”是计算机界的 中文 英文 ...
六 互联网协议(OSI七层协议):
-OSI七层协议:
- 应用层
- 会话层
- 表示层
- 传输层
- 网络层
- 数据链路层
- 物理层
- 此时需要关注的是5层:由下到上记
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
-1)物理层:
- 获取到对象计算机的电信号数据
01010101
010:亚峰
10101:加油
问题:无法获取具体的数据内容,将电信号数据扔给数据链路层
-2)数据链路层
- 我要知道数据时什么?
- 我要知道数据是给谁用的?
-“以太网协议”:
-1)规定一套分组的方式:
-获取电信号的真实数据
电信号是一个数据包
head:18个字节
- 6:发送者
- 6:数据类型
- 6:接受者
data:
- 电信号的具体类型
-2)每一台电脑都必须要有一个网卡(电脑插入网线的地方):
- 每一块网卡都会有一串世界上独一无二的数字:
- 12位16进制的数字,称之为“mac地址”:
-前6位:厂商号
-后6位:流汗号
mac地址作用(*******):
标识全世界上独一无二的计算机
“以太网协议”
- 工作的方式:
- 单播
- 广播
缺点:
- 广播风暴
- 只能在局域网内实现通信,无法跨局域实现通信
总结:
- mac地址:标识全世界上独一无二的计算机
-3)网络层:
-实现与全世界某一台计算机之间的通信
- ip地址(IP协议):
-点分十进制的数字组成
-180.101.49.11
-最小范围:0.0.0.0
-最大范围:255.255.255.255
- IP的版本
-IPv4
-IPv6
ip的作用(******):
用于表示全世界某一台计算机的位置,局域网的位置
总结:
ip地址+mac地址:(*******)
标识全世界某一个局域网内的,某一台计算机
-4)传输层:
tcp与udp都是基于“端口”实现通信的
-tcp协议
-udp协议
主要是软件与软件之间进行通信
-port端口:
用于标识计算机某一个独一无二的软件
总结:
mac地址 + IP地址 +port端口:
标识的是全世界范围内某一个局域网内的某一台计算机上的某一个软件。
-5)应用层:
- 大佬们定制好的一套牛x的协议
- http协议
- ftp协议
- 我自己定制的协议
-等着那一天(比之前的协议都要好)
Only you can control your future
You're not alone. You still have family,peopel who care for you and want to save you.