网络基础概念-网络模型

网络模型描述了数据如何通过不同层进行封装和传输。应用层数据通过逐层传递,经传输层时进行TCP或UDP封装,最终在网络接口层通过网线发送。接收端则逆向解封装,直至应用层获取原始数据。socket编程位于传输层,支持TCP/UDP,但无法处理应用层协议如HTTP。通信双方需在同一层次且网络模型匹配,确保数据可靠无损传输,如TCP提供双工、可靠的数据传输,而多播要求每个接收方都能无损接收到相同副本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 网络模型

    我们平常使用的程序(或者说软件)一般都是通过应用层来访问网络的,程序产生的数据会一层一层地往下传输,直到最后的网络接口层,就通过网线发送到互联网上去了。数据每往下走一层,就会被这一层的协议增加一层包装,等到发送到互联网上时,已经比原始数据多了四层包装。整个数据封装的过程就像俄罗斯套娃。

   当另一台计算机接收到数据包时,会从网络接口层再一层一层往上传输,每传输一层就拆开一层包装,直到最后的应用层,就得到了最原始的数据,这才是程序要使用的数据。

    给数据加包装的过程,实际上就是在数据的头部增加一个标志(一个数据块),表示数据经过了这一层,我已经处理过了。给数据拆包装的过程正好相反,就是去掉数据头部的标志,让它逐渐现出原形。

   你看,在互联网上传输一份数据是多么地复杂啊,而我们却感受不到,这就是网络模型的厉害之处。我们只需要在代码中调用一个函数,就能让下面的所有网络层为我们工作。

  我们所说的 socket 编程,是站在传输层的基础上,所以可以使用 TCP/UDP 协议,但是不能干「访问网页」这样的事情,因为访问网页所需要的 http 协议位于应用层。

两台计算机进行通信时,必须遵守以下原则:

  1. 必须是同一层次进行通信,比如,A 计算机的应用层和 B 计算机的传输层就不能通信,因为它们不在一个层次,数据的拆包会遇到问题。
  2. 每一层的功能都必须相同,也就是拥有完全相同的网络模型。如果网络模型都不同,那不就乱套了,谁都不认识谁。
  3. 数据只能逐层传输,不能跃层。

双工/单工

TCP: 双工

问题名称

概念

需要几条线路

单工

在任何一个时刻,如果数据只能单向发送

只需1条

半双工

在某个时刻数据可以向一个方向传输

也可以向另一个方向反方向传输,而且交替进行

至少1条

全双工

如果任何时刻数据都可以双向收发

大于1条

可靠性

数据保证无损传输

如果发送方同时要把消息发送给多个接收方,这种情况叫作多播,可靠性要求每个接收方,都无损收到相同的副本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值