关于计算机网络的基础知识点

380 阅读3分钟

计算机网络一直都是开发者的难点之一,下面将会跟大说说说关于计算机网络的基础问题。

1、TCP的三次握手

 这里要先介绍一下一些符号的意思:

  • 顺序号seq:用来标识从TCP源端向TCP目的端发送的数据字节流,它表示在这个报文段中的第一个数据字节的顺序号。
  • 确认号ack:包含发送确认的一端所期望收到的的下一个顺序号,因此,确认号应当是上次已成功收到数据字节顺序号加1.
  • SYN:同步序号,为1表示连接请求,用于建立连接和使顺序号同步。
  • FIN:用于释放连接,为1表示发送方已经没有数据发送了,关闭本端数据流。

第一次握手:Client发送位码syn=1,随机产生seq number = 1234567的数据包到服务器,Client进入SYN-SENT状态,主机B由SYN = 1知道,A要求建立联机;

第二次握手:Server收到请求后腰确认联机信息,向A发送ack number =(seq+1),syn=1,ACK=1,随机产生seq = 7654321的包,Server进入SYN-RCVD状态

第三次握手: Client收到后检查ack number是否正确,即第一次发送的seq+1,ACK是否为1,若正确,Client会再发送ack number = (B的seq+1),ACK = 1,主机收到后确认seq的值与ACK=1则连接建立成功

2、TCP的四次挥手

TCP采用四次挥手来释放连接

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,主机A进入FIN_WAIT_1状态;

第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1,主机B进入CLOSE_WAIT状态;

第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态;

第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

3、TCP和UDP的区别

  • 1、TCP面向连接 , 而UDP是无连接的,即发送数据之前不需要建立连接
  • 2、TCP提供可靠的服务,通过TCP链接传送的数据,无差错,不丢失,不重复,且按照顺序到达。UDP不保证可靠交付。
  • 3、TCP传输效率相对较低,UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。
  • 4、TCP链接只能是点对点,一对一,UDP支持一对一,一对多、多对一和多对多的交互通信。

4、HTTP和HTTPS的区别

  • HTTPS需要CA申请证书,HTTP不需要
  • HTTPS密文传输,HTTP明文传输
  • 连接方式不同,HTTPS默认使用443端口,HTTP使用80端口
  • HTTPS = HTTP + 加密+认证+完整性保护,较HTTP安全