在浏览器中输入www.baidu.com后执行的全部过程
2016-09-25 22:07
260 查看
最近看了一些计算机网络方面的内容,想尝试着用它来解释一下平时浏览百度的过程:
1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
相关文章推荐
- OnPaint和OnDraw的区别
- main函数的参数
- 在CI框架中使用mail类
- HDU 1021 Fibonacci Again
- 玲珑OJ 1045 - I. Quailty and LRU Algorithm 模拟双向链表
- GNU工具链(GNU toolchain)
- http://blog.csdn.net/a491057947/article/details/46724707
- 版本更新 main方法
- 什么是RAID?RAID有什么用?RAID原理
- RemoteSever的通信AIDL
- POJ1804-Brainman
- [Usaco1.3&luogu1209] Barn Repair
- 自建mail服务器之二:hmailserver
- UVa - 442 - Matrix Chain Multiplication(用栈实现简单的表达式解析)
- UVa - 514 - Rails(栈-stack)
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- 安徽省2016“京胜杯”程序设计大赛_D_梯田AGAIN
- 鸡血搬前行。
- 【CoderForces 501B】Misha and Changing Handles vector && pair
- 自建mail服务器之一:dns解析