Python Socket网络编程(二)局域网内和局域网与广域网的持续通信

前言

       本系列博客是笔者学习Python Socket的过程笔记第二篇,目的在于记录。其中的解释都为自己的见解,仅供参考,如有错误,还望指出。本篇博客是对Python Socket的局域网内两台设备之间的通信,和局域网和广域网(通常是指我们购买的服务器)之间的通信区别,在上一篇博客中,记录了socket模块和初步实现了一台设备(电脑)中的不同进程之间的通信,有兴趣的请前往上一篇博客Python Socket网络编程(一)初识Socket和Socket初步使用。
       这一节的内容不算多,但是我还是单独列出来,原因在于这一块非常重要,其中还有一块关于IP的知识必须掌握才能对网络编程有帮助。

IP地址
  • 简介

       网络之间互连的协议(IP)是Internet Protocol的外语缩写。IP协议中一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一种地址,叫做“IP 地址”。由于有这种地址,才能对网络上这么多设备进行区分,并且根据某一个IP就能找到一个唯一的设备。但是IP地址也是有区分的,广义上分为私有IP地址(保留IP地址)和公有IP地址(固定IP地址)。

  • 公有IP

       公有IP地址是由INIC(Internet Network Information Center 因特网信息中心)负责。这些IP地址分配给向INIC提出申请并成功注册的组织机构。通过公有IP地址能直接访问因特网,当然公有IP是要钱的。

  • 私有IP

       随着网络的发展,为节省可分配的注册IP地址,有一组IP地址被拿出来专门用于私有IP网络,称为私有IP地址。私有IP地址范围:
       A类: 10.0.0.0~10.255.255.255
       B类:172.16.0.0~172.31.255.255
       C类:192.168.0.0~192.168.255.255
       这些地址是不会被Internet分配的,它们在Internet上也不会被路由,虽然它们不能直接和Internet网连接,但通过技术手段仍旧可以和 Internet通讯(NAT技术)。公网IP是直接与英特网连接可以直接访问网络(上网),而私有IP地址则是在局域网中使用的IP地址,私有IP是不能直接上网的(无法直接和公网通信),当私有网络内的主机要与位于公网上的主机进行通讯时必须经过地址转换,将其私有地址转换为合法公网地址才能对外访问。也就是要使用NAT-Network Address Translation 网络地址转换技术。
       那么平时我们的电脑是如何上网的呢?比如我们办理了电信宽带,拉一根网线连接到我们的电脑,我们的电脑就能上网了。实质上此时我们的电脑是一个私有IP,电信那边购买了一个公有IP,我们电脑和电信的公有IP之间有一个NAT技术设备,也就是说我们能上网是通过电信的公有IP实现的。
       如果在家安装了路由器我们的多台电脑连接在这个路由器上,那么这些电脑直接就构成了局域网,在这几台电脑上可以直接进行局域网的通信。但是你家里构成的局域网和公司的局域网是不能通过局域网通信的。

       在这里记录私有IP和公有IP的原因在于socket网络通信需要区别,以便我们知道哪些IP之间是不能通信的,哪些IP之间是可以通信的。从上述原理我们就知道同一个局域网内的设备A和设备A,设备A和设备B,广域网内的设备A和设备B可以实现双向连接通信,局域网的设备A和广域网的设备B可以单向连接(只能由局域网去连接广域网,也就是局域网是客户端,广域网是服务端;因为广域网的IP是固定且唯一的,局域网连接网络通过指定这个公有IP就能找到这台计算机,找的过程是局域网连接电信网络,通过NAT技术将这个局域网私有IP转换为公有IP然后再去和指定的公有IP通信,这样就可以找到指定的公有IP,相反私有IP是不能被公有IP找到的)通信。不同局域网之间的设备不能通信。

局域网之间网络通信
  • 前提

       在上一篇博客中实现的是本机的不同进程的通信,这里要实现同一局域网内两台电脑的通信,我这测试的

  • 26
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值