免费学习推荐:python教程(视频)
python实现网络通信数据传输(基础知识(一))
- 前言
- 基础知识学习
- 一、同步异步
- 二、 什么是 socket
- 三、socket套接字的分类
- 1、流格式套接字SOCK_STREAM
- 2、数据报格式套接字(SOCK_DGRAM)
- 四、IP地址、MAC地址、端口地址
- 结束语
前言
我不是通信信息专业的,但是最近接触了一些这方面的知识感觉挺有意思就学习了一下,并将学习结果记录在这里,以便给更多人学习,要是能得到大佬的指点就美滋滋啦!!!
基础知识学习
一、同步异步
-
同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。是一种线性执行的方式,执行的流程不能跨越。一般用于流程性比较强的程序,比如用户登录,需要对用户验证完成后才能登录系统。
(发送方发一个,接收方接收一个,是同步的。) -
异步则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。是一种并行处理的方式,不必等待一个程序执行完,可以执行其它的任务,比如页面数据加载过程,不需要等所有数据获取后再显示页面。
(发送方发送数据,接收方有一个缓存区,可以按照自己的规律去接受,当然发送方也可按照自己的规律去发送,两者是异步的)
二、 什么是 socket
- socket 的原意是“插座”,在计算机通信领域,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基础知识一:网络通信数据传输的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具