前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机网络面试题整理

计算机网络面试题整理

作者头像
星辉
发布2019-01-15 10:39:50
1.3K0
发布2019-01-15 10:39:50
举报

目录

  • OSI模型
  • DNS域名系统
  • TCP和UDP的区别
  • HTTP协议
  • IP协议
  • 交换机、路由器和网关
  • 常见HTTP状态
  • 运输层协议与网络层协议的区别
  • ARP协议
  • RARP协议
  • 流量控制与拥塞控制
  • 常见路由选择协议
  • session和cookie的区别

OSI模型

即Open System Interconnect模型,开放系统互联模型是一个七层的计算机网络模型,由下至上依次是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

不同设备所在层

集线器、网卡:物理层 交换机:数据链路层 路由器:网络层

DNS域名系统

定义

DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

简单描述其工作原理

当 DNS 客户机需要在程序中使用名称时,它会查询 DNS 服务器来解析该名称。客户机发送的每条查询信息包括三条信息:指定的 DNS 域名,指定的查询类型, DNS 域名的指定类别。查询完成后DNS服务器返回对应的IP地址。

在浏览器中输入www.baidu.com后执行的全部过程
代码语言:javascript
复制
1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

TCP和UDP

TCP和UDP的区别
代码语言:javascript
复制
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)
UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快
TCP和UDP协议的一些应用例子:
TCP一般用于文件传输(FTP HTTP 对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用),远程登录(TELNET SSH 对数据准确性有一定要求,有连接的概念)等等;UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。

原文:https://blog.csdn.net/buster2014/article/details/40082109 
TCP 的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?

建立连接的过程是利用客户服务器模式,假设主机 A 为客户端,主机 B 为服务器端。 ( 1 ) TCP 的三次握手过程:主机 A 向 B 发送连接请求;主机 B 对收到的主机 A 的报文段进行确认;主机 A 再次对主机 B 的确认进行确认。 ( 2 )采用三次握手是为了防止失效的连接请求报文段突然又传送到主机 B ,因而产生错误。失效的连接请求报文段是指:主机 A 发出的连接请求没有收到主机 B 的确认,于是经过一段时间后,主机 A 又重新向主机 B 发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机 A 第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机 B ,主机 B 以为是主机 A 又发起的新连接,于是主机 B 同意连接,并向主机 A 发回确认,但是此时主机 A 根本不会理会,主机 B 就一直在等待主机 A 发送数据,导致主机 B 的资源浪费。 ( 3 )采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。

TCP对应的协议和UDP对应的协议

TCP对应的协议:FTP、Telnet、SMTP、POP3、HTTP UDP对应的协议:DNS、SNMP、TFTP

HTTP协议

HTTP 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

IP协议

IP协议的定义

IP 协议是网络层的协议,它是为了实现相互连接的计算机进行通信设计的协议,它实现了自动路由功能,即自动寻径功能。

IP地址的分类
代码语言:javascript
复制
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255)
B类地址:以10开头,    第一个字节范围:128~191(128.0.0.0 - 191.255.255.255)
C类地址:以110开头,  第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用于内部)

交换机、路由器和网关

交换机:用于局域网,利用主机的 MAC 地址进行数据传输,而不需要关心 IP 数据包中的 IP 地址,它工作于数据链路层。 路由器:识别网络是通过 IP 数据包中 IP 地址的网络号进行的,所以为了保证数据包路由的正确性,每个网络都必须有一个唯一的网络号。路由器通过 IP 数据包的 IP 地址进行路由的。路由器工作于网络层。 网关:是连接两个网络的设备。

常见HTTP状态

  • 状态码200 服务器成功返回网页
  • 状态码304 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容
  • 状态码404 请求的网页不存在
  • 状态码503 服务器超时

运输层协议与网络层协议的区别

网络层协议:负责的是提供主机间的逻辑通信 运输层协议:负责的是提供进程间的逻辑通信

ARP协议

ARP是地址解析协议,简单语言解释一下工作原理
代码语言:javascript
复制
1. 首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2. 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
3. 当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4. 源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。

原文链接:https://www.nowcoder.com/discuss/1937

RARP协议

描述RARP协议

RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

流量控制与拥塞控制

流量控制:A与B连接建立后,B根据自己接收缓存的大小确定窗口值大小,然后告知A,A发送的数据不大于该窗口值,往往是点对点之间的通信量控制 拥塞控制:防止过多的数据注入网络中,根据整个网络的负载进行调整。

常见路由选择协议

常见的路由选择协议有:RIP协议、OSPF协议 RIP协议:底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。 OSPF协议:底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。

session和cookie的区别

相同:都是用来跟踪浏览器用户身份的会话方式。 不同: (1)session是保存在服务器端,跟踪用户状态,可保存在集群、数据库、文件等。Cookie是保存在客户端的,是session的一种实现方式。 (2)Cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,如果考虑到安全应该使用session. (3)Session会在一定时间内保存在服务器上,当访问增多,会占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用cookie (4)登陆信息等重要信息存放为session。其他信息如果需要保留,可以放在cookie中 服务器端如何能识别特定的用户。 原理:当第一次创建session时,服务器端会在http协议中告诉客户端,在cookie上保存sessionId,每次http请求时,客户端都会发送相应cookie信息给服务器端。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • OSI模型
    • 不同设备所在层
    • DNS域名系统
      • 定义
        • 简单描述其工作原理
          • 在浏览器中输入www.baidu.com后执行的全部过程
          • TCP和UDP
            • TCP和UDP的区别
              • TCP 的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
                • TCP对应的协议和UDP对应的协议
                • HTTP协议
                • IP协议
                  • IP协议的定义
                    • IP地址的分类
                    • 交换机、路由器和网关
                    • 常见HTTP状态
                    • 运输层协议与网络层协议的区别
                    • ARP协议
                      • ARP是地址解析协议,简单语言解释一下工作原理
                      • RARP协议
                        • 描述RARP协议
                        • 流量控制与拥塞控制
                        • 常见路由选择协议
                        • session和cookie的区别
                        相关产品与服务
                        分布式数据库 TDSQL
                        分布式数据库(Tencent Distributed SQL,以下简称 TDSQL)是腾讯打造的一款企业级数据库产品,具备强一致高可用、全球部署架构、高 SQL 兼容度、分布式水平扩展、高性能、完整的分布式事务支持、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档