网络编程一些概念
1.网络基础相关知识
a:C/S架构:client(客户端) server(服务器端)

优点:能充分发挥PC机的性能(原理是你下载一个软件,通过这个软件和你PC机进行信息通信)
缺点:1.系统安装调试维护和升级都比较困难。因为在安装时需要对每一个客户端进行分别配置,同样的升级时也是
2. 在整个系统中,业务逻辑和用户界面都集中在了客户端,增加了安全隐患。
b:B/S架构:browser浏览器,和server服务器 隶属于C/S架构

优点:统一了应用接口(软件不用下载,可以在网页上进行交互)应用程序的安装、调试、维护和升级都集中在了服务器端,
降低了维护的复杂性,提供了系统的安全性。
2.通信过程的每种情况
a: 同一台电脑上的两个py程序通信: 打开一个py文件
b: 两个电脑如何通信:连接一根网线
c: 多个电脑通信:
ps:arep协议 电脑1(源)要找电脑2(目标) 电脑1首先发送一个请求帧,期中包含(我的ip是192.168.1.1,我的mac地址是xxxxxxxx,我要找ip地址为192.168.1.2的主机),
将此请求发送给交换机.交换机要广播这条消息给其他所有的主机 目标主机接收到消息后,对比发现自己就是被找的主机,回复给交换机信息
(我的ip地址是192.168.1.2,我的mac地址是yyyyyyyyy,请回复给ip地址为192.168.1.1,mac地址为xxxxxxx的主机) 交换机单播形式返回给源主机
用图来演示一下上面的语句:

在计算机中的传输过程:


这几张图牵扯的几个知识点:
1)mac地址:每个电脑上都有一个网卡,实际存在的,网卡是网卡制造商按照国际标准制造的一个物理地址,唯一标识,类似身份证;mac地址其实是基于局域网内唯一标示你位置的地址,所以它不能跑出子网通信;
****寻找mac地址的方法:进入cmd-->ipconfig -all 如果网线连接就找以太网的物理地址,如果无线就找无线的物理地址****
2)ip地址:是一个四位点分十进制,它标示了计算机在网络中的位置,所以在网络中光有mac地址不行,mac地址只能证明你的身份;mac地址不能跨越子网,所以这时就出了一个ip协议可以跨子网,而且每一子网的ip都能对应到一个mac地址,这就是arp协议的工作流程;
而互联网相当于一个虚拟世界,你的位置一直在改变,所以不能用mac地址找你,要不然mac地址一直改变,就不能证明身份了;
3)互联网(外网)和局域网(内网)的区别:为什么要有外网和内网,因为外网的ip不够了,就需要把外网的下面去开局域网;
4)交换机的通信方式:广播,单播,组播
5)arp协议:通过目标ip地址获取目标mac地址的一个协议,广播的形式发送数据包,获取目标主机的mac地址;
6)端口:问题引出:两台电脑可以相互通信了,为什么你发了一条qq不会出现在微信上,你发送的信息到底存在了计算机什么位置
ps:你发送信息时,先会把信息通过互联网发送给qq的服务器,再由服务器发送给另一方,
这时操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序;
总结:ip 地址 + 端口 能唯一找到某台电脑获取到这个程序;在这台电脑上接收服务器发送的你的信息;

7)路由器:连接不同的网段,
8)网关:类似于一个局域网的出口和入口
9)网段:一个局域网内的ip地址范围:你怎样判断你和别人在同一网段内:
10)计算方法:有一个名词叫子网掩码:255.255.255.0(本地连接 以太网 状态 详细信息)
网段算法: 192.168.12.52 #主机ip地址 1100 0000 1010 1000 0000 1100 0011 0100 255.255.255.0 #子网掩码 1111 1111 1111 1111 1111 1111 0000 0000 用ip地址和子网掩码的二进制进行与运算 与预算一假必假 1100 0000 1010 1000 0000 1100 0000 0000 192.168.12.0 #网段
3.OSI模型
1)互联网的核心其实就是一堆协议组成,协议就是标准,就如全世界人通信的标准是英语;
2)互联网协议的功能:定义计算机如何接入Internet,以及接入Internet的计算机通信的标准;
3)互联网根据功能不同分为osi七层或tcp/ip五层或tcp/ip四层


根据上图讲解五层模型:
a:物理层:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应0;
b:数据链路层:单纯的电信号0或1没有意义,必须规定电信号多少位为一组,每组什么意思
数据链路层就是对物理层的一些电信号进行管理分组,所以这里有个以太网协议,
功能:定义了电信号的分组方式;
以太网协议:早期公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet
ethernet规定:
- 一组电信号构成一个数据包,叫做'帧'
- 每一个数据帧分成:报头head和数据data两部分
- 这个协议一定要有报头,这样你才知道从哪里开始取数据,而且报头的字节大小一定是固定的;
head包含(固定18个字节)
- 发送者/源地址,6个字节
- 接收者/目标地址,6个字节
- 数据类型,6个字节
data包含:(最短46个字节,最长1500字节)
- 数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
c:网络层:采用路由的方式(向不同广播域/子网分发数据包),mac地址是无法区分的,它只跟厂商有关
功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
d:传输层:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,
功能:建立端口到端口的通信(端口范围0-65535,0-1023位系统占用端口)
e:应用层:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式
功能:规定应用程序的数据格式。

浙公网安备 33010602011771号