网络基础 tcp/ip
分层管理
- 应用层:决定向用户提供服务时通信的活动
FTP
HTTP
DNS
WebSocket
- 传输层:提供处于网络中的两台计算机之间的数据传输
TCP
:传输控制协议UDP
:用户数据报协议
- 网络层:用来处理在网络上流动的数据包,在多个网络设备间传输时,网络层的作用就是在众多的选项中选择一条传输路线
- 链路层:用来处理连接网络的硬件部分
TCP
TCP/IP
传输流
TCP/IP
传输流:应用层HTTP
客户端发送请求=>传输层建立 TCP 链接=>网络层根据 ip 寻址=>链路层从硬件输入数据
3 次握手
三次握手之所以是三次是保证 client 和 server 均让对方知道自己的接收和发送能力没问题而保证的最小次数。
- 第一次
client => server
只能server
判断出client
具备发送能力 - 第二次
server => client
client
就可以判断出server
具备发送和接受能力。此时client
还需让server
知道自己接收能力没问题于是就有了第三次 - 第三次
client => server
双方均保证了自己的接收和发送能力没有问题
其中,为了保证后续的握手是为了应答上一个握手,每次握手都会带一个标识 Seq
,后续的ACK
都会对这个Seq
进行加 1 来进行确认。
SYN=1,Seq=X
SYN=1, Seq=Y, ACK=X+1
ACK=Y+1,Seq=Z
4 次挥手
TCP 是全双工信道,何为全双工就是客户端与服务端建立两条通道:
- 通道 1:客户端的输出连接服务端的输入;
- 通道 2:客户端的输入连接服务端的输出。
两个通道可以同时工作:客户端向服务端发送信号的同时服务端也可以向客户端发送信号。所以关闭双通道的时候就是这样:
客户端:我要关闭输入通道了。
服务端:好的,你关闭吧,我这边也关闭这个通道。
服务端:我也要关闭输入通道了。
客户端:好的你关闭吧,我也把这个通道关闭。