《图解http》读书笔记(一)

Posted by WWJ Blog on February 15, 2020

图解HTTP读书笔记–TCP/IP协议

网络基础,TCP/IP

通常使用的网络(包括互联网)都是在TCP/IP协议族的基础上运作的,HTTP协议属于它内部的一个子集。

TCP/IP协议族

计算机与网络设备需要通信,就必须基于相同的通信方法。比如:如何探测到通信目标、由那一边开始发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要实现确认好。不同的硬件、操作系统之间的通信,都需要特定的规则,我们把这一系列规则都叫做协议。

TCP/IP是互联网中各类协议的总称

TCP/IP的分层管理

TCP/IP协议族里最重要的一点就是分层。TCP/IP协议族按层次可分为:应用层、传输层、网络层和数据链路层。 分层之后各层只需要关注本层内部的实现,对其他各层中数据是怎么传输的都不用考虑。

TCP/IP协议族各层的作用如下:

  • 应用层:应用层决定了向用户提供应用服务时通信的活动。TCP/IP协议族内部预存了各类通用的应用服务,如FTP(文件传输协议)、DNS(域名解析服务)。HTTP协议也处于该层
  • 传输层:传输层提供处于网络链接中两台计算机之间的数据传输。
  • 网络层:网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。与对方计算机之间通过多少台计算机或网络设备进行传输时,网络层的作用就是在众多选项中选择一条最合适的传输路线。
  • 链路层:用来处理连接网络的硬件部分,包括操作系统、硬件的设备驱动、网卡、光纤等。

TCP/IP通信流

Alt text

我们用HTTP来举例说明上图数据在客户端和服务端之间的传输过程。

首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。 接着,为了传输方便,在传输层(TCP协议)将从应用层获取到的数据(HTTP请求报文)进行分割。 在网络层(IP协议),将数据增加MAC地址后转发给链路层。 接收端的服务器在链路层接收到数据,按序往上发送,一直到应用层。

与HTTP密切相关的协议:IP、TCP和DNS

一、负责传输的IP协议 IP协议的作用就是负责将数据包传输给对方,确保能正确传输需要各种条件,而其中最重要的两个条件就是IP地址和MAC地址。 IP地址是节点被分配到的地址,而MAC地址是指网卡所属的固定地址,IP地址可变,而MAC地址基本上不会发生改变。 在网络中,通信双方处于同一局域网的情况很少见,通常情况是通过多台计算机和网络设备的中转才能将数据传给对方。在中转的过程中,会利用下一设备的MAC地址来搜索下一个中转目标,这时会采用ARP协议,ARP是一种解析地址的协议,根据通信方的IP地址就可以查到其对应的MAC地址。

二、确保稳定性的TCP协议 为了确保将数据准确无误的传动给目标方,TCP协议采用三次握手策略。即SYN、SYN/ACK、ACK标记。

三、负责域名解析的DNS服务 DNS服务和HTTP协议都处于应用层,它提供域名到IP地址的解析服务,或逆向通过IP地址查找域名。