Python--网络编程-----C/S架构,,一、C/S架构C为C


一、C/S架构

C为Client S为 Server C/S架构即为客户端/服务器架构,

这种架构的软件开发,需要开发客户端软件和服务端软件,

一般来讲,客户端软件运行在客户端主机上,服务端软件安装在服务端主机上,

两台主机要怎么进行通信呢?

首先,两台主机之间的网卡之间物理线路必须要联通

其次,操作系统作为应用软件与网卡之间的桥梁

最后,应用系统通过操作系统接口进行信息交互

二、互联网协议

主机网卡之间连接的媒介我们统称为网络,两台主机要想通过网络进行通信,就必须要遵循一定的标准,而这个标准我们目前使用最多的称之为互联网协议,

我们今天要讨论的有OSI七层互联模型和五层互联模型

1、OSI七层互联模型

技术分享图片

应用层、表示层、会话层、传输层、网络层、数据链路层和物理层总共七层

为什么要进行分层呢?为了便于理解(复杂问题简单化)和独立各个层次模块,每一层负责不通的功能,而又与其它层相互联系

2、下面从下到上依次进行介绍:

A、物理层:就是通过高低电平发送一些0101110的二进制代码,规定了线路标准等等

B、数据链路层:这些01010111代码我们怎么知道表示什么意义,也就是我们需要想字符编码一样给它来一个对应,也就是比特流的组装,我们现在常用的数据链路层的协议是Ethernet协议,它规定了帧头和数据,如下:

技术分享图片在以太网协议中,有目标MAC,源MAC,而MAC地址可以唯一的标识一台主机的一个网卡,这样通过MAC地址就能找到

一个网卡,而找MAC的方式就是广播,也就是目的MAC要在你的广播范围之内,能够给源MAC回复,

虽然理论上通过MAC地址就能通信了,但是在现实的网络环境中,这是不现实的,我们不可能把广播放到所有的网络环境中,这样就出现了网络层的概念

C、网络层: 网络层使用的协议为IP协议,也就是使用IP地址标识一个主机,目前常用的IP地址是IPv4地址,IPv6使用还没有得到推广,知道了IP地址,我们就能通过网络上的各种设备找到这个IP地址的路,

并且通过ARP地址解析协议,发到对应的网卡上,

理论上,通过IP地址,我们能够找到世界上任何一台互联网主机

D、传输层: 虽然能够找到这个主机,但我们的目的是要跟主机上的应用进行通信,怎么找到这个应用呢,这就使用到了端口,端口范围为0-65534 ,1-1024为系统预留,之后的端口应用程序可以使用,

理论上,通过IP地址和端口,我们能够找到世界上任何一台互联网主机之上的应用

E、会话层,表示层和应用层我们在这里统称为应用层,也就是程序员关心的那一层,在这一层用户可以定义自己的应用头格式和数据部分,常用的应用层标准有HTTP、FTP等,

Python--网络编程-----C/S架构

评论关闭