python 网络传输,Python网络通信

  python 网络传输,Python网络通信

  

免费学习推荐:python教程(视频)

  00-1010入门基础知识学习一、同步与异步二、什么是socket三、socket的分类一、流套接字SOCK_STREAM2二、数据报套接字(SOCK_DGRAM)四、IP地址、MAC地址、端口地址结论

python实现网络通信数据传输(基础知识(一))

我不是通信信息专业的,但是最近学了一些这方面的知识,挺有意思的。

  00-1010-

前言

同步是整个过程的顺序执行。当所有进程完成时,返回结果。是线性执行方式,执行过程不能交叉。一般用于流程性强的流程,比如用户登录,需要用户认证后才能登录系统。

  (发送方发送一个,接收方接收一个,同步。)异步只是发送调用指令,调用者不必等待被调用的方法被完全执行;相反,继续下面的过程。这是一种并行处理方法。您可以执行其他任务,而不必等待程序完成,例如页面数据加载过程。在显示页面之前,您不需要等待获取所有数据。

  (发送方发送数据,接收方有缓冲区,可以按照自己的规则接收。当然,发送方也可以按照自己的规则发送,这是异步的。)

基础知识学习

socket原意为“插座”。在计算机通信领域,socket翻译为“套接字”,是计算机之间相互通信的约定或方式。通过套接字协议,计算机建立网络连接。为了方便理解,我们可以用插座来比较,我们把插头插到插座里。

  就能从电网获得电力供应,同样,为了与远程计算机进行数据传输,需要连接到因特网,而 socket 就是用来连接到因特网的工具。

  • 与 UNIX/Linux 不同的是,Windows 会区分 socket 和文件,Windows 就把 socket 当做一个网络连接来对待,因此需要调用专门针对 socket 而设计的数据传输函数,针对普通文件的输入输出函数就无效了。
  • 三、socket套接字的分类

    主要常用两种是流格式套接字(SOCK_STREAM)和数据报格式套接字(SOCK_DGRAM)。

      

    1、流格式套接字SOCK_STREAM

    • 有以下几个特征:
      数据在传输过程中不会消失;
      数据是按照顺序传输的;
      数据的发送和接收是异步的。
    • 它使用了 TCP 协议(The Transmission Control Protocol,传输控制协议),TCP 协议会控制你的数据按照顺序到达并且没有错误。
      强调高质量。

    2、数据报格式套接字(SOCK_DGRAM)

    • 计算机只管传输数据,不作数据校验,如果数据在传输中损坏,或者没有到达另一台计算机,是没有办法补救的。也就是说,数据错了就错了,无法重传。因为数据报套接字所做的校验工作少,所以在传输效率方面比流格式套接字要高。
    • 它有以下特征:
      强调快速传输而非传输顺序;
      传输的数据可能丢失也可能损毁;
      限制每次传输的数据大小;
      数据的发送和接收是同步的。
      数据报套接字也使用 IP 协议作路由,使用 UDP 协议(User Datagram Protocol,用户数据报协议)。
    • 注意: SOCK_DGRAM 没有想象中的糟糕,不会频繁的丢失数据,数据错误只是小概率事件。

    四、IP地址、MAC地址、端口地址

    • IP地址:是 Internet Protocol Address 的缩写,译为“网际协议地址”。目前大部分软件使用 IPv4 地址,但 IPv6 也正在被人们接受,尤其是在教育网中,已经大量使用。
      对于IPV4,一个计算机一个IP地址是不现实的,所以一般是一个局域网一个IP地址。路由器会根据 IP 地址找到对方的地里位置,路由器有非常高效和智能的算法,很快就会找到目标局域网。
    • MAC地址:是物理地址,一个局域网地址有多个计算机的MAC地址,数据包中除了会附带对方的 IP 地址,还会附带对方的 MAC 地址,当数据包达到局域网以后,路由器/交换机会根据数据包中的 MAC 地址找到对应的计算机
    • 端口地址:一台计算机可以同时提供多种网络服务,例如 Web 服务(网站)、FTP 服务(文件传输服务)、SMTP 服务(邮箱服务)等,仅有 IP 地址和 MAC 地址,计算机虽然可以正确接收到数据包,但是却不知道要将数据包交给哪个网络程序来处理,所以通信失败。
      为了区分不同的网络程序,计算机会为每个网络程序分配一个独一无二的端口号(Port Number)。端口(Port)是一个虚拟的、逻辑上的概念。可以将端口理解为一道门,数据通过这道门流入流出,每道门有不同的编号,就是端口号。如下图所示:
    • 补充:今天刚刚看了下串口和端口的概念:
      串口是I/O通讯的接口,是硬件范畴,因为使用了串行的信号通讯而简称串口。
      端口(指一般的PC机操作系统中,单片机不算)只是一个16位的数字标识,用来在网络通讯中标识不同的通讯进程,是操作系统定义的,就是说没有操作系统的话也没有端口的概念

    结束语

    最近学习了挺多有关通信的东西,希望拿出来和大家分享一下,本文只是接下来几篇中的开头,做些基础准备,接下来还准备发些相关知识最后会准备几个例子供大家参考!!!
    欲知后事如何,请听下回分解!

      

    免费学习推荐:python视频教程

      

    以上就是python基础知识一:网络通信数据传输的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

      

    郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

    留言与评论(共有 条评论)
       
    验证码: