为了了解HTTP,我们有必要事先了解一下TCP/IP协议族,不过仅仅介绍理解HTTP所需要掌握的TCP/IP协议族的概要。
TCP/IP协议是互联网相关的各类协议族的总称,也有人认为TCP/IP是指TCP和IP两种协议
TCP/IP的分层管理
1)应用层:该层决定了向用户提供应用服务通信的活动。
TCP/IP协议族内预存了各类通用的应用服务,比如,FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System ,域名系统)服务,HTTP协议也在该层
2)传输层:该层对上层即应用层提供处于网络连接中的两台计算机之间的数据传输。
在该层中有两个性质不同的协议,TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)
3)网络层(又名网络互连层):该层用来处理网络上流动的数据包(数据包:网络传输中最小的数据单位)。
该层规定了通过怎样的传输路径到达对方计算机,即从众多的选项内选择一条传输路径
4)链路层(又名数据链路层,网络接口层):处理连接网络的硬件部分。
包括操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡)、光线等物理可见部分
ISO提出的OSI(Open System Interconnection)模型将网络分为七层:即应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,不在这里讲
TCP/IP通信
1)利用TCP/IP协议族进行通信时,会通过分层的顺序与对方进行通信,发送端从应用层往下走,接收端往应用层上走
2)为了传输的方便,在传输层(TCP协议)把应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层(IP协议),在网络层(IP协议)中增加作为通信目的地MAC地址后转发给链路层。
3)封装:发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所需的首部信息,反之,接收端在层与层之间传输数据时,每经过一层会把对应的首部信息去掉。
负责传输的IP协议
IP(Internet Protocol)网际协议位于网络层,它的作用是把数据包传送给对方,而要确保传送给对方,需要满足各类条件,其中两个重要的条件是IP地址和MAC地址(Media Access Control Address)
1)IP地址指明了节点被分配到的地址,MAC地址是指网卡所属固定地址。
2)IP地址可以和MAC地址进行匹配,IP地址可变换,但MAC地址基本不更改。
3)通常情况下,通信的双方要经过多台计算机和网络设备中转才能连接,会采用ARP协议(Address Resolution Prorocol)用以解析地址,根据通信方的IP地址反查出对应的MAC地址,因为在中转的过程中,会利用下一站中转设备的MAC地址来搜索下一个中转目标。
4)路由机制:在到达通信目标前的中转过程中,计算机和路由器设备只能获悉粗略的传输路线
确保可靠性的TCP协议
TCP位于传输层,提供可靠的字节流服务(将大块的数据分割成报文段位单位的数据包)
为了准确无误将数据送到目标,TCP协议采用了三次握手(threeway handshaking)策略。
1)发送端:发送一个带有SYN标志的数据包给对方
2)接收端:回传一个带有SYN/ACK标志的数据包以表示传达确认信息
3)发送端:回传一个带有ACK标志的数据包,代表“握手”结束
负责解析域名的DNS服务
DNS(Domain Name System)服务和HTTP协议一样位于应用层的协议,它提供域名到IP地址之间的解析服务。
用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问
总结