1.访问淘宝过程:
①通过DHCP获取IP地址:DHCP discover、DHCP offer、DHCP request、DHCP ack。
②通过ARP解析获取网关MAC地址:(因为dns和淘宝都是不同网段,所以要通过网关来转发数据)。
-
客户端以广播的形式,发出arp请求,sender ip和sender mac是pc自己的信息,target ip是网关的ip,target mac是全0。
-
网关收到arp请求包,以单播来回应,sender ip和sender mac是网关的信息,target ip和target mac是pc的信息。
-
PC收到arp回包,会根据报文中的sender ip和sender mac更新自己的arp缓存表,完成arp解析,获取到网关的mac。
③通过DNS解析把域名解析成对应的IP地址:
-
因为要访问淘宝的网站,首先得知道www.taobao.com对应的ip地址。
-
先查看本机缓存,再查看hosts文件,都没有,就会将dns请求发到本机设置的dns服务器。
-
dns服务器进行迭代或递归解析,然后将解析结果返回给PC。
-
PC得到淘宝网站的ip。
④建立TCP连接:
-
在传输数据之前,先通过三次握手建立tcp连接,建立一条传输通道。
-
建立连接、三次握手:第一次握手,源ip是pc,目标ip淘宝,源端口随机,目标端口443,syn=1,seq=x。第二次握手,源ip是淘宝,目标ip是PC,源端口443,目标端口pc的随机端口。ack=1 ack number=x+1 syn=1 seq=y。第三次握手,源ip是pc,目标ip淘宝,源端口随机 , 目标端口443,ack=1,ack number y+1。
-
释放连接,四次挥手(根据Connection请求头,如果是keep-alive服务器就保持住tcp连接,如果没有或是close则服务器response传输完后主动关闭tcp连接。当然现在浏览器都是http1.1都默认是keep-alive的,在浏览器tab关闭时,tcp连接关闭)。第一次挥手,PC请求断开,fin=1,seq=u;第二次挥手,淘宝回包,ack=1 , ack number=u+1;第三次挥手,淘宝发送完成,请求断开连接,fin = 1,seq = i;第四次挥手,PC同意断开连接,ack = 1,ack number = i + 1。
-
下载、浏览网页。
⑤HTTP请求:客户端发送request报文,服务器回一个response报文,浏览器把response报文中的html解析成我们能识别的网页,然后就是浏览网页、下载数据,动作完成进行TCP四次挥手断开连接。
二层交换机的工作:二层交换机,基于mac地址表进行数据转发;负责PC和网关的连通性,记录了PC的mac,和网关的mac,分别对应什么接口;根据mac地址表,进行数据转发,实现pc和网关的连通性。
三层交换机的工作:做pc的网关,在svi接口配置上pc的网关ip;做pc的dhcp池;路由,只需要一条默认路由,下一跳是路由器。
路由器的工作:路由:收到数据包,查看目标ip,然后根据路由表进行转发;访问互联网,匹配默认路由,下一跳是对端路由器;给PC回包,匹配明确的静态路由,下一跳是三层交换机;数据转发之前,先完成arp的解析,得到下一跳的mac,然后才能把数据包重封装mac并转发。NAT:因为PC是私网ip,不能访问互联网,所以路由器要把他的源ip转成可以访问互联网的公网ip,也叫源地址转换。
2.打开王者荣耀过程:
-
手机通过DHCP获取到IP地址。
-
手机通过DNS解析王者荣耀服务器的IP。
-
手机通过arp解析出网关的mac,让网关代为转发数据包。
-
网关设备通过arp得到最终目标主机的mac,或者下一跳的mac,进行数据转发。
-
手机通过TCP三次握手,建立与腾讯服务器的数据传输通道。
-
从腾讯服务器,下载补丁文件。
-
进入游戏后服务器与客户端之间主要利用UDP来传输信息,TCP辅助传输一些比较重要的信息。
3.2楼访问6楼的ftp服务器:
用到的技术:NAT。
用到的设备:电脑、路由器。
用到的技术:利用静态NAT,ftp服务器的IP映射成6楼某个空闲的IP地址,这样的话,2楼的主机只要访问这个映射的IP地址,就可以远程登录ftp服务器,进行上传和下载。