当前位置: 首页 > news >正文

网络原理入门详解:从零理解互联网如何工作

一、网络基础:计算机如何“打电话”?

想象你要给朋友寄一封信,网络通信的过程与此类似:

  1. 地址:信封需要写清楚收件人地址(IP地址)和门牌号(端口)
  2. 内容:信纸上写具体内容(数据)
  3. 邮局:邮局分拣信件,选择最佳路线(路由器)
  4. 运输:通过卡车、飞机等运输(网络传输)

二、核心概念解析
1. IP地址:计算机的“家庭住址”
  • 作用:唯一标识网络中的设备
  • 格式:IPv4(如 192.168.1.1),IPv6(如 2001:0db8:85a3::8a2e:0370:7334
  • 示例:访问百度时,实际是通过IP 110.242.68.66 找到服务器
2. 端口号:房子的“门牌号”
  • 作用:标识设备上的具体服务
  • 范围:0~65535
  • 常见端口
    • 80:HTTP(网页服务)
    • 443:HTTPS(加密网页)
    • 3306:MySQL数据库
3. 协议:通信的“语言规则”
  • TCP:可靠传输(像打电话,确认对方收到)
  • UDP:快速传输(像发广播,不确认对方是否收到)

三、数据如何传输?——以访问网页为例
  1. 输入网址:在浏览器输入 www.baidu.com
  2. DNS解析:DNS服务器将域名转换为IP地址(如 110.242.68.66
  3. 建立连接:通过TCP三次握手与服务器建立连接
  4. 发送请求:浏览器发送HTTP请求:“请给我首页内容”
  5. 返回数据:服务器返回HTML、CSS、JavaScript等文件
  6. 渲染页面:浏览器解析文件,展示网页
四、TCP三次握手:建立可靠连接

过程(类比打电话):

  1. 客户端:“喂,能听到吗?”(SYN)
  2. 服务端:“能听到,你能听到我吗?”(SYN-ACK)
  3. 客户端:“我也能听到!”(ACK)

代码示例(Python模拟)
 

# 服务端
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('127.0.0.1', 8080))
server.listen()
client, addr = server.accept()  # 等待客户端连接# 客户端
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('127.0.0.1', 8080))  # 发起连接
五、数据包:网络传输的最小单位
  • 组成
    • 头部:源IP、目标IP、端口、协议类型
    • 数据:实际传输的内容(如文字、图片)
  • 分片传输:大文件会被拆分成多个数据包传输
、路由与交换机:网络的“交通指挥”
设备作用类比
路由器连接不同网络,选择最佳路径跨城市快递中转站
交换机连接同一网络内的设备小区内的邮筒

七、TCP vs UDP:两种传输方式对比
特性TCPUDP
可靠性高(重传丢失数据)低(不保证数据到达)
速度较慢(需建立连接)快(直接发送)
应用场景网页、邮件、文件传输视频通话、在线游戏、直播

代码示例(UDP通信)

# 服务端
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server.bind(('127.0.0.1', 8080))
data, addr = server.recvfrom(1024)  # 接收数据# 客户端
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.sendto(b"Hello UDP", ('127.0.0.1', 8080))  # 直接发送
八、网络安全基础
  1. 防火墙:像小区的门禁,过滤危险数据包
  2. 加密:把数据变成“密文”传输(如HTTPS)
  3. VPN:建立加密隧道访问内部网络
# 服务端
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('127.0.0.1', 8080))
server.listen()
print("等待连接...")
client, addr = server.accept()
while True:msg = client.recv(1024).decode('utf-8')print(f"收到消息: {msg}")if msg == "exit":break# 客户端
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('127.0.0.1', 8080))
while True:msg = input("输入消息: ")client.send(msg.encode('utf-8'))if msg == "exit":break
client.close()

运行效果

  1. 先启动服务端,再启动客户端
  2. 客户端输入消息,服务端实时显示
十、总结:网络通信核心流程
  1. 寻址:通过IP和端口找到目标
  2. 建立连接:TCP三次握手(UDP跳过)
  3. 传输数据:拆分成数据包传输
  4. 关闭连接:TCP四次挥手释放资源

通过这个框架,您可以轻松理解日常上网、视频通话、在线游戏背后的技术原理!

相关文章:

  • mysql知识点1--了解数据库
  • c/c++的opencv椒盐噪声
  • 学习日志12 java
  • 【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测
  • MLA:Transformer的智能变形金刚——解密多头潜在注意力的进化密码
  • DOM事件的传播机制
  • Dify 本地源码安装教程
  • Llama 4中文调优全流程解
  • Win11 系统登入时绑定微软邮箱导致用户名欠缺
  • ST表——算法的优化
  • LambdaQueryWrapper、MybatisPlus提供的基本接口方法、增删改查常用的接口方法、自定义 SQL
  • QML学习06Button
  • ArrayList 与 LinkedList 区别?
  • CMake学习笔记(六)可以在CMake的function中修改function函数体之外的变量值吗?
  • 探索智能仓颉
  • git push出现 “HTTP 400 curl 22 The requested URL returned error: 400...“错误
  • Ntfs!NtfsReadBootSector函数分析之nt!CcGetVacbMiss中得到一个nt!_VACB结构
  • 白皮精读:全国统一数据资产登记体系建设白皮书【附全文阅读】
  • MQTT-SpringBoot整合
  • 6.4.3_有向无环图描述表达式
  • 思茅区建设局网站/上海专业的seo推广咨询电话
  • 第一次和别人女友做网站/wordpress建站
  • 网站模板批量下载/it培训四个月骗局
  • 微网站建设企划书/经典广告
  • 烟台城乡建设学校网站/职业培训机构哪家最好
  • 毕业设计用java做网站/网络广告营销方案策划