没有看过我写的关于网络协议的第一篇博客可以看【计算机网络 | 第二篇】常见的通信协议(一)-CSDN博客
TCP的三次握手和四次挥手
TCP三次握手
三次握手是TCP协议建立可靠连接的过程,目的是确保客户端和服务端双方的双向通信能力正常,并同步初始序列号。
简单回答实例:
第一次握手:客户端先发送一个SYN报文,带上自己的初始序列号。
第二次握手:服务端回复一个SYN-ACK,确认客户端的序列号,并发送自己的序列号。
第三次握手:客户端回复一个ACK,确认服务端的序列号。
为什么需要三次握手呢?
1.防止历史连接问题:若客户端因网络延迟重发SYN,旧的SYN可能新连接建立之后到达,通过三次握手,客户端可通过的三次握手拒绝SYN,避免资源浪费。
2.确保双向通信能力:若只有两次握手只能确认客户端的发送能力和服务端的接收能力,无法确认服务端的发送能力和客户端的接收能力。
三次握手可以携带数据吗?
在TCP三次握手过程中,第三次握手是可以携带数据的(客户端发送完 ACK 确认包之后就进入 ESTABLISHED 状态了),也就是说一旦完成前两次握手,TCP协议允许在第三次握手时传输数据。
如果第三次握手的 ACK 确认包丢失,但是客户端已经开始发送携带数据的包,那么服务端在收到这个携带数据的包时,如果该包中包含了 ACK 标记,服务端会将其视为有效的第三次握手确认。这样,连接就被认为是建立的,服务端会处理该数据包,并继续正常的数据传输流程。
TCP四次挥手
四次挥手是TCP协议安全断开连接的的过程,目的是确保双方数据完全传输完毕并且有序释放资源。TCP是全双工通信,需要双方独立关闭各自的数据流,因此需要四次交互。
简单回答实例:
第一次挥手:主动方先发送FIN表示不再发送数据。
第二次挥手:被动方回复ACK确认收到,但可能继续发送剩余数据。
第三次挥手:被动方数据发完后,再发送FIN表示准备关闭。
第四次挥手:主动方回复ACK,并等待一段时间确保对方收到。
为什么需要四次挥手?
1.全双工特性:TCP允许双方独立发送和接收数据,关闭连接时,需双方各自确认数据发送完毕。
2.ACK和FIN无法合并:被动方收到FIN后可能仍需处理数据,需要先发ACK确认,再发FIN关闭自身通道。
HTTP是基于TCP还是UDP?
HTTP/3.0 之前是基于 TCP 协议的,而 HTTP/3.0 将弃用 TCP,改用 基于 UDP 的 QUIC 协议 。
此变化解决了 HTTP/2.0 中存在的队头阻塞问题。队头阻塞是指在 HTTP/2.0 中,多个 HTTP 请求和响应共享一个 TCP 连接,如果其中一个请求或响应因为网络拥塞或丢包而被阻塞,那么后续的请求或响应也无法发送,导致整个连接的效率降低。这是由于 HTTP/2.0 在单个 TCP 连接上使用了多路复用,受到 TCP 拥塞控制的影响,少量的丢包就可能导致整个 TCP 连接上的所有流被阻塞。HTTP/3.0 在一定程度上解决了队头阻塞问题,一个连接建立多个不同的数据流,这些数据流之间独立互不影响,某个数据流发生丢包了,其数据流不受影响(本质上是多路复用+轮询)。
IP
IP协议的作用:
IP是TCP/IP协议最重要的协议之一,属于网络层协议,主要作用是定义数据包的格式,对数据包进行路由和寻址,保证在网络传输中到达正确目的地。
目前IP协议分为两种:一种是过去的IPv4,一种是新的IPv6。
IPv4 使用 32 位地址作为其 Internet 地址,这意味着共有约 42 亿( 2^32)个可用 IP 地址。
只靠IPv4,地址当然是不够用的,因此有了IPv6.
IPv6 使用 128 位互联网地址,这意味着越有 2^128(3 开头的 39 位数字,恐怖如斯) 个可用 IP 地址。
据说IPv6可以给地球上的每一颗沙子都分配一个地址。
什么是IP地址,IP寻址如何工作?
每个连入互联网的设备或域(如计算机、服务器、路由器等)都被分配一个 IP 地址(Internet Protocol address),作为唯一标识符。每个 IP 地址都是一个字符序列,如 192.168.1.1(IPv4)、2001:0db8:85a3:0000:0000:8a2e:0370:7334(IPv6) 。
当网络设备发送 IP 数据包时,数据包中包含了 源 IP 地址 和 目的 IP 地址 。源 IP 地址用于标识数据包的发送方设备或域,而目的 IP 地址则用于标识数据包的接收方设备或域。这类似于一封邮件中同时包含了目的地地址和回邮地址。
网络设备根据目的 IP 地址来判断数据包的目的地,并将数据包转发到正确的目的地网络或子网络,从而实现了设备间的通信。
这种基于 IP 地址的寻址方式是互联网通信的基础,它允许数据包在不同的网络之间传递,从而实现了全球范围内的网络互联互通。IP 地址的唯一性和全局性保证了网络中的每个设备都可以通过其独特的 IP 地址进行标识和寻址。
什么是IP地址过滤?
IP 地址过滤(IP Address Filtering) 简单来说就是限制或阻止特定 IP 地址或 IP 地址范围的访问。例如,你有一个图片服务突然被某一个 IP 地址攻击,那我们就可以禁止这个 IP 地址访问图片服务。
IP 地址过滤是一种简单的网络安全措施,实际应用中一般会结合其他网络安全措施,如认证、授权、加密等一起使用。单独使用 IP 地址过滤并不能完全保证网络的安全。
ARP
什么是Mac地址?
MAC 地址的全称是 媒体访问控制地址(Media Access Control Address)。如果说,互联网中每一个资源都由 IP 地址唯一标识(IP 协议内容),那么一切网络设备都由 MAC 地址唯一标识。
可以理解为,MAC 地址是一个网络设备真正的身份证号,IP 地址只是一种不重复的定位方式(比如说住在某省某市某街道的张三,这种逻辑定位是 IP 地址,他的身份证号才是他的 MAC 地址),也可以理解为 MAC 地址是身份证号,IP 地址是邮政地址。MAC 地址也有一些别称,如 LAN 地址、物理地址、以太网地址等。
APR协议解决了什么问题?
ARP 协议,全称 地址解析协议(Address Resolution Protocol),它解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题。