计算机网络知识(结合前端)
①分层,是为了方便实现和维护,并且每层相对独立后灵活性好。OSI七层协议栈将应用层分为三层,强调了应用层的三种用途。TCP/IP四层协议栈将物理层和数据链路层合并为网络接口层,十分重视IP协议。
②交换机,即多接口网桥,作为数据链路层的中继器,具备MAC地址检查、MAC地址记录、帧的接收和转发功能,每个端口都有不同的MAC地址。
③路由器,网络层的中继器,拥有路由表,接收转发ip数据报,检查接收到的数据报里的数据帧是否完整,再根据首部的目的地址进行转发。而转发的过程,网络层的ARP会协助找出ip地址对应的MAC地址来进行转发,最终到达目的主机。
补充1:路由的RIP、OSPF和BGP帮助路由器的选择。这三个协议其中有一点很有意思,RIP因为定时更新,无需可靠协议,所以使用UDP传递,OSPF应用洪泛法需要可靠和快速,所以使用IP传递,BGP是两个自治系统之间的传输,需要稳定和安全,所以使用TCP传递。
补充2:进一步了解了DHCP与RARP的区别,RARP功能的单一,仅能做到MAC地址到主机ip地址的转换;而DHCP除了RARP的功能外,还能实现IP地址的动态分配,即不同时间在线的主机们可以拥有同一个IP地址,还有很多强大的功能。
④IP地址,是在互联网中主机都拥有的唯一标识符。因为主机的变多,ip地址需求数量也变多,所以在ipv4后也有了ipv6,ipv6是128位,完全能满足数量的要求。而网络的划分,也是为了ip地址的使用方便,缓解ip地址的分配压力,CIDR构成超网,子网掩码的诞生使压力大减,并使一个公司一个团队的主机ip分配变得轻松。
运输层之前是点到点传输,网络层之上是端到端传输。因为本身的定的方向是前端,决定之后与前端方面的相关知识结合学习。
⑤TCP,是可靠传输,因此TCP用到了ARQ、流量控制和拥塞控制,并在连接和释放分别用到了三次握手和四次握手,确保了连接和传递的可靠。UDP,面向报文,尽最大力量交付,一次直接交付一个报文,如果报文长度大于缓冲区,过长的部分就会丢弃,是不可靠的,但UDP的实时性和快速在很多即时应用上得到了很大的发挥。
⑥HTTP协议,是基于TCP传递的,HTTP必须保证可靠,而HTTP本身也用到了请求和响应的工作方式。
补充1:在此之前学的AJAX得到了更好的理解,AJAX有两种请求方式,GET和POST,之前并没有得到很好的理解,HTTP很清晰得解释了工作流程和两种请求方式,它们不同的特点,让我之后的方式选择上清楚了很多,GET更多用来从服务器上获取数据,而POST主要用来把数据交给服务器处理,也包括浏览记录的存储也有差异等。
补充2:HTTP针对URL有很多固定操作,比如PUT来保存、delete来删除、head来获取首部,而HTTP的首部规定,使得请求的属性清晰了很多。URL格式包含了协议名、域名、ip地址、端口和锚点等,无论是html的a标签还是AJAX请求都会使用到URL,协议有使用HTTP、FTP和HTTPS等,⑥中有写到HTTP使用的是TCP传输,而这样的HTTP的数据传递依然不是很安全,所以再添加了SSL层,来加密和验证身份,就成了HTTPS,也因此这两个协议的连接就出现了不同,所以用的端口也不一样。这里就要说到主机和端口,在URL中,域名也叫主机名,即要访问的服务器地址所在域,域名需要通过DNS解析为IP地址再跳转;而端口号和服务器的应用程序是一一对应的,IP地址找到服务器,知道端口号才能真正访问服务器,应用层不同的协议有不同的端口号。
补充3:在HTTP的内容里,也提到了cookie,之前学习前端的时候写过利用cookie存储用户信息的JS代码,当时对cookie的用处一知半解,在深入HTTP时,知道了cookie出现就是为了符合HTTP快速发展下实现网络个人化,也明白了做前端要时刻把握HTTP更新的动向。
补充4:之前在使用JSP开发前端网页时,显示过一些错误状态码,比如500,在这次的学习过程中,比较详细的了解了一遍HTTP错误状态码,解决方案希望自己以后在遇到一次之后就写一次解决方案。
⑦基于HTTP的事务流程,深入了解了DNS的域名解析和优化处理,解析过程就是先是缓冲区,没有就首选本地服务器,没有再去更高的域名服务器,找到就返回。而优化处理中的CDN加速,让我比较清晰的理解了前端框架vue的CDN配置和优化加速,浏览器内存最多的时刻可以执行40多个进程,而执行也是有顺序的,全部加载完才执行最后的代码会给浏览器造成很大的压力,而CDN是属于第三方网络,vue使用CDN网络,可以将执行压力分给其他服务器,从而提高网络质量。
总结:因为自己本身选择的方向是前端,更多了解了现在网络上一些协议出现的意义和与之伴随出现的技术,希望自己之后在学习和巩固前端基础知识的同时不要放松对网络发展更新的学习。