您的位置:首页 > 其它

点击一个网页链接,然后发生了什么?

2016-08-03 12:54 393 查看
首先我们认识下网页链接的组成:http://www.baidu.com/

1. http是一个应用层的协议,详细的这里不介绍。

2. DNS解析:将www.baidu.com解析成目的IP地址,如果URL里不包含端口号,则会使用该协议的默认端口号。

在本地机器上配置网络时都会填写DNS,这样本机就会把URL发送给这个配置的DNS服务器;如果能够找到相应的URL则返回其IP,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看成一个树状结果,该请求将一直发送到根直到得到结果。

3. 建立socket连接

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

4. 请求连接成功建立后,开始向web服务器发送请求,这个请求一般是Get或Post命令(Post用于Form参数的传递)) 

5. 应答web服务器收到这个请求,进行处理。如果找到文件,web服务器将该内容传送给响应的Web浏览器。

6. 关闭连接

数据包在TCP/IP模型中的过程:

1. 应用层: 根据当前的需求和动作,结合应用层的协议,确定发送的数据内容,会把这些数据放到一个缓冲区内,然后形成了应用层的报文data

2. 传输层: 这些数据通过传输层发送,比如tcp协议。在该层被打上传输层的报头,主要包含端口号,以及tcp的各种制信息。

tcp是一种端到端的协议,利用这些协议,比如tcp首部的确认序号,根据这些数字,发送的一方不断的进行发送等待确认,发送一个数据段后,会开启一个计数器,只有收到确认后才会发送下一个,如果超过计数时间仍未收到确认则重发,在接受端收到错误数据,则将其丢弃,这将导致发送端超时重发。

3. 网络层:待发送的数据段送到网络层,在网络层被打包,这样封装上了网络层的报头,报头内容含有源及目的地IP地址,该层数据发送单元被称为packet。查找过程如下:

查找过程:

1. 根据目的地址,得到目的网络号,如果处在同一个内网,则可以直接发送

2. 如果不是,则查询路由器,找到一个路由

3. 如果找不到明确的路由,此时路由表中还会有默认网关,也可称为缺省网关,IP用缺省的网关地址将一个数据传送到下一个指定的路由器,所以网关也可能是路由器,也可能只是内网向特定路由器传输数据的网关。

4.  路由器接收到数据后,它再次为远程主机或网络查询路由,若还未找到路由,该数据包将发送到该路由器的缺省网关地址,而数据包中包含一个最大路由跳数。如果超过这个条数,则会丢弃数据包,这样可以防止无限传递。工作在网络层,传输层的数据对它是透明的

5. 如果上述步骤还未成功,则该数据包就不能被传送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐