【计算机网络】OSI七层模型
物理层
解决信号转换问题。处理的是比特。涉及网线、光纤、集线器、网卡的物理接口、电压、传输速率、距离等。
数据链路层
主要职责:在物理上直接相连的两个网络节点之间(例如同一局域网内的两台电脑或一台电脑与一个交换机)提供可靠的数据传输。接收方向上,**数据链路层规定了如何将连续的电信号(比特流)切割、封装成一个个独立的、带有明确边界和结构的数据单元(帧)。**传输方向上,数据链路层接收网络层的ip数据包,并将其封装成“帧”。
这里的直接相连并非“网线相连”,而是说传输数据时,共享通信介质连接到一个中心设备。换句话说,直接相连的设备的意思是在同一个局域网中,它们之间的通信不需要经过路由器。
以太网协议
一套由IEEE 802.3系列标准定义的、用于在局域网中传输数据的完整规则体系。它规定了设备如何通过物理线路连接(物理层),如何将数据打包成带有MAC地址的“帧”(数据链路层),以及如何在共享介质或交换网络中访问通信通道。
以太网帧
这是以太网协议的核心内容。它规定了数据被打包成什么样的格式才能在网络中传输。
部分 | 长度 | 作用 |
---|---|---|
前导码 | 8字节 | 同步时钟,告诉接收方“注意,数据要来了!” |
目标MAC地址 | 6字节 | 数据要发给哪个设备 |
源MAC地址 | 6字节 | 数据是哪个设备发出的 |
VLAN标签 | (可选) | 用于虚拟局域网(VLAN) |
以太类型 | 2字节 | 标识数据部分是什么协议 |
数据 | 46-1500字节 | 真正要传输的实际数据 |
帧校验序列 | 4字节 | 用于错误检测,接收方用它校验数据是否完整 |
在以太网协议中,数据链路层本身又细分为两个子层
LLC(逻辑链路控制层)
作为数据链路层的上半部分,它充当一个“中间人”,与上层的网络层(如IP、IPX等协议)进行对接。它的主要任务是识别网络层协议。帧结构中的“以太类型”字段就工作在LLC子层,它告诉接收方“我这个帧里携带的数据是交给IP协议处理还是交给其他协议处理?”
MAC(介质访问控制层)
这是数据链路层的下半部分,是以太网协议最核心、最具特色的部分。它负责:
- 帧的封装:组装帧结构(添加源/目标MAC地址、FCS等)。
- 介质访问控制:控制设备如何以及在何时将帧发送到物理介质上(如之前提到的CSMA/CD机制,虽然在现代交换网络中已很少使用,但仍是MAC层定义的)。
- MAC寻址:使用MAC地址来唯一标识网络中的设备。
发送数据
这个过程是封装(Encapsulation) 的过程,数据链路层接收来自网络层的数据包,将封装好的以太网帧交给物理层。
添加帧头(Header):这是最关键的一步。帧头主要包括:
- 目标MAC地址:通过查询ARP表等方式,将目标IP地址解析出的物理地址填入。
- 源MAC地址:填入本机网卡的物理地址。
- 类型字段(EtherType):标识上层协议(如0x0800代表IPv4,0x86DD代表IPv6),以便接收端知道该把数据交给哪个网络层协议。
添加帧尾(Trailer):
- 帧校验序列(FCS):对帧中的所有数据执行一个CRC(循环冗余校验)计算,将结果填入此处,用于接收端检查错误。
接收数据
这个过程是解封装(Decapsulation) 的过程,数据链路层识别出完整的帧,恢复原始的数据包交给网络层。
网络层
它的核心任务是实现端到端的逻辑通信,即让数据能够从源主机跨越多个网络,最终到达目标主机。
一、寻址(Addressing)
网络层为互联网中的每个设备分配一个全局唯一的逻辑地址,即IP地址,用于在网络中唯一标识和定位设备。IPv4使用32位地址,而IPv6采用128位地址,极大扩展了地址空间。
二、路由(Routing)
路由器根据目标IP地址和路由表信息,为数据包选择最优路径,使其能够穿越多个网络最终到达目的地。路由协议负责在不同网络之间交换路径信息,维护路由表的有效性。
三、分组与转发(Packetizing and Forwarding)
网络层将传输层传递下来的数据封装成分组(或称数据包),添加IP头部信息(包括源地址、目标地址、协议类型等),并依据路由决策将分组转发至下一跳设备。
四、拥塞控制(Congestion Control)
尽管主要拥塞控制机制由传输层实现,网络层也通过丢弃过量数据包等方式间接参与拥塞管理,向发送端传递网络状态信息。
五、异构网络互连(Interconnecting Heterogeneous Networks)
网络层通过统一的IP协议抽象不同物理网络(如以太网、Wi-Fi、卫星网络等)的技术细节,实现多种网络类型的无缝集成与通信。
ip协议
作用
为互联网上的每一台设备分配一个唯一的逻辑地址(IP地址),并负责将数据包从源主机传送到目标主机。
核心特性
- 无连接:IP协议在发送数据前不需要建立连接。每个数据包(称为数据报)都是独立发送的。路由器根据每个数据包报头中的目标IP地址,独立地、实时地为其选择路径。
- 不可靠:IP协议会尽最大努力将数据包送达目的地,但它不提供任何形式的保证。将可靠性问题交由终端主机(的传输层,如TCP协议)来处理。这种设计使得网络核心保持简单高效,将复杂的控制功能(如重传、排序)放在网络的边缘(终端主机)。
IP数据报结构
IP协议传输的数据单元称为 IP数据报(IP Datagram),它由IP头部和数据两部分组成。
字段 | 长度 | 作用说明 |
---|---|---|
版本(Version) | 4位 | 指明IP版本,IPv4为4 ,IPv6为6 。 |
首部长度(IHL) | 4位 | 指明IP头部长度(以4字节为单位),最小为5(即20字节)。 |
服务类型(Type of Service, ToS) | 8位 | 现在称为DSCP(差分服务代码点),用于QoS(服务质量),如优先传输视频流。 |
总长度(Total Length) | 16位 | 整个IP数据报的长度(头部 + 数据),最大65,535字节。 |
标识(Identification) | 16位 | 用于分片重组,同一数据报的所有分片具有相同标识。 |
标志(Flags) | 3位 | 控制分片,如“是否允许分片”、“是否是最后一个分片”。 |
片偏移(Fragment Offset) | 13位 | 指明该分片在原始数据报中的位置(以8字节为单位)。 |
生存时间(TTL, Time to Live) | 8位 | 每经过一个路由器减1,为0时丢弃,防止数据包无限循环。 |
协议(Protocol) | 8位 | 指明上层协议类型,如TCP=6,UDP=17,ICMP=1。 |
首部校验和(Header Checksum) | 16位 | 仅校验IP头部,每经过一个路由器都要重新计算。 |
源IP地址(Source IP Address) | 32位 | 发送方的IP地址(如192.168.1.100)。 |
目的IP地址(Destination IP Address) | 32位 | 接收方的IP地址(如8.8.8.8)。 |
选项(Options) | 可变 | 较少使用,如记录路由、时间戳等。 |
数据(Data) | 可变 | 上层协议的数据(如TCP段、UDP数据报)。 |
ARP协议
ARP(Address Resolution Protocol) 中文名为 地址解析协议。核心作用是:将网络层的IP地址(如 192.168.1.100)解析为数据链路层的物理地址(即 MAC地址,如 00:1A:2B:3C:4D:5E)。
ARP缓存表:每台主机都维护一个 ARP缓存表,存储最近解析过的IP-MAC映射,在命令行中输入arp -a
查看。
类型:
dynamic
:动态学习,会过期。static
:手动添加,不会过期(用于安全或固定映射)。
ICMP协议
ICMP(Internet Control Message Protocol), 互联网控制消息协议,用于在 IP 网络中传递控制信息和错误报告,是网络诊断和管理的核心工具。典型应用:ping
命令:使用 ICMP Echo Request 和 Echo Reply 检测主机连通性。
传输层
主要目标是屏蔽网络层的复杂性,为上层应用提供一个稳定、可靠、高效的数据传输通道。
作用
-
端到端通信:传输层则负责将数据从一台主机上的特定进程(应用程序)传输到另一台主机上的特定进程。它通过端口号(Port Number)来标识不同的应用程序或服务。
-
连接管理:对于需要建立连接的协议(如TCP),传输层负责管理连接的建立(三次握手)、维护和终止(四次挥手)。
-
可靠传输:
-
确认机制(Acknowledgment):接收方收到数据后,向发送方发送确认。
-
超时重传(Retransmission):如果发送方在规定时间内未收到确认,则重传数据。
-
序列号(Sequence Numbers):为每个数据段编号,确保接收方能按正确顺序重组数据,并检测重复或丢失的数据段。
-
错误检测:通常使用校验和(Checksum)来检测数据在传输过程中是否出错。
-
TCP协议
TCP (Transmission Control Protocol - 传输控制协议)面向连接(Connection-Oriented)、可靠的(Reliable)协议。
特点:
- 可靠性高:通过确认、重传、序列号、校验和等机制保证数据的完整性和正确性。
- 有序传输:确保数据按发送顺序到达。
- 流量控制和拥塞控制:有效管理数据流,避免网络和接收方过载。
- 连接管理:通过三次握手建立连接,四次挥手断开连接。
典型应用:
- HTTP/HTTPS(网页浏览)
- FTP(文件传输)
- SMTP/POP3/IMAP(电子邮件)
- Telnet/SSH(远程登录)
- 数据库访问
UDP协议
UDP (User Datagram Protocol - 用户数据报协议),无连接(Connectionless)、不可靠(Unreliable)协议。
特点:
- 简单高效:没有连接建立和断开的过程,没有确认、重传、流量控制等复杂机制,开销小,传输速度快。
- 尽最大努力交付:不保证数据一定能到达,也不保证顺序和完整性。
- 支持广播和多播:可以将数据同时发送给多个接收者。
典型应用:
- DNS(域名解析)
- DHCP(动态主机配置)
- SNMP(网络管理)
- 实时音视频流(如VoIP、视频会议、在线直播)
- 在线游戏
- TFTP(简单文件传输)
会话层
作用: 建立、管理和终止应用程序之间的会话(即通信连接)。
- 主要功能:
- 建立和维护两个设备之间的会话连接。
- 同步数据传输(如设置检查点,支持断点续传)。
- 控制对话方式(单工、半双工、全双工)。
- 在通信中断后恢复会话。
表示层
作用: 负责数据的格式化、加密、解密和压缩,确保发送方的数据能被接收方正确理解。
- 主要功能:
- 数据转换:将应用层的数据转换成适合网络传输的格式(例如,ASCII、EBCDIC、Unicode之间的转换)。
- 数据加密/解密:如SSL/TLS中的数据加密处理。
- 数据压缩:减少数据大小以提高传输效率(如JPEG、MPEG、ZIP等格式的压缩)。
- 确保不同系统之间数据的语义一致性。
应用层
作用: 为用户的应用程序提供网络服务接口,是用户与网络之间的桥梁。
- 主要功能:
- 提供常见的网络应用服务,如网页浏览(HTTP/HTTPS)、电子邮件(SMTP/POP3/IMAP)、文件传输(FTP)、远程登录(Telnet/SSH)等。
- 识别通信对象(如域名解析)。
- 确定资源是否可用。
- 处理高层协议和用户接口。