网络基本概念
一、IP 地址与端口号
1、IP地址
IP地址⽤于定位主机的⽹络地址。就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。它是一串由数字组成的标识(如 IPv4 的 “192.168.1.1”),用于唯一确定网络中一台主机的位置。
2、端口号
端口号⽤于定位主机中的进程。类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货⼈(端⼝号)。一台主机可能同时运行多个网络程序(如浏览器、聊天软件、游戏客户端等),端口号(范围通常为 0-65535)用于区分同一设备上不同的网络应用。
二、协议与协议分层
1、协议
(1)概念:
协议即网络协议,协议是指网络中设备通信时共同遵守的规则集合,包括数据格式、传输速率、错误处理等内容。
比如 TCP 协议确保数据可靠传输,UDP 协议则追求传输速度。
(2)作用:
网络协议是网络通信的“语言规范”,可以统一数据格式等通信语法;规范传输步骤,保证了通信的有序性;支持分层协作从而简化技术实现。
2、协议分层
(1)概念
协议分层将网络通信过程划分为多个层次,每个层次专注于特定功能,并通过接口与上下层交互。
(2)作用
类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。
使用方:不关心提供方是如何实现的,只需要使⽤接⼝即可
提供方:利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可
3、OSI七层模型
如下图所示:
4、TCP/IP 五层模型
(1)应用层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远 程访问协议(Telnet)等。应用层考虑的是东西拿到之后怎么使用。
(2)传输层:负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发 送到⽬标主机。任意两个设备之间的通信,不考虑中间过程,只考虑起点和终点。
(3)网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表 的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。与传输层不同的是,网络层需要考虑传输的中间过程。
(4)数据链路层:负责设备之间的数据帧的传送和识别,交换机(Switch)⼯作在数据链路层。考虑两个相邻的设备之间是如何通信的。
(5)物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的同轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。
5、网络设备所在分层
(1)主机:传输层——物理层;
(2)路由器:网络层——物理层;
(3)交换机:数据链路层——物理层;
(4)集线器:物理层;
6、TCP/IP通讯过程
三、封装与分用
1、封装
数据从上层传递到下层时,每层都会在数据前添加该层的协议头部(有时还会添加尾部)。
例如,应用层的数据传递到传输层时,TCP 协议会添加 TCP 头部;再到网络层,IP 协议添加 IP 头部;最后到数据链路层,添加 MAC 头部和尾部。经过封装的数据单元在不同层次有不同名称,如传输层的段、网络层的分组、数据链路层的帧。
封装过程如下图所示:
2、分用
目标设备从底层开始,逐层剥离对应的协议头部,最终将原始数据传递到上层的应用程序。分用过程依赖各层头部中的信息(如端口号、IP 地址),确保数据被正确分发。
分用过程如下:
四、客户端、服务端,请求与响应
1、客户端与服务端
客户端通常是发起通信请求的设备(如你的手机、电脑)
服务器则是提供服务的设备(如网页服务器、游戏服务器),它会等待并处理客户端的请求。
2、请求与响应
客户端向服务器发送的需求信息称为请求。
比如打开某个网页时,浏览器会向网页服务器发送 HTTP 请求。
服务器接收到请求后,会进行处理并返回相应的结果称为响应。
例如,网页服务器会将网页数据作为响应返回给浏览器,浏览器再将其渲染成我们看到的页面。
3、关系如图所示:
五、两台主机的网络通信流程
了解了上述概念后,我们可以梳理一下两台主机(假设为 A 和 B)的完整通信流程:
1、发起请求:主机 A 的应用程序(如浏览器)生成请求数据,明确要与主机 B 的某个服务(通过端口号指定,如 80 端口的 HTTP 服务)通信。
2、数据封装:请求数据从应用层开始,逐层经过传输层(添加 TCP/UDP 头部,包含端口号)、网络层(添加 IP 头部,包含 A 和 B 的 IP 地址)、数据链路层(添加 MAC 头部和尾部),最终封装成帧。
3、物理传输:封装好的帧通过物理介质(如网线、无线信号)传输,可能经过路由器、交换机等网络设备转发,每台设备根据 IP 地址和 MAC 地址确定转发路径。
4、数据分用:主机 B 接收到帧后,从数据链路层开始逐层剥离头部,依次经过网络层、传输层,最终将请求数据传递到对应的应用程序(根据端口号匹配)。
5、处理与响应:主机 B 的应用程序处理请求,生成响应数据,然后按照与请求相同的封装和传输过程,将响应发送回主机 A。
6、完成通信:主机 A 接收到响应后,分用数据并由应用程序处理(如浏览器显示网页),一次通信结束。