zoukankan      html  css  js  c++  java
  • Python--网络编程-----C/S架构与互联网协议

    一、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等,

  • 相关阅读:
    表单提交:button input submit 的区别
    JavaScript中改变this指针的注意事项
    宝塔服务器配置nginx刷新404的问题汇总
    ES6笔记整理
    axios网络请求
    v-model双向绑定
    v-bind动态绑定
    前端模块化
    vue router 路由
    JS高阶函数
  • 原文地址:https://www.cnblogs.com/xudachen/p/8719665.html
Copyright © 2011-2022 走看看