计算机网络基础知识

TCP/IP 四层结构

  • 应用层

    决定了向用户提供应用服务时通信的活动

  • 传输层

    提供处于网络连接中的两台计算机直接的数据传输

  • 网络层

    处理网络上流动的数据包

  • 链路层

    处理连接网络的硬件部分

应用层

HTTP协议
  • HTTP请求报文格式

  • HTTP响应报文格式

传输层

TCP
  • TCP 连接的建立

三次握手过程(三握手报文)及目的

目的:建立可靠的通信信道,简单地说,就是通信双方都确认自己与对方的接收与发送都是正常的。

序号 方向 动作 效果
1 Client -> Sever 发送带有SYN标志的数据包 Server确定自己接收正常;对方发送正常
2 Server -> Client 发送带有SYNACK标志的数据包 Client确定自己发送正常,接收正常;对方发送正常
3 Client -> Server 发送带有ACK标志的数据包 Server确认自己发送正常,接收正常;对方发送正常,接收正常

Question:有没有其它握手方案?

  • 可以将第二次握手 Server -> Client 发送SYN,ACK 报文拆分成两次 一次发送 SYN 一次发送ACK
  • 三次握手已经是最佳方案,握手次数不能比3少,可以比3多,但握手次数多消耗资源也更多
  • TCP 连接的释放

四次挥手

对可靠的通信信道进行关闭

序号 方向 动作 效果
1 Client -> Server 发送带有FIN的数据包 Client提出关闭请求,进入只接收不发送状态
2 Server -> Client 发送带有ACK的数据包 Server回应收到关闭请求
3 Server -> Client 发送带有FIN的数据包 Server提出关闭请求
4 Client -> Server 发送带有ACK的数据包 Client发送最后一个ACK 通道关闭

TIME-WAIT 为何等待2MSL?

ps: MSL 为最长报文寿命

    1. 保证最后一个ACK被服务端收到,没收到可以再发送,并重置2MSL定时器
    1. 保证本地端口号在2MSL时间内不会被再次使用,避免新连接中出现旧连接的请求报文

CLOSE-WAIT 存在意义?

通知上层应用,通道即将关闭,上层应用确认关闭后,Server才发出 FIN 报文

TCP提供可靠传输服务的原因

  • 可靠传输的工作原理

1.停止等待协议

每发送完一个分组就停下来,等待对方的确认,收到确认后再发送下一个分组

2.连续ARQ协议

发送方每收到一个确认就把发送窗口向前移动一个分组的位置

  • 可靠传输的实现

1.滑动窗口协议

UDP

网络层

链路层