py网络_网络编程简介笔记
网络接入和通讯
世界上最早出现的计算机是为了解决数据的计算以及密码的破译功能,如果继续延伸也都是军方进行数据存储的重要的技术研究,而后计算机开始进入到普通平民的生活,这样一来当有了多台电脑之后肯定需要想办法把这多台电脑进行连接,那么就需要创建互联网。
两台主机通讯第一点一定要保证所有的网络线路是通畅的,协议指的是双方必须遵守的共同约定,在进行网络通讯的时候实际上核心的功能就是IO操作(输入和输出)

开发模式
在进行网络程序开发的过程之中一般都会考虑两种不同的开发模式:
- C/S模式(Client/Server、客户端与服务端架构):该设计架构一般需要编写两套不同的程序,一套是服务端程序,另外一套是客户端的程序,在进行项目维护的时候需要进行两套项目的维护,所以维护成本很高,但是这种程序一般使用特定的协议、特定的数据 结构、隐藏的端口等等,所以安全性是比较高的;
- B/S模式(Browser/Server、浏览器与服务端架构):主要是基于WEB设计的一种架构,基于浏览器的形式作为客户端进行访问,在程序开发的时候只开发一套服务端程序即可,所以开发的成本比较低,而且用户使用门槛比较低,但是这种开发一般都是基于HTTP协议完成的处理,所以其安全性不高,并且使用的是公共的80端口,极易遭到攻击。

网络分层模型
对于网络程序的开发不仅仅是一个简单的数据交互过程,还包含有一些数据的处理逻辑,同时所有的网络设备也一定会由不同的硬件厂商生产,所以为了可以保证数据传输的可靠性以及标准型,就定义了一个OSI七层模型。
| No. | 协议层名称 | 描述 |
|---|---|---|
| 1 | 应用层 | 提供网络服务操作接口 |
| 2 | 表示层 | 对要传输的数据进行处理,例如:数据编码 |
| 3 | 会话层 | 管理不同通讯节点之间的连接信息 |
| 4 | 传输层 | 建立不同节点之间的网络连接 |
| 5 | 网络层 | 将网络地址映射为mac地址实现数据包转发 |
| 6 | 数据链路层 | 将要发送的数据包转为数据帧,使其在不可靠的物理链路上进行可靠的数据传输 |
| 7 | 物理层 | 利用物理设备实现数据的传输 |
在网络通讯的过程之中,所有的数据发送与接收操作都必须基于这七层模型进行数据包装与拆包处理。

由于有了这七层不同的网络数据的处理分类,所以任何的硬件厂商生产的设备(不管加入了多少的辅助技术),其核心的处理的本质都不会发生改变。

引出Socket编程
Python属于高级语言,所以对于所有的网络程序开发不可能让开发者自行处理具体的OSI模型,应该采用统一的模式进行定义,这样才有了Socket编程。
py网络_网络编程简介笔记
https://blog.wangxk.cc/2020/02/04/py网络-网络编程简介笔记/