|
如题,所示我将我所理解的一次双机通讯过程整理出来,但是不知道理解的是否正确,还希望大家给指点:
当主机A向服务器B发出浏览网页的请求,比如在浏览器中输入http://192.168.1.2,回车确认后发生的过程。(注不考虑DNS解晰等问题),以下步骤有先后顺序。
主机A操作步骤
1操作系统(网卡驱动上的TCP/IP模块) 随机打开一个端口,比如:1520
2.通过网卡驱动 查询ARP缓存,检查是否有目标法址192.168.1.2的mac地址,假设没有找到地址.
3.主机A的网卡驱动模块发出ARP广播。
4.依据TCP/IP设置,检查目标IP地址与自己的IP地址不在一个网段中,网关的IP地址是通过微机的路由表获得,所以通过广播获取网关的MAC地址,即路由器e1的mac地址,2222.2222.2222。 此时网络上发出第一个数据包(ARP广播包),数据包到达路由器,这里是数据包还是数据帧不能确认?
路由器操作步骤:
5.路由器收到数据,通过解封装对比路由表,检查路由器中的ARP表,假设没有发现相关缓存,但是发现有目的网段路由,重新
封装数据包,源、目的IP不变,源MAC为路由器e0的mac3333.3333.3333,目标mac是ffff.ffff.ffff的广播地址。
服务器B的操作步骤:
6.服务器B收到广播后,将自己的MAC地址以ARP包形式发送给路由器,路由器将服务器B的MAC地址发送给主机A。
主机A操作步骤:
7.主机A的传输层发出三次握手连接信号,经过IP封装,MAC封装,与服务器B建立连接(硬连接)。
8.主机A应用层发出数据、对数据进行编码、建立应用程序间的会话。192.168.2.2 1520 192.168.1.2 80
9.主机A传输层,将应用层传来的数据分段,封装TCP头,再经过网络层、数据链路层的封装,将数据传送到服务器B。
结论是:一次完整的主机通信,不应该是TCP/IP四层从上到下的顺序,正确顺序应该是:
1.网际层的ARP/RARP获取目标地址,然后是传输层建立连接
2.传输层建立端到端的连接。
3.应用层建立应用程序之间的会话。
4.应用层发出数据、传输层分段封装数据、网际层、数据链路层的封装后,数据发送到目的端。
[ 本帖最后由 fsdjsb 于 2009-5-28 12:52 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?会员注册
x
|