Java【网络原理】(1)初识网络
目录
1.前言
2.正文
2.1基础知识
2.2协议分层(tcp/ip五层网络模型)
2.3网络数据通信的基本流程
2.3.1数据发送过程
2.3.2数据接收过程
3.小结
1.前言
断更又是许久,再次回归又是一个新的开始,希望我们都能继加油。今天来给大家分享的是初始网络的内容,那么废话不多说让我们开始吧。
2.正文
2.1基础知识
在这一部分,我们为了后面的讲解,先讲解几个基础的概念,其中包括服务端与客户端,局域网和广域网,路由器和交换机,ip地址与端口号:
客户端(Client)与服务端(Server)
客户端是发起请求的一方,通常是指用户使用的设备或软件,如浏览器、手机应用、桌面软件等。
服务端是接收请求并提供服务的一方,通常是指运行在服务器上的软件或系统,如Web服务器、数据库服务器、应用服务器等。
客户端和服务端之间的通信需要遵循一定的协议,服务端在运行时会监听一个或多个端口号,客户端通过指定的端口号向服务端发送请求。客户端向服务端发送请求,服务端接收请求后,根据请求的内容进行处理,并生成响应。
局域网(LAN)与广域网(WAN)
局域网(LAN):覆盖小范围地理区域(如家庭、办公室、校园),通过以太网或Wi-Fi连接设备,具有高带宽和低延迟特性。
广域网(WAN):覆盖大范围地理区域(如城市、国家、全球),通过光纤、卫星或运营商网络连接不同局域网,带宽较低且依赖第三方基础设施。
局域网是广域网的组成单元,广域网通过路由技术将多个局域网互联,形成更大规模的网络(如互联网)。例如,企业的分支办公室通过广域网(如VPN)连接到总部局域网,实现数据共享。
路由器与交换机
路由器:工作于网络层(OSI第3层)(后文会讲这个协议),根据IP地址在不同网络间转发数据(如连接LAN到WAN),具备NAT、防火墙功能。
交换机:工作于数据链路层(OSI第2层),在局域网内基于MAC地址直接转发数据帧,实现设备间高效通信。
在局域网中,交换机负责内部设备互联,而路由器负责局域网与外部网络(如互联网)的通信。例如:家庭中,交换机连接多台电脑,路由器则将整个家庭网络接入互联网。
IP地址与端口号
IP地址:网络层标识符(如
192.168.1.1
),用于唯一标识网络中的设备,实现全局寻址。端口号:传输层标识符(如
80
、443
),用于标识设备上的具体应用程序(服务),范围0-65535。IP地址确定数据发送的目标设备,端口号进一步将数据分配给设备上的特定服务。例如:访问网站时,IP地址定位服务器,端口号(如80)指定HTTP服务,实现“设备→服务”的精准通信。
2.2协议分层(tcp/ip五层网络模型)
在我们知道了一些有关网络的基础知识,接下来就来开始讲解下,网络通信是依照什么展开的:

在网络中,有无数种协议,如果只设计一个协议来处理网络通信中的问题,那会非常麻烦,所以我们在这里先引入协议分层这个重要概念。
协议分层是网络通信的核心设计思想,通过将复杂功能拆分为多个独立的层次,实现模块化开发、简化维护并提升兼容性。
- 解耦复杂性:每层专注单一功能,隐藏底层细节(如物理层不关心数据内容)。
- 标准化接口:层与层之间通过固定接口交互(如传输层向应用层提供
Socket API
)。- 灵活扩展:可独立更新某一层协议(如从IPv4升级到IPv6,不影响上层应用)。
类比成寄信过程:
写信(应用层)→ 装信封(传输层)→ 写地址(网络层)→ 贴邮票(数据链路层)→ 投递到邮筒(物理层)。
每层只需完成自身任务,无需关心其他层如何实现。
接下来就是大头了,五层协议具体各负责那部分内容:
1. 物理层
负责通过物理介质(如网线、光纤、无线电波)传输原始比特流(0/1信号)。
定义电气、机械和时序特性(如电压、接口类型、传输速率)。
核心协议/设备:
协议:无特定协议,仅依赖硬件标准(如RJ45、Wi-Fi IEEE 802.11)。
设备:网线、光纤、集线器(Hub)、中继器(Repeater)。
2. 数据链路层
在同一局域网内将比特流组织成数据帧(Frame),实现设备到设备的可靠传输。
通过MAC地址(如
00:1A:2B:3C:4D:5E
)标识物理设备,控制物理层访问(如冲突检测)。核心协议/设备:
协议:以太网(Ethernet)、Wi-Fi(802.11)。
设备:交换机(Switch)、网桥(Bridge)。
3. 网络层
实现跨网络的通信,通过IP地址(如
192.168.1.1
)标识设备,规划数据传输路径(路由)。将数据封装为数据包(Packet),选择最优路径传递到目标网络。
核心协议/设备:
协议:IP(IPv4/IPv6)、ICMP(用于网络诊断)、BGP/OSPF(路由协议)。
设备:路由器(Router)。
4. 传输层
提供端到端的通信服务,确保数据完整性和可靠性。
通过端口号(如
80
、443
)区分设备上的不同应用程序。核心协议:
TCP:面向连接,可靠传输(如文件下载、网页访问)。
UDP:无连接,高效但不可靠(如视频流、DNS查询)。
数据单元:段(Segment)(TCP)/ 数据报(Datagram)(UDP)。
5. 应用层
直接面向用户和应用程序,提供网络服务接口(如网页浏览、邮件收发)。
整合OSI模型中应用层、表示层、会话层的功能(如加密、会话管理)。
核心协议:
HTTP(网页)、DNS(域名解析)、SMTP(邮件)、FTP(文件传输)、WebSocket(实时通信)。
实际的例子:
- 主机 工作原理涉及到从物理层到应用层。
- 路由器 工作原理涉及到从物理层到网络层。
- 交换机 工作原理涉及到从物理层到数据链路层。
2.3网络数据通信的基本流程
网络通信的基本流程如下:
2.3.1数据发送过程
1.应用程序获取到用户输入,构造成一个应用层的数据包,这个应用层数据包就会遵守应用层协议。假设我们要发这么一份数据:
tips:何为数据包呢,即结构化数据,发送数据的时候,把结构化数据转化为二进制比特流,接受数据的时候,把二进制比特流转化为结构化数据。
2.应用程序调用传输层层提供的api端口,把数据交给传输层,传输层在拿到数据之后,构造出传输层数据包。传输层协议主要是俩个(TCP和UDP,后面会细讲):
其中,TCP数据包由TCP报头和TCP载荷组成,其中报头包括(源端口和目的端口)。
3.传输层构造好数据之后,继续调用网络层的api,把传输层的数据包交给网络层,网络层通过IP协议对其进行处理:
其中IP数据包包括IP报头和IP载荷(整个传输层的数据包)。
在这里再诠释一下协议分层的概念,IP协议本身不关系其载荷内容是啥,TCP协议也不关心载荷内容是啥。在网络层报头中,会记录传输层实用的哪个协议。
4. IP协议继续调用数据链路层的API,把IP数据包交给数据链路层,数据链路层中,核心协议“以太网”,以太网这个协议也会在网络层数据包的基础上进一步加工:
其中,以太网数据帧由帧头,载荷和帧尾组成。
截止到目前为止,此时数据还在主机上滴流转嘞。
5.以太网继续这样的数据交给硬件设备(网卡),网卡会将上述二进制数据,最终以光信号(光纤)/电信号(网线)或电磁波信号(wifi)传播出去。
从上层到下层,数据都要进一步加工(添加报头),封装 ,接受方法是从下到上一次解析,分用和分装的逆向过程。
2.3.2数据接收过程
1.数据到达接收方的网卡,网卡把光电信号还原成二进制数据,把二进制数据交给上层数据链路层。
- 网线/光纤来的数据,数据链路层 =>以太网。
- wifi 来的数据,数据链路层 =>802.11 协议。
2. 数据链路层按照以太网协议进行解析把报头和报尾取出来,剩下的载荷,往上传递给网络层。
其中,帧头中记录了网络层应该使用哪个协议。
3.网络层拿到这个数据之后,按照 IP 协议的格式解析。再把载荷数据交给传输层。
IP 报头中也有专门的属性,描述了传输层使用那个协议。
4. 传输层拿到数据之后, 也是类似,按照 TCP 协议来解析,取出载荷,交给应用层。
传输层报头中,通过目的端口号,告知我们数据交给哪个应用程序。
5.最后,解析应用层数据,拿到关键信息,展示到界面上,给出提示。
不同的应用程序,自然使用不同的应用层协议来解析。
3.小结
今天的分享到这里就结束了,喜欢的小伙伴不要忘记点点赞点个关注,你的鼓励就是对我最大的支持,加油!