07网络编程及网络基础知识

【一】C/S模型和B/S模型

python 复制代码
1.C/S模型----》c是指客户端,请求服务的,s是服务端,提供服务的
2.B/S模型----》
     B/S架构本质也是C/S架构
     让浏览器充当各个厂家的客户端 用户无需对应下载相应客户端
两种架构的优缺点
    C/S架构:王者荣耀
    优势:针对客户端可以高度定制
    劣势:需要用户去下载才能使用
  B/S架构:普通网页
    优势:无需下载 急速体验
    劣势:无法做到高度定制 体验效果较差
   
   '''
    目前的趋势其实更加偏向于B/S架构
        微信小程序
            只需要下载一个微信就可以通过微信去访问很多服务端
        支付宝诸多应用
            只需要下载一个支付宝就可以通过支付宝体验很多服务
    统一提供接口服务>>>:获取大量用户及数据 中途还可以提供广告服务
复制代码
    '''

【二】网络编程

python 复制代码
1.基于互联网编写代码
2.可以开发C/S架构的软件
3.目的:实现不同计算机之间数据交互
      没有网络编程技术的时候只能拿U盘拷贝并携带
      为了跨区域交互数据所以发明了网络编程
 4.互联网协议(OSI七层协议)
   各个手机厂商的手机零部件相同是因为要遵循同一个协议标准

【三】OSI七层协议

python 复制代码
物联网淑慧试用
    1.应用层
    2.表示层
    3.会话层
    4.传输层
    5.网络层
    6.数据链路层
    7.物理层
    
    
TCP五层模型是上三层总结为应用层
    1.应用层
    2.传输层
    3.网络层
    4.数据链路层
    5.物理层

【四】网络必知小知识

python 复制代码
1.互联网----计算机彼此链接到一起的介质
2.互联网的目的----可以进行数据交互
3.上网的本质----通过网线去访问别的计算机的资源
其实我们的计算机也可以称之为是服务器/服务端(专门对外提供服务)

【五】网络设备介绍

python 复制代码
1.交换机
    让接入交换机的计算机可以彼此互联
2.局域网
    由交换机组成的网络
3.广播与单播
  广播:在交换机中一个计算机发送了消息,所有计算机都会接收到
  单播:定向回复消息(利用mac地址--是每台计算机的身份证)
4.路由器
    将局域网彼此链接起来支持数据交互
    互联网可以看作是多个局域网链接起来
"""
在局域网中可以直接基于mac地址实现数据交互
    但是可能会产生广播风暴:交换机中同一时间出现太多广播操作
mac地址只能用于局域网交互数据 不能跨局域网传输
""" 
5.mac地址(网卡的物理地址)硬件地址
    可以说每个网卡都是独一无二的
    每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号) 

【六】详解OSI七层模型

python 复制代码
1.物理层
  利用物理介质发送高低电频,会变成0101
  负责在物理媒介上传输原始比特流,包括电缆、光纤等。它主要关注硬件细节和传输介质的特性。
2.数据链路层 
  电信号的分组方式---》为了分组转发
  负责将比特流组织成帧,进行物理寻址和错误检测。以太网协议和PPP协议是数据链路层的典型实现。
3.网络层
    引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
    IP协议---》规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线)
    IPV4:点分十进制
            最小:0.0.0.0
            最大:255.255.255.255
    不够用而出现了IPV6
    IPV6:肯定够用
ps:IP地址可以唯一标识地球上独一无二的一台接入互联网的计算机    
 """
   IP地址分为公网IP和私网IP
        公网IP是可以直接被浏览器访问到的 但是私网IP是不可以的
            我们所有人的电脑默认使用的都是私网IP
        
        公网IP需要花钱购买并且需要实名认证并备案
            很多非法网站都是在国外注册备案
   """  
python 复制代码
4.传输层
    建立端口到端口的通信
    PORT协议(端口协议)------用于标识一台计算机上面正在运行的应用程序(端口号类似于手牌号)
    """
    一台计算机上面可以运行很多数据交互软件 比如微信、qq、钉钉
    它们都是从内存中获取数据 为什么不会错乱
    
    就是因为端口协议的存在!!!
    """
    端口号的范围是:0~65535
      0~1024:系统经常使用的端口号
      1024~8000:常用软件端口号
      我们以后在写项目的时候推荐使用8000之后的端口
   1.同一时间同一台计算机上面端口号不能冲突
   2.端口号是动态分配的
        eg:打开微信随机分配一个没有被使用的端口号8888
         关闭微信重新打开那么会随机分配可能还是8888也可能是其他
"""
IP地址:用于标识全世界独一无二的一台接入互联网的计算机
PORT号:用于标识一台计算机上面的某一个应用程序
​
IP+PORT:能够标识全世界独一无二的一台计算机上面的某一个应用程序*****
​
我们日常生活使用浏览器访问的各个网址其实就是IP+PORT
    www.baidu.com                   好记
    14.215.177.29:80      难记
    ip:port
    很多常见的服务端都不需要指定端口 只要访问了ip地址内部去会自动映射
    
​
域名解析
    将好记的地址解析成真正的地址
        www.baidu.com     解析        202.108.22.5:80
​

【七】TCP与UDP协议

python 复制代码
1.tcp协议
    面向连接,流式协议,可靠协议
    基于TCP协议进行数据交互之前需要做一系列复杂的操作>>>:三次握手四次挥手
    三次握手建立链接--》第一次客服端发送建立链接请求,(第二次服务端答复确认建立链接,第三次服务端发送建立链接)可以整合成一次,第四次客户端同意建立链接
        eg:彼此挖通道
    四次挥手断开连接---》第一次客服端发送断开请求,第二次服务端答复同意断开链接,第三次服务端发送断开链接,第四次客户端同意断开链接
        eg:彼此切断通道
​
2.UDP协议
    丢包协议、不可靠协议,因为他不会进行确认反馈
    不需要建立双向通道 数据的传输速度快 但是可能会丢失
    qq使用的就是UDP协议 所以有时候会产生数据丢失现象
    但是我们可以在UDP协议的基础之上做很多额外的扩展来保证数据的安全
面试题
python 复制代码
# TCP协议之所以比UDP协议可靠 就是因为有双向通道 对不对?
    描述的不够精确 不对!!!
  TCP协议之所以比UDP协议可靠 原因在于TCP协议发送消息有反馈机制
    基于TCP发送的消息会在本地先保存该消息 如果对方确认收到才会删除
    否则在一定的时间内会频繁的多次发送知道确认或者直到超时为止
  UDP协议发送数据之后会立刻删除内存数据 不会保留
相关推荐
Shy9604187 分钟前
Bert完形填空
python·深度学习·bert
上海_彭彭18 分钟前
【提效工具开发】Python功能模块执行和 SQL 执行 需求整理
开发语言·python·sql·测试工具·element
zhongcx0134 分钟前
使用Python查找大文件的实用脚本
python
yyfhq1 小时前
sdnet
python
测试19982 小时前
2024软件测试面试热点问题
自动化测试·软件测试·python·测试工具·面试·职场和发展·压力测试
love_and_hope2 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
海阔天空_20132 小时前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
零意@2 小时前
ubuntu切换不同版本的python
windows·python·ubuntu
思忖小下2 小时前
Python基础学习_01
python
q567315233 小时前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash