大佬教程收集整理的这篇文章主要介绍了计算机网络-面试题汇总,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目录
分层
物理层有什么作用?
数据链路层有什么作用?
网络层有什么作用?
传输层有什么作用?
会话层有什么作用?
表示层有什么作用?
应用层有什么作用?
网络层
传输层
TCP三次握手过程?
为什么三次握手?
TCP四次挥手过程?
为什么四次挥手?
四次挥手为什么等待2MSL?
四次挥手期间的状态?
TCP和UDP的区别?
TCP如何保证可靠传输?
TCP是大端序还是小端序?
应用层
浏览器中输入url到显示的过程?
uri和url的区别?
Cookie的作用是什么?和Session有什么区别?
http的状态码分为哪几类?
简述http2.0的改进?
httpS建立期间有几个随机数?
参考
OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议(5层):物理层、数据链路层、网络层、运输层、 应用层。
解决了物理机之间的通信c;通过二进制比特流的传输来实现c;二进制数据表现为电流电压上的强弱c;到达目的地再转化为二进制机器码。网卡、集线器工作在这一层。
在不可靠的物理介质上提供可靠的传输c;接收来自物理层的位流形式的数据c;并封装成帧c;传送到上一层;同样c;也将来自上层的数据帧c;拆装为比特流形式的数据转发到物理层。这一层在物理层提供的比特流的基础上c;通过差错控制、流量控制方法c;使有差错的物理线路变为无差错的数据链路。提供物理地址寻址功能。交换机工作在这一层。
将网络地址翻译成对应的物理地址c;并决定如何将数据从发送方路由到接收方c;通过路由选择算法为分组通过通信子网选择最佳路径。路由器工作在这一层。
传输层提供了进程间的通信c;传输层向高层用户屏蔽了下面网络层的核心细节c;使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。
提供应用层协议c;如http协议c;FTP协议等等c;方便应用程序之间进行通信。
解释下PING命令?
Ping域名、Ping ip
主机A ping 主机B ---> 构建 ICMP 包 ----> 构建 IP 分组 ----> 解析硬件地址封装成帧 ----> 物理层发送 ----> 网络层传输 ----> 到达主机B ----> 提取IP数据包交给IP层协议 ----> 提取信息交给ICMP协议c;构建ICMP应答包 ----> 发送给主机A
ICMP 请求发送和应答报文 type是 8和0
查看:网络-TCP协议详解自学笔记(例题、代码、实战)c;有图片c;更方便
client发出的第一个连接请求报文段并没有丢失c;而是在某个网络结点长时间的滞留了c;以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后c;就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段c;同意建立连接。假设不采用“三次握手”c;那么只要server发出确认c;新的连接@R_937_9944@。由于现在client并没有发出建立连接的请求c;因此不会理睬server的确认c;也不会向server发送数据。但server却以为新的运输连接已经建立c;并一直等待client发来数据。这样c;server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况c;client不会向server的确认发出确认。server由于收不到确认c;就知道client并没有要求建立连接。”。主要目的防止server端一直等待c;浪费资源。
查看:网络-TCP协议详解自学笔记(例题、代码、实战)c;有图片c;更方便
因为TCP是一个全双工协议c;必须单独拆除每一条信道。4次挥手的目的是终止数据传输c;并回收资源c;此时两个端点两个方向的序列号已经没有了任何关系c;必须等待两方向都没有数据传输时才能拆除虚链路c;不像初始化时那么简单。因此必须单独分别在一个方向上终止该方向的数据传输。
如果是三次挥手c;会怎么样?三次的话c;被动关闭端在收到FIN消息之后c;需要同时回复ACK和Server端的FIN消息。如果Server端在该连接上面还有数据要处理c;那么Server端还需要等待一段时间才可以关闭另外一个方向的连接c;那么这样的三次挥手就不能满足条件。
客户端等待两倍的MSL(Maximum Segment Lifetimec;报文段最长寿命)时间后关闭连接c;因为如果服务器端没有收到客户端回复的确认报文段会再次发出连接释放报文段c;2MSL后没有收到服务器端再次发出的连接释放报文段c;说明服务器端已关闭。
CLOSE_WAIT、FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT、LAST_ACK、CLOSED。详细描述见:网络-TCP协议详解自学笔记(例题、代码、实战)
比较项 | TCP | UDP |
面向连接 | 是 | 否 |
可靠/安全 | 是 | 否 |
速度 | 慢 | 快 |
面向 | 字节流 | 报文 |
应用范围 | 大量数据 | 少量数据 |
确认应答与序列号:序列号:TCP传输时将每个字节的数据都进行了编号c;这就是序列号。确认应答:TCP传输的过程中c;每次接收方收到数据后c;都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号c;告诉发送方c;接收到了哪些数据c;下一次的数据从哪里发。序列号的作用不仅仅是应答的作用c;有了序列号能够将接收到的数据根据序列号排序c;并且去掉重复序列号的数据。这也是TCP传输可靠性的保证之一。
超时重传: 当 TCP 发出一个段后c;它启动一个定时器c;等待目的端确认收到这个报文段。如果不能及时收到一个确认c;将重发这个报文段。
所有网络协议都是采用大端的方式来传输数据的c;所以大端方式又称为网络字节序。
1、查询DNSc;获取域名对应的IP。 (1)检查浏览器缓存、检查本地hosts文件是否有这个网址的映射c;如果有c;就调用这个IP地址映射c;解析完成。 (2)如果没有c;则查找本地DNS解析器缓存是否有这个网址的映射c;如果有c;返回映射c;解析完成。 (3)如果没有c;则查找填写或分配的首选DNS服务器c;称为本地DNS服务器。服务器接收到查询时: 如果要查询的域名包含在本地配置区域资源中c;返回解析结果c;查询结束c;此解析具有权威性。 如果要查询的域名不由本地DNS服务器区域解析c;但服务器缓存了此网址的映射关系c;返回解析结果c;查询结束c;此解析不具有权威性。 (4)如果本地DNS服务器也失效: 如果未采用转发模式(迭代)c;本地DNS就把请求发至13台根DNSc;根DNS服务器收到请求后c;会判断这个域名(如.com)是谁来授权管理c;并返回一个负责该顶级域名服务器的IPc;本地DNS服务器收到顶级域名服务器IP信息后c;继续向该顶级域名服务器IP发送请求c;该服务器如果无法解析c;则会找到负责这个域名的下一级DNS服务器(如http://baidu.com)的IP给本地DNS服务器c;循环往复直至查询到映射c;将解析结果返回本地DNS服务器c;再由本地DNS服务器返回解析结果c;查询完成。 如果采用转发模式(递归)c;则此DNS服务器就会把请求转发至上一级DNS服务器c;如果上一级DNS服务器不能解析c;则继续向上请求。最终将解析结果依次返回本地DNS服务器c;本地DNS服务器再返回给客户机c;查询完成。 2、得到目标服务器的IP地址及端口号(http 80端口c;https 443端口)c;会调用系统库函数socketc;请求一个TCP套接字。客户端向服务器发送http请求报文: (1)应用层:客户端发送http请求报文。 (2)传输层:(加入源端口、目的端口)建立连接。实际发送数据之前c;三次握手客户端和服务器建立起一个TCP连接。 (3)网络层:(加入IP头)路由寻址。 (4)数据链路层:(加入frame头)传输数据。 (5)物理层:物理传输bit。 3、服务器端经过物理层→数据链路层→网络层→传输层→应用层c;解析请求报文c;发送http响应报文。 4、关闭连接c;TCP四次挥手。 5、客户端解析http响应报文c;浏览器开始显示HTML
Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式c;但是两者的应用场景不太一样。 Cookie一般用来保存用户信息
Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物车c;当你要添加商品到购物车的时候c;系统不知道是哪个用户操作的c;因为 http 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了。区别:
详见:网络-http协议学习笔记(消息结构、请求方法、状态码等)
http1.0
http1.1的改进
3个
常见面试题整理--计算机网络篇(每位开发者必备)
计算机网络常见面试题
计算机网络之面试常考
《计算机网络第七版 谢希仁》
以上是大佬教程为你收集整理的计算机网络-面试题汇总全部内容,希望文章能够帮你解决计算机网络-面试题汇总所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。