咱们了解的涉及到两个程序之间通信的应用大体能够分为两种:python
第一种是应用类:qq、微信、网盘、优酷这一类是属于须要安装的桌面应用web
第二种是web类:好比百度、知乎、博客园等使用浏览器访问就能够直接使用的应用浏览器
这些应用的本质其实都是两个程序之间的通信。而这两个分类又对应了两个软件开发的架构~缓存
C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也能够是物理层面)来划分的。服务器
这里的客户端通常泛指客户端应用程序EXE,程序须要先安装后,才能运行在用户的电脑上,对用户的电脑操做系统环境依赖较大。微信
B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。网络
Browser浏览器,其实也是一种Client客户端,只是这个客户端不须要你们去安装什么应用程序,只需在浏览器上经过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。架构
问题:网络究竟是什么?计算机之间是如何通讯的?ide
主机之间“一对全部”的通信模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,全部主机均可以接收到全部信息(无论你是否须要),因为其不用路径选择,因此其网络成本能够很低廉。有线电视网就是典型的广播型网络,咱们的电视机其实是接受到全部频道的信号,但只将一个频道的信号还原成画面。在数据网络中也容许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。spa
mac地址:每块网卡出厂时都被烧制上一个世界惟一的mac地址,长度为48位2进制,一般由12位16进制数表示(前六位是厂商编号,后六位是流水线号
局域网(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),而后比较结果是否相同,若是是的话,就代表它们在同一个子网络中,不然就不是。
转化成二进制 print(bin(172)) # 0b10101100 print(bin(16)) # 0b10000 print(bin(10)) # 0b1010 print(bin(1)) # 0b1
好比,已知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.00000010 255255.255.255.0:11111111.11111111.11111111.00000000 AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0 结果都是172.16.10.0,所以它们在同一个子网络。
IP协议的做用主要有两个,一个是为每一台计算机分配IP地址,另外一个是肯定哪些地址在同一个子网络。
多态机器之间的通讯:
局域网概念:
ip的保留字段:
本地的回环地址:127.0.0.1 别的人找不到你 只有你本身这台机器能找到你本身
全网段地址:0.0.0.0 谁均可以访问你