(求助)访问网站数据包详细流程解析

wocholas1 2010-05-07 10:20:25
TOP图很简单,就是一台PC,然后中间是路由器,外面接internet,
在PC上访问internet的网站,比如www.sina.com,我就在浏览器上键入这个域名点确定.

现在请达人帮忙分析期间数据包的详细流程,
过程要非常详细,比如首先是DNS,我输入的是sina.com,数据包如何能找到对应的ip地址,然后是ARP的过程,这个是领导说的,我也不是很清楚是什么意思.接着最重要的就是数据包在转发到路由器lan口,wan口最后到达网站服务器中的详细过程以及在本地路由做NAT的过程,比如源IP 目的IP,源MAC 目的MAC,源端口 目的端口的变化.还有数据包SYN ACK FIN 序列号的变化.
当然过程越详细越好,这是一道题目,对我来说很重要,希望达人能解答,其实大概的过程我也了解,只是希望有强人能好好的归纳总结下。

=====================================================================================================
首先,应用层的浏览器会生成一个数据包,
然后这个数据包到了传输层封装上TCP头,
其源端口为本地随机分配的端口,目的端口为80,
接着到下一层网络层封装上IP头,
这时候主机会跟公司DNS服务器通信,
请求解析www.sina.com的IP地址,
DNS服务器应答后主机就知道了新浪的IP地址。
然后主机为这个数据包封装上ip头,
其目的IP是远端服务器的IP,源IP是本地PC的IP,
然后PC会对目的IP进行判断是否为本网段的IP,
判断为非本地IP后向下一层数据链路层。
这时会发送一个ARP请求,
内容是谁是192.168.1.1(网关),
得到应答后PC就有了网关的MAC地址。
所以这时候数据链路层会封装成数据帧,
目的地址为网关的MAC地址。
当报文到达路由器后,路由器会发现这是内部主机发送到internet的报文,需要做NAT,
首先会检查网络地址转换表,看有没有该PC的转换记录,
如果没有的话就会分选择一个未使用的端口号分配给PC,
将wan口的IP地址也分配给PC,
并在网络地址转换表中创建一条转换记录,将发送报文pc的ip填到in_ip,
分配的wan口IP填到out_ip,所选择的端口号填到out_port,
这时报文的源IP也会变成分配的全局IP,源端口会变成分配的端口,目的IP不变。
路由器通过对IP地址进行判断是否为本地网段地址,如果不是又继续发送ARP请求下
一跳的MAC地址,然后封装数据帧的时候目的MAC为下一条网关的MAC,源地址会变成本地网关的MAC而不是
PC的MAC,因为帧经过路由的时候帧头会被丢弃重新封装帧头.
直到发送到服务器,服务器在接收到数据包后,会发送一个确认,其过程跟之前类似,
然后到了主机最后一个路由器的时候,
路由器接收到包后查询转换记录,把out_ip转换成in_ip,out_port转换成in_port,
然后主机就可以收到服务器返回来的SYN和ACK了,
最后再发送一个ACK给服务器双方就算是正式建立连接可以进行通信了。


各位大大帮帮忙啊,真的很急啊,能有啥完善的麻烦大家提醒下,小弟谢了。
...全文
854 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzhiping82 2010-12-15
  • 打赏
  • 举报
回复
现在的世道和几年前不一样了,原来呢,大家都是共同学习,互相请教,都处于原始技术状态。现在,一部分人先富起来了,富起来的人有富起来的圈子,处于低层的呢,他们看不上了,也不感兴趣了,所以你问错了。你应该说,多少RMB求购!!!再说,现在的网站都是广告赚钱,对技术方面的讨论很少了,君不见此网站到处都是旗帜飘扬。
wocholas1 2010-05-07
  • 打赏
  • 举报
回复
世态炎凉啊。。。。。

3,812

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用 交换及路由技术相关问题讨论专区
社区管理员
  • 交换及路由技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧