【20190220】HTTP-知识点理解:TCP/IP与HTTP
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请求。