网络编程 之 网络协议(一)

网络编程

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

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

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

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 你卡了你就卡吧 别人正常玩

原文地址:https://www.cnblogs.com/wyf20190411-/p/10931401.html