用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行 通信。发送端从应用层往下走,接收端则往应用层往上走。 我们用 HTTP
举例来说明,首先作为发送端的客户端在应用层 (HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。
接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的 数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给 链路层。这样一来,发往网络的通信请求就准备齐全了。
接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。
当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP 请求。
图灵社区会员 Dylan.Y(yuanlongyoung@gmail.com) 专享 尊重版权
为了准确无误地将数据送达目标处,TCP 协议采用了三次握手 (three-way handshaking)策略。
接收端收到后, 回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。
最后,发送 端再回传一个带 ACK标志的数据包,代表“握手”结束。
若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序 发送相同的数据包。
关于DNS(domain name system)