TCP/IP 协议族
与互联网相关联的协议集合起来总称。
TCP/IP 分层管理
- 应用层。给用户提供应用服务。如:FTP、DNS、HTTP。
- 传输层。给应用层提供处理网络连接中的两台计算机之间的数据传输。如:TCP、UDP。
- 网络层/网络互连层。处理在网络上流动的数据包。在众多的传输路线中做出选择。如:IP。
- 数据链路层/网络接口层。处理连接网络的硬件部分。
数据包是网络传输的最小数据单位。
TCP/IP 通信传输流
通过分层顺序与对方网络通信。
发送端从应用层往下走:
- 发送数据:应用层 -> 传输层 -> 网络层 -> 链路层
- 每经过一层都打上一层的首部信息,层层封装。
接收端则从链路层往上走,一直到达服务器:
- 接收到数据:链路层 -> 网络层 -> 传输层 -> 应用层
- 每经过一层就将对应的首部消掉,层层解封装。
以HTTP举例:
- 发送端/客户端在应用层(HTTP协议)发出一个HTTP请求。
- 为了方便传输,在传输层(TCP协议)把应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上标记序号、端口号,然后转发给网络层。
- 在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。
- 接收端/服务器在链路层接收到数据,按序往上发送,一直到应用层,才算真正接收到HTTP请求。
每一层的交互通过打上首部信息和消去首部信息(封装与解封装),发送端/客户端把应用层数据层层封装,到接收端/服务器才层层解封装拿到应用层数据。
IP协议
IP,Internet Protocol,网络层。负责把各种数据传输到对方。其中两个重要条件是IP地址和MAC地址。
IP地址指明被分配到的地址;MAC地址指明网卡所属的固定地址。IP地址依赖MAC地址,通常不在发送端与接收端不在同一个局域网时,往往通过ARP协议进行多台计算机和网络设备中转。
中转时,利用下一站中转设备的MAC地址来搜索下一个中转目标。
ARP的作用时解析地址,根据通信方的IP地址反查出对应的MAC地址。
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
:片段标识符