网络编程 软件开发架构

241 阅读5分钟
                       **只针对于python学习的笼统性知识**

软件开发架构

  • 编写项目之前要遵守的代码层面是上的规范

cs架构

c: client     客户端
s: server     服务端
     
    下载的app,本质就是客户端,目的是为了体验对应服务端的服务
  • 优势
    • 下载客户端后,可以高度定制化内容
  • 劣势
    • 必须下载客户端,比较麻烦

bs架构

b: broswer   浏览器
s: server    服务器
 
    bs架构本质也是cs架构
    本质是通过浏览器体验服务端的服务
  • 优势
    • 不用下载客户端,就可以体验服务
  • 劣势
    • 没有很多功能的拓展,定制花里胡哨的功能较为麻烦

架构发展趋势

  • 发展趋势
    • 统一接口原则
  • cs架构与bs架构交错使用可以避免各自的劣势(方便用户使用)

网络编程

  • 网络编程的理解
    • 基于互联网编写代码,程序实现了远程数据交互
  • 网络编程的目的
    • 网络编程的本质是为了解决计算机之间远程交互
  • 网络编程的意义
    • 为了编写cs架构的软件
  • 网络编程的起源
    • 起源于美国军方(一般先进的技术都来源于军事)
    • 没有网络编程前,需要使用U盘来回跑
  • 网络编程的要求
    • 计算机之间实现远程数据交互,首要的条件就是要有物理连接介质

OSI七层协议

  • 每一层都有各自的功能和规范
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理连接层
精简后的五层:
1.应用层
2.传输层
3.网络层
4.数据链路层
5.物理连接层

OSI各层特征

  • 数据发送出去的时候是从上往下走的
  • 数据接收回来的时候是从下往上走的
1.物理连接层
    保证物理连接介质的条件,传递电信号(研究插网线的情况)
2.数据链路层
    规定了电信号的分组方式
    规定了每台计算机必须都要有一张网卡
        电脑上的以太网地址(mac地址)由1216进制数组成,相当于电脑的身份证号(可以基于mac地址实现数据交互)
        前六位是厂商编号,后六位是生产流水线号
3.网络层
    IP协议:规定了任何接入互联网的计算机都必须有一个IP地址
    IP地址:
       IPV4:  点分十进制
               最小: 0.0.0.0     最大: 255.255.255.255
            随着社会的发展 同时能够上网的人越来越多 上述地址不够分
       IPV6:  能够给地球上每一粒沙分一个IP地址
       IP特征:每个IP都自带定位
4.传输层 
    PORT协议
    	端口协议:
            规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
 	端口号特征
    	    1.端口号范围:0-65535
            2.端口号是动态分配的
    	    3.同一时间同一台计算机端口号不能冲突
	    4.
            0-1024        一般是操作系统内部需要使用的
            1024-8000     一般是常见的软件已经使用了
            8000+          我们平时写代码可以使用8000之后的端口号
    IP+PORT
	IP              用于标识全世界任意一台接入互联网的计算机
	PORT            用于标识一台计算机上的某个应用程序
	IP+PORT         用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
1.什么是网址
	网址(URL):统一资源定位符
2.url的本质
	其实就是IP+PORT(ip:port)
        
    TCP协议与UDP协议
        他们规定了数据传输所遵守的规则,是较为常见的两个数据传输协议
      TCP协议:
          三次握手:    建立了双向通道  中间接收请求就会反向建立通道,可以合并为一步
          四次挥手:    断开了双向通道  中间两步不能合并,检查需要时间
                洪水攻击:同时让大量客户端朝服务端发送建立TCP连接的请求              
                  基于TCP传输数据非常的安全因为有双向通道。
                  有二次确认机制,每次都需要返回确认信息,否则会在一定时间内反复发送
      UDP协议:
                  基于UDP协议发送数据,没有任何通道也没有任何的限制。
                  数据没有二次确认机制,所以没有TCP安全,可以没有回复
5.应用层(取决于程序员用什么)
    常见的协议有HTTP,HTTPS,FTP......
  • 三次握手
    image.png
  • 四次挥手 image.png

网络相关名词

    1. 交换机
    • 能够让接入交换机的多台计算机实现互联
    1. 以太网通信
    • 原理
      • 根据电脑的mac地址实现数据交互
        通过交换机,让所有接入交换机的设备都收到,然后查找的设备回复相应信息
        
    • 缺陷
      • mac地址通信仅限于局域网
      • 接入的交换机设备过多,会出现问题
        类似于所有人同时吼!!!
        
    1. 局域网
    • 由某个固定区域组成的网络
    • 广域网一般就是更大区域的局域网
    1. 路由器
    • 将多个局域网连接到一起的设备

域名解析与DNS服务器

  • 把域名指向网站空间ip,通过域名更方便访问网站的一种服务
  域名解析: 域名到IP地址的转换过程,解析工作由DNS服务器完成
            域名来代替IP地址标识站点地址,在此IP地址的主机上将一个子目录与域名绑定 
  DNS:      进行域名与之相对应的IP地址转换的服务器      
    域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。
    """互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。"""