python3--网络编程一

有两个文件a.py和b.py,分别去运行,这两个python的文件分别运行的很好,但是如果这两个程序之间想要传递一个数据,要怎么做呢?

创建一个文件,把a.py想要传递的内容写到文件中,然后b.py从这个文件中读取内容就可以了

但是当你的a.py和b.py分别在不同电脑上的时候,你要怎么办呢?类似的机制有计算机网盘,qq等。

软件开发的架构

我们了解的涉及到两个程序之间通讯的应用大致可以分为两种:

第一种是应用类:qq,微信,网盘,优酷这一类是属于需要安装的桌面应用

第二种是web类:比如百度,知乎等使用浏览器访问就可以直接使用的应用

这些应用的本质其实都是两个程序之间的通讯,而这两个分类又对应了两个软件开发的架构

C/S架构

C/S即:Client与Server, 中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以使物理层面)来划分的

这里的客户端一般泛指客户端应用程序exe,程序需要先按照后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大

B/S架构

B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。Browser浏览器,其实也是一种Client客户端只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。

网络基础

计算机网络的发展及基础网络概念

问题:网络到底是什么?计算机之间是如何通信的?

早期 : 联机

以太网 : 局域网与交换机

广播

主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机

ip地址与ip协议

规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示

范围0.0.0.0-255.255.255.255

一个ip地址通常写成四段十进制数,例:172.16.10.1

mac地址

head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址。

mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

arp协议 ——查询IP地址和MAC地址的对应关系

   地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

   主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。

   收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

   地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。 

广域网与路由器

路由器

路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽,"交通警察"。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。

  路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备

局域网

 局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成

子网掩码

所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?
两者与子网掩码分别进行AND运算,172.16.10.1:10101100.00010000.00001010.000000001
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

172.16.10.2:10101100.00010000.00001010.000000010
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0结果都是172.16.10.0,
因此它们在同一个子网络。

总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络

一个程序如何在网络上找到另一个程序?

首先,程序必须要启动,其次,必须有这台机器的地址,我们都知道我们人的地址大概就是国家\省\市\区\街道\楼\门牌号这样字。那么每一台联网的机器在网络上也有自己的地址,它的地址是怎么表示的呢?就是使用一串数字来表示的,例如:100.4.5.6

IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。

因此ip地址精确到具体的一台电脑,而端口精确到具体的程序。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏喔家ArchiSelf

老曹眼中的网络编程基础

我们是幸运的,因为我们拥有网络。网络是一个神奇的东西,它改变了你和我的生活方式,改变了整个世界。 然而,网络的无标度和小世界特性使得它又是复杂的,无所不在,无所...

8930
来自专栏我是东东强

交换机与路由器详细比较

作为计算机网络中最重要的两种数据包转发设备,交换机和路由器在功能设计方面既存在本质差别,又包含诸多相似之处,本文从两种设备的工作原理出发,详细介绍了它们之间的种...

31920
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯 TMQ 】WIFI 安全测试,其实不难

作为WiFi安全的一部分,近年来WiFi安全事件层出不穷,而其中的ARP攻击事件更加普遍,越来越成为移动互联网时代手机用户的一大痛点。本文主要讲解WIFI的安全...

32600
来自专栏FreeBuf

走近科学:剥开层层迷雾,深度追踪针对GitHub的DDoS攻击

本文为翻译文章(已剔除敏感观点),仅供技术交流,不代表FreeBuf立场 就在几周前,GitHub 网站遭受了有史以来最严重的DDoS攻击。本文中将使用http...

21150
来自专栏FreeBuf

挖洞经验 | Facebook的手机扫码登录漏洞

Facebook最近推出了忘记密码的手机登录功能,我发现该功能中的二维码扫描存在漏洞,可以利用其进行CSRF攻击,劫持其它Facebook账户。 ? 当我的手机...

77180
来自专栏Java架构沉思录

一文读懂负载均衡之LVS

根据官方文档LVS支持三种负载工作方式:NAT方式、TUN方式和DR方式。为了说明这三种方式的工作原理,我们首先需要了解一下基础的IP/TCP报文(注意,IP报...

24730
来自专栏我和PYTHON有个约会

30.企业级开发进阶2:网络编程

网络编程部分开始,要求对内容的宏观理解的东西更加多了,简单梳理总结一下,希望大家多提意见一起完善。

8000
来自专栏七夜安全博客

无线安全专题_攻击篇--MAC泛洪攻击

18440
来自专栏落影的专栏

HLS点播实现(H.264和AAC码流)

前言 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioT...

55360
来自专栏SDNLAB

SDN:优雅的间歇性访问限制

一、项目简介 目的:设有一台PC机(Host1),一台Web服务器(Host2)提供简单的静态网页访问服务。通过RYU控制网络流,限制PC访问服务器的频率,如两...

39740

扫码关注云+社区

领取腾讯云代金券