网络初始:从 IP 端口到 TCP/IP 五层模型与数据封装分用
网络初始引言在动手写 Java 网络编程之前先搞清楚“网络到底是怎么工作的”至关重要。本文从网络的演进脉络讲起依次梳理 IP 地址与端口号、网络协议及其分层思想并重点剖析 TCP/IP 五层模型与数据收发的封装、分用流程帮助你建立起一张清晰的网络全景图为后续 Socket 编程打下扎实基础。一、网络的发展过程计算机网络的演进大致经历了以下阶段单机无网络-局域网LAN可实现初步通信-广域网WAN局域网的扩展-互联网Internet。二、IP 地址与端口号IP 地址用于标识网络中的一台主机。需要注意的是一台主机通常可以拥有多个 IP 地址。端口号用于标识主机上具体使用网络的哪一个应用程序。三、网络协议所谓“协议”就是通信双方对传输数据的格式与含义所达成的一种约定。3.1 协议分层分层的基本原则是上层调用下层下层为上层提供服务。这样做的好处是上层协议不必关心下层协议的实现细节直接调用即可本质上就是“封装”与“解耦”。同时上层与下层之间不能随意调换顺序——各层的职责与接口是固定的依靠标准化的层间接口来实现解耦而不是随意改变层级的排列。那么在网络中具体是如何分层的呢3.2 OSI 七层网络模型OSI 是教科书上的理论模型在实际工程中真正被广泛使用的是下面要介绍的 TCP/IP 五层模型。3.3 TCP/IP 五层网络模型注TCP/IP 模型也常被称作“四层模型”主要是把数据链路层与物理层合并为一层。从上层靠近用户到下层靠近硬件各层职责如下应用层第 5 层对应应用程序这一层关注的是“我自己应用程序要如何使用这些数据”与下面的各层无关。传输层第 4 层对应操作系统约定了通信起点与终点之间的规则不关心数据在中间是如何传输的。打个比方就像寄快递你只需要写清楚收件人地址和电话即可并不关心包裹具体是怎么运过去的。网络层第 3 层对应操作系统相当于快递公司不管起点和终点具体是谁只负责中间过程——即数据如何从起点到达终点、走哪条路由。数据链路层第 2 层对应硬件只关心“怎么把数据送到你的地址”类似于快递员最后一公里的工作。物理层第 1 层对应硬件关注网线、光纤等物理介质的电气/光信号结构。3.4 网络数据传输的基本流程网络数据传输的核心在于封装发送与分用接收。下面以 QQ 发送 “hello” 为例进行说明。发送方封装过程键盘输入 “hello”。QQ 读取到 “hello”并将其构造成一个应用层数据包其中包含“谁发的、发给谁、发了什么”。然后将该数据封装为传输层数据包。网络层继续封装添加网络层报头。数据链路层再次封装添加帧头与帧尾。物理层通过网卡将上述数据转换为电信号/光信号并传输出去。接收方分用过程物理层接收到信号将其转换为数据链路层的数据包。数据链路层读取帧头与帧尾解析出载荷部分并交给网络层。网络层解析 IP 报头交给传输层。传输层解析传输层报头交给应用层。应用层最终由应用程序解析并处理数据。术语在不同网络分层中数据单元有着不同的称谓包packet网络层的数据单元。段segment传输层 TCP 的数据单元。报datagram传输层 UDP 的数据单元。帧frame数据链路层的数据单元。小结本文梳理了网络基础的核心脉络网络从单机走向互联网每台主机通过IP 地址 端口号被唯一标识通信依赖协议这一“约定”而协议采用分层设计OSI 七层为理论模型工程上常用 TCP/IP 五层数据发送时逐层封装报头接收时逐层分用解析并由此引出包、段、报、帧等分层术语。理解这套体系是掌握 Java 网络编程的前提。

相关新闻

Linux操作系统-centos7如何离线安装桌面环境

Linux操作系统-centos7如何离线安装桌面环境

有的时候我们需要在服务器上使用桌面环境,但很多时候Linux服务器都是最小化安装的,而最小化安装的操作系统一般都是不带桌面环境的。遇到这种场景该如何解决呢?以下以离线的CentOS 7服务器安装CentOS 7桌面环境为例,介绍如何离线部…

2026/10/16 18:23:42 阅读更多 →
如何永久保存微信聊天记录?这个开源工具让你的数字记忆不再丢失

如何永久保存微信聊天记录?这个开源工具让你的数字记忆不再丢失

如何永久保存微信聊天记录?这个开源工具让你的数字记忆不再丢失 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending…

2026/10/17 4:02:23 阅读更多 →
Unity动画剪辑编辑与优化:从核心原理到移动端性能实战

Unity动画剪辑编辑与优化:从核心原理到移动端性能实战

1. 项目概述:从动画剪辑到流畅体验在Unity引擎里做角色动起来,这几乎是每个游戏开发者都会经历的一步。但很多人可能和我一样,最初只是把美术给的FBX文件拖进场景,挂上Animator Controller,看着角色能跑能跳就觉得大功…

2026/10/16 15:46:26 阅读更多 →

最新新闻

esp-adf环境搭建-基于vscode插件扩展:把settings.json改到TaoToken统一Key通道

esp-adf环境搭建-基于vscode插件扩展:把settings.json改到TaoToken统一Key通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 16:59:03 阅读更多 →
CLI-Anything:命令行原生智能体范式

CLI-Anything:命令行原生智能体范式

1. 项目概述:CLI-Anything 不是又一个命令行工具,而是一套“命令行原生”的智能体交互范式你有没有过这种体验:在终端里敲下git status,心里却想着“要是它能自动告诉我哪些文件该加进暂存区、哪些可能漏了.gitignore规则就好了”…

2026/10/17 16:59:03 阅读更多 →
AI论文工具实测:从选题到答辩的效率与避坑指南

AI论文工具实测:从选题到答辩的效率与避坑指南

每年到了毕业季,总有人在群里问同一个问题:“有没有好用的AI论文工具?求推荐。”问的人多,踩坑的人更多——有人花了几个月时间试了十来个平台,最后发现生成内容既不能用、引用还是编的;也有人被号称“一键…

2026/10/17 16:59:03 阅读更多 →
Superpowers智能编程工具链:本地化AI开发工作流实战指南

Superpowers智能编程工具链:本地化AI开发工作流实战指南

1. 这不是魔法,是开发者正在用的“超能力”工具链最近在几个技术社区和内部开发群聊里,“superpowers”这个词出现频率高得有点反常——它既不是某个新发布的开源框架,也不是某家大厂的神秘项目代号,而是一整套正在被真实工程团队…

2026/10/17 16:59:03 阅读更多 →
AI电销机器人源码部署全指南:从架构拆解到上线调优

AI电销机器人源码部署全指南:从架构拆解到上线调优

简介:这是一份面向智能电销机器人部署的源码项目包,适合具备基础Linux操作经验、希望快速上手安装自动外呼系统的开发者或运维人员,对想了解服务器部署全流程的新手也颇为友好。压缩包共3个文件,以HTML页面承载部署教程&#xff0…

2026/10/17 16:59:03 阅读更多 →
AI辅助专著写作全流程:从选题到定稿的实操指南

AI辅助专著写作全流程:从选题到定稿的实操指南

写一本专著,对绝大多数人来说,第一反应都是“这事太大了”。从选题、搭框架、找文献、写初稿,到来回改格式、统一术语、核对引用,随便哪一环拎出来都够磨掉几个月。更要命的是,很多内容领域里的资深从业者,…

2026/10/17 16:58:03 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →