应用层
http是应用层协议,定义的是传输数据的内容的规范。是在Tcp协议之上建立的,http在发起请求时通过tcp协议建立起连接服务器的通道,请求结束后,立即断开tcp连接
传输控制层
- 什么是传输控制层?
传输控制层有TCP协议、UDP协议
- 什么是TCP协议?
面向连接的传输协议,具有很强的可靠性。
- 连接是什么?
连接是一个虚拟的概念,通过三次握手来完成连接。
- 什么是三次握手?
- 客户端传输控制层向服务端传输控制层,发起一次握手的syn数据包
- 服务端传输控制层向客户端传输控制层,返回一个syn+ack的数据包
- 客户端传输控制层向服务端传输控制层,发送一个ack数据包
- 三次握手之后双方要为对方开辟一个内存资源,用于传输数据
- 什么是可靠性?
三次握手、四次分手中反复确认的机制,保证了连接的可靠性。
-
什么是socket? socket 是 客户端ip:port + 服务端ip:port 组成的一个组合(四元组)。在操作系统上用一个唯一独立地文件描述符(数值)代表了某个socket,应用程序的读写操作通过文件描述符进行。
-
什么是四次分手?
- 客户端传输层向服务端传输层,发送分手的fin数据包
- 服务端传输层向客户端传输层,发送fin+ack的数据包
- 服务端传输层向客户端传输层,发送分手的fin数据包
- 客户端传输层性客户端传输层,发送ack数据包
- 传输层释放资源
- 为什么有四次分手?
因为三次握手建立连接之后,两端传输层在内存中申请了资源,且这个资源只对对方服务,这时候为了保证资源不被浪费和即时释放,所以有了确保双方都要同意分手之后才会分手。
网络层
-
IP地址是什么 很多小的网络互相连接起来,形成了互联网,每个小的网络都包含>=1个主机,当不同的主机需要相互通信时,需要用到网络层。IP地址是标明具体哪个网络哪个主机的网络地址。
-
NETMASK是什么?GetWay是什么?
NETMASK与IP地址做二进制的暗位与运算,计算出网络的地址,依次判断当前要访问的主机是否是当前网络的主机。如:
- IP地址:192.168.150.11
- NETMASK:255.255.255.0
- 运算之后得到,192.168.150.0
- 如果运算结果与当前网络号一致,则访问的当前网络的11号主机
- 如果不一致,则访问的是其他网络中的主机,需要通过网关GetWay下一跳
链路层
- 请求通过网关进行下一跳的过程:
- 网络层向ff:ff:ff:ff:ff:ff发送一个全局的广播,这个广播会发送给当前局域网中的所有设备
- 只有路由器会将自己的mac地址返回给发送广播的主机
- 通过路由器的mac地址,网络层将目标服务器的主机地址+端口号发送给路由器
- 路由器通过运营商mac地址,将目标服务器的主机地址+端口号发送给网络运营商
- 网络运营商通过目标服务的mac地址,将目标服务器的主机地址+端口号发送给目标服务主机
- 因为一台主机可能有多个服务器,需要通过端口号来确认要访问的服务即application
物理层
交换机、路由器