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

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

发布时间:2019-09-20 02:08:52 所属栏目:教程 来源:水兽
导读:为了使全球范围内不同的计算机厂家能够相互之间能够比较协调的进行通信,这个时候就有必要建立一种全球范围内的通用协议,以规范各个厂家之间的通信接口,这就是网络七层模型的由来。本文首先会对网络七层模型的功能进行介绍,然后会讲解传输层的两个重要

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

  • 可以让服务器确保客户端是能够正常发送和接收请求的;
  • 由于连接的建立是在不稳定的网络上进行的,因而这里有可能第一次请求是由于客户端在某个时间点发送的,但是由于网络延迟,导致很久之后服务器才接收到该请求,但此时服务器并不知道这个连接建立的请求是否是正常请求,其还是会正常发送一个同意建立连接的响应给客户端,如果第一请求是由于网络延迟造成的,那么客户端是不会再发送第三次握手给服务器的,这个时候服务器等待超时后也就不会建立这一次的连接了。

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

  • 客户端首先会发送一个FIN=1, seq=u给服务器,根据前面TCP头部信息的讲解,我们知道FIN=1表示这是一个断开连接的请求,而seq=u则标识了这次请求的一个序号;
  • 服务器接收到客户端的断开连接的请求后,其就会向客户端发送一个ACK=1, seq=v, ack_seq=u+1的响应,这里的seq=v还是表示当前请求的序号,而ack_seq=u+1则表示这是对客户端发送的seq=u的断开连接的请求的响应,但是需要注意的是,这个请求并不表示服务器同意断开连接,此时还只是一个半关闭的状态,因为此时服务器可能还有数据在进行处理没有发送给客户端,此时服务器就会完成这些断开连接的工作;
  • 待服务器完成了断开连接的准备工作之后,其就会给客户端发送一个FIN=1, ACK=1, seq=w, ack_seq=u+1的响应,注意,这个过程中客户端一直都处于等待状态的。这里相对于前一次响应,多了一个FIN=1,就是表示当前是确认断开连接的请求;
  • 客户端在接收到服务器的响应之后,其就会给服务器发送一个ACK=1, seq=u+1, ack_seq=w+1的响应,表示同意断开连接,服务器接收到后就会断开连接,而客户端则会等待一小段时间后自行断开连接。

3. 小结

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

(编辑:核心网)

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

热点阅读