网络编程、OSI七层协议

软件开发架构

1.什么是软件开发架构

编写项目之前需要遵循的代码层面上的规范
1.从本质上来看,软件架构是属于一种系统草图。
2.在软件架构所描述的对象就是直接的进行系统抽象组件构成。
3.连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。
4.处于相应的系统实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。
5.从面向对象领域进行分析,那么各个组件之前实施的连接实现往往是接口。

2.软件开发架构

2.1c/s架构

image-20220804151420926

c/s架构:
    c:client    客服端(程序需要先安装后,才能运行在用户的电脑上,对用户的电脑的操作系统环境依赖较大)
    s:server    服务端
        
  ps:计算机上下载的各个互联网公司的app本质其实都是客户端
     下载一个个客户端的目的说白了就是为了体验对应服务端的服务
     客户端可以看作是即将去消费的客人
     服务端可以看作是给你推荐服务的店
  服务端具备的特征:
    1.24小时不间断提供服务
    2.固定的地址
    3.可以同一时间服务很多人

2.2b/s架构

image-20220804151544207

b/s架构:
    b:broswer   浏览器(其实也是一种客户端,它不需要安装应用程序,只需要在浏览器上通过HTTP请求服务器端相关的资源)
    s:server    服务器
  ps:b/s架构本质也是c/s架构
     通过浏览器来充当各个服务器的客户端,用于想要体验服务不需要下载指定的客户端

3.架构优劣势

cs架构:
    优势:下载对应的客户端,可以在客户端软件内高度制定相关服务
    劣势:使用必须先下载客户端比较麻烦
bs架构:
    优势:不需要下载客户端 能够快速体验服务
    劣势:制定花里胡哨的功能

4.架构发展趋势

发展趋势:统一接口原则
    微信:里面有许多小程序 可以直接体验其他服务
    支付宝:里面有许多小程序 可以直接体验其他服务
后期就是cs与bs交错使用,互补各自劣势
ps:可以方便用户使用,更重要的是可以给自己圈用户便于后期收割

网络编程简介

1.如何理解网络编程

基于互联网编写代码,程序可以实现远程数据交互
1.本质就是俩个设备之间的数据交换
2.数据传递就是把一个设备中的数据发送给另外一个设备,然后接收另外一个设备反馈的数据,现在网路编程基本上都是基于请求\响应方式的,也就是一个设备发送请求数据给另一个,然后接收另一个设备反馈的数据

2.网络编程的目的

网络编程的本质是为了解决计算机之间远程数据交互

3.网络编程的意义

学习网络编程之后,我们就可以编写一个c/s架构的软件

4.网络编程的起源

网络编程最早由美国军方开发
    没有网络编程的时候,如果俩台计算机之间要交互数据,只能使用硬盘拷贝

5.网络编程的要求

1.早期的电话线,必须要有电话线
2.大屁股电脑,必须要有网线
3.笔记本电脑,必须要有网卡
计算机之间想要实现远程数据交互,俩者之间必须要有物理连接介质

OSI七层协议

1.了解知识

规定了计算机涉及到数据远程交互的时候,必须要经过的部件/流程
    或者说就是所有的计算机在涉及到网络传输这块必须要有相同的零部件
    
这七层协议只争对网络协议

image-20220804104029061

应用层、表示层、会话层、传输层、网络层、数据链路层、物理连接层
'''也可以合并成五层:'''
    应用层、传输层、网络层、数据链路层、物理连接层
'''也可以合并成四层:'''
    应用层、传输层、网络层、网络接口层  
ps:记忆小技巧:记开头,,应、表、会、传、网、数、物

2. 各层特征

数据发送出去的时候,是从上往下走
数据该收回来的时候,是从下往上走

2.1物理连接层

保证物理连接介质的条件,传递电信号(主要研究插网线情况),是一堆二进制字符
物理层无法获取具体的数据内容以及分解字符串,因此将电信号传给数据链路层

2.2数据链路层(遵循ARP协议)

1.规定了电信号的分组方式
2.规定每台计算机都必须有一块网卡
    网卡上必须有一串记录,可以看作是它的身份证号-->以太网地址\mac地址
    以太网地址\mac地址:前6位是生产编号,后6位是生产流水线
ps:有了太网地址\mac地址,我们就可以根据该地址查找计算机(基于mac地址实现数据交互)

2.3网络层

IP协议:规定了任何接入互联网的计算机都必须有一个IP地址(身份的标识)
IP地址的特性:
    IPV4:点分十进制,最小是0.0.0.0,最大是255.255.255.255
        随着社会的发展,同时上网的人越来越多
    IPV6:百度了解,可以表示出地球上每一粒沙子
IP特征:每个IP都自带定位
扩展知识:IP代理:隐藏自己的地址,但是还是可以找得到的

2.4传输层

PORT协议(端口协议):规定了一台计算机上的每一个应用程序都必须有一个端口号
    端口号相当于是计算机用来管理多个应用程序的标记
    端口号的特征
        1.端口号范围:0-65535
        2.端口号是动态分配
        3.同一时间同一台计算机端口号不能冲突,同一时间一个端口号只能给一个计算机使用
        4.固定的使用范围:
            0-1024范围是操作系统内部使用的
            1024-8000范围是常见的软件已经使用了
            我们以后写代码使用8000以后的端口号
扩展知识:
    IP+PORT:表示全世界任意一台接入互联网的计算机上的某个具体的应用程序 
什么是网址(URL):统一资源定位符,本质:IP+PORT

网络相关设施

1.交换机

能够让接入交换机的多台计算机实现彼此互联

2.以太网通信(mac通信)

原理:有了交换机之后,根据电脑的mac地址就可以实现数据交互
    广播:在交换机中喊,所有接入交换机的设备都可以听到
    单播:被喊得设备给与回应
缺陷:
    mac地址通信仅限于局域网
    接入设备过多的时候,会造成广播风暴

3.局域网

有某个固定区域组成的网络
    广域网可以看作是一个更大区域的局域网

4.路由器

局域网与局域网直接不能直接跨着访问
路由器作用(功能):将多个局域网连接到一起,不同的局域网可以相互访问

域名解析

1.什么是域名解析

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。
IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。
域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

2.过程

1.当应用过程需要将一个主机域名映射为IP地址时,就调用域名解析函数,解析函数将待转换的域名放在DNS请求中,以UDP报文方式发给本地域名服务器。
2.本地的域名服务器查到域名后,将对应的IP地址放在应答报文中返回。
3.同时域名服务器还必须具有连向其他服务器的信息以支持不能解析时的转发。
4.若域名服务器不能回答该请求,则此域名服务器就暂成为DNS中的另一个客户,向根域名服务器发出请求解析,根域名服务器一定能找到下面的所有二级域名的域名服务器,这样以此类推,一直向下解析,直到查询到所请求的域名。
5.域名解析的流程是:域名-DNS(域名解析服务器)-网站空间。

DNS服务器

1.DNS是什么意思

DNS,全称Domain Name System,中文名域名系统,它是互联网中非常重要且常用的系统,它的主要功能是将人们便于记忆的DomainName(域名)与可由机器识别的IPAddress(IP地址)进行转换,这样可以让人们更方便地访问互联网。这个通过域名获取对应IP地址的过程称为域名解析(或主机名解析)

2.DNS服务器是什么

1.DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务
2.域名系统为Internet上的主机分配域名地址和IP地址。
3.用户使用域名地址,该系统就会自动把域名地址转为IP地址。
4.域名服务是运行域名系统的Internet工具。
5.执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。

3.DNS解析流程图

img

posted @ 2022-08-04 14:54  张张包~  阅读(89)  评论(0编辑  收藏  举报