Skip to content

网络基础 tcp/ip

分层管理

  • 应用层:决定向用户提供服务时通信的活动
    • FTP
    • HTTP
    • DNS
    • WebSocket
  • 传输层:提供处于网络中的两台计算机之间的数据传输
    • TCP:传输控制协议
    • UDP:用户数据报协议
  • 网络层:用来处理在网络上流动的数据包,在多个网络设备间传输时,网络层的作用就是在众多的选项中选择一条传输路线
  • 链路层:用来处理连接网络的硬件部分

TCP

TCP/IP传输流

TCP/IP传输流:应用层HTTP客户端发送请求=>传输层建立 TCP 链接=>网络层根据 ip 寻址=>链路层从硬件输入数据

3 次握手

三次握手之所以是三次是保证 client 和 server 均让对方知道自己的接收和发送能力没问题而保证的最小次数。

  1. 第一次client => server 只能server判断出client具备发送能力
  2. 第二次 server => client client就可以判断出server具备发送和接受能力。此时client还需让server知道自己接收能力没问题于是就有了第三次
  3. 第三次 client => server 双方均保证了自己的接收和发送能力没有问题

其中,为了保证后续的握手是为了应答上一个握手,每次握手都会带一个标识 Seq,后续的ACK都会对这个Seq进行加 1 来进行确认。

  1. SYN=1,Seq=X
  2. SYN=1, Seq=Y, ACK=X+1
  3. ACK=Y+1,Seq=Z

4 次挥手

TCP 是全双工信道,何为全双工就是客户端与服务端建立两条通道:

  • 通道 1:客户端的输出连接服务端的输入;
  • 通道 2:客户端的输入连接服务端的输出。

两个通道可以同时工作:客户端向服务端发送信号的同时服务端也可以向客户端发送信号。所以关闭双通道的时候就是这样:

  1. 客户端:我要关闭输入通道了。

  2. 服务端:好的,你关闭吧,我这边也关闭这个通道。

  3. 服务端:我也要关闭输入通道了。

  4. 客户端:好的你关闭吧,我也把这个通道关闭。

浏览器从 url 输入到页面展示发生了什么