ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python进阶之软件开发架构、osi七层协议、tcp协议、udp协议

2022-01-11 21:32:59  阅读:163  来源: 互联网

标签:协议 udp 架构 进阶 微信 服务端 端口号 计算机


一.软件开发架构

c/s架构
    c:client       客户端
        s:server       服务端
"""
将客户端看成是去店里消费客人
将服务端看成是提供服务的店面
    eg:收集各种app其实就是各大软件的客户端

服务端需要具备的三大特征
    1.24小时不间断提供服务(24小时监听)
    2.固定的地址(IP地址)
    3.能够服务多个用户(高并发)
"""
        
        
b/s架构
    b:browser    浏览器
        s:server    服务器
"""
浏览器统一充当各个服务端的客户端
本质:bs架构本质上也是cs架构
"""

统一:各大互联网巨头正在做的事情
    eg:
        微信小程序(微信提供开发微信小程序的软件)
        支付宝小程序(各大程序接口)

# 总结
    网络编程学习完就可以开发cs架构的软件(简易版本)
    并发编程、前端、数据库、后端框架就可以开发bs架构软件(任何类型的软件)

二.网络编程简介

网络编程其实研究的就是程序之间的数据通信

由来:
    基于远程传输数据的技术最早诞生于美国军方(前沿技术通常都是由军事产生)
    
 
远程数据传输发展史(民用)
    1.有线电话            电话线互联
        2.无线电话             信号发射器
       3.大屁股电脑          网线
        4.笔记本电脑          网卡
    ...
"""
要想实现远程数据交互的前提是必须要有物理连接介质
"""

除了有物理连接介质之外还应该有一些能够保证数据彼此无障碍交互的东西(标准)
    OSI七层协议

三.osi七层协议

# 所有的计算机都必须要有这七层
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
# 开发层面可以归纳为五层
应用层
传输层
网络层
数据链路层
物理连接层


"""
从小往上研究

1.物理连接层
    提供一个物理连接接口(网线口 无线网卡)
2.数据链路层
    1.规定了电信号的分组方式
    2.以太网协议
        规定了计算机必须有一块网卡 并且网卡上面要有一个固定的一串数字
        12位16进制数 
            前六位:产商编号
            后六位:流水线号
        上述的数字也称之为计算机的mac地址(类似于身份证号)
"""

四.常见硬件

交换机:能够使接入该机器的所有计算机之间彼此互联
局域网:有交换机组成的网络
互联网:可以简单的理解为是多个局域网之间彼此互联
路由器:能够连接多个局域网并实现局域网之间的数据传输

五.网络层

IP协议:规定了接入互联网的计算机都必须有一个IP地址用于唯一标识
    IPV4版本
        最小    0.0.0.0
        最大  255.255.255.255
    IPV6版本
        能够表示出地球上每一粒沙子
 
# IP地址能够唯一标识接入互联网的一台独一无二的计算机
公网IP与私网IP
    公网IP需要花钱购买并申请
    私网IP自带的但是无法直接基于互联网访问
"""
arp协议
    将IP地址转换成mac地址(基于网络请求)
"""

 

六.传输层

TCP协议  UDP协议  

端口协议
    范围:0~65535
    特性:动态分配
      eg:第一次运行微信 系统随机取一个端口号2022
           然后关闭微信重新启动 系统随机取一个端口号
    端口号基本使用
        0~1024系统默认需要使用的端口号
        1024~8000常见软件端口号
        以后我们开发的软件最后使用8000之后的端口号
    
# 端口号(port):能够唯一标识一台计算机上面正在运行的一款应用程序
"""
端口号在同一台计算机同一时刻不能重复
"""


总结
    ip+port   127.0.0.1:8080
"""
能够唯一标识世界上某一台接入互联网的计算机上面的某一个正在运行的应用程序
"""

6.1 TCP协议

流式协议 可靠协议

三次握手    建立链接
    重要状态
        listen监听态:等待对方发请求
        syn_rcvd态:忙于恢复确认建立请求
            # 洪水攻击:服务端在同一时间接收到了大量的要求建立链接的请求

四次挥手    断开链接
    不能合并成三次

"""该类知识需要课后再花时间研究(如果想要大厂)"""

 

6.2 UDP协议

不可靠协议

数据发送没有通道的概念 发送出去了就不管了

"""
TCP协议相当于打电话 你一句我一句 你侬我侬
UDP协议相当于发短信 发了就完事 管你看不看
"""
早期的QQ使用的就是UDP

七.应用层

都是人为自定义的协议标准 可遵循可不遵循
HTTP协议 FTP协议 ...

 

标签:协议,udp,架构,进阶,微信,服务端,端口号,计算机
来源: https://www.cnblogs.com/liuwang999/p/15790178.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有