【2022.8.4】软件开发和网络编程的相关介绍
学习内容概要
- 软件开发架构
- 网络编程简介
- OSI七层协议
- 网络相关设施
- TCP与UDP协议
内容详细
软件开发架构
- 1.什么是软件开发架构?
编写项目之前需要遵循的代码层面上的规范(代码运行的流程 环节 步骤 )
-
2.软件开发架构分为两种
- C/S架构:
-
客户端与服务端特征:
-
客户端:
- 客户想要服务时,随时可以去访问服务器 (比如:凌晨突然想学外语)
-
服务端:
- 24小时不间断的提供服务
- 固定的地址(不能经常的变动)
- 可以同一时间服务很多(比如:合肥瑶海区一处繁华的游乐场所是一个服务端,一直不间断的提供服务)
-
-
B/S架构:
- 通过浏览器来充当各个客户端 用于想体验服务不想下载指定的客户端
架构发展趋势
-
说明:和在此之前学习的三层架构一样
-
发展趋势:统一接口原则
-
微信
里面有很多小程序 可以直接体验其他服务
支付宝
里面有很多小程序 可以直接体验其他服务 -
后续就是b/s和c/s相互交替去使用 取长补短(方便用户使用,形成依赖,圈客户)
网络编程简介
1.何如理解网络编程
基于互联网写代码 程序可以实现远程数据交互
2.网络编程的目的
网络编程的本质是为了解决计算机之间的远程数据交互
3.网络编程的意义
学习相关知识后 可以编写一个c/s架构的软件
4.网络编程的起源
任何先进的技术的牛逼的技术一般都是来源于军事
"""
网络编程起源于美国军方开发
没有网络编程的时候 计算机的数据交互只能用硬盘拷贝
如果需要交互数据的计算机距距离较远 需要长途跋涉的拿着硬盘去拷贝传输数据
"""
5.网络编程的要求(如何实现远程通信(物理介质))
1.早期的电话
必须要有电话线
2.大屁股电脑
必须要有网线
3.笔记本电脑
必须要有网卡
6.实现远程通信:
计算机之间想要实现远程的数据交互 首要条件就是需要有物理连接介质
OSI七层协议
-
什么是OSI七层协议?
- 互联网协议又被称为OSI七层协议
- OSI是一个世界标准组织
-
规定了计算机涉及到数据的远程交互时 必须要经过的部件/流程
-
计算机只要涉及到网络传输(沟通) 必须需要介质
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理连接层
-
上述的七层 也可以合并成五层
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理连接层
-
继续优化成四层
- 应用层
- 传输层
- 网络层
- 网络接口层
-
每一层都有自己的功能和规范
各层特征
-
数据发送出去的时候 是从上往下走
-
数据接收回来的时候 是从下往上走
"""
我们按照从下往上的顺序研究
"""
数据发送出去的时候 是从上往下走
数据接收回来的时候 是从下往上走
'''我们按照从下往上的顺序研究'''
1.物理连接层
保证物理连接介质的条件 传递电信号(主要研究插网线情况)
2.数据链路层
1.规定了电信号的分组方式
2.规定了每台计算机都必须有一块网卡
网卡上必须有一串记录>>>:电脑的以太网地址(身份证号) mac地址
以太网地址\mac地址:由12位16进制数组成的
前6位:产商编号
后6位:生产流水线号
ps:既然mac地址相当于电脑的身份证号 也就意味着可以根据该地址查找计算机(可以基于mac地址实现数据交互)
3.网络层
IP协议
规定了任何接入互联网的计算机都必须有一个IP地址(护照)
IP地址
IPV4:点分十进制
最小: 0.0.0.0
最大: 255.255.255.255
ps:随着社会的发展 同时能够上网的人越来越多 上述地址不够分
IPV6:
能够给地球上每一粒沙分一个IP地址
IP特征
每个IP都自带定位
ps:ip代理!!!
4.传输层
PORT协议
端口协议:规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
端口号特征
1.端口号范围:0-65535
2.端口号是动态分配的
3.同一时间同一台计算机端口号不能冲突
4.
0-1024:一般是操作系统内部需要使用的
1024-8000:一般是常见的软件已经使用了
8000+:我们平时写代码可以使用8000之后的端口号
-
IP+PORT:
- IP:用于标识全世界任意一台接入互联网的计算机
- PORT:用于标识一台计算机上的某个应用程序
- IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
-
什么是网址:
- 网址(URL):统一资源定位符
-
url的本质
- 其实就是IP+PORT(ip:port)
网络相关名词
1.交换机
能够让接入交换机的多台计算机实现彼此互联
2.以太网通信(mac通信)
原理
有了交换机之后 根据电脑的mac地址就可以实现数据交互
广播:先在交换机中吼 所有接入交换机的设备都能收到
单播:只有被查找设备 才会回复相应信息
缺陷:
1.mac地址通信仅限于局域网
2.接入交换机的设备过多 可能会造成广播风暴
广播风暴:类似于所有人同时吼!!!
3.局域网
有某个固定区域组成的网络
广域网可以看成是更大区域的局域网
4.路由器
将多个局域网连接到一起的设备
- 作业:
1.域名解析是什么意思?
域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。
域名是IP的代名词,没有用户会去记忆你的IP,为了主机的安全,你也不想把IP肆意透漏给别人。用户访问网站都是访问域名。域名不是孤立的存在,域名的出现是为了代替ip地址便于用户记住网站地址。
正常的使用域名需要用到域名解析,否则直接访问域名是无法打开网站的。域名解析包括:A记录、CNAME记录、NS记录、MX记录、URL显示转发、URL隐性转发、动态域名解析。
域名解析实际上就是域名指向ip地址(服务器地址),是这种映射关系。比如,域名A–映射到–ip地址A(网站服务器A),那么访问域名A,就能够访问到存放在服务器A里的网站内容了。
对于网站应用而言,域名解析分为两种方式,A记录方式和CNAME记录方式。
A记录方式很简单,就是最简单的ip映射,添加A记录的时候记录值就是服务器的ip地址;
CNAME记录可以看做是A记录的升级版,虽然最终还是ip映射,但是CNAME的记录值是一个域名(我们称它为别名)而非ip地址,这样,记录值中填写的域名(别名)就作为中转一样,当目标服务器ip发生改变,只需要修改别名的解析指向新的ip就可以,这对于多个域名解析到同一个服务器来说是非常方便的。
2.DNS服务器
DNS 是域名系统 (Domain Name System) 的缩写,是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
3.DNS服务器作用:
1.将域名解析为IP 地址
2.客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求
3.DNS服务器告知客户机Web服务器的IP 地址
4.客户机与Web 服务器通信
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了