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

网络协议:计算机世界的“交通规则“与“社交礼仪“

大家好,我是程序员良辰,今天要带大家游览一个看似枯燥实则妙趣横生的世界——网络协议。想象一下,如果没有交通规则,城市会变成什么样子?网络世界也是如此,没有协议,数据包们就会像无头苍蝇一样乱撞。让我们用Java程序员的视角,揭开网络协议的神秘面纱!

网络协议:计算机的"社交礼仪"

网络协议就像计算机界的"社交礼仪",规定了设备之间如何打招呼、交换信息和告别。就像人类有不同场合的礼仪(商务会谈用握手,朋友见面可能用击掌),网络也有不同层级的协议,各司其职

在这里插入图片描述
这个分层模型就像公司的层级结构:底层员工(链路层)负责具体执行,中层管理(网络层和传输层)负责协调,高层领导(应用层)制定大方向

协议三要素:语义、语法和时序

每个好协议都有三个核心要素,就像一道好菜需要色、香、味俱全:

  • 语义:协议"说什么"——就像微信消息中的文字内容,表达意图
  • 语法:协议"怎么说"——就像微信消息的格式(文字、表情、语音)
  • 时序:协议"什么时候说"——就像微信聊天时的轮流发言

举个TCP三次握手的例子,就像Java程序员之间的严谨合作:

在这里插入图片描述
这种"三次握手"比人类的"两次握手"(你好-你好)更可靠,确保双方都准备好通信。

经典协议大观园

HTTP/HTTPS:网络世界的"普通话"

HTTP就像网络世界的普通话,简单直接:

// 一个简单的HTTP请求
GET /index.html HTTP/1.1
Host: www.example.com

如需详细了解阅读相关文章:

【Http协议①】认识http协议,学会使用fiddler抓包工具进行抓包.
【Http协议②】http协议格式,请求格式,常见请求方法,请求报文,请求正文
【Http协议③】http状态码,响应报头,响应正文等知识的学习
【Http协议④】常见的几种构造http请求的方式,form表单构造,Ajax构造,postman构造

而HTTPS是HTTP的安全升级版,就像给普通话加上了加密通话功能。它使用SSL/TLS协议,过程像秘密特工交换情报:

  • 客户端:“这是我的证件(证书),请验证”
  • 服务器:“证件有效,这是我的公钥”
  • 客户端:“用公钥加密的随机数(对称密钥原料)给你”
  • 双方开始用这个随机数生成密钥进行加密通信

TCP vs UDP:可靠大叔 vs 急性子小哥

TCP像一位可靠的大叔,保证你的数据完整送达:

// TCP伪代码 - 保证送达
try {sendData();waitForAck();if (!ackReceived) {resendData(); // 坚持不懈!}
} catch (TimeoutException e) {handleError(); // 优雅处理错误
}

UDP则像个急性子快递小哥,放下包裹就走,不管你是否收到:

// UDP伪代码 - 发了就不管
sendData(); 
// 没有等待,没有重试,就是干!

游戏和视频通话常用UDP,因为偶尔丢包比延迟更可接受;而文件传输和网页浏览需要TCP的可靠性。

如需深入了解,请参阅这篇文章:【网络原理进阶篇】自定义协议,协议约定符,三次握手,四次挥手,TCP(保证可靠性机制)和UDP原理

DNS:互联网的"电话簿"

DNS协议就像互联网的电话簿,把难记的IP地址(如192.0.2.44)转换成好记的域名(如https://liangchen.blog.csdn.net/)。有趣的是,DNS主要用UDP协议,因为查询需要快速响应,偶尔丢包可以重试。

Java中的网络协议实战

作为Java程序员,我们每天都在使用这些协议,只是可能没意识到。 比如:

// 使用HTTP协议获取网页内容
URL url = new URL("https://liangchen.blog.csdn.net/");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");// 使用TCP协议进行Socket通信
Socket socket = new Socket("blog.csdn.net", 80);
OutputStream out = socket.getOutputStream();
out.write("GET HTTP 1.1 Host: blog.csdn.net".getBytes());

协议安全:防"窃听"与"伪装"

网络协议不仅要让通信高效,还要防范各种威胁。 HTTPS通过加密防止"窃听",通过证书验证防止"伪装"。就像你不会在明信片上写银行密码,也不会把钱交给没戴工牌的"银行职员"。
中间人攻击示意图:
在这里插入图片描述

参考文章:【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

🍟🍟🍟 小结

  • 从专业角度看,网络协议 是计算机网络中进行数据交换而建立的规则、标准或约定的集合。TCP/IP协议族采用分层架构,包含链路层(如以太网)、网络层(如IP)、传输层(如TCP/UDP)和应用层(如HTTP)。协议数据单元(PDU)在不同层级有不同表现形式:比特(物理层)、帧(数据链路层)、包(网络层)、段/数据报(传输层)和数据(应用层)。现代网络通信依赖于这些协议的协同工作,如同交响乐团中各乐器的配合,共同演奏出互联网的华美乐章。

  • 网络协议就像计算机世界的隐形基础设施,虽然平时看不见,但支撑着我们所有的在线活动。下次当你刷网页、看视频或玩游戏时,不妨想想背后这些精妙的协议是如何工作的——它们就像是数字世界的魔法咒语,让冰冷的机器能够相互理解,协同工作。

在这里插入图片描述

http://www.lryc.cn/news/601809.html

相关文章:

  • java--WebSocket简单介绍
  • Flutter开发实战之性能优化与调试
  • 深入解析MIPI C-PHY (四)C-PHY物理层对应的上层协议的深度解析
  • Pytest 参数化进阶:掌握 parametrize 的多种用法
  • maven <dependencyManagement>标签的作用
  • AutoLabelImg:高效的数据自动化标注工具和下载
  • IndexedDB全面掌握:从入门到Odoo OWL框架实战
  • mac系统彻底删除mysql并重装
  • [AI8051U入门第十步]W5500-客户端
  • 全方位评测:11款主流指标平台优劣分析
  • FreeRTOS—队列集
  • 【Web APIs】JavaScript 节点操作 ⑩ ( 节点操作综合案例 - 动态生成表格案例 )
  • add新增管理员功能、BaseController类的简介--------示例OJ
  • 链表算法综合——重排链表
  • Webpack 和 Vite 的关键区别
  • 01人工智能中优雅草商业实战项目视频字幕翻译以及声音转译之底层处理逻辑阐述-卓伊凡|莉莉
  • J2EE模式---服务层模式
  • WAIC 2025 热点解读:如何构建 AI 时代的“视频神经中枢”?
  • Java面试题及详细答案120道之(081-100)
  • 零基础学习性能测试第五章:JVM性能分析与调优-多线程机制与运行原理
  • 【RAG技术权威指南】从原理到企业级应用实践
  • 蓝奏云网盘API 2.0
  • HCIE学习之路:路由引入
  • 比特币运行机制全解析:区块链、共识算法与数字黄金的未来挑战
  • 【代码问题】【包安装】MMCV
  • Item15:在资源管理类中提供对原始资源的访问
  • C语言(长期更新)第6讲:函数
  • 20250727-1-Kubernetes 网络-Ingress介绍,部署Ingres_笔记
  • rename系统调用及示例
  • 虚拟机ubuntu20.04共享安装文件夹