0 本节主要内容

问题描述
解决思路

1 问题描述

通过一个应用场景来回顾计算机网络涉及到的协议(所有层)。如下图所示场景:

  • 学生Bob将笔记本电脑用一根以太网电缆连接到学校的以太网交换机;
  • 交换机又与学校的路由器相连;
  • 学校的这台路由器与一个ISP连接,本例中ISP为comcast.net,该ISP为学校提供DNS服务;
  • 现在Bob要访问www.google.com主页。
    计算机网络:知识回顾-LMLPHP

2 解决思路

2.1 连接到Internet

计算机网络:知识回顾-LMLPHP

  • 连接笔记本电脑需要获得,假设通过DHCP获得;
  • DHCP请求封装UDP头,封装IP头,封装802.3以太网帧;
  • DHCP请求是一个广播报文,所以请求报文的802.3以太网帧目的地址填广播地址(FFFFFFFF),该报文被路由器上运行的DHCP服务器接收;
  • 以太网去头部、IP去头部、UDP去头部到DHCP;
  • DHCP服务器制作DHCP ACK,其中包含客户端的IP地址、客户端的第一跳路由器的IP地址以及DNS服务器的名称和IP地址;
  • 在DHCP服务器封装成帧,通过LAN转发帧();
  • DHCP客户端接收DHCP ACK回复。

客户端现在有IP地址,知道DNS服务器的名称和地址,第一跳路由器的IP地址。

2.2 使用ARP协议

计算机网络:知识回顾-LMLPHP

  • 在发送HTTP请求之前,需要通过知道www.google.com的IP地址;
  • 创建DNS查询,用UDP封装,用IP封装,用Eth(以太网)封装。要向路由器发送帧,需要通过学习到路由器接口的MAC地址;
  • 路由器接收到客户端发起的ARP查询广播,通过给出路由器接口MAC地址的ARP响应报文进行回复;
  • 客户端现在知道第一跳路由器的MAC地址,所以现在可以发送包含DNS查询的帧。

2.3 使用DNS协议

计算机网络:知识回顾-LMLPHP

  • 包含DNS查询的IP数据报通过LAN交换机从客户端转发到第一跳路由器;
  • 从校园网转发到Comcast网络的IP数据报,路由(RIP、OSPF、IS-IS和/或BGP路由协议创建的表)到DNS服务器;
  • DNS以www.google.com的IP地址回复客户端。

2.4 承载HTTP的TCP连接

计算机网络:知识回顾-LMLPHP

  • 要发送HTTP请求,客户端首先打开到web服务器的TCP套接字;
  • TCP SYN段(TCP三向握手中的步骤1)域间路由到web服务器;
  • web服务器使用TCP SYN/ACK进行响应(TCP三次握手中的步骤2);
  • 客户端使用TCP ACK进行响应(TCP三次握手中的步骤3);
  • TCP连接已建立!

2.5 HTTP请求/响应

计算机网络:知识回顾-LMLPHP

  • HTTP请求发送到TCP套接字;
  • 包含HTTP请求的IP数据报路由到www.google.com;
  • web服务器以HTTP回复(包含网页)进行响应;
  • 包含HTTP回复的IP数据报路由回客户端。
12-29 07:09