加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

看一遍忘一遍的网络七层模型与TCP/UDP,再给你们普及一下

发布时间:2019-09-19 17:52:59 所属栏目:教程 来源:水兽
导读:为了使环球范畴内差异的计较机厂家可以或许彼此之间可以或许较量和谐的举办通讯,这个时辰就有须要成立一种环球范畴内的通用协议,以类型各个厂家之间的通讯接口,这就是收集七层模子的由来。本文起首会对收集七层模子的成果举办先容,然后会讲授传输层的两个重要
副问题[/!--empirenews.page--]

为了使环球范畴内差异的计较机厂家可以或许彼此之间可以或许较量和谐的举办通讯,这个时辰就有须要成立一种环球范畴内的通用协议,以类型各个厂家之间的通讯接口,这就是收集七层模子的由来。本文起首会对收集七层模子的成果举办先容,然后会讲授传输层的两个重要协议:TCP和UDP协议,而且会着重讲授TCP协议中的三次握手和四次挥手的进程。

1. 收集七层模子

关于收集七层模子,我们起首以一个图例来展示其成果:

看一遍忘一遍的收集七层模子与TCP/UDP,再给你们遍及一下

  • 应用层:首要指的是应用措施部门,好比我们的Java措施,应用层所发生的数据成为应用层数据,典范的应用层协议,好比有HTTP协议,dubbo的rpc协议,这些都是由我们的应用层措施本身界说的;
  • 暗示层:这一层首要是对应用层的数据举办一些名目转换,加解密可能举办压缩息争压缩的成果;
  • 会话层:会话层的首要浸染是认真历程与历程之间会话的成立、打点以及终止的处事;
  • 传输层:传输层提供了两台呆板之间端口到端口的一个数据传输处事,由于应用层、暗示层和会话层所针对的都是某个应用历程,而历程是和端口绑定的,可是统一台处事器上是可以有多个历程的,因而传输层提供的就是这种差异的端口到端口的会见,以实现区分差异历程之间的通讯处事。在传输层最典范的协议有TCP和UDP协议,TCP提供的是面向毗连的、靠得住的数据传输处事,而UDP则是无毗连的、不行靠的数据传输处事。在上面的图中我们也可以看出,颠末传输层之后,数据会被加上TCP可能UDP头部,用以实现差异传输层协议的成果;
  • 收集层:传输层提供的是统一台主机上的端口到端口的传输处事,而收集层则提供的是差异主机之间的毗连处事,最典范的收集层协议就是IP协议,收集层会将当前的数据包加上一个IP头部,从而实现方针呆板的寻址;
  • 数据链路层:这一层是承接软件和硬件的一层,因为其会将当前的数据报发送到不不变的物理层硬件长举办传输,因而为了保障数据的完备性和靠得住性,数据链路层就提供了校验、确认和反馈等机制,用以提供靠得住的数据报传输处事;
  • 物理层:物理层的首要浸染就是将0101这种二进制的比特流数据转换为光信号,用以在物理介质长举办传输。

收集七层模子首要是提供的一种类型,而在这每一层上为了实现差异的成果,各个计较机厂商城市实现本身的协议,这些协议的标识就是通过一些协议头和举办的,好比上面图中,数据在颠末每一层的封装之后城市为其加上本身的协议头部,当数据颠末屋里介质传输到方针呆板上后,其就会反过来,将数据举办一层一层的理会,理会的进程着实就是按照其每一层头部信息来实现该层的相干成果。

其它,收集七层模子是一种较量抱负化的模子,此刻应用较量普及的是收集五层模子,五层模子与七层模子的首要区别在于将应用层、暗示层和会话层同一分别到应用层中了,由应用措施实现其相干的成果。

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. 三次握手和四次挥手

TCP是一个提供靠得住传输处事、面向毗连的的传输层协议,其靠得住性担保首要是通过每次数据报发送时的ACK机制实现的,而其毗连的成立和开释则首要是通过三次握手和四次挥手的方法实现的。如下是其三次握手和四次挥手的进程:

看一遍忘一遍的收集七层模子与TCP/UDP,再给你们遍及一下

对付三次握手,其整体进程如下:

  • 起首客户端会发送一个成立毗连的哀求,其符号位中会带上SYN=1, seq=x,这里的SYN=1按照前面TCP头部信息的讲授中我们知道,其暗示成立毗连的哀求,而seq=x则只是当前哀求的一个序号,差异的哀求是有差异的序号的,加这个序号的缘故起因也是为了将其与处事端的相应哀求关联起来;
  • 在处事端吸取到客户端成立毗连的哀求之后,其就会返回SYN=1, ACK=1, seq=y, ack_seq=x+1,这里的SYN=1, ACK=1暗示的是对客户端成立毗连的哀求的赞成相应,seq=y则标识了这是处事端的一次数据发送,而ack_seq=x+1则暗示其是对客户端的seq=x的哀求的一个相应;
  • 在客户端吸取随处事端的相应的时辰,客户端就可以或许确认处事端是可以或许正常吸取和发送数据的,而处事端在吸取到客户端的第一次哀求的时辰也可以或许确认客户端可以或许正常的发送哀求。这个时辰,客户端就会发送一个ACK=1, seq=x+1, ack_seq=y+1给处事器,处事器吸取到后就会完成毗连的成立。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读