网络基础 2 OSI七层网络模型
2. OSI七层网络模型
包含以下七层:
TCP/IP协议毫无疑问是互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。由于OSI七层模型为网络的标准层次划分,所以我们以OSI七层模型为例从下向上进行一一介绍。
激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。**该层为上层协议提供了一个传输数据的可靠的物理媒介。简单的说,物理层确保原始的数据可在各种物理媒体上传输。**物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。数据链路层在不可靠的物理媒介上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点:
- 数据链路层为网络层提供可靠的数据传输;
- 基本数据单位为帧;
- 主要的协议:以太网协议;
- 两个重要设备名称:网桥和交换机。
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是"路径选择、路由及逻辑寻址"。
网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。具体的协议我们会在接下来的部分进行总结,有关网络层的重点为:
-
网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
-
基本数据单位为IP数据报;
-
包含的主要协议:
-
IP协议(Internet Protocol,因特网互联协议);
-
ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
-
ARP协议(Address Resolution Protocol,地址解析协议);
-
RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。
-
-
重要的设备:路由器。
理解性记忆方式:
- 网络层主要干三个活:在哪,怎么走,下一跳去哪
graph LR A[网络层network] --> B[在哪:逻辑寻址] --> E[只认网络IP不认物理地址] A --> C[怎么走:路径选择] --> F[选择最优路径] --> G[OSPF:老司机抄近道] F --> H[BGP:外交官谈判最优跨国路线] A --> D[下一跳去哪:路由表] --> I[查路由表:ip route show]graph LR A[网络层network] --> B[在哪:逻辑寻址] --> E[只认网络IP不认物理地址] A --> C[怎么走:路径选择] --> F[选择最优路径] --> G[OSPF:老司机抄近道] F --> H[BGP:外交官谈判最优跨国路线] A --> D[下一跳去哪:路由表] --> I[查路由表:ip route show]
- 网络层协议:IP是老大扛大旗,ICMP当警笛,ARP查户口本,OSPF老司机,BGP玩国际!
-
IP是老大扛大旗:IP协议是网络层的"扛把子",所有数据都要靠它封装
- IPv4/IPv6是网络层核心协议,负责逻辑寻址和路由
-
ICMP当警笛:ICMP像网络世界的"警报器"(ping不通时的"目的地不可达"就是它在尖叫)
-
ARP查户口本:ARP协议像"派出所查户口",把IP地址(人名)翻译成MAC地址(身份证号)
-
OSPF老司机:Dijkstra算法找最短路径
-
BGP玩国际:BGP是跨国路由的"外交官",靠AS号(护照)和路径属性(谈判条件)选路
-
- IP数据报:数据报是集装箱,首部就像货运单,TTL是保鲜期,分片如同切蛋糕
-
IP数据报 = 标准化集装箱(固定格式保证全球通行)
- 首部:货运单(含源/目的IP、TTL等)
- 数据区:装的货物(上层传来的TCP/UDP报文)
-
TTL是保鲜期:每过一个路由器-1,到期就丢(
ping -t
可测试) -
分片如同切蛋糕:IP集装箱超过MTU这个限制就切蛋糕(
ping -l 3000
触发分片)- 想象记忆:IP集装箱超载了!开始切蛋糕(分片)…拼蛋糕的时候发现少一片(丢包)!"
-
第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段(TCP)或报文(UDP)。 网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。 有关网络层的重点:
-
传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
-
包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
-
重要设备:网关。
端口号:0~1023是VIP,随便占用会挨踢
- 22(SSH) 80(HTTP) 443(HTTPS) 53(DNS) 3306(MySQL)
- 查看占用:
netstat -tupln | grep 3306
查MySQL是否在监听
协议 | 可靠性 | 核心特性 | 技术映射 | 基本单位 |
---|---|---|---|---|
TCP | 可靠 | 确认重传、流量控制 | 像银行转账,一笔一确认 | 段 |
UDP | 不可靠 | 无连接、尽最大努力投递 | 像广播,喊一次完事 | 数据报 |
TCP(传输控制协议)
- 三次握手
sequenceDiagram 客户端->>服务端: SYN=1, seq=123(敲门) 服务端->>客户端: SYN=1, ACK=124, seq=456(应答) 客户端->>服务端: ACK=457(确认)sequenceDiagram 客户端->>服务端: SYN=1, seq=123(敲门) 服务端->>客户端: SYN=1, ACK=124, seq=456(应答) 客户端->>服务端: ACK=457(确认)
-
四次挥手:FIN说我要走,ACK答慢点溜,反向再来一遍,TIME_WAIT防丢
- TIME_WAIT:等待2MSL(像分手冷静期),默认60秒
-
可靠性机制
机制 | 原理 | 记忆梗 |
---|---|---|
建立连接+序号机制 | 建立连接→保证连接实体真实存在,序号机制→保证数据是按序、完整到达 | |
合理分片 | TCP会按最大传输单元(MTU)合理分片,接收方会缓存未按序到达的数据,重新排序后交给应用层 | |
数据校验 | TCP报文头有校验和,用于校验报文是否损坏 | |
超时重传 | 如果发送一直收不到应答,可能是发送数据丢失,也可能是应答丢失,发送方再等待一段时间之后都会进行重传 | 确认不到,再发一票 |
流量控制 | 当接收方来不及处理发送方的数据,能通过滑动窗口,提示发送方降低发送的速率,防止包丢失 | 别送太快,我家收件箱要爆了 |
拥塞控制 | 网络层拥堵造成的拥塞,包括慢开始,拥塞避免,快速重传和快速恢复 | 堵车就减速,通畅再加速 |
流量控制和拥塞控制对比:
流量控制:
✅ 谁控制? → 接收方(通过 rwnd
限制发送方)
✅ 目标? → 防止接收方缓冲区溢出
通俗的理解:把报文当成包裹,你家客户的收件箱(接收方的缓冲区)只能收10个包裹,如果你一次性发20个,那就放不下会有丢弃的情况(丢包),所以客户在签收时每次都会告诉你我这里还能放多少,比如说还能放5个(rwnd=5
),那下次发送就只发送5个,避免溢出
拥塞控制:
✅ 谁控制? → 发送方(通过 cwnd
适应网络状况)
✅ 目标? → 避免网络拥堵
✅ 两种情况 → 部分丢包和完全阻塞
流程:慢拥快重恢
- 慢开始:采用慢开始算法,拥塞窗口指数级增长。
- 拥塞避免:拥塞窗口达到慢开始门限(ssthresh)时,进入拥塞避免阶段,拥塞窗口线性增长。
- 超时重传:若一定时间内没收到接收方ack,触发超时重传,表明网络出现严重拥塞,将慢开始门限设置为当前拥塞窗口的一半,拥塞窗口重置为1个MSS,重新开始慢开始过程。
- 快速重传和快速恢复:若连续收到3个重复ACK,执行快速重传和快速恢复算法,调整拥塞窗口和慢开始门限,然后进入拥塞避免阶段。
UDP(用户数据报协议):无连接,不可靠,尽最大努力发,但是丢了就不管了
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
建连拆连,对话同步,异常恢复
✅ 建立/维护/终止会话(如SSH登录全程管理) ✅ 同步检查点(如数据库事务恢复点) ✅ 异常恢复(会话中断后自动续接)
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
为操作系统或网络应用程序提供访问网络服务的接口。
会话层、表示层和应用层重点:
-
数据传输基本单位为报文;
-
包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。