HTTP系列之TCP/IP/URL

本文介绍了TCP/IP协议族的基本概念及其分层结构,包括应用层、传输层、网络层和数据链路层的功能与作用。详细解释了DNS解析过程、TCP三次握手流程以及IP协议的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP/IP协议族

计算机与网络设备要相互通信,双方就必须基于相同的方法,如:如何探测到通信目标,由哪边先发起通信,使用哪种语言进行通信,如何结束通信等都需要事先确定。不同的硬件、操作系统之间的通信,所有的一切都需要一种规则,而我们就把这种规则称之为协议(Protocol)。
TCP/IP协议族是互联网相关的各类协议族的总称。

分层管理

TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层、数据链路层。

  • 应用层:决定了向用户提供应用服务时通信的活动。TCP/IP协议族内预存了各类通用的应用服务。如:HTTP,FTP(文件传输协议)和DNS(域名系统)。
  • 传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。在传输层有2个性质不同的协议TCP和UDP。
  • 网络层(又名网络互连层):网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方的计算机,比把数据包传送给对方。
  • 链路层(又名数据链路层,网络接口层):用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NTC(网络适配器,即网卡),及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。

TCP/IP通信传输流

图片描述
TCP/IP协议族进行通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。
我们用http举例来说:
图片描述

应用层

DNS(负责域名解析)

DNS服务位于应用层,它提供域名到IP地址之间的解析服务。
举例Chrome浏览器解析 www.linux178.com 这个域名(准确的叫法应该是主机名)对应的IP地址:

1 Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否有www.linux178.com 对应的条目,而且没有过期,如果有且没有过期则解析到此结束。
// chrome://net-internals/#dns 来进行查看自身的DNS缓存

2 如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统自身的DNS缓存,如果找到且没有过期则停止搜索解析到此结束.
// 怎么查看操作系统自身的DNS缓存,以Windows系统为例,可以在命令行下使用 ipconfig /displaydns 来进行查看  

3 如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址,如果有则解析成功。

4 如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器(一般是电信运营商提供的)发起域名解析请求。

运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。

如果没有找到目,则有运营商的DNS代我们的浏览器发起迭代DNS解析请求,它首先是会找根域的DNS的IP地址,就会向其发起请求,根域发现这是一个顶级域com域的一个域名,于是就告诉运营商的DNS我不知道这个域名的IP地址,但是我知道com域的IP地址,你去找它去。

于是运营商的DNS就得到了com域的IP地址,又向com域的IP地址发起了请求,com域这台服务器告诉运营商的DNS我不知道这个域名的IP地址,但是我知道linux178.com这个域的DNS地址,你去找它去。

于是运营商的DNS又向linux178.com这个域名的DNS地址发起请求,这个时候linux178.com域的DNS服务器一查,诶,果真在我这里,于是就把这个域名对应的IP地址发送给运营商的DNS服务器,这个时候运营商的DNS服务器就拿到了这个域名对应的IP地址,并返回给Windows系统内核,内核又把结果返回给浏览器。

传输层

TCP协议

TCP位于传输层,提供可靠的字节流服务。

字节流服务是指为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。
三次握手

为了确保数据准确送达目标处,TCP采用三次握手策略。

  • 第一次:建立连接时,客户端发送syn(synchronize)包到服务器,并进入SYN_SEND状态,等待服务器确认;
  • 第二次:服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包,即SYN+ACK(acknowledgement)包,此时服务器进入SYN_RECV状态;
  • 第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。

图片描述

网络层

IP协议

作用:把各种数据包传送给接收方,其中IP地址和MAC地址用于确定接收方的位置。

ARP(Adress Resolution Protocol)是一种用以解析地址的协议,可以根据IP地址反查出对应的MAC地址

图片描述

URI与URL

  • URI: uniform resource identifier统一资源标识符
  • URL: uniform resource locator统一资源定位符,是通过web浏览器访问资源的
  • URN: uniform resource name,统一资源命名

详细说明:标识互联网上的内容

WIKI: “URI可以分为URL,URN或同时具备locators 和names特性的一个东西。URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:URN确定了东西的身份,URL提供了找到它的方式。”

图片描述

URI格式

图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值