极客小将

您现在的位置是:首页 » python编程资讯

资讯内容

python基础知识一:网络通信数据传输<span style="font-family:楷体;color:Red"> 前言&l

极客小将2021-02-27-
简介免费学习推荐:python教程(视频)python实现网络通信数据传输(基础知识(一))前言基础知识学习一、同步异步二、什么是socket三、socket套接字的分类1、流格式套接字SOCK_STREAM2、数据报格式套接字(SOCK_DGRAM)四、IP地址、MAC地址、端口地址结束语前言我不是通

免费学习推荐:python教程(视频)1yc少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

python实现网络通信数据传输(基础知识(一)) 前言 基础知识学习 一、同步异步 二、 什么是 socket三、socket套接字的分类1、流格式套接字SOCK_STREAM2、数据报格式套接字(SOCK_DGRAM)四、IP地址、MAC地址、端口地址结束语 前言

我不是通信信息专业的,但是**近接触了一些这方面的知识感觉挺有意思就学习了一下,并将学习结果记录在这里,以便给更多人学习,要是能得到大佬的指点就美滋滋啦!!!1yc少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

基础知识学习 一、同步异步同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。是一种线性执行的方式,执行的流程不能跨越。一般用于流程性比较强的程序,比如用户登录,需要对用户验证完成后才能登录系统。
(发送方发一个,接收方接收一个,是同步的。)异步则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。是一种并行处理的方式,不必等待一个程序执行完,可以执行其它的任务,比如页面数据加载过程,不需要等所有数据获取后再显示页面。
(发送方发送数据,接收方有一个缓存区,可以按照自己的规律去接受,当然发送方也可按照自己的规律去发送,两者是异步的) 二、 什么是 socketsocket 的原意是“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,计算机之间建立网络连接。为了方便理解,我们可以类比插座,我们把插头插到插座上就能从电网获得电力供应,同样,为了与远程计算机进行数据传输,需要连接到因特网,而 socket 就是用来连接到因特网的工具。与 UNIX/Linux 不同的是,Windows 会区分 socket 和文件,Windows 就把 socket 当做一个网络连接来对待,因此需要调用专门针对 socket 而设计的数据传输函数,针对普通文件的输入输出函数就无效了。三、socket套接字的分类

主要常用两种是流格式套接字(SOCK_STREAM)和数据报格式套接字(SOCK_DGRAM)。1yc少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

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)是一个虚拟的、逻辑上的概念。可以将端口理解为一道门,数据通过这道门流入流出,每道门有不同的编号,就是端口号。如下图所示:

网友点评

共有5条评论来说两句吧...