【从零学习python 】70.网络通信方式及其应用:从直接通信到路由器连接多个网络

简介: 【从零学习python 】70.网络通信方式及其应用:从直接通信到路由器连接多个网络

网络通信方式

直接通信

说明: 如果两台电脑之间通过网线连接是可以直接通信的,但是需要提前设置好IP地址以及网络掩码,并且IP地址需要控制在同一网段内。例如,一台为192.168.1.1,另一台为192.168.1.2,则可以进行通信。

使用集线器通信

说明: 当有多台电脑需要组成一个网时,可以通过集线器(Hub)将它们链接在一起。一般情况下,集线器的接口较少。集线器有个缺点,它以广播的方式发送任何数据,即如果集线器接收到来自A电脑的数据本来是想转发给B电脑,如果此时它还连接着另外两台电脑C、D,那么它会把这个数据给每个电脑都发送一份,因此会导致网络拥堵。

使用交换机通信

说明: 交换机克服了集线器以广播发送数据的缺点。当需要广播时,发送广播;当需要单播时,能够以单播的方式进行发送。它已经替代了之前的集线器。企业中就是用交换机来完成多台电脑设备的链接成网络的。

使用路由器连接多个网络

复杂的通信过程

说明: 在浏览器中输入一个网址时,需要将它先解析出IP地址来。当得到IP地址之后,浏览器以TCP的方式进行3次握手链接服务器。以TCP的方式发送HTTP协议的请求数据给服务器,服务器以TCP的方式回应HTTP协议的应答数据给浏览器。

总结

  • MAC地址:在设备与设备之间数据通信时用来标记收发双方(网卡的序列号)。
  • IP地址:在逻辑上标记一台电脑,用来指引数据包的收发方向(相当于电脑的序列号)。
  • 网络掩码:用来区分IP地址的网络号和主机号。
  • 默认网关:当需要发送的数据包的目的IP不在本网段内时,就会发送给默认的一台电脑,成为网关。
  • 集线器:已过时,用来连接多台电脑。缺点是每次收发数据都进行广播,导致网络拥堵。
  • 交换机:集线器的升级版,有学习功能,知道需要发送给哪台设备,根据需要进行单播和广播。
  • 路由器:连接多个不同的网段,使它们之间可以进行收发数据。每次收到数据后,IP不变,但是MAC地址会变化。
  • DNS:用来解析出IP地址(类似电话簿)。
  • HTTP服务器:提供浏览器能够访问到的数据。
相关文章
|
30天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
14天前
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全能增强
在过去半年,ALB Ingress Controller推出了多项高级特性,包括支持AScript自定义脚本、慢启动、连接优雅中断等功能,增强了产品的灵活性和用户体验。此外,还推出了ingress2Albconfig工具,方便用户从Nginx Ingress迁移到ALB Ingress,以及通过Webhook服务实现更智能的配置校验,减少错误配置带来的影响。在容灾部署方面,支持了多集群网关,提高了系统的高可用性和容灾能力。这些改进旨在为用户提供更强大、更安全的云原生网关解决方案。
248 13
|
28天前
|
负载均衡 网络协议 算法
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
这网络层就像搭积木一样,上层协议都是基于下层协议搭出来的。不管是ping(用了ICMP协议)还是tcp本质上都是基于网络层IP协议的数据包,而到了物理层,都是二进制01串,都走网卡发出去了。 如果网络环境没发生变化,目的地又一样,那按道理说他们走的网络路径应该是一样的,什么情况下会不同呢? 我们就从路由这个话题聊起吧。
63 4
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
|
12天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
21天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
12天前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
15天前
|
数据采集 JavaScript 前端开发
异步请求在TypeScript网络爬虫中的应用
异步请求在TypeScript网络爬虫中的应用
|
17天前
|
算法 网络协议 Python
探秘Win11共享文件夹之Python网络通信算法实现
本文探讨了Win11共享文件夹背后的网络通信算法,重点介绍基于TCP的文件传输机制,并提供Python代码示例。Win11共享文件夹利用SMB协议实现局域网内的文件共享,通过TCP协议确保文件传输的完整性和可靠性。服务器端监听客户端连接请求,接收文件请求并分块发送文件内容;客户端则连接服务器、接收数据并保存为本地文件。文中通过Python代码详细展示了这一过程,帮助读者理解并优化文件共享系统。
|
移动开发 网络协议 Linux
Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)
Python网络编程 Python小项目 Python网盘 Python HTTP请求服务端
2158 0
|
网络协议 Python Unix