zoukankan      html  css  js  c++  java
  • 网络编程 之 软件开发架构,OSI七层协议

    • 去幕布>>
    • 软件开发架构
      C/S架构(client/server)和B/S架构(broser/server);​
      B/S架构本质上也是C/S架构​

    • 服务端:24小时不间断提供服务;​
      客户端:什么时候想体验服务,就无连接响应的服务器​

    • ps:
      手机端看上去C/S架构比较火,实际上bs已经在崛起;​
      微信和支付宝都在做一件事:统一接口;​
      手机端以后肯定也是bs比较火
    • OSI七层协议(物数网传会表应)
      • 物理连接层
        基于电信号传输0101二进制数据
      • 数据链路层
        1.规定电信号的分组方式
        2.规定任何一台介入互联网的计算机必须有一块网卡,​ 每一块网卡上面都刻有世界上独一无二的编号​(mac地址)​
        以上两点合称为 以太网协议​​

      • 以太网协议的应用:局域网基于以太网协议通信,不能跨局域网通信
      • ps:
        a. mac地址:12位16进制;前六位是厂商编号,后六位是流水线编号
        ​b.
        交换机:局域网内,计算机通过交换机通信​
        c.
        互联网是多个局域网,彼此之间链接而成的​​
      • 网络层
        IP协议:规定了只要接入互联网的计算机都必须有一个IP地址

      • ​ip地址特点:点分十进制​​​
      • IP地址范围:0.0.0.0-255.255.255.255

      • IP地址目前有两个版本:ipv4,ipv6
        ipv6产生的原因是ipv4不够用了

      • IP地址可以动态分配​​​​​
      • 传输层
        计算机之间通信 其实是计算机上的应用程序之间的通信​​

      • TCP/UDP都是基于端口工作的协议​
      • TCP协议(流式协议,可靠协议)​​​
        基于TCP协议通信,必须先建立双向通道三次握手四次挥手;
        建立连接是三次,断开连接是四次
      • ps: ​TCP协议传输数据之所以可靠是因为有双向通道: Wrong​
        是因为有通信的反馈机制​​

      • 端口(port)
        端口:用来唯一标识一台计算机上的某个应用程序
        端口号范围:0~65535
        注意:0~1024这些都是操作系统默认使用的端口号
        建议:使用8000之后的端口
      • 常用软件的端口号​​​​​​​​​​: MySQL:3306​;Redis:6379;Django:8000;flask:5000;
      • 端口号是动态分配的​,目的是使同一个应用程序能同时为 多个用户服务

      • IP和port异同:
        IP地址:用来唯一标识接入互联网的一台计算机
        port端口:用来唯一标识一台计算机上的某个应用程序
        IP + port​​​​​​ :唯一标识接入互联网的一台计算机上的某个应用程序
      • 应用层
        HTTP协议和FTP协议
      • PS:三次握手四次挥手
        • 三次握手流程
          三次握手的目的是建立双向通道

          ​​第一次握手:客户端想服务端发送连接请求(syn = n)
          第二次握手:服务端收到syn包,后向客户端发送确认​(ack = n+ 1)
                           同时本次还要向客户端发送一个请求连接的请求​(syn = m)
          第三次握手:​客户端收到服务端的syn包后, ​向服务端返回一个确认连接的包(ack = m + 1)
          双向通道搭建完成​

        • 四次挥手流程
          四次挥手的目的是将已建立的双向通道断开

          第一次挥手:客户端向服务端发送断开请求(syn = n)
          第二次挥手:服务端收到syn包之后,返回一个确认(ack = n + 1)
          第三次挥手:①服务端并没有在第二次同时发送一个请求确认的包,​
                            原因是还要先处理完没有完成的业务, ​例如还没有传输完的数据传输​​​​ 此时客户端处于time_wait阶段​
                           ②​服务端将未完成的任务完结之后, ​才向客户端发送请求断连的包(syn = m)
          第四次挥手:客户端收到syn包的请求,然后返回一个确认(ack = m + 1)​
          至此 断开连接 ​完成

        • 三次握手和四次挥手的区别
          四次多的一次是因为,客户端断连之后,
          服务端不能直接断连,需要等待后期的业务(例如数据传输还未完成)处理完成后,再向客户端发送断连请求,
          并收到客户端的确认断连,至此才完成断连
        • 图示
  • 相关阅读:
    獲取XML文檔節點的值
    Asp.net之数组应用
    读写XML文档
    C#区分中英文统计字符串的长度
    vs2005常用快捷键
    基础知识
    中国的十二生肖原来还代表着对人品格的要求
    学习OO思想
    改变系统时间c#
    用C#创建各种类型的wave文件
  • 原文地址:https://www.cnblogs.com/buzaiyicheng/p/11311477.html
Copyright © 2011-2022 走看看