OSI参考模型&TCP/IP模型 二三事

计算机网络的学习离不开OSI参考模型&TCP/IP模型

对各层功能与任务的了解就是学习的主要内容

其二者的区别也是我们应该了解的

其中 拥塞控制和流量控制 就是各层功能中 两个易混淆的概念

  • 流量控制(Flow Control) :解决的是发送方接收方 之间速度不匹配 的问题。它是一个端到端(点对点)的问题。

  • 拥塞控制(Congestion Control) :解决的是整个网络 (如路由器、链路)承载能力不足 的问题。它是一个全局性的问题。

深度解释一下就是:

流量控制是由接收方控制收发速度的,具体而言,在TCP中的实现机制就是,接收方会在ACK确认报文中告诉发送方自己的窗口大小,发送方则会根据这个接收窗口的大小调整发送的数据量,保证不出现超额现象,从而避免了丢包,重传等浪费。

形象点说,流量控制就是有1个人丢大饼,另一个人接大饼,丢的人速度太快了,接的人就会说"哎呀你慢点!!!",避免饼被丢地上

拥塞控制呢,有关网络的承载能力,是一种机制,防止过多的数据注入网络,导致路由器或者链路过载,出现网络拥塞。同样在TCP中,通过拥塞窗口,慢开始算法,拥塞避免算法,快重传,快恢复等手段协调全局。这里是由发送方驱动,它会根据网络反馈调整速度。

拥塞就好比堵车,网络就像一个共享的公路系统。如果所有车辆(数据包)同时涌入一条公路(网络链路),就会造成拥堵(路由器缓冲区爆满),导致所有车辆的通行速度都变慢(网络延迟增加),甚至发生交通事故(数据包被丢弃)。

了解以上内容便可以知道,拥塞控制只会出现在网络层(OSI)/ 网际层(TCP/IP)。因为它与路由器有关系

而流量控制在OSI的数据链路层,网络层,传输层都有,却只在TCP/IP模型的传输层有

那么你可能会问:为什么TCP/IP模型的网际层没有流量控制功能?

答案就牵扯到了这两个模型的不同之处。

TCP/IP模型的设计思想是 "傻网络,智能终端" ,主张网络内部(核心设备,如路由器)应该保持简单和"愚蠢",只负责尽可能高效地转发数据包("尽力而为",Best-Effort Delivery)。而复杂的智能功能(如可靠性保证、流量控制、拥塞控制)应该放在网络的边缘,即通信的终端主机上。

类比 邮政系统。邮局(网际层)只负责尽最大努力分拣和投递信件,它不关心信的内容、也不保证一定送到(尽管大多数时候可以)。保证可靠送达(如挂号信、要求回执)是寄信人和收信人(传输层)之间需要协商和负责的事情。

所以这个功能就交由传输层实现,省去网际层的麻烦。

相关推荐
谙弆悕博士12 小时前
系统集成项目管理工程师教程(第3版)笔记——第2章:信息技术发展
笔记·计算机网络·信息安全·学习方法·业界资讯·软考·系统分析师
我是唐青枫17 小时前
Java Netty 实战指南:从 NIO 线程模型到 TCP 编解码和心跳机制
java·tcp/ip·nio
ttod_qzstudio18 小时前
【软考备考】计算机网络详解:OSI/TCP-IP 分层 + IP 子网划分,一篇拿下网络模块(附 10 道练习)
网络·tcp/ip·计算机网络·软考
2301_808414381 天前
计算机网络基础
计算机网络
爱刷碗的苏泓舒1 天前
网络通信入门之 NTRIP、HTTP、TCP 与 IP 的关系:协议分层、连接过程以及实时数据流
网络协议·tcp/ip·http·网络通信·rtcm·监控运维·ntrip
Lhappy嘻嘻1 天前
网络(四)|全网最细网络层原理:IP 协议、IP 地址分类、子网划分、路由转发、NAT 穿透详解
java·笔记·网络协议·计算机网络
CHANG_THE_WORLD2 天前
6.多线程的TCP通信
java·网络·tcp/ip
ShineWinsu2 天前
对于Linux:TCPsocket编程基础的解析
linux·网络协议·tcp/ip·面试·笔试·进程·远程指令
CHANG_THE_WORLD2 天前
7.C++标准多线程实现 TCP通信
java·c++·tcp/ip
德迅云安全-上官2 天前
源站隐身 + 流量清洗,高防 IP 品牌实力精选
网络·网络协议·tcp/ip