图解HTTP第一章
- 通常使用的网络是在TCP/IP协议族的基础上运作的,而HTTP属于他内部的一个子集。
TCP/IP的分层管理
TCP/IP协议族按照层次分别分为以下四层
应用层
传输层
网络层
数据链路层
应用层
应用层决定了向用户提供应用服务时通信的活动,TCP/IP协议族内预存了各类通用的应用服务,比如FTP(文件传输协议) DNS(域名系统)服务 就是其中两类。 HTTP协议也处于该层。
- 传输层
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
在传输层有两个性质不同的协议: TCP(传输控制协议) 和UDP(用户数据报协议)
- 网络层(又名网络互联层)
网络层用来处理网络上流动的数据包。数据包是网络传输的最小数据单位,该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
- 链路层
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(网络适配器,即网卡)、及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围内。
HTTP发送请求的流程
:
客户端再应用层发出一个想看某个Web界面的HTTP请求。
接着,为了传输方便,在传输层(TCP协议)把从应用层出收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。
接收端的服务器在链路层接收到数据之后,按序往上层发送,一直到应用层,当传输到应用层,才能算真正的接收到由客户端发送过来的HTTP请求。
发送端在层与层之间传输数据的时候,每经过一层,必定会被打上一个该层所属的首部信息。反之接收层在层与层传输数据时,每经过一层时会把对应的首部消去。
这种把数据信息包装起来的做法称为封装(encapsulate)
1.4 IP TCP DNS
IP
是一种协议
IP
协议的作用是把各种数据包传送给对方。
但是要确保准确的传送给对方,需要很多种条件,其中最重要的是IP地址
和MAC
地址。
IP
地址指明了节点被分配到的地址。
MAC地址
指的是网络所属的固定地址。
我的理解: 通过
IP
确定在某个范围,通过MAC
地址确定哪台电脑
- 使用ARP协议凭借MAC地址进行通信
IP
间的通讯一般需要多个中转站才能进行通讯。
在进行中转时,会利用下一站中转设备的MAC
地址来搜索出下一个中转目标。这时会采用ARP协议
ARP(地址解析协议)
是一种用以解析地址的协议。根据通信方的IP
地址就可以反查出对应的MAC
地址
- 没有人能够全面掌握互联网中的传输状况
在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制成为路由选择。
跟快递分发机制有些类似,送到某个区域的集散中心,在由集散中心分配到合适的集散中心知道到达发送目的地。
1.4.2 确保可靠性的TCP
TCP协议
为了更容易传送大数据会把数据分割以报文为单位的数据包,而且TCP协议
能够确认数据最终是否送达到对方。
- 三次握手
发送端首先发送一个带SYN
标志的数据包给对方,接收端接受到之后回传一个带有SYN/ACK
标志的数据包以示传达确认信息,最后发送端再回传一个ACK
标志的数据包,代表握手成功。
若在握手过程中失败,TCP协议
会再次以相同的顺序发送相同的数据包。
1.5负责域名解析的DNS服务
DNS协议
是通过域名查找IP地址,通过IP地址反查域名服务