温馨提示: 豌豆仅提供国内节点,不提供境外节点,不能用于任何非法用途,不能访问境外网站及跨境联网。

免费领取1万IP!

网络协议的几个概念

发布时间:

一、网络的五层划分

网络协议的五层划分从下到上可以分为:

1、物理层

物理层就是指光纤、电缆或者电磁波等真实存在的物理媒介。这些媒介可以传输物理信号,信号的传输是以二进制的形式传递的。

2、数据链路层

在连接层中,数据是以帧(frame)为单位传输的。所谓的帧,就是一段有序的 0/1序列,连接层的功能就是要识别 0/1序列 中所包含的帧。比如说,它会根据一定的 0/1 组合识别出帧的开始和结束。 在帧中,有源地址(Source)和目标地址(Destination),还有能够探测错误的校验序列(Frame Check Sequence)。当然,还有最重要的就是数据(data)。 以太网和WiFi是现在最常见的连接层协议。通过连接层协议,我们可以建立局域的以太网或者WiFi局域网,并让位于同一局域网中的两台计算机通信。

3、网络层

网络层用来处理网络上流动的数据包。数据包是网络层传输的最小单位。在这一层中,接收端会将数据链路层传递过来的帧剥离IP首部,然后将其转发给传输层。在该层中,常用的协议为IP协议。

4、传输层

如果只是两台计算机之间的通信,利用上面所说的三层协议就可以实现。但是我们知道一般的通信都是应用间的通信,也就是端口对端口之间的通信,这个时候就需要用到传输层了。在传输层中,有TCP和UDP两种协议,这两种协议都可以使用端口号来识别需要通信的应用。

5、应用层

通过上面的四层协议,我们基本上是可以在不同的应用之间实现通信。而应用层的出现,则进一步规范了通信双方所遵循的数据传输格式,例如:在Web中我们经常使用HTTP协议,在传输文件时经常使用FTP协议,而在发送电子邮件时经常使用IMAP协议等都属于应用层的协议。

层与层之间数据的发送与接收如下图所示:

二、TCP和UDP的区别

1、UDP的特点:

UDP是无连接的,即发送数据前不需要建立连接,因此减少了开销和发送数据之前的时延。 UDP尽最大努力交付,即不保证可靠交付。 UDP没有拥塞控制,即网络出现的拥塞不会使源主机的发送速率降低。

2、TCP的特点

TCP是面向连接的,在使用之前必须先建立TCP连接。 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。 TCP提供可靠交付的服务,也就是说通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达。

三、TCP的三次握手和四次挥手

1、三次握手

客户端向服务器发出请求连接的报文,这时SYN=1,seq=x。这时客户端进入SYN-SENT(同步已发送)状态。 服务器收到连接请求报文后,如果同意连接则向A发送确认,在确认报文中将SYN位和ACK位都置1,确认号ack=x+1,同时消耗一个序号seq=y。这时服务器进入SYN-RCVD(同步收到)状态。 这时客户端收到服务器请求后,还要向服务器给出确认。确认报文ACK为1,确认号ack=y+1,序号是seq=x+1。这个时候TCP连接已经建立,客户端都进入了ESTABLISHED(已建立连接)状态。当服务器收到客户端的请求后,也进入ESTABLISHED(已建立连接)状态。 为什么客户端还多发送一次请求呢?这主要是因为防止已经失效的连接请求报文突然又传送到B,因而产生错误。 考虑一种情况: 客户端发出的第一个连接请求在某个网络结点滞留了,以致于延误到连接释放后的某个时间才到达服务器。服务器收到了后,误以为是客户端又发送的一个请求,所有向客户端发出请求确认,同意建立连接。如果不采用三次握手,那么只要服务器发出确认,新的连接就建立了。由于客户端没有发出建立连接的请求,所有根本不会理睬服务器的确认,也不会向服务器发送数据,但服务器却以为新的运输数据已经建立了,并一直在等待客户端发过来的数据,这样服务器的很多资源就白白浪费了。

2、四次挥手

数据传输完成后,通信的双方都可释放连接。如果客户端向服务器发出释放连接的报文,并停止发送数据,主动关闭TCP连接,然后进入FIN-WAIT-1(终止等待1)状态,等待服务器的确认。服务器收到后发出确认,然后服务器进入CLOSE-WAIT(关闭等待)状态。于是客户端到服务器这个方向的连接已经断开。但是服务器到客户端这个方向的连接却未断开。客户端收到来自服务器的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待服务器发出的连接是否报文。若服务器没有要向客户端发送的数据,则向客户端发送一个释放连接的报文,然后进入LAST-ACK(最后确认)状态,等待客户端的确认。客户端在收到B的连接释放报文后,需要对此做出确认,然后进入TIME-WAIT1(时间等待状态),客户端需要经过2MSL(最长报文段寿命)的时间才能结束TCP连接。

四、参考文章

[# 协议森林01 邮差与邮局 (网络协议概观) ](www.cnblogs.com/vamei/archi…)

相关文章


React 中的状态自动保存(KeepAlive) 前端也来点算法(TypeScript版) | 2 - 回文数和回文链表 Dart 语言标准流与文件操作 React Hooks 你不来了解下?

上一篇:Probability-Based Data Structure
下一篇:

咨询·合作