免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1093 | 回复: 0
打印 上一主题 下一主题

在浏览器中输入http://www.baidu.com,客户服务器的执行过程分析 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-21 19:21 |只看该作者 |倒序浏览
  现在假设如果我们在客户端(client)浏览器中输入
http://www.baidu.com
, 而baidu.com为要访问的服务器(server),下面详细分析client为了访问server而执行的一系列关于协议的操作:
  1、client浏览器通过DNS解析到
www.baidu.com
的IP地址220.181.27.48,通过这个IP地址找到client到server的路径。client浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
  2、在client的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如server使用80端口监听client的请求,客户端由系统随机选择一个端口如5000,与server进行交换,server把相应的请求返回给client的5000端口。然后使用IP层的IP地址查找目的端。
  3、client的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达server,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达server。
  4、client的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达server的地址。

  当数据包到达server,server端的相应操作如下:
  1、server的链路层,去掉L2的头部,然后通过协议句柄查看应该由那个L3层协议进行处理,在这里为IP。然后链路层使用相应的函数继续处理L3的数据包。
  2、server的网络层,识别出他自己的IP地址220.181.27.48,这就是包中的目的地址,所以包可以发送到给主机,然后去掉L3的头,在查看由那个L4函数句柄来处理。

  整个的过程大概就是上面叙述的这样,如果有什么差错,欢迎提出来,共同讨论。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/29478/showart_235628.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP