HTTP基础之 TCP/ IP 协议族
Posted wanda
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP基础之 TCP/ IP 协议族相关的知识,希望对你有一定的参考价值。
通常使用的网络( 包括 互 联网) 是在TCP/ IP 协议族的基础上运作的。 而 HTTP 属于它内部的一个子集。
TCP/ IP 协议族里重要的一点就是分层。 TCP/ IP 协议族按层次分别分为以下 4 层: 应用层、 传输层、 网络层 和数据链路层。
应用层
应用层决定向用户提供应服务时通信的活动。TCP/ IP 协议族内预存了各类通用的应用 服务。比如,FTP( File Transfer Protocol, 文件传输 协议) 和 DNS(Domain Name System, 域名 系统) 服务就是其中 两类。 HTTP 协议也处于该层。
传输层
传输层对上层应用层,提供处于网络连接中的两台 计算机 之间的数据传输。 在传输层有两个性质不同的协议: TCP( Transmission Control Protocol,传输控制协议) 和UDP( User Data Protocol,用户数据报协议)。
网络层( 又名网络互连层)
网络层用来处理在网络上流动的数据包。 数据包是网络传输的最小数据单位。 该层规定了通过怎样的路径( 所谓的传输路线) 到达对方算机, 并把数据包传送给对方。 与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
链路层( 又名数据链路层,网络接口层)
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC( Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分( 还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用 范围之内。
我们用HTTP举例来说明,首先作为发送端的客户端在应用层 HTTP 协议)发出一个想看某个Web页面的 HTTP 请求。 接着,为了传输方便,在传输层( TCP 协议)把从应用层处收到的数据( HTTP请求报文) 进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层( IP协议),增加作为通信目的地的 MAC地址后转发给链路层。 这样一来,发往网络的通信请求就准备齐全了。 接收端的服务器在链路层接收到 数据, 按序往上层发送, 一直到应用层。 当传输到应用层, 才能算真正接收到由客户端发送过来的HTTP请求。
1. 与 HTTP 关系 密切 的 协议 : IP、 TCP 和 DNS
1.1 负责传输的IP协议
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址( Media Access Control Address)。 IP地址指明了节点被分配到的地址, MAC地址是指网卡所属的固定地址。 IP地址可以和 MAC地址进行配对。 IP地址可变换,但MAC地址基本上不会更改。
1.2 确保可靠性的TCP协议
为了准确无误地将数据送达目标处,TCP协议采用了 三次 握手( three- way handshaking)策略。用TCP协议 把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用 了TCP的标志( flag)—— SYN( synchronize)和 ACK( acknowledgement)。发送端首先发送 一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有SYN/ ACK标志的数据包以示传达确认信息。最后, 发送端再回传一个带ACK标志的数据包,代表“ 握手”结束。若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。
1.3 负责域名解析的DNS服务
用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。因为与IP地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。DNS 协议提供通过域名查找IP地址, 或逆向从IP地址反查域名的服务。
1.4 各种协议与HTTP协议的关系
以上是关于HTTP基础之 TCP/ IP 协议族的主要内容,如果未能解决你的问题,请参考以下文章