0%

图解HTTP:网络基础

TCP/IP 协议族

与互联网相关联的协议集合起来总称。

TCP/IP 分层管理

  1. 应用层。给用户提供应用服务。如:FTP、DNS、HTTP。
  2. 传输层。给应用层提供处理网络连接中的两台计算机之间的数据传输。如:TCP、UDP。
  3. 网络层/网络互连层。处理在网络上流动的数据包。在众多的传输路线中做出选择。如:IP。
  4. 数据链路层/网络接口层。处理连接网络的硬件部分。

数据包是网络传输的最小数据单位。

TCP/IP 通信传输流

通过分层顺序与对方网络通信。

发送端从应用层往下走:

  • 发送数据:应用层 -> 传输层 -> 网络层 -> 链路层
  • 每经过一层都打上一层的首部信息,层层封装。

接收端则从链路层往上走,一直到达服务器:

  • 接收到数据:链路层 -> 网络层 -> 传输层 -> 应用层
  • 每经过一层就将对应的首部消掉,层层解封装。

以HTTP举例:

HTTP传输
  1. 发送端/客户端在应用层(HTTP协议)发出一个HTTP请求。
  2. 为了方便传输,在传输层(TCP协议)把应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上标记序号、端口号,然后转发给网络层。
  3. 在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。
  4. 接收端/服务器在链路层接收到数据,按序往上发送,一直到应用层,才算真正接收到HTTP请求。

每一层的交互通过打上首部信息和消去首部信息(封装与解封装),发送端/客户端把应用层数据层层封装,到接收端/服务器才层层解封装拿到应用层数据。

IP协议

IP,Internet Protocol,网络层。负责把各种数据传输到对方。其中两个重要条件是IP地址和MAC地址。

IP地址指明被分配到的地址;MAC地址指明网卡所属的固定地址。IP地址依赖MAC地址,通常不在发送端与接收端不在同一个局域网时,往往通过ARP协议进行多台计算机和网络设备中转。

中转时,利用下一站中转设备的MAC地址来搜索下一个中转目标。

ARP的作用时解析地址,根据通信方的IP地址反查出对应的MAC地址。

TCP 协议

TCP协议,传输层,提供可靠的字节流服务。

为确保数据能到达目标,会进行三次握手策略建立连接:

TCP

为什么握手要三次,挥手却要四次呢?

那是因为握手的时候并没有数据传输,所以服务端的 SYN 和 ACK 报文可以一起发送,但是挥手的时候有数据在传输,所以 ACK 和 FIN 报文不能同时发送,需要分两步,所以会比握手多一步。

DNS服务

DNS服务,Domain Name System,应用层,提供域名到IP地址之间的解析服务。

若直接通过IP访问则不需要经过DNS服务。

URL 与 URI

  • URL(Uniform Resource Location),统一资源定位符。
    • 是 URI 的子集。表达的是一个位置。
  • URI(Uniform Resource Identifier),统一资源标识符。

URI格式:

1
http://user:pass@www.example.com:80/dir/index.html?uid=1#ch1
  • http:协议方案名
  • user:pass:登录认证信息
  • www.example.com:服务器地址
  • 80:服务器端口号
  • dir/index.html:带层级的文件路径
  • uid=1:查询字符串
  • ch1:片段标识符

欢迎关注我的其它发布渠道