zoukankan      html  css  js  c++  java
  • 网络编程 之 网络协议(一)

    网络编程

    网络编程:指的是编写基于网络的应用程序
    学习——目的:开发出一款可以利用网络来传输数据的应用程序

    网:由多个节点相互连接组成       比如  :    渔网     蜘蛛网

    什么是互联网:由多台计算机通过某种介质相互连接而成的,之所以存在是为了让信息共享

    c/s结构:

    建立网络至少需要两台计算机,然后使用网络来传输信息

          1):网络必须联通

          2):在需要访问数据一方   必须安装用于访问数据的应用程序,被称之为客户端应用程序(client)

           在需要提供数据的一方    必须安装用于共享数据的应用程序,被称之为服务端应用程序(server)

    我们把以上部分简写为c/s:   比如:      qq     就是客户端       服务器就在腾讯公司

              b/s:   eg:  淘宝网      该结构下通常传输都是HTML文本

    我们学习网络编程的最终目的:编写出一个基于c./s结构的应用程序

    通讯协议:

    要通讯必备的两个条件:1):物理传播介质(光纤,无线电波)

               2):通讯协议

    通讯协议:是由发送方与接收方共同商定的一套协议

    协议的目的:为了让双方能够正确解析数据       eg:    国内通讯 :双放说普通话        国际通讯:双方用英语

    早些年 每个公司都有自己的一套通讯协议, 不同品牌的电脑相互间连不了网 ,于是国际标准组织提出了   OSI   (一堆协议)    

    OSI七层模型:(应用层,表示层,会话层,传输层,网络层,数据链路层,物理层)

    其中应用层,表示层与会话层都属于应用程序层,所以和为应用层

    由于两台计算机想要通讯

    一:物理层:   通过物理介质建立物理连接     发送的是 高低电频 。由于两台计算机想要通讯所以有了物理层

    二:数据链路层:   以以太协议 工作在  数据链路层中     由于是单纯的二进制,无法理解  所以必须明确一次收几个   ,每一段二进制的含义     所以引出数据链路层

      1):数据如何分组:一组电信号构成一个数据包称之为帧,每次发送一个数据帧

          数据帧包含    head(头):包含   原地址(6),目标地址(6),802标签(4)+以太类型(2 )             共  18

                data(内容):最少   46       最多   1500

        没帧最大1518,超过将分片

      2) :MAC地址:每台计算机要联网都要有网卡,每个网卡必然具备一个全球唯一的MAC地址,所以可以定位到任意一台计算机   

       有了链路层理论上全世界的计算机都能连到同一个网络,但是我们不可能把所有计算机设备连到同一个交换机,而且同一网络的计算机同时发送广播,容易形成广播风暴

    三:网络层: 以ip协议  工作在网络层

      ip协议规定:每一台计算机要联网都必须分配一个    ip地址    ip为逻辑地址     不是固定的   可能会变化

      ip地址的格式:有4段3位的十进制数组成         范围在  0.0.0-255.255.255

        ip地址中前三段是网络后,用于表示所在局域网;后一段是主机号,用于表示这个主机在局域网中的位置。通过网络号可以定位到某一个局域网,再通过主机号定位某一个计算机,这样一来就可以通过ip定位到全球任意一台计算机

        ip地址是在mac地址的基础上加入的网络地址概念,有了它可以缩小广播范围

    四:传输层:以 TCP/UCP  协议工作在传输在传输层

     传输层要求每一个应用程序绑定一个端口号,端口号是整数     取值范围     0-65536       0-1024是系统保留的        不建议用         端口号不能重复      至此 ip+端口号  就可以定位到全球某一台电脑上的某一个应用程序

     TCP:传输控制协议

      可靠传输协议, 如何保障可靠,在发生完数据之后,必须等待接收方返回回复消息,该数据才算发送成功,如果对方在一段时间内没有返回,会再次发送数据,超限制次数,将判定为链接丢失。
      1.要发送数据必须先建立链接 简单的说就是找一条可以到达对方的路 ;
      2.要保证数据传输室可靠 一定要保证这传输路径是可用的
      3.建立链接需要三次握手,三次握手是为了确定传输可用;但是并不能保证后续传输可靠 所以TCP协议在传输数据时 每一个数据段segment都需要确认信息
      4.断开链接需要四次挥手,四次挥手是保证双方数据传输完毕 ,           为什么需要多一次,有可能一段传输结束 另一边还没结束

      优点:保证传输可靠,数据完整
      缺点:因为需要传输确认信息,所以对网络消耗较大,效率相对较低
      应用场景:重要数据,在线支付,文字信息

     UDP:协议用户数据报协议

        不可靠传输协议,UDP只管发送 不管对方是否收到

      优点:传输效率比TCP高
      缺点:传输不可靠
      应用场景:对速度要求高 ,对完整性要求较低的情况下用       比如 : 频通通话,    语音聊天    对战游戏 多是UDP 你卡了你就卡吧 别人正常玩

  • 相关阅读:
    Vue基础进阶 之 过渡效果
    Vue基础进阶 之 自定义指令
    Vue基础进阶 之 实例方法--生命周期
    Vue基础进阶 之 实例方法
    Vue基础进阶 之 常用的实例属性
    Vue基础进阶 之 计算属性的使用
    Vue基础进阶 之 Vue生命周期与钩子函数
    JavaScript 条件判断算法综合实战
    (KMP)Simpsons’ Hidden Talents -- hdu -- 2594
    (并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online )
  • 原文地址:https://www.cnblogs.com/wyf20190411-/p/10931401.html
Copyright © 2011-2022 走看看