TCP和UDP的区别

相同点和区别

相同点:计算机与网络通讯的传输层
区别:TCP需要建立连接,UDP不需要。TCP可靠的传输,UDP传输速度快,TCP一对一传输,UDP一对多,多对一,一对一。

TCP建立连接

TCP:建立一个TCP连接的过程为三次三次握手的过程,断开连接四次挥手的过程。
第一次握手:客户端向服务端发送连接请求报文段。该报文段中包含自身的数据通讯初始序号。请求发送后,客户端便进入 SYN-SENT 状态。
第二次握手: 服务端收到连接请求报文段后,如果同意连接,则会发送一个应答,该应答中也会包含自身的数据通讯初始序号,发送完成后便进入 SYN-RECEIVED 状态。
第三次握手:当客户端收到连接同意的应答后,还要向服务端发送一个确认报文。客户端发完这个报文段后便进入 ESTABLISHED 状态,服务端收到这个应答后也进入 ESTABLISHED 状态,此时连接建立成功。

为什么是三次握手不是两次:防止已失效的连接请求重新发送,造成服务端资源浪费(历史报文问题)
当TCP通信已经建立连接,但是客户端发生故障怎么办?
服务端会根据超时重传继续向客户端传ACK报文段,当重发到最大次数客户端依旧没有回应时,此时服务端就断开连接。
在这里插入图片描述

TCP断开连接

第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状态。
第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。

为什么TIME_WAIT需要等2MSL才能返回CLOSE状态?
让TCP再次发送最后的ACK以防这个ACK丢失(被动关闭的一方超时并重发最后的FIN);保证TCP的可靠的全双工连接的终止。

为什么需要四次挥手:当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。
在这里插入图片描述

HTTP和HTTPS

HTTP:HTTP是超文本传输协议
HTTPS:是安全超文本传输协议,它在HTTP的基础上加入了SSL(Secure SocketsLayer,安全套接层)/TLS(Transport LayerSecurity,传输层安全)协议。

HTTP:
优点:简单易用,无需证书,传输效率高。
缺点:安全性差,容易受到攻击和窃听。
HTTPS:
优点:安全性高,可防止数据被窃取、修改和篡改;通过证书机制验证服务器身份,增加可信度。
缺点:握手阶段比较费时,可能影响页面加载速度;增加数据开销和计算资源消耗;SSL证书信用链体系存在安全隐患。

进程和线程

进程和线程的区别

本质区别:
①进程是操作系统资源分配的基本单位,是一个程序在其自身的地址空间中的一次执行活动,是资源申请、调度和独立运行的单位。
②线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
③线程没有独立的存储空间,而是和所属进程中的其他线程共享一个存储空间。一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是操作系统可识别的最小执行和调度单位。
④处理机分给线程,即真正在处理机上运行的是线程。

并发和并行

并发是轮流处理多个任务,并行是同时处理多个任务。
并发和并行的目标都是最大化CPU的使用率,将cpu的性能充分压榨出来。
并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。适用于单核和多核处理器。
并行:指在同一时刻,有多条指令在多个处理器上同时执行,所以无论从微观还是从宏观来看,二者都是一起执行的。适用于多核处理器。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐