打开浏览器,输入网址,经过了哪些步骤才能将页面呈现在你的浏览器上

  1. 输入网址后,首先会让dns域名解析服务器将你输入的网站转化为对应的ip。(dns就是一个分布式数据库,上面记录了所有的域名和其ip地址的对应关系)
  2. 通过TCP/IP协议簇传输到服务端,TCP/IP协议簇是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为
    TCP/IP协议。TCP是一种面向连接的可靠的字节流服务协议,这是因为TCP必须先经过三次握手建立连接之后才能交换数据,每个收到的数据包都会向发送方发送ack确认,以保证发送成功
  3. TCP/IP协议分为四层:应用层、TCP传输控制层、IP网络层、链路层
    这个就像很多复杂的系统一样,网络协议通过分层来明确每一层的工作职责,通过定义明确的接口来协同工作,每个层都可以使用下面各层的功能,而不必担心各层是如何实现的。其中【应用层】 : 提供特定于应用程序的协议,(比如负责浏览器和网络服务器相互通信的http传输协议)负责文件传输的ftp协议负责电子浏览器客户端检索邮件的IMAP协议,【传输控制层】:将数据包发送到计算机上使用特定端口号的应用程序上,【网络层】: 使用ip地址将数据包发送到特定的计算机【链路层】: 负责将二进制数据包与网络信号相互转化
  4. 比如我们想访问淘宝的主页,我们使用应用层的HTTP传输协议,来请求获取html文本消息在发送之前会被分解成很多片段,我们称之为数据包,数据包通过应用层进入tcp传输控制层后,每一个数据包都会被分配一个端口号,端口号用来确定目标计算机的哪一个应用程序要接收并使用该数据包。
    进入IP网络层后,每个数据包将会赋予目标计算机的IP地址,IP 是不可靠的无连接协议,他并不关心数据包是否到达目的地,也不关心连接和端口号,他的工作时发送数据包并将其路由到目标计算机,其中每一个数据包都是独立的,互不依赖的,所以呢有可能会乱序到达目标地址,或者在传输途中丢失,,那如何保证数据包到达和顺序正确呢?这都交给了TCP,这也就体现了分层的作用
    当数据包过大时,在IP层会进行分包,由于每个数据包在物理链路层走的物理链路不一样,传输速度也不一样,所以可能会导致数据包乱序到达,但TCP会根据每个数据包身上携带的序号进行排序重组,并且发送方在一个特点时间内,没有收到接收方发来的ack确认时,则发送方会重新传送该数据包。
  5. 有了ip地址和端口号之后,链路层将数据包的文本信息转译为电子信号,然后通过电缆传输,在电缆的另一端的路由器检查每一个数据包中的目标地址,并确定将其发送到何处,最终数据包到达服务器之后,然后数据包从TCP/IP协议族的底部向上运行,当数据包向上通过协议族时,客户端添加的所有路由数据例如IP地址和端口号都将从数据包中剥离出来,当数据到达栈顶时,数据包已经重新恢复成最初始的形式通过端口号可以将数据传递给当前服务器监听该端口的应用程序,应用程序根据当前请求数据做出反应。比如我们现在想获取index.html,服务器则会将路径index.html的数据通过刚才的方式返回给你的电脑,也就是客户端,这样你就看到了淘宝的首页内容。

到这里我们完成了客户端与服务器在互联网中的一次数据交互。

猜你喜欢

转载自blog.csdn.net/weixin_44063225/article/details/111307254