计算机网络基本知识

91 阅读2分钟

计算机网络

  1. 体系结构

    应用层:DNS、HTTP、SMTP、FTP 传输层:TCP、UDP 网络层:IP 数据链路层 物理层

  2. TCP和UDP的区别

    TCP协议面向连接,可靠传输,面向字节流,效率低,实现了流量控制、拥塞控制 UDP协议无连接,不可靠传输,可能出现丢包现象,以数据报作为基本单位收发,效率高

  3. TCP报文段:首部+数据 首部20个字节,包括序号seq,确认号ack,ACK,SYN,FIN等字段,源端口号,目的端口号等

    序号seq表示所要发生的数据的第一个数据字节的序号 确认号ack表示对已收到的数据的最高序号加1,即期望下次收到的数据中第一个数据字节的序号 ACK=1时,ack才有效 SYN=1时,表示这是一个连接请求或连接接受的报文 FIN=1时,表示此报文段的发送端已发送完毕,并要求释放连接

  4. TCP如何做到可靠传输?如果发送数据,没有接受到ACK确认会怎样?

    • 确认应答+序列号:TCP传输过程中,每次接收方收到报文后,都会对发送方进行确认应答,也就是发送ACK报文,这个ACK报文会带有确认号ack,告诉发送方,接收到了哪些数据,下一次的数据从哪里开始继续发。其次,接收方可以根据报文首部的序号对数据包进行排序和去重,然后把数据传送给应用层。

    • 超时重传:发送方发出数据后,会开启一个计时器,当一定时间后还未收到ACK确认报文,则重发数据,直到达到重发次数或收到ACK,累计到一定的重传次数,TCP会认为网络异常,强制关闭连接。

    • 快速重传:当接受方收到的数据包序号不正确,那么接受方会重复发送上一条ACK确认报文,若发送方连续收到了3条同一个确认号的ACK,就会启动快速重传,把这个ACK对应的发送包重新发送。

    • 滑动窗口:滑动窗口的发送窗口,未收到ACK确认就不滑动

      发送窗口:已发送,未收到ACK、未发送,但允许发送 接受窗口:未接收但准备接收

  5. TCP如何做到数据不重复?

    接收方可以根据报文首部的序号对数据包进行排序和去重,然后把数据传送给应用层。

  6. 三次握手,建立连接

    三次握手

  7. 四次挥手,释放连接

    四次挥手