zoukankan      html  css  js  c++  java
  • 网络编程

    1. 软件开发架构 : C/S 架构  B/S架构

      1. C/S架构 其中c(client:客户端),S(server : 服务端)  比如说电脑上的一些QQ.微信.大型网络游戏等,都是客户端.

      2. B/S架构  其中B(browser:浏览器),S(server:服务器) 比如说电脑中的各种浏览器

      所谓服务端就是24小时不间断的提供服务,他是一直运行等待命令请求的

      PS: B/S架构的本质也是C/S架构

       网络编程的发展史 : 任何先进的技术都是最早都是用再军事上的.后来一步步发展成为现在的网络编程

    2. OSI协议:计算机与计算机之间交流除了需要物理连接介质之外还需要一套公共的协议,这个协议就叫做OSI协议

      1.OSI协议的划分:

      2. 物理连接层: 基于电信号传输的二进制数据

      3. 数据链路层:1.规定电信号的分组形式

             2. 规定了任何一台接入互联网的计算机都必须有一块网卡,每一块网卡上面都刻有世界上独一无二的编号,这个编号是12为16进制数.前6为是厂商编号.后6位是流水线编号,我们管这12位数叫mac地址

        ps:以上两点合称为以太网协议

        

        在局域网内传输数据一般要用到交换机作为介质.交换机是基于以太网协议通信,不能跨局域网传输,当一台计算机要与局域网内另一台计算机通讯时会把对方的mac地址提供给交换机,交换机就以广播的方式去查找,然后查找的这台机器接收到后就会把自己的mac地址返回给交换机,再由交换机返会给要寻找他的计算机,这个过程就是单播,当同时请求的计算机数量过多时就可能会产生广播风暴

        互联网就是由多个局域网连接而成的

      4.网络层       

        IP协议
        规定了只要是接入互联网的计算机都必须有一个IP地址
        ip地址特点:点分十进制

        ip地址范围是 0.0.0.0~255.255.255.255
        ip地址目前有两个版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本)

        IP地址是动态分配的

        arp 协议:

          根据IP地址解析对方的mac地址

      5 . 传输层

        TCPUDP都是基于端口工作的协议
        端口(port) :用来唯一标识一台计算机上的某个应用程序  端口号的范围:0~65535
        注意:0~1024这些都是操作系统默认使用的端口号  建议:使用8000之后的端口 端口号是动态分配的 
        MySQL默认端口:3306
        Redis默认端口:6379
        django默认端口:8000
        flask默认端口:5000

        ps:ip地址:用来唯一标识接入互联网的一台计算机
          port端口:用来唯一标识一台计算机上的某个应用程序
          ip+port:唯一标识接入互联网一台计算机上的某个应用程序
      6. 应用层: HTTP协议, FTP协议

    3.TCP协议:流式协议,可靠协议基于TCP协议通信 必选先建立双向通道

    三次握手: 是由client端向server端发起请求,我可以连接你吗?然后服务端同意后他也会反馈给客户端可以,这样由客户端到服务端的单向通道就完成了,然后服务端会再向客户端发起请求,然后客户端同意后这样就建立起了全双工,可以把服务端反馈同意和与客户端发起请求合并,这样就称之为三次握手

    四次挥手,就是由客户端

    先由主动方向被动方发送一个请求关闭数据传输。

    当被动方接收到主动方的请求后,返回同意.这条主动方到被动方的通道就关闭了.

    被动方会等待一段时间检测自身是否还有未发完的数据

    当检测完成没有后被动方会向主动方发送一个请求关闭数据传输。

    当主动方接收到被动方的请求后,返回同意.这条被动方到主动方的通道就关闭了.

    这样就完成了4次挥手

  • 相关阅读:
    君子藏器于身,伺时而动
    高级前端面试集锦
    ES6标准入门(第三版).pdf----推荐指数⭐⭐⭐⭐⭐
    《Vue.js实战》--推荐指数⭐⭐⭐⭐
    如何让vue自定义组件可以包裹内容,并且渲染出来,以及组件的组合使用
    vue里如何灵活的绑定class以及内联style
    为什么VUE注册组件命名时不能用大写的?
    在github上搭建一个静态的个人网站
    leetcode-6-basic
    leetcode-5-basic
  • 原文地址:https://www.cnblogs.com/yanglingyao/p/11312706.html
Copyright © 2011-2022 走看看