首页 > 编程语言 >29.Python基础篇-网络基础理论

29.Python基础篇-网络基础理论

时间:2024-12-21 17:09:54浏览次数:4  
标签:协议 MAC Python 29 地址 IP地址 基础理论 客户端 路由器

重要知识点

BS与CS架构

BS(Bro  wser/Server)架构

  • 基于浏览器和服务器的架构,客户端通过浏览器访问服务器上的应用程序或服务。
  • 特点:客户端只需要一个浏览器,无需安装复杂的软件,服务器端处理大部分业务逻辑。
  • 应用:Web应用(如Web浏览器访问网站)。

CS(Client/Server)架构

  • 客户端和服务器通过网络通信,客户端通常有专门的软件进行访问和操作。
  • 特点:客户端软件与服务器有明确的职责分离,客户端处理部分数据,服务器处理核心数据和管理。
  • 应用:传统的桌面应用(如数据库客户端)。

IP

公网IP:全球唯一的IP地址,用于互联网中各设备的标识。

局域网IP:仅在一个局部网络内部使用,通常由路由器分配。私有IP地址范围包括 192.168.0.0 - 192.168.255.25510.0.0.0 - 10.255.255.255

回环地址: 127.0.0.1,叫做回环地址,指代本机,用于网络通信测试。

子网掩码:

  • 定义:子网掩码(Subnet Mask)用来划分IP地址的网络部分和主机部分。它的作用是帮助路由器识别属于同一子网的设备。
  • 常见示例255.255.255.0 表示子网掩码中的前24位用于网络标识,后8位用于主机标识。

IPV4与IPV6

IPv4地址为32位,通常表示为4个十进制数(如:192.168.1.1)。IPv4支持约42亿个独立的IP地址,随着互联网设备的增长,IPv4地址逐渐紧张。于是,出现了IPV6

IPv6是为了解决IPv4地址不足问题而设计的,使用128位地址,支持更多的设备和网络。IPv6地址通常由8组16进制数表示(如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。

mac地址与ARP协议

mac地址

  • 定义:每个网卡(NIC)都有一个唯一的硬件地址,称为MAC地址。它用于数据链路层的通信。在生产时就由厂家标识的唯一ID
  • 格式:MAC地址通常由6组16进制数表示,例如:00:14:22:01:23:45

arp协议

  • 定义:ARP(地址解析协议)用于将IP地址转换为相应的MAC地址。ARP协议在局域网内进行IP地址到MAC地址的映射。
  • 工作原理:当一台设备要发送数据到另一台设备时,它需要知道目标设备的MAC地址。如果目标IP地址未知,ARP协议会发送ARP请求广播,目标设备根据IP地址响应其MAC地址。

交换机、路由器、网关、防火墙

交换机:

工作原理:交换机工作在数据链路层(第二层),根据MAC地址转发数据帧。交换机通过学习MAC地址表来决定数据帧的转发路径。

作用:在局域网中连接不同设备,提供高效的点对点通信。

路由器:

工作原理:路由器工作在网络层(第三层),根据IP地址来转发数据包。路由器负责跨越不同的网络(如局域网与广域网)进行数据传输。

作用:连接不同网络并选择最佳路径,将数据包从源网络传输到目标网络。

网关

定义:网关是连接不同网络或不同协议的设备,通常用于跨越不同协议栈的通信(如从IPv4到IPv6的转换)

应用:通常在互联网服务提供商(ISP)处,或者局域网与互联网的边界处。

交换机、路由器、网关三者之间的关系

  • 交换机与路由器

    • 交换机和路由器常常在同一个网络环境中共同工作。交换机通常用于局域网内,负责设备之间基于MAC地址的通信;而路由器则负责跨网络(如局域网到广域网,或不同局域网之间)根据IP地址进行数据包的路由。
    • 交换机无法处理跨网络的流量,它只会根据设备的MAC地址将数据传递给局域网内的其他设备。路由器则确保数据能够从一个网络转发到另一个网络。
  • 路由器与网关

    • 在很多情况下,路由器和网关的作用会重叠。一个典型的家庭或小型企业网络中,路由器通常还担任网关的角色。路由器会处理局域网与互联网之间的数据传输(路由功能),并将内部网络设备的私有IP地址转换为公网IP地址(NAT功能)。
    • 网关不仅仅是一个路由器,它的功能可以更加复杂。例如,它可以支持协议转换(如从IPv4到IPv6),或者在不同类型的网络之间进行流量管理。
    • 在大型企业中,网关通常会作为连接不同网络、管理不同协议的设备,路由器则负责更直接的路由功能。

 

防火墙

功能:防火墙用于控制进出网络的流量,监控并限制不安全或不必要的数据传输

工作原理:通过配置规则,防火墙可以阻止恶意访问,确保网络安全

 

端口

端口的作用:一台电脑上的每个程序都会占用一个端口,通过IP可以在互联网上找到一台电脑,通过端口,则可以找到一台电脑上的某个程序。

端口的使用范围:

  • 知名端口(0–1023):主要用于标准化的、最常见的服务和协议。
  • 注册端口(1024–49151):用于注册的应用程序或服务,由开发者申请。
  • 动态端口(49152–65535):用于操作系统分配给客户端的临时端口,通常用于动态连接。

注意事项:

在日常开发工作中,应使用8000之后的端口,因为之前的端口容易产生端口冲突。

互联网协议与OSI模型

OSI七层模型

  1. 物理层:负责数据的物理传输,如电缆和无线信号。
  2. 数据链路层:确保数据在物理链路上无误地传输,负责MAC地址。
  3. 网络层:负责数据包的路由和寻址,处理IP地址。
  4. 传输层:确保数据的可靠性(如TCP协议)。
  5. 会话层:管理通信会话,控制对话的开始、结束等。
  6. 表示层:处理数据格式的转换、加密等。
  7. 应用层:为用户提供直接服务,如HTTP、FTP等。

TCP/IP模型:TCP/IP模型简化了OSI模型,通常分为四层:

  1. 应用层:提供网络服务和应用接口
  2. 传输层:处理端到端的数据传输(如TCP、UDP协议)
  3. 网络层:负责数据包的路由(如IP协议)
  4. 数据链路层:负责处理mac地址
  5. 物理层:负责物理传输,对应网线、网卡,发送二进制字节码

TCP协议

TCP协议的定义

TCP(Transmission Control Protocol)是一个面向连接、可靠的传输层协议,确保数据包按顺序到达目的地并且不会丢失。

三次握手与四次挥手

  • 三次握手

    1. 第一次握手:客户端发送SYN包,表示请求建立连接。
    2. 第二次握手:服务器响应SYN+ACK包,表示接收连接请求。
    3. 第三次握手:客户端发送ACK包,表示确认连接。
  • 四次挥手

    1. 第一次挥手:客户端发送FIN包,表示请求关闭连接。
    2. 第二次挥手:服务器回应ACK包,表示同意关闭连接。
    3. 第三次挥手:服务器发送FIN包,表示请求关闭连接。
    4. 第四次挥手:客户端回应ACK包,连接完全关闭。

UDP协议

UDP协议的定义:

UDP(User Datagram Protocol)是无连接的传输层协议,不提供可靠性保障,适用于需要高效率和实时性的应用。

特点:

没有建立连接的过程,不进行数据确认和重传,传输速度快,适用于视频、语音等实时应用。

TCP协议与UDP协议的区别

 

标签:协议,MAC,Python,29,地址,IP地址,基础理论,客户端,路由器
From: https://www.cnblogs.com/mingbo-1/p/18620949

相关文章

  • 基于 Django和Python 的影视数据可视化系统
    文章目录程序资料获取一、项目技术二、项目内容和项目介绍三、核心代码四、效果图五、资料获取程序资料获取......
  • python语言jjsp爬虫程序代码
    importrequestsimportreimportosy=‘https://vip.lz-cdn5.com/20220705/30947_eb6de902/1200k/hls/mixed.m3u8’h={‘user-agent’:‘Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/131.0.0.0Safari/537.36Edg/131.0.......
  • C语言-jum-python-简单四则运算
    本题要求编写程序,计算2个整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。输入格式:输入2个正整数A和B。每行输入一个数据。输出格式:在4行中按照格式“A运算符B=结果”顺序输出和、差、积、商。输入样例:83输出样例:8+3=118-3= 58*3=......
  • 使用Anaconda和PyTorch编写深度学习Python代码
    摘要:通过Anaconda的虚拟环境和PyTorch的深度学习框架来建立Python的深度学习代码一、安装Anaconda在官网下载Anaconda,DownloadAnacondaDistribution|Anaconda等待漫长的下载过程这时候我推荐来一把酣畅淋漓的原神:二、配置Anaconda的国内镜像源参考:conda安装包_......
  • Python常用77个函数总结
    01、print()函数:打印字符串02、raw_input()函数:从用户键盘捕获字符03、len()函数:计算字符长度04、format(12.3654,‘6.2f’/‘0.3%’)函数:实现格式化输出05、type()函数:查询对象的类型06、int()函数、float()函数、str()函数等:类型的转化函数07、id()函数:获取对象的内......
  • 27.Python基础篇-configparse模块
    介绍用于处理配置文件的读取和写入。配置文件通常包含以键值对的形式存储的配置信息,常见的格式是.ini文件。该模块提供了对这些配置文件的解析功能,支持读取、写入、更新和删除配置。 配置文件的格式配置文件一般由多个部分(Section)组成,每个部分下面有多个键值对(Option)。配置......
  • 28.Python基础篇-logging模块
    介绍:logging模块是Python内置的强大日志记录工具,支持多种输出方式、格式化选项及多进程支持。日志的级别logging模块有五个内置的日志级别,从低到高:DEBUG:详细信息,用于诊断问题。INFO:常规信息,表示程序正常运行的状态。WARNING:警告信息,表示潜在问题或即将发生的错误。ERROR......
  • Python字符串及正则表达式(十一):正则表达式、使用re模块实现正则表达式操作
    前言:在Python编程的广阔天地中,字符串处理无疑是一项基础而关键的技能。正则表达式,作为处理字符串的强大工具,以其灵活的模式匹配能力,在文本搜索、数据清洗、格式验证等领域发挥着不可替代的作用。本系列博客已经带领大家逐步深入了Python字符串操作的多个方面,从基础的字符串操......
  • Python调用星火认知大模型API(流式传输)
    Python调用星火认知大模型API流式传输前言1.获取API认证信息2.快速调用集成星火认知大模型3.实现AI流式回复1)SparkApi.py2)SparkApiMain.py3)SparkPicture.py4)spider.py5)开始测试参考文档前言最近对大模型比较感兴趣,想要调用大模型的API,实现AI助手那种问答效果,正......
  • 如何利用Python爬虫获取商品历史价格信息
    在电商的世界里,商品价格的波动对消费者和商家都具有重要意义。了解商品的历史价格可以帮助消费者做出更明智的购买决策,同时也为商家提供了市场趋势的重要信息。本文将详细介绍如何使用Python爬虫技术来获取商品的历史价格信息,并提供一个详细的代码示例。一、项目准备在开始......