编程语言
首页 > 编程语言> > 软件开发架构,网络编程简介,OSI七层协议,网络相关名词

软件开发架构,网络编程简介,OSI七层协议,网络相关名词

作者:互联网


软件开发架构

什么是软件开发架构???

软件开发架构就是在软件项目开始的时候制定的一种规范,这种规范包括代码运行的流程,环节,步骤等
我们在编写项目之前需要遵循的代码层面上的规范
        eg:ATM三层架构   选课系统三层架构

软件开发机构的两种基本架构(c/s架构,b/s架构)

  c/s架构(Client-Server    客户端和服务端)

c/s架构指的是客户端(相当于我们手机上的app)和服务端(负责数据的管理)

             eg:
                    下载淘宝就是为了体验淘宝服务端提供的购物服务
                    下载抖音就是为了体验抖音服务端提供的视频服务

  b/s架构(Browser/Server   浏览器和服务器)

b/s架构本质也是c/s架构
             通过浏览器来充当各个服务端的客户端 用于想要体验服务不需要下载指定的客户端

  服务端应该具备什么特征

            1.24小时不间断提供服务
            2.固定的地址(不能经常改变)
            3.可以同一时间服务很多人

  架构优劣势

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

架构发展趋势

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

网络编程简介

如何理解网络编程 基于互联网编写代码 程序可以实现远程数据交互
网络编程的目的 网络编程的本质是为了解决计算机之间远程数据交互
网络编程的意义 学习完网络编程之后 我们就可以编写一个c/s架构的软件
网络编程的起源 网络编程由美国军方开发
没有网络编程的时候 如果两台计算机之间要交互数据
只能使用硬盘拷贝 如果一个人在中国一个人在非洲,那就拿着硬盘坐飞机
网络编程的要求

1.早期的电话
        必须要有电话线

2.大屁股电脑
        必须要有网线
3.笔记本电脑
        必须要有网卡

计算机之间要想实现远程数据交互 首要条件就是要有物理连接介质

 

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之后的端口号

我们平时访问网站的www.xxxxxx.com等都是由ip+port组成的

IP+PORT
    IP:用于标识全世界任意一台接入互联网的计算机
    PORT:用于标识一台计算机上的某个应用程序
    IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序

1.什么是网址
    网址(URL):统一资源定位符
2.url的本质
    其实就是IP+PORT(ip:port)
        www.baidu.com                 124.12.11.232

网络相关名词

1.交换机

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

  

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

原理
        有了交换机之后 根据电脑的mac地址就可以实现数据交互
              广播:先在交换机中吼 所有接入交换机的设备都能收到
              单播:只有被查找设备 才会回复相应信息
缺陷
        1.mac地址通信仅限于局域网
        2.接入交换机的设备过多 可能会造成广播风暴
            广播风暴:类似于所有人同时吼!!!

3.局域网  

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

4.路由器

  将多个局域网连接到一起的设备

 

标签:架构,计算机,七层,编程,网络,OSI,端口号,客户端
来源: https://www.cnblogs.com/scx-xiaochun/p/16550798.html