计算机网络面试
参考:http://blog.csdn.net/tzy3013218117/article/details/51568382
ARP协议的工作原理:
ARP协议:地址解析协议。每台主机都会有一个ARP缓冲表。里面放的是IP地址与MAC地址的映射。当一个主机要给另一个主机发送数据包时,先查找自己的ARP列表中是否有该IP地址对应的MAC地址。如果有,则直接将数据包发送给这个MAC地址,如果没有,则向本网段发送一个ARP请求广播包,查询此目的主机的MAC地址。这个ARP请求包中包含源IP地址,目的主机IP地址,源主机MAC地址。网络中的所有主机收到此ARP包之后,首先看自己的IP地址是否和数据包中的IP地址一致,如过不一致就忽略此包。如果一致,该主机就将发送给端的IP地址和MAC地址添加到自己的ARP列表里面。如果该信息已经存在,就覆盖此信息。然后,该主机向源主机发送一个ARP响应包,告诉源主机自己就是要找的MAC主机。源主机收到数据包后,将IP地址和MAC地址加到ARP列表里面,利用此信息开始发送数据。如果源主机一致没有收到ARP响应包,则ARP查询失败。
在浏览器中输入www.baidu.com后执行的全过程:
1.客户端浏览器通过DNS解析到www.baidu.com的域名IP地址220.181.27.48,通过这个IP地址找到客户端到 服务器端的 路径。客户端浏览器 发起一个 HTTP会话,到220.181.27.48,然后通过TCP将数据进行封装,传输到网络层。
2.在客户端的传输层,把HTTP请求分成报文段,添加源端口和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口 如 5000,与服务器进行交换,服务器把响应的请求返回给客户端5000端口。然后使用IP地址查找目的端。
3.客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器。
4.客户端的链路层,包通过链路层发送到路由器,通过ARP协议查找给定的IP地址对应的MAC地址,然后发送ARP请求查找到目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了然后发送IP数据包到服务器地址。