• python---网络编程


    软件开发架构,趋势

    网络编程简介 

    OSI七层协议

    各层特征

    网络相关名词

    scok套接字

    半连接池

    粘包问题

    软件开发架构

    软件开发架构即编写项目之前需要遵循的代码层面上的规范.

    软件开发架构分为C/S架构(Client server) 和 B/S架构(Broswer Server)两种.

    cs架构即客户端, 类似于微信,淘宝一样的手机/pc终端app, 需要用户下载后才能使用.但是其内容及需要可以高度定制化, 用户体验感很好. 

    bs架构即浏览器端(网页端),它不需要下载就可以使用, 但是无法实现个性化定制服务.

    不过随着时代和技术的发展, 现在的趋势是两者结合使用-----支付宝终端可以跳转到淘宝页面,微信小程序可以点餐买药等.

    两者结合使用给人们的生活带来了更为便捷舒适的生活方式. 

    网络编程简介

    网络编程是基于互联网编写代码,其本质就是为了解决计算机之间远程数据的交互.达到程序远程数据交互的目的, 

    网络编程的发展经历了几个早期阶段:

    有线电话 >>> 大屁股电脑 >>> 笔记本电脑

    [电话线     >>> 网线            >>> 网卡]

    其共同点为: 必须有物理连接介质才可以达到数据(信息)远程交互的目的

    OSI七层协议

    OSI七层协议规定了计算机涉及到远程数据交互的时候必须要经过的流程/部件

    所有的计算机在涉及到网络传输这块必须要有相同的零部件

    OSI七层协议分别为: 应用层,表示层, 会话层,传输层,网络层,数据链路层和物理链接层[应表会传网数物],每一层都有各自的功能和规范

    img

     

    传输数据时, 发送信息数据时,OSI七层协议从上往下走, 接受数据信息的时候OSI七层协议从下往上走. 

     

    各层特征

    1.物理链接层

    保证物理连接介质的条件,传递电信号(主要研究插网线的情况)

    2.数据链路层

            规定了电信号的分组方式

            规定了每台计算机都必须有一块网卡, 网卡上必须有一串记录, MAC地址[以太网地址]

            mac地址是由12位16进制数组成的, 前六位是产商编号,后六位是流水线号, 以此来保证每个编号的独一无二性, 我们也可以基于此mac地址来查找目标计算机.

    3.网络层

    IP协议; 规定了任何接入互联网的计算机都必须由一个IP地址

            IPV4; 点分十进制,最小 0.0.0.0, 最大 255.255.255.255 [地址已经不够分了]

            IPV6;数据更大,能够标记每一粒沙子

    IP特征:  每个IP都自带定位

    4.传输层

    1. PORT协议

    端口协议规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号.

    端口号特征:

            范围:0-65535

            端口号是动态分布的

            同一时间同一台计算机上的端口号不能冲突

            0-1024 一般是操作系统内部使用的

            1024-8000 一般是软件使用的

            我们写代码可以使用8000+的端口号

    IP+PORT

    IP是表示唯一的一台计算机, PORT标识计算机上的某一个应用程序, IP+PORT标识全世界某一台计算机上的某一个具体程序

    网址URL: 统一资源定位符

    URL的本质就是IP+PORT

    2.TCP协议与UDP协议

    规定了数据传输所遵循的规则

    传输层的数据单元是由数据组织成的数据段(segment)这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。

    Tcp协议:可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    udp协议:不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    5.应用层

    这一层就是应用软件,可以根据程序员自己进行开发,也就是说不同的程序可以有各自的协议。

    在这里插入图片描述

    在这里插入图片描述

     

    专业名词解释

    1. 交换机

    能够让接入交换机的多台计算机实现彼此互联

    2. 以太网通信[mac通信]

    有了交换机之后依据电脑上的mac地址可以实现数据交互

    广播: 在交换机中发出讯号,所有接入交换机的设备都能收到.

    单播;只有被查找的设备才会恢复相应信息

    缺陷;mac地址通信仅限于局域网

    接入交换机的设备过多时可能会造成广播风暴.

    3.局域网

    有某个固定区域组成的网络

    广域网可以看成是更大区域的局域网

    4.路由器

    将多个局域网链接到一起的设备

    5.三次握手与四次挥手

    三次握手建立双向通道,[洪水攻击:同时让大量的客户端超服务端发送简历TCP连接的请求]

    建立链接(三次握手):

    1、客户端向服务端发送建立链接的请求;

    2、服务端回复请求,同意建立链接,并且同时向客户端发送建立链接请求

    3、客户端收到服务端的请求之后,同意建立,则双方的链接成功建立

    四次挥手断开双向通道[中间的两步不能合并,需要有检查的时间]

    断开链接(四次挥手):

    1、客户端向服务端发送断开链接的请求;

    2、服务端回复请求,同意断开链接

    3、等待服务端给客户端传递的数据全部传送结束,并且同时向客户端发送断开链接请求

    4、客户端收到服务端的断开请求之后,同意断开,则双方的链接断开

    TCP 协议比UDP协议更加可靠的原因

    tcp 协议发送消息会有反馈机制,而不是在于 tcp 协议拥有双向通道;

    基于 tcp 协议发送的消息会在本地先保存信息,如果对方确认收到信息,才会删除

    否则会在一定的时间内多次的发送,直到对方确认或者超时为止

    udp 协议发送数据之后会立刻将数据删除,不等待对方进行确认

     

            

            

  • 相关阅读:
    第3章-指标体系与数据可视化-3.1.2-Seaborn绘图库
    Bean生命周期
    【无标题】
    QT源码拾贝0-5(qimage和qpainter)
    【车载Android】模拟Android系统的高负载环境
    Docker 安装(基于WSL2)
    linux 安装clickhouse
    隐私计算推动金融转型
    基于springboot+vue+MySQL的电影院会员管理系统
    【毕业设计】基于SSM与vue的在线考试系统 -spring java web
  • 原文地址:https://blog.csdn.net/weixin_67531112/article/details/126287266