欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【20190220】HTTP-知识点理解:TCP/IP与HTTP

程序员文章站 2022-07-05 16:00:15
TCP/IP是互联网相关的各类协议族的总称,HTTP属于它内部的一个子集。 一、TCP/TP的分层管理 1. 应用层 应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务,比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Do ......

tcp/ip是互联网相关的各类协议族的总称,http属于它内部的一个子集。

一、tcp/tp的分层管理

1. 应用层

应用层决定了向用户提供应用服务时通信的活动。tcp/ip 协议族内预存了各类通用的应用服务,比如,ftp(file transfer protocol,文件传输协议)和 dns(domain name system,域名系统)服务。http协议也处于该层。

  • dns服务:提供域名到 ip 地址之间的解析服务。用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 ip地址访问。而计算机更擅长处理一长串数字的ip地址,为了解决ip地址与域名之间互相转换的问题,dns 服务应运而生。

 

2. 传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。该层包括tcp(transmission control protocol,传输控制协议)和 udp(user data protocol,用户数据报协议)。

  • tcp协议:提供可靠的字节流服务。首先,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。然后采用三次握手(three-way handshaking)策略等手段确保数据能到达目标。

三次握手策略:握手过程中使用了 tcp 的标志(flag) —— syn(synchronize) 和ack(acknowledgement)。发送端首先发送一个带 syn 标志的数据包给对方。接收端收到后,回传一个带有 syn/ack 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ack 标志的数据包,代表“握手”结束。若在握手过程中某个阶段莫名中断,tcp 协议会再次以相同的顺序发送相同的数据包。

 

3. 网络层(网络互联层)

该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。ip协议属于该层。

网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。

  • ip协议:ip 协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是 ip 地址和 mac地址(media access control address)。

ip 地址指明了节点被分配到的地址,mac 地址是指网卡所属的固定地址。ip 地址可变换,但 mac地址基本上不会更改。在网络上,通信的双方在同一局域网(lan)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 mac地址来搜索下一个中转目标。这时,会采用 arp 协议(address resolution protocol)。

  • arp协议:一种用以解析地址的协议,根据通信方的 ip 地址就可以反查出对应的 mac 地址。

 

4. 链路层(数据链路层/网络接口层)

用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、nic(network interface card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。

 

二、tcp/ip的通信传输

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

如客户端在应用层发出一个http请求报文,每向下通过一层则在http数据上加上一个该层所属的首部信息。而接收端从链路层接收到数据后,每向上一层则会把对应的首部消去,最后传输到应用层才是真正的http请求。

【20190220】HTTP-知识点理解:TCP/IP与HTTP

三、各种协议与http协议的关系

【20190220】HTTP-知识点理解:TCP/IP与HTTP