一、什么是网络通信
网络通信,简单来说就是两台或多台设备之间通过网络介质交换数据。设备可以是电脑、手机、服务器、路由器、物联网设备等。
通信的本质:发送方把信息转换成二进制比特流,经过网络传输,到达接收方,再还原成原始信息。
想要通信成功,必须满足两个前提:
- 双方使用相同的网络协议(共同“语言”);
- 存在物理/逻辑通路(网线、光纤、Wi-Fi等传输介质)。
二、通信的几个基础概念
1. 主机
接入网络、能够收发数据的终端设备,我们称为主机,例如电脑、手机、服务器。每一台主机在网络中都有标识。
2. IP 地址
IP地址是主机在网络层的身份编号,用来在互联网中定位一台主机,作用类似家庭住址。
- IPv4:
192.168.1.100,点分十进制; - IPv6:解决IPv4地址枯竭问题,地址更长。
注意:IP地址定位到主机,但一台主机上会同时运行很多程序(浏览器、微信等),IP只能找到机器,不能找到具体应用。
3. 端口号(Port)
端口号用来定位一台主机上具体的进程/应用程序,范围:0 ~ 65535。
- 知名端口:0 ~ 1023,系统预留,例如80端口HTTP,443端口HTTPS,22端口SSH;
- 动态端口:1024 ~ 65535,客户端程序临时使用。
IP + 端口号 = 套接字(Socket),可以唯一标识网络上一个应用服务。
4. MAC地址
MAC地址(物理地址)是网卡出厂固化的硬件地址,用于同一个局域网内部识别设备。
- 格式:
00:11:22:aa:bb:cc; - 工作范围:仅在当前局域网内生效,跨网段通信时,MAC地址会不断变化。
5. 客户端与服务端
网络通信最常见模型:C/S(客户端/服务端)模型
- 服务端:一直监听某个端口,被动等待连接,提供服务(Web服务器、数据库);
- 客户端:主动发起请求,向服务端索取数据(浏览器、APP)。
还有B/S模型(浏览器/服务端),属于C/S的子集,客户端就是浏览器。
三、数据封装与解封装(通信核心流程)
数据在发送主机从上往下穿过TCP/IP四层模型,每一层都会增加当前层的头部信息,这个过程叫封装;
到达目标主机后,从下往上,逐层剥离头部,提取上层数据,称为解封装。
以浏览器访问网页为例:
- 应用层:浏览器生成HTTP请求报文(原始数据)
- 传输层:添加TCP头部(源端口、目标端口、序号等),组成TCP段
- 网际层:添加IP头部(源IP、目标IP),组成IP数据包
- 网络接口层:添加以太网头部(源MAC、目标MAC),组成数据帧
- 转换成比特流,通过网线/Wi-Fi发送出去
接收端反向操作:
网络接口层 → 剥掉以太网头 → 网际层剥IP头 → 传输层剥TCP头 → 最后把HTTP报文交给浏览器。
一句话记忆:发送:从上到下,层层加头;接收:从下到上,层层去头。
四、两种传输方式:单播、广播
- 单播:一对一通信,数据从一台主机发给另一台指定主机。日常上网、访问网站都是单播。
- 广播:一对所有,数据发给局域网内全部主机。ARP查找MAC地址就是广播。广播包不能穿过路由器。
补充:组播(多播),一对一组,多用于直播、视频流。
五、网络设备基础作用
- 网卡:主机接入网络的硬件,负责二进制信号收发,拥有MAC地址;
- 交换机:工作在数据链路层,局域网内部转发数据帧,依靠MAC地址转发;
- 路由器:工作在网络层,连接多个不同网络,依靠IP地址做路由,隔离广播域;
- 防火墙:基于策略过滤数据包,保障网络安全。
区分重点:交换机看MAC,路由器看IP。
六、数据传输完整简化示例
浏览器访问 www.runoops.com
- 先通过DNS协议,把域名解析成服务器IP;
- 客户端发起TCP连接(三次握手);
- 浏览器封装HTTP请求,逐层打包,发给服务器;
- 服务器收到数据包,逐层解封装,读取HTTP请求;
- 服务器构造HTTP响应,封装后回传给客户端;
- 客户端收到响应,解封装,渲染网页;
- 通信结束,断开TCP连接(四次挥手)。
七、小结
网络通信本质是主机间的数据交换。
IP定位主机,端口定位程序,MAC用于局域网设备识别。
数据传输遵循封装和解封装;交换机基于MAC转发,路由器基于IP路由。
客户端-服务端是最主流的通信模型。
思考题:MAC地址和IP地址有什么区别?什么时候用MAC,什么时候用IP?
0 条笔记