一、TCP/IP 网络模型
TCP/IP网络模型,也被称为互联网协议套件(Internet Protocol Suite),与 OSI 模型相比,它通常被分为四个层级。这些层级包括:
1、应用层
这是TCP/IP模型的最高层,直接为用户提供各种网络服务。应用层协议定义了数据交换的格式和规则,以便不同的应用程序之间能够进行通信。常见的应用层协议包括HTTP(用于Web通信)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。
应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。
当两个不同设备的应用需要通信的时候,应用就把应用数据传给下一层,也就是传输层。
2、传输层
传输层负责在源主机和目标主机之间提供端到端的通信服务。它主要关注数据包的传输质量,包括数据的可靠性、顺序性、错误检测以及流量控制等。传输层有两个重要的协议:TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。TCP提供面向连接的、可靠的传输服务,而UDP则提供无连接的、不可靠的传输服务。
当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口。由于传输层的报文中会携带端口号,因此接收方可以识别出该报文是发送给哪个应用。
端口号(16位) | 目的端口号(16号) | ||||||||||||
序号(32位) | |||||||||||||
确认序列(32位) | |||||||||||||
首部长度(4位) | 保留(6位) | U R G | A C K | P S H | S Y N | F I N | 窗口大小(16位) | ||||||
校验和(16位) | 紧急指针(16位) | ||||||||||||
选线 | |||||||||||||
数据 |
3、网络层
负责在网络上寻址、路由和转发数据包,确保数据从源到目的地的正确传递。主要协议包括 IP 协议,以及 ICMP(Internet Control Message Protocol)用于网络诊断和错误报告。
IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文。
IP 地址拥有两种意义:
1、一个是网络号,负责标识该 IP 地址是属于哪个「子网」的;
2、一个是主机号,负责标识同一「子网」下的不同主机;
这需要配合子网掩码才能算出 IP 地址 的网络号和主机号。
举个例子,比如 10.100.122.0/24,后面的/24
表示就是 255.255.255.0
子网掩码,255.255.255.0 二进制是「11111111-11111111-11111111-00000000」,总共24 个1,为了简化子网掩码的表示,用/24代替255.255.255.0。
知道了子网掩码,将IP地址(10.100.122.2)与子网掩码(255.255.255.0)进行按位与运算,就可以得到网络号,如下图所示:
将子网掩码(255.255.255.0)取反后与IP地址进行进行按位与运算,就可以得到主机号。
4、网络接口层
这是TCP/IP模型中最底层的一层。生成了 IP 头部之后,接下来网络接口层会在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。其功能通常由网络接口卡(NIC)及其驱动程序、物理介质(如以太网、Wi-Fi等)以及相关的网络协议(如以太网协议)来实现。
IP 头部中的接收方 IP 地址表示网络包的目的地,通过这个地址我们就可以判断要将包发到哪里,但在以太网的世界中,这个思路是行不通的。
什么是以太网呢?电脑上的以太网接口,Wi-Fi接口,以太网交换机、路由器上的千兆,万兆以太网口,还有网线,它们都是以太网的组成部分。以太网就是一种在「局域网」内,把附近的设备连接起来,使它们之间可以进行通讯的技术。
以太网在判断网络包目的地时和 IP 的方式不同,因此必须采用相匹配的方式才能在以太网中将包发往目的地,而 MAC 头部就是干这个用的,所以,在以太网进行通讯要用到 MAC 地址。
MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址等信息,我们可以通过 ARP 协议获取对方的 MAC 地址。
所以说,网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。
觉得有帮助的话,打赏一下呗。。