一、C/S架构
C:client(客户端软件) S:server(服务端软件)
python程序员是应用开发程序员,开发的软件都是应用软件,应用软件必须运行于操作系统之上,操作系统则运行于硬件上,应用软件不能接操作硬件,应用软件对硬件的操作。
必须调用操作系统接口,由操作系统操作硬件。
1、客户端软件基于网络发送消息给服务端软件流程
1)客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送/拷贝给操作系统内存
2)客户端操作系统收到数据后,按照客户端软件指定的协议、调用网卡发送数据
3)网络传输数据
4)服务端软件调用系统接口,想要将数据从操作系统内存拷贝到自己的内存中
5)服务端操作系统受到4的指令后,使用与客户端相同的协议,从网卡接收到数据,然后拷贝给服务端软件
二、网络通信原理
1、互联网协议(Internet Protocol Suite)
计算机之间的通信也应该有一个像英语一样的通信标准,这个标准称之为互联网协议, 可以很明确地说:互联网协议就是计算机界的英语,网络就是物理链接介质+互联网协议。
我们需要做的是,让全世界的计算机都学会互联网协议,这样任意一台计算机在发消息时都严格按照协议规定的格式去组织数据,接收方就可以按照相同的协议解析出结果了,这就实现了全世界的计算机都能无障碍通信。
互联网协议的功能:定义计算机如何介入Internet,以及接入Internet的计算机通信标准。
2、OSI七层协议
按照功能不同,人们将互联网协议分为osi七层或tcp/ip五层或tcp/ip四层。
每层常见的物理设备:
传输层:四层交换机、四层路由器
网络层:路由器、三层交换机
数据链路层:网桥、以太网交换机、网卡
物理层:中继器、集线器、双绞线
3、tcp/ip五层模型详解
将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议就理解了整个互联网通信的原理。
每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件。
4、TCP/IP
Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础。
1974年,TCP/IP诞生,TCP/IP有一个非常重要的特点,就是开放性,即TCP/IP的规范和Internet的技术都是公开的。目的就是使任何厂家生产的计算机都能相互通信,使Internet成为一个开放的系统。
5、OSI七层模型
国际标准化组织ISO于1977年成立了一个委员会,在现有网络的基础上,提出了不基于具体机型、操作系统或公司的网络体系结构,称为开放系统互联模型。
OSI/RM模型(Open System Interconnection / Reference Model)的设计目的是成为一个所有计算机厂商都能实现的开放网络模型,来克服使用众多私有网络模型所带来的困难和低效性。