Python学习,python中socket解读

      最后更新:2022-04-08 04:08

      操作系统底层原理

      操作系统(OS)是管理和控制计算机硬件和软件资源的计算机程序,是直接在“空机”上运行的最基本系统软件,任何其他软件都必须在操作系统的帮助下运行。

      注:计算机(硬件)->os->应用软件

      网络通信原理

      互联网基本上是一套网络协议。

      一个人有一个硬操作系统, 然后你就可以使用程序, 但只有你能使用它。
      每个人都有自己的机器,但他们彼此分离。
      在这里插入图片描述
      如何能大家一起玩耍
      在这里插入图片描述
      最后,英语成为地球上所有个人通用的交流语言。如果你认为电脑在全世界都是个人因此,两台计算机之间的互联网连接是一套标准化标准。它们被称为因特网协议。因特网基本上是一套协议。它被称为互联网协议套房。

      因特网协议功能:界定计算机如何与因特网连接,以及在因特网上获取计算机通信的标准。

      网络基础架构

      一.C/S结构:客户-客户-服务器-服务器-客户/客户-服务器结构

      2.B/S 结构:浏览器端/浏览器和服务器结构

      必须指出,C/S和B/S没有根本的不同:B/S基于具体通信协议的C/S结构。这意味着B/S是C/S的一个子集。这是一个独特的 C/S 结构。B/S 结构显示在 C/S 结构上,因为不这样做是不切实际的。为了满足瘦小、一体化的客户的要求,最终目的是在客户升级、维护等方面节省资金。及广域资源的共享。

      一个B/S为C/S所有,浏览器只是特殊客户。
      两个C/S可以使用任何通信协议,而B/S(一个特定的C/S结构)则要求执行HTTP协议。
      3.A 浏览器是一个通用客户端,可以创建浏览器或完成 C/S 系统。

      应用场景:

      在用户基础庞大或客户要求随时间变化的情况下,使用碱性计算法。
      C/S 函数是可靠的, 减少服务器终端压力; 如果用户的要求特别复杂, 使用 C/S 。
      在这里插入图片描述
      局域网和总机/网络通用短语

      因为对方的IP地址, 目标返回到他的IP地址 和Mac 地址,一个单一的广播, 开关空了5分钟。

      电台:同一网络的两个主机可以使用Mac地址进行互动(一个主机收到另一个主机使用arp协议的mac地址)。

      Ethernet采用最基本的通信传输方法,即基本上计算机通信被尖叫。

      1. 通 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼 尼

      该交换是单一发件人和接收人之间的网络通信,记录了麦克地址。

      2.组播

      广播在发送者与每个接收者之间建立多点对点网络联系。 当发送者同时向多个接收者发送相同数据时,只需要一份相同数据包的副本。 它会提高数据传输效率,并尽可能减少主干网堵塞的可能性。

      3.Mac地址

      这是一个物理地址, 它唯一的功能是识别计算机, 类似于一个人的身份证。

      4.ipv4地址

      这四个点是小数点,与目前地点以及人学校的数目有关。

      5.请求帧

      ip Mac正在寻找ip

      6.arp协议

      从 IP 地址获取目标 Mac 地址的协议

      7.端口

      此机器上运行的所有应用程序都由操作系统指定一个随机端口,其他计算机程序可以通过端口访问此程序。

      子网遮罩( 子网遮罩)

      将IP地址分为两部分:网络地址和主机地址。

      9. 默认网关

      网关上的所有入口,包括出口和入口,都经过。

      10.DNS服务器

      在互联网上,域名服务器是一个域名和一个 IP 地址之间的匹配。域名简单易记。然而,机器只知道对方的IP地址域名分辨率是指它们之间的转换过程。要解决域名问题,需要一个专门的域名解析服务器。DNS 是剖析域名的服务器 。

      DHCP 11号服务器

      这是一个自动检测当前网络环境并基于当前网络环境为您提供适当的 IP 地址的服务器。 它的存在是为了通过手动配置使 IP 变得更加愚蠢, 使它成为互联网的密钥。 您不需要创建自己的手动设置 。

      12.ping

      “平面”一词指随附图像中显示的音频设置。如果目的电脑联网,目的地电脑会归还这个平袋如果目标计算机没有连接到互联网平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平因此,这一顺序在信息技术部门广泛用于确定计算机是否与互联网连接。

      13.网段号

      我们知道ip由两部分构成 网段号+主机号。当我们使用自身的子网掩码和目的主机进行&运算时,我们就能得出目的主机的网段号,进而判断目的主机与自己是否处在同一个网络中。

      注:
      开关和路由器之间的区别如下:

      • 开关的基本作用是安排局域网,然后以多种形式将信息作为点对点、点对点传送到固定端口,是用于确定数据传输预定地址的实际地址或MAC地址。
      • 路由器的基本功能是在网络段上传输数据并确定最佳路径。

      注:
      如果您需要将大量 PC 连接到网络连接中, 请使用开关 。
      如果只有一个 IP 地址, 数台机器希望连接到外联网 。

      OSI七层模型

      根据职能,互联网协议分为7级或tcp/ip级或tcp/ip4级。
      在这里插入图片描述
      共同有形设备在一端的操作
      在这里插入图片描述
      介绍TCP/IP 5级模式

      我们应采用多层、多层代表、多层会议、多层会议、多层会议,按照tcp/ip五层协议界定每一层的起源和功能,并通过确定每一层的关键协议来理解整个互联网通信原则。

      首先,用户只看到程序上层, 从上到下依赖于下层, 因此我们从下到下开始, 更多地了解每个层如何运行不同的协议, 更接近用户, 更接近硬件。

      Tcp伸手三次,波浪四次
      在这里插入图片描述
      将图像放在这里连接三个握手方式 :

      一. 用户请求服务器建立连接,主机A向主机B发送TCP请求数据包。
      二. 服务器收到请求后,向客户发送确认请求,主机B在收到请求后提供连接确认包。
      无法打开文件夹“%s”:%s

      断开连接四次挥手:

      一. 用户向服务器发送突破请求, 等待服务器确认 。
      二. 服务器向客户端发送信息确认信息,以便发布信息。
      服务器再次向客户发送关闭信号 以确认港口的释放
      四. 收到确认信息后,客户端将其发送到服务器上。

      注意:服务器向客户端发送关闭信息,如果不接受回信,在这段时期内,等待这两份提交书的时间也会交送一次,超过自动删除结束信息的时间。

      HTTP、HTTP和FTP是应用层的例子。

      层函数:确定应用程序的数据格式。
      在这里插入图片描述
      每层常见的协议
      在这里插入图片描述
      TCP和UDP是协议。

      TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。

      TCP 应用程序包括网络浏览器、电子邮件和文件传输程序。

      TCP 协议编码程序:

      ​ 服务器端:

      ​ 1.实例化对象

      2. 签署IP地址和端口号。

      ​ 3.监听

      获得4个客户连接

      ​ 5.收发

      ​ 6.关闭

      ​ 客户端:

      ​ 1.实例化对象

      ​ 2.连接服务器

      ​ 3.收发

      ​ 4.关闭

      UDP(用户数据表协议)不稳定且断开,但传输效率高(无预发延迟)、一对一、一对一、多对一、多对一,服务最大,没有人群管理。

      UDP应用程序包括:域名系统(DNS);视频流;IP语音(VoIP)。
      在这里插入图片描述
      粘包

      TCP是唯一一个有粘糊糊袋的人,一个粘糊糊的袋子永远不会被UDP卡住。

      TCP是一项以流动为导向的议定书:

      发件人可能是K-I-K数据发送人。接收申请中的数据可以用两个K2K取出。当然,3K或6K数据可以一次删除。相反,一次有几字节的数据。也就是说,应用程序将数据视为整个数据。是一条溪,一条溪,一条溪,一条溪?程序不知道信息中的字节数量 。因此,TCP是一项面向流动的协议。这就是为什么粘糊糊的问题如此普遍的原因。就像用刀割河一样字节流缺乏明确的边界 。

      联合民主党协议是一项以新闻为导向的契约:

      每个UDP段都是一条信息,程序必须在一条信息中提取数据,而不是一次提取一个字节,这与TCP有很大不同。

      粘贴袋问题也是由于收件人不了解电文边界和一次删除多少字节造成的。

      TCP协议本身产生了粘糊糊的袋子。将利用TCP提高传输效率。经常要求发件人收集足够的数据,以交付一个TCP段。如果你连续几次需要Send的数据 你会需要它TCP通常将根据优化[汇总],将这些数据合成为TCP部分,仅发送一次。接收器以这种方式接收粘贴的包数据。

      TCP(transport control protocol,转让控制议定书是相互联系的。面向流的,提供高可靠性服务。两端都传送和接收一对半的插座(客户和服务器)。因此,发件人可向收件人发送不止一个包件。更有效的发到对方,采用了一种乐观的战略(纳什算法)。数据将多次传播,每次间隔较小,数据较少。合并成一个巨大的数据块然后进行封包。这样,接收端,就难于分辨出来了,有必要提供科学软件。以流动为导向的通信,换句话说,是在不提供信息的情况下保障边界。
      UDP(user datagram protocol,用户数据报告机制没有运作。面向消息的,提供高效率服务。我不知道如何使用混合的街区 优化算法, 但我也不知道如何实现它。由于民主联盟支持各种各样的模式,因此, kbuff (内建缓冲区) 的接收端采用链条结构,记录每一件UDP包裹。每个UDP包都有标题(源地址) 。端口等信息),这样,对于接收端来说,很容易区分两者。换句话说,新闻对信息通信中存在信息保护障碍。
      TCP是建立在数据流概念基础上的。因此,这一信息并非毫无意义。这就需要在客户和服务处采用空信息处理技术。防止程序卡住,此外,乌迪普还以数据报告为基础。即使你没有投入任何内容(返回汽车),那也不是空消息,你的头条新闻 将包含在DUP合同。
      udp的recvfrom是阻塞的,一个recvfrom(x)必须对唯一一个sendinto(y),收完了x个字节的数据就算完成,若是y>x数据就丢失,这意味着udp根本不会粘包,但是会丢数据,不可靠

      tcp协议数据不会丢失,包件将无法接收,下次将再次接收,缓冲区在接收包件时将始终得到清除。

      在两种情况下都会出现粘性袋。

      一. 发件人必须等到缓冲区满载后才能收到一个粘糊的袋子(数据在很短的间隔内传送,极小,并会汇合产生粘糊的包裹)。

      2. 接收方未能及时收到若干件收到的缓冲地带包件(客户提交了一份数据,服务仅收到其中一小部分数据,服务器在下次收到后从缓冲地带检索了最后的剩余数据,结果出现粘贴袋)。

      总结:

      在 tcp 协议中有一个共同包件机制(gle 算法),可以连续和较小规模地多次分发数据,并将其包装成一个数据传输器。

      还有一个拆包机制,因为对于运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、货物、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、运输、

      许多微小的数据被拆解以传送,当传送到目标主机的操作系统层时,多个小数据被重新合并到原始数据中。

      乌龟中没有粘粘袋,按照目前乌龟协议水平发送和接收的最大数据尺寸为65535 - ip头(20 - 乌龟袋(8) = 65507) 。

      在数据链一级站立,因为网页卡上的MTU通常限于1500,数据链接层的单一接收和接收数据数量限于1500-ip 折叠(20-udp 折叠)(8)= 1472。1472< num < 65507 会在数据链路层拆包,而udp本身就是不可靠协议,所以一旦拆包之后,造成的多个小数据包在网络传输中,如果丢任何一个,那么此次数据传输失败。

      对应方法:

      收件人在使用长矛屏蔽时不知道每条消息的大小。 每次传输时, 我们可能会告知接收者这些数据的大小 。 我们下次收到字节数时会解决邮袋问题 。

      Python Socket 模块解释

      一只公鸡到底是什么?

      在应用层面,插座是连接TCP/IP社区的中间软件的抽象层。它是一组接口。在设计模式中,事实上,索克特是一个正面模型。复杂的TCP/IP组隐藏在Socket界面下。对用户来说,所需要的只是一套简单的接口。让我们请Socket帮我们整理数据以符合指定的协议。

      套接字也称为插头 。

      分为多种:

      一. 易用类型特定套接字:AF_UNIX
      所有 unix 文件, 基于文件的 tweaking 是数据提取的底部文件系统, 而两个 tweaking 进程在同一台机器上运行, 可以通过访问同一个文件系统进行间接交流 。
      2.AF_INET/6 取决于网络类型的套接字
      此外,AF_INET6还用于IPv6。另有一些家庭住址。不过,它们仅在一个平台或另一个平台上使用。要么被抛弃 要么被抛弃 要么被抛弃或者是很少被使用,如果它不工作了出来。所有地址家族中,Af_INET是最常用的。Python为各种各样的住址家庭提供支助。然而,因为我们只对因特网编程感兴趣,因此,我大部分时间只使用AF_INET。

      套接字工作流程

      生活中的一个场景。 你必须联系朋友,先拨一个号码, 当朋友听到铃声, 你和朋友有联系,然后可以交谈。 当聊天结束, 电话挂起, 谈话就结束了。 你必须联系朋友,先拨一个号码, 当朋友听到铃声, 你和朋友有联系,然后可以交谈。 当聊天结束, 电话挂起, 谈话结束。 生活中的场景解释了这一点 。
      在这里插入图片描述

      服务器先将 Socket 初始化, 然后再将其绑定到端口( bind), 监听端口( 听好), 呼叫接受, 等待客户端连接 。

      客户端创建了套接字 。之后,连接到服务器上。如果连接成功,然后在客户端和服务器之间建立连接。客户要求提供数据。服务器终端接收和处理请求。然后向客户发送答复数据。客户端读取数据,最后关闭连接,一次交互结束

      使用 Socket () 模块函数

      涉及到的参数

      服务端套接字函数

      客户端套接字函数

      插座功能可供全体公众使用。

      面向锁的套接字方法

      文件函数的套套

      TCP Socket 通讯

      一个字母的套接字

      服务端

      客户端

      UDP Socket 通讯

      单次通讯

      服务端

      客户端

      循环链接

      服务端

      客户端

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类