TCP/IP协议族的协议挺多的,我们精力有限,不可能一个个都了如指掌,那就挑一些与HTTP协议关系了解吧~
负责传输的IP协议
按层次分,IP协议位于网络层。
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件,其中两个重要的条件是IP地址和MAC地址。
IP地址就像现实世界中的地址,而MAC地址,则更像一个人的身份证号。MAC地址是固定的,IP地址是可变的。
你或许会有疑问,光有MAC没有IP,或者光有IP没有MAC,行不行?
答案是不行。
光有MAC地址,就好像某人在上海,你在广州喊“身份证是XXX的,你站出来”,对方听不到。
光有IP地址,就像某个人在一栋大厦里,你到了该大厦,但你不知道对方具体是谁,你一样找不到对方。
相信你对IP地址跟MAC地址已经有了较深的理解,我们接着往下看~
确保可靠性的TCP协议
网络世界,不确定性才是确定的,无论哪台计算机、哪台网络设备,都无法全面掌握互联网的细节。
这就很矛盾了,因为我们知道TCP位于传输层,提供可靠的字节流服务。
所谓的字节流服务,是为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。
而可靠的传输服务是指,能够把数据准确可靠地传给对方。
简言之,TCP协议既要负责分割数据,又要确保数据最终是否送达对方。
为了准确无误地将数据送达目标处,TCP协议采用三次握手策略。
借用《图解HTTP》一书中的插图:
发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表握手结束。
负责域名解析的DNS服务
用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。因为与IP地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。
但要让计算机去理解名称,也是比较困难的,计算机更擅长理解一长串数字。
为了解决上述问题,DNS服务应运而生。DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。