[读书笔记]当你打开网页的时候,世界都发生了什么

原文地址:https://github.com/aisuhua/we...

  • 当你打开网页的时候,世界都发生了什么(1)

  • What happens when you type a URL in browser

  • What really happens when you navigate to a URL

  • what happens when you type in a URL in browser

  • TCP协议中的三次握手和四次挥手(图解)

  • 《图解HTTP》

  • Domain Name System

  • Hypertext Transfer Protocol -- HTTP/1.1

《图解HTTP》(节选)

1.3.3 TCP/IP通信传输流

[读书笔记]当你打开网页的时候,世界都发生了什么_第1张图片

利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。

我们用HTTP举例来说明,首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。
接着,为了传输方便,在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。

在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。

接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

[读书笔记]当你打开网页的时候,世界都发生了什么_第2张图片

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。

这种把数据信息包装起来的做法称为封装(encapsulate)。

1.4.2 确保可靠性的TCP协议

按层次分,TCP位于传输层,提供可靠的字节流服务。

所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。

确保数据能到达目标

为了准确无误地将数据送达目标处,TCP协议采用了三次握手(three-way handshaking)策略。

用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(flag)——SYN(synchronize)和ACK(acknowledgement)。

发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。

若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

[读书笔记]当你打开网页的时候,世界都发生了什么_第3张图片

除了上述三次握手,TCP协议还有其他各种手段来保证通信的可靠性。

1.6 各种协议与HTTP协议的关系

学习了和HTTP协议密不可分的TCP/IP协议族中的各种协议后,我们再通过这张图来了解下IP协议、TCP协议和DNS服务在使用HTTP协议的通信过程中各自发挥了哪些作用。

[读书笔记]当你打开网页的时候,世界都发生了什么_第4张图片

你可能感兴趣的:(tcp,http,读书笔记)