网络七层模型与TCP/UDP的原理是什么

发布时间:2021-06-23 11:03:08 作者:chen
来源:亿速云 阅读:224

这篇文章主要讲解了“网络七层模型与TCP/UDP的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“网络七层模型与TCP/UDP的原理是什么”吧!

        为了使全球范围内不同的计算机厂家能够相互之间能够比较协调的进行通信,这个时候就有必要建立一种全球范围内的通用协议,以规范各个厂家之间的通信接口,这就是网络七层模型的由来。本文首先会对网络七层模型的功能进行介绍,然后会讲解传输层的两个重要协议:TCP和UDP协议,并且会着重讲解TCP协议中的三次握手和四次挥手的过程。

1. 网络七层模型

        关于网络七层模型,我们首先以一个图例来展示其功能:

网络七层模型与TCP/UDP的原理是什么

        网络七层模型主要是提供的一种规范,而在这每一层上为了实现不同的功能,各个计算机厂商都会实现自己的协议,这些协议的标识就是通过一些协议头和进行的,比如上面图中,数据在经过每一层的封装之后都会为其加上自己的协议头部,当数据经过屋里介质传输到目标机器上后,其就会反过来,将数据进行一层一层的解析,解析的过程其实就是根据其每一层头部信息来实现该层的相关功能。

        另外,网络七层模型是一种比较理想化的模型,现在应用比较广泛的是网络五层模型,五层模型与七层模型的主要区别在于将应用层、表示层和会话层统一划分到应用层中了,由应用程序实现其相关的功能。

2. TCP与UDP

        在我们的应用开发过程中,我们其实不需要太过于关注底层相关的功能,这些只需要相关的服务提供商提供相应的功能即可。不过在传输层之中,我们需要特别关注一下现在广泛使用的两个协议:TCP和UDP协议。这两个协议之间的主要区别如下:

TCPUDP
面向连接无连接
提供数据可靠保证不提供数据可靠性保证
速度相对较慢速度较快
占用资源较多占用资源较少

        关于TCP和UDP,可以看到,这两个协议各自分别有非常鲜明的特点:TCP虽然占用资源较多,速度相对较慢,但是提供了可靠的数据传输服务,这在大多数的互联网业务中是非常必要的;而UDP虽然不提供可靠性的数据保证,但是其速度非常快,而且占用资源较小,这在一些对数据可靠性较低的场景中是非常有用的,比如音视频服务,物联网数据上报服务等等,这些情况下,数据丢失一两帧都是可以接受的。

        TCP和UDP在资源占用上的区别,不仅体现在数据传输方式上,还体现在了数据的传输格式上。对于数据传输方式,TCP每次发送数据的方式都是按照时间窗口的方式一个数据报一个数据报的发送,并且需要等待每个数据报都给数据发送方响应ACK,这个时候才会发送下一个数据窗口的数据,如果当前窗口内有任意一个数据报没有发送成功,那么整个窗口内的数据都会重新发送;而UDP则没有窗口的概念和对应的ACK机制,其获取到每一个数据报之后,都只是简单的为其封装UDP协议头,然后将其发送出去,其不会管这个数据是否发送成功,因而UDP传输比TCP是要快很多的。对于数据传输格式,这里我们以TCP和UDP的数据报的格式进行讲解,如下是TCP的数据报格式:

网络七层模型与TCP/UDP的原理是什么

        可以看到,TCP数据报的头部中不仅包含了源端口号和目的端口号,还包含了序号、确认序号、首部长度、标志位等等信息,总的来看,除去真正的数据部分,头部信息占用的位数就达到了192位,当然,这么多字段主要的作用是为了实现TCP面向连接的可靠性传输的功能。如下则是UDP数据报的格式:

网络七层模型与TCP/UDP的原理是什么

        可以看到,这里UDP的数据包格式相对于TCP就非常的精简了,其头部主要就只有源端口号、目的端口号、长度和校验和字段,这些总共占用的字节数是8个字节。这也就是UDP协议传输速率非常快的另一个原因。

2.1 三次握手和四次挥手

        TCP是一个提供可靠传输服务、面向连接的的传输层协议,其可靠性保证主要是通过每次数据报发送时的ACK机制实现的,而其连接的建立和释放则主要是通过三次握手和四次挥手的方式实现的。如下是其三次握手和四次挥手的过程:

网络七层模型与TCP/UDP的原理是什么

        对于三次握手,其整体过程如下:

        可以看到,前两次请求都是建立连接所必要的,而客户端要发送第三次请求的原因主要有两点:

        对于四次挥手,其是在客户端与服务器交互完成之后,由客户端发起的。四次挥手的主要流程如下:

3. 小结

        本文首先讲解了OSI网络七层模型,详细讲解了模型中每一层的作用,然后讲解了传输层中TCP和UDP的主要区别,从传输方式和传输数据格式上对两种协议进行了对比,最后讲解了TCP协议中三次握手和四次挥手的主要过程,并且详细讲解了每一步的作用。

感谢各位的阅读,以上就是“网络七层模型与TCP/UDP的原理是什么”的内容了,经过本文的学习后,相信大家对网络七层模型与TCP/UDP的原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. TCP/IP协议族(第4版)
  2. 关于linux内核的tcp ip网络框架实现

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tcp udp

上一篇:golang mysql库连接池有什么作用

下一篇:Happens-before的作用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》