计算机网络学习的重要性
计算机网络知识真的很重要。它是计算机专业的一个很重要的基础知识,也是考研408之一,更是面试题的重点,来,让我们一起学习一下。
第一章 计算机网络体系结构
计算机网络为什么要分层?
因为网络太复杂了。
分层使灵活性更强。
分层使各层都是独立的。
分层使各层结构上可以分开。
分层可以促进标准化工作。
协议和服务的区别?
协议是水平方向的,服务是垂直方向的。
第二章 物理层
物理层是做什么用的?
物理层是所有网络的基础,物理层要尽可能屏蔽掉物理设备、传输媒体和通信手段的不同,使数据链路层感觉不到这些差异的存在从而专注于本层的服务。物理层主要包括网络连接器,传输介质和数字比特。物理层中使用数字调制解调技术具有将模拟信号(电信号)转化成数字比特以及将数字比特转化成模拟信号(电信号)的作用。物理层就是通过网络连接器发送数字比特经过传输介质,再经过网络连接器发送数字比特经过传输介质,再经过网络连接器发送数字比特经过传输介质的一层。
第三章 数据链路层
链路层是做什么用的?
物理层刚刚说过了,主要用来传输数字比特。好,我们假设没有链路层,那这些数字比特给网络层,网络层知道做什么吗?很好,网络层不知道,那怎么办呢,由此引出计算机领域至理名言:“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”!很好,链路层就是用来解决物理层和网络层之间的矛盾的。链路层将物理层的原始比特转换成网络层使用的帧流,为帧流提供不同程度的可靠性,范围从无连接无确认的服务到可靠的面向连接服务不等。
帧的构造方法有哪几种?
字符计数法/字符填充的首尾定界符方法/比特填充的首尾标志法/违法编码法
第四章 网络层
网络层的主要作用是什么?
网络层通过网络层和传输层的接口,向传输层传输数据。网络层关注的是如何将源端数据包一路发送到接收方,网络层是处理端到端数据传输的最底层,为了将数据包传送到接收方,沿途需要经过很多次中间路由器。网络层的主要目的是将数据包从源机器路由到目标机器。
讲讲路由算法?
路由算法负责确定一个入境数据应该被发送到哪一条输出线路去。路由算法分为静态路由算法和自适应算法。静态路由算法是预先算好的,缺点是无法相应故障。自适应算法顾名思义,就可以更加聪明的改变路由决策来反映出拓扑变化,动态的计算路由。
第五章 传输层
传输层的目标是什么?
传输层的最终目标是向它的用户提供可靠的,成本有效的数据传输服务,传输层需要充分利用网络层提供给它的服务。传输层和网络层类似,服务类型分为面向连接和无连接的网络服务。传输层使传输服务变得更为可靠。
三次握手
请先看下书里的正确解释,然后再来看我讲的这个三次挥手的通俗解释。
假设你想要通过微信询问你的同学一件事,通常你们的状态都是待连接状态,因为谁也不会天天看微信不是吗。你在微信上说:在吗?这是第一次握手。他如果不回就代表连接未建立。他回了一句:在。这是第二次握手。但是可能这个时候你没看到这个时候连接也没建立,然后假设你看到了你就生怕他把手机塞回去,赶紧回了一句:“嗯呐”!这是第三次握手。这个时候连接就建立了,你跟你同学暂时谁也不会把手机放裤兜里了,就开始聊天了。
四次挥手
聊完天,你觉得是时候把手机放裤兜里了。你回了一句“我得去打王者了”,这是一次挥手。而此时你的同学话闸子刚打开,于是很不情愿的回了你一句“好吧”。这是第二次挥手。思考了一会儿,他决定把想说的话长话短说“xj#eh%…dy&en,知道了吗?”。这是第三次挥手。你淡淡的回了一句“嗯。”这是第四次挥手。于是聊天结束啦。
第六章 应用层
DNS是做什么的?
DNS的作用就是解析域名(人类可读的类似人名的东西)为机器的IP地址。它是一个庞大而复杂的分布式系统,由数百万计的域名服务器组成,它利用了复制和缓存的机制,具有鲁棒性。域名服务器在查询时有递归查询和迭代查询两种机制,一次域名解析可以涉及这两种机制,但通常使用迭代查询,因为递归查询会使域名服务器无法承受查询的压力。
HTTP 1.0 和HTTP 1.1的区别是?
HTTP 1.0:
非持久的TCP连接,每个对象要单独建立TCP连接。
HTTP 1.1:
持久的TCP连接,全部对象只需要建立一个TCP连接。
经典面试题
当你在百度浏览器输入http://www.google.cn并按回车的时候发生了什么?
选取这个题作为讲解的原因一个是经典,一个是它把上面的知识串起来了。
- 按回车的时候,键盘把物理信号转化成电信号,触发之后的流程。
- 百度浏览器通过DNS查找http://www.google.cn的ip地址是203.208.43.119
- DNS查询时会利用缓存信息,优先级是浏览器>操作系统> 路由器>本地域名服务器>根域名服务器
- 百度浏览器使用HTTP/HTTPS协议将请求打包,通过socket传给传输层
- 传输层将包做进一步的封装,交给操作系统的网络层
- 网络层使用ip协议,ip头包含你的ip(客户端)和203.208.43.119这个ip(目标ip)
- 如果203.208.43.119这个ip不是本机ip,操作系统会找网关(ip是192.168.1.1)解析这个ip的Mac地址
- 操作系统是如何找网关的呢,找网关过程使用ARP协议,广播给局域网内所有主机,会返回网关的MAC地址
- 找到网关后,操作系统就将IP包交给MAC层,MAC层经过层层网关最终获得目标ip对应的MAC地址
- 这时候,你的主机就可以通过这个MAC地址就能找到目标服务器。
- 目标服务器收到这个请求后,会解析包里的内容,解析包里的MAC地址给到网络层,IP地址给传输层
- 此时就会进行著名的三次握手了,此时你的主机和服务器端的TCP连接就建立起来了。
原作者:预测师
原文链接:初级JAVA程序员应该掌握的计算机网络知识_qq_32648593的博客-CSDN博客_java程序员对计算机网络了解要求
原出处:CSDN博客
侵删