Python的网络编程

  • 网络协议:计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合

  • 网络模型:

    • 七层模型-七层

      • 物理层

        • 实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。
      • 数据联络层

        • 将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。

          数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。

          ​ MAC子层处理CSMA/CD算法、数据出错校验、成帧等;LLC子层定义了一些字段使上次协议能共享数据链路层。 在实际使用中,LLC子层并非必需的。

      • 网络层

        • 本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。
      • 传输层

        • 传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。
      • 会话层

        • 会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
      • 表示层

        • 表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
      • 应用层

        • OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。

    • 四层模型-实际应用

      • 链路层
      • 网络层
      • 传输层
      • 应用层

    • 每一层都有相应的协议负责交换信息或者协同工作

    • TCP/IP协议族

      • 是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,

        且通过若干协议来实现,上层协议使用下层协议提供的服务。

    • IP地址
      • 负责在网络上唯一定位的一个机器,相当于互联网的门派号,根据IP地址查找到你的位置
      • IP地址分为ABCDE类
        • 国际上做出规定,正常使用ABC类,D、E类用作科研或者其他不开放使用,客户级一般在局域网中相互间通信,一般采用自己配置IP地址,与局域网内其他客户机通信
      • 是由四个数字段组成,每个数字段的取值是0-255
      • 192.168.xxx.xxx:局域网IP
      • 127.0.0.1:本机
      • IPv4,IPv6
    • 端口

      • 范围:0-65535
        • 知名端口:0-1023
        • 非知名端口:1024-
    • TCP/IP协议

      • UDP:非安全的不面向链接的传输

        • 安全性差
        • 大小限制64kb
        • 没有限制
        • 速度快
      • TCP

        • 基于链接的通信
        • 无差错,不丢失
        • 用于传输大量数据(流模式)
        • 速度慢,建立连接需要开销较多(时间,系统资源)
      • SOCKET编程

        • socket(套接字):是一个网络通信的断电,能实现不同主机的进程通信
        • 通过IP+端口定位对方并发送消息的通信机制
        • 分为TCP/UDP
        • 客户端Client:因特定请求而联系服务器,并发送必要的数据,然后等待服务器的回应,最后完成请求或给出故障的原因
        • 服务器端Server:为一个或者多个客户端提供所需的服务,他存在唯一的目的就是等待客户端的请求,并响应提供服务服务,然后等待更多请求
      • UDP编程

        • Server端流程

          • 建立socket,socket是负责具体通信的一个实例
          • 绑定,为创建的socket指派固定的端口和IP地址
          • 接受对方发送内容
          • 给对方发送反馈,此步骤非必须步骤
        • Client端流程

          • 建立通信的socket
          • 发送内容到指定服务器
          • 接受服务器给定的反馈内容
        • 服务器案例

          import socket
          
          # 创建一个服务器端函数
          def Serverfunc():
          
              # 第一步:建立socket
              # socket.AF_INET:使用ipv4协议族
              # socket.SOCK_DGRM:使用UDP通信
              sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
          
              # 第二步:绑定ip和port(端口)
              
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值