计算机网络是指将位于不同地理位置,但具有独立功能的多台设备,通过通信设备和线路连接起来,在网络操作系统,网络管理软件、网络通信协议的协调管理下,实现资源共享和信息传递的计算机系统。
简单来说就类似于国内的普通话,因为不同省份的方言不同,导致不同地方的人交流起来并不方便,因此定义了“普通话”这一标准,所有人都遵循该标准进行交流沟通。
但无论多少层网络模型,其实本质上都是在叙述相同的内容,只不过拆分的精细度不同而已,三种网络模型对应如下:
注意点:在最初因为技术问题,因此数据传输必须建立在物理实体介质的基础之上,但如今无线电的电磁波技术也可以做到利用空气作为介质,从而达到传输数据的目的。
2.1.1、OSI模型的通信的封装与解析过程
而在计算机网络中,当两台机器进行通信时,其过程主要包含数据的封装与解封:
除开最常见的TCP/IP协议簇外,还有一些其他的协议组,如等协议组。
2.2.1、通信协议的基本概念
2.2.2、协议数据单元(PDU)
2.3.1、物理层
先来看最简单的通信模型:
对于如上问题,我们可以将其全部归纳到“物理层”来解决,在该层中定义标准规范。
2.3.2、数据链路层
但一般现在不会存在直连型网络,常用的计算机网络都是由多台机器共同组成的,如下:
对于上述中的这些问题,可以全部划归到链路层处理。
PS:对于这种总线型网络早已淘汰,目前常用的则是以太网的交换式通信模型:
2.3.3、网络层
到目前为止,解决了物理层及链路层中的问题后,就可以实现数据在一个局域网络中的传输了。但实际每天都接触的因特网是由无数个小网络和路由器互连组成的,如下:
而对于这些问题我们都可以划归到网络层处理。
路由选择:路由主要包括路由表和路由算法两个方面,网络层会根据速度、距离(步跳数)、价格及网络拥塞程度等因素,在路由表的多条通信路径中找一条最佳路径。
2.3.4、传输层
主机A上安装了、微信、谷歌浏览器,当另一台主机向主机A发送数据时,那这些数据到底应该交给主机上的哪个进程处理呢?
这些问题可以被划归到传输层加以解决。
2.3.5、应用层
体系中将资源子网都合并为了应用层,但在模型中,资源子网是分为应用层、表示层、会话层三个层次的,也就是拆分粒度更精细化,服务也更为精细化。
2.3.5.1、OSI-表示层
2.3.5.2、OSI-会话层
简单而言,应用层主要是为用户与网络之间,提供各类可“接触”的窗口。
2.3.6、TCP/IP体系中数据的通信过程
举例:IP地址就如同是物流线路上的驿站地址,而MAC地址就是具体货架上货物的位置。
3.1.1、IP地址的组成与分类
A类IP
示意图如下:
B类IP
C类IP
D类IP
E类IP
IP分类小结
3.1.2、子网掩码
修改子网掩码为局域网扩容
如何判断两个处于同一个网段
网络地址 = 地址 “位与” 子网掩码。
,转换为十进制为。
,转换为十进制为。
子网掩码小结
3.1.3、IP协议核心流程
但在实际的网络通信过程中,可能有时数据发送的链路非常遥远,如你从中国向日本网友发送一条数据,那么由于一些网络抖动、物理介质损坏都会导致数据丢失。但此时又该如何确保数据“安稳”到达目的地呢?
正因为路由控制的存在,所以即使网络复杂多变,也能够通过路由器的控制将数据“安稳”送达至目的主机。
3.1.4、IPv4与IPv6
3.2.1、TCP协议简介
当数据接收完成后,会用校验和函数来检验数据是否正确,在发送方和接收方都需要计算该值,发送方计算后会将该值放在头中携带发送,接收方接收到数据后,也会再次计算该值,再与报文头中的值进行比对,确认数据的正确性。
3.2.2、连接管理机制 - 三次握手与四次挥手
想要了解清楚这个问题的答案,那么得先了解建立与关闭连接的过程。
TCP的三次握手
当然,这个过程略微有些难理解,换个日常生活的例子来快速理解一遍!
TCP的四次挥手
当“三次握手”完成后,客户端和服务端之间会成功建立连接,从此开启双方端到端之间的数据传输,当一方数据传输完成后,会尝试中断连接,因此又会经历“四次挥手”的过程,如下:
本质上“三次握手与四次挥手”就是在指建立与关闭连接的过程,搞明白建立和关闭连接的过程后再来看看最开始的问题:“为什么是三次握手,四次挥手!”
为什么TCP是三次握手,四次挥手
3.2.3、TCP中的沾包问题
沾包问题:多个数据包在一块儿,无法确定每个数据包之间的分割边界,因此从应用层的角度看来,就好像多个数据包“沾”在了一起。
沾包问题解决方案
3.2.4、TCP协议中的其他核心概念
3.3.1、UDP的报文头
3.3.2、UDP核心流程
正因为如上特性,因此的传输速度仅受到数据生成的速度、计算机算力和传输带宽的限制。
因为由于高效的传输性能,因此常备应用在广播通知、音频通话、视频传输等多媒体数据流业务,而且这类业务中,如果有一个数据包丢失,在很短的时间内就会有另一个新的数据就会替换它,因此就算数据传输不可靠也无关紧要。
3.3.3、UDP中的丢包问题
丢包问题解决方案
3.3.4、TCP与UDP之间的区别
这里面牵扯到很多原因,有历史原因,也综合考虑了服务器负载、网络复杂度、服务器数量/网络带宽成本问题、实现难度等多方面因素导致的。
如果无法穿透,那则无法进行通信,无法穿透的原因也可能由于地理位置、网络类型限制等多方面因素导致。
到此这篇udp组播通信原理(udp组播会造成网络堵塞吗)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!通信翻译过来也就是端到端通信,在模型中,服务器只作为客户端地址的中转站存在,不需要承担高昂的流量成本。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/25243.html