前端笔试题总结(六) - 计算机网络篇

1. 用浏览器打开一个网站,会使用到TCP/IP协议族中的哪些协议?


以下文段摘自:知乎_TOAA的回答

假设你用一个全新的浏览器(第一次启动的那种),访问百度(http://www.baidu.com/),在你敲入网址并按下回车之后,将会发生以下神奇的事情:

浏览器先尝试从Host文件中获取http://www.baidu.com/对应的IP地址,如果能取到当然万事大吉大家都能嗨,如果不能,就使用DNS协议来获取IP咯。

在DNS协议中,PC会向你的本地DNS服务器求助(一般是路由器),希望从本地DNS服务器那里得到百度的IP,得到就好,得不到还得向更高层次的DNS服务器求助,最终总能得到百度的IP。

得到百度的IP,下一步是使用TCP协议,建立TCP连接。

在TCP协议中,建立TCP需要与百度服务器握手三次,你先告诉服务器你要给服务器发东西(SYN),服务器应答你并告诉你它也要给你发东西(SYN、ACK),然后你应答服务器(ACK),总共来回了3次,称为3次握手。

不过,建立TCP连接有个前提(或者说给服务器发消息有个前提):你必须能成功地把消息发到服务器上。虽然已经知道IP,但并无啥用(比如说,你在广东,你知道北京的地理坐标经纬度就能到北京了?你得知道有哪些路通往北京吧你得准备盘缠吧你得花时间吧)。

为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议。

我们都知道,你的PC和百度服务器之间一般会有许多路由器之类的东西,IP协议指定了出发地(你的PC)和目的地(服务器);你的数据会经过一个又一个路由器,OSPF决定了会经过那些路由器(用一种叫路由算法的玩意,找出最佳路径);从一个路由器怎么传给下一个路由器?这是ARP协议的JOB,ARP负责求下一个节点的地址(我们不止是要目的地,还要中间节点的地址)。
IP协议使用的是IP地址,整个发送过程中只涉及出发地和目的地2个IP地址,而ARP协议使用的是MAC地址,整个发送过程中涉及到每一个节点的MAP地址

现在,我们能和服务器通信,还建立了TCP连接,下一步干嘛,当然是用HTTP协议请求网页内容咯。

你发个HTTP请求报文给服务器,如果服务器禁止你访问它就给你回个"Forbidden",如果它暂时挂掉了就给你回个“内部服务错误”,如果它正常才给你回个“OK“并将你要的数据传给你;如果你还需要其它的东西再去跟它要(它一般还会给你的-_-)。

你收到了服务器的回复,是一坨HTML形式的文本。浏览器必须要能够理解文本的内容,并快速地渲染到屏幕上(浏览器一般用有限自动机来理解文本内容,渲染的话就各看本事了,之所以微软IE卡成狗而谷歌浏览器很6,就是它们的渲染速度不同...)

渲染出来后,你就看到百度的首页了


下面就简单介绍一下TCP/IP协议族都包含哪些协议,其中在打开一个网站时,会用到的协议将用蓝色字体标注:

  • 应用层:
    • HTTP(超文本传输协议):所有的WWW文件都必须遵守这个标准。
    • SMTP(电子邮件传输协议):保证可靠且有效的电子邮件传输。
    • TELNET:远程登录服务应用。
  • 传输层:
    • TCP(传输控制协议):负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。
    • UDP(用户数据包协议):DNS使用UDP传输。无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
  • 网络层:
    • IP:给因特网的每一台联网设备规定一个地址。
    • ICMP:提供网络传输中的差错检测。
    • ARP:将本机的默认网关IP地址映射成MAC物理地址。
  • 数据链路层:
    • RARP:反向地址转换协议。允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。

总的来说,打开一个网站时,会用到TCP/IP协议族的HTTP、TCP、IP、ARP协议,其次还会用到TCP/IP协议族之外的协议,如域名解析时用到的DNS协议、将消息从你的PC上传到服务器上还需要用到的OSPF协议

2. 根据域名或者IP识别Internet上的主机都用到了哪些协议?

先讲一下MAC地址和IP的的区别吧:引用的知乎某位大佬的解释

虽然数据包发送时包含了完整的TCP/IP四层信息,但是IP地址只在的网络间寻址才起到作用,例如:一个路由器两端连接的是两个不同的网络,路由器接收到数据包后,查看数据包的IP字段和路由器的路由表,寻找到达目的IP所需要通过的端口,这个时候才需要IP地址。在同一个网络内,IP地址在发送端被转化为MAC地址进行寻址,而这种转化和交换的对应关系,依赖于ARP协议和MAC地址表。

总结:同一个网络内(IP在同一网段)的数据交换,都是MAC地址负责寻址;IP地址只在负责连接两个不同网段的路由器上才发挥指导作用。

首先,IP协议告诉了我们出发地和目的地;在同一个网络内进行数据交换时,IP地址会被转化为了MAC地址,借助的是ARP协议;经历哪些路由器由OSPF协议告诉我们;如何传递给下一个路由器,借助的也是ARP协议。

3. TCP协议的主要功能都有哪些?

  • 完成对数据报的确认、流量控制和网络拥塞;
  • 自动检测数据报,并提供错误重发的功能;
  • 将多条路径传送的数据报按照原来的顺序进行排列;
  • 控制超时重发,自动调整超时值。

4. localStorage

localStorage 除非人为设定有效期,否则永久有效。一般浏览器能存储的是5MB左右。sessionStorage 与 localStorage 相同。sessionStorage 默认有效期是浏览器的回话时间(标签页关闭后消失)

localStorage 作用域是协议,主机名、端口(只要不人为删除,会一直保存在设备中)
sessionStorage作用域是窗口、协议、主机名、端口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦田里的POLO桔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值