总结---6

简介:

 1.OSI参考模型有多少层?分别是哪几层?(不建议死记硬背,可以看看我在系列文章第一篇里的描述,效果比较好,不会因为紧张而答不出来)

         七层模型,自下而上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

首先要学习OSI模型。

    

   如上图,OSI参考模型中各个分层的作用分别是——

应用层:为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件以及远程登录(虚拟终端)等协议。

表示层:将应用处理的信息转换为适合网络传输的格式,或讲来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。

会话层:负责建立和断开通信连接(数据流通的逻辑通路),以及数据的分割等数据传输相关的管理。

传输层:起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。

网络层:将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。

数据链路层:负责物理层面上互连的、节点之间的通信传输。例如1个以太网相连的2个节点间的通信。将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。

物理层:0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换。

    了解了各个分层的作用,好像也不太能记得住,我记得当时计网老师给我们看过这么一个图,并且叫我们一段话描述通信的过程。

 

      2.TCP/IP协议栈有多少层?分别是哪几层?(有四层和五层的说法,其实都对,这里就只讲四层的)

          四层,自上而下分别是:应用层、传输层、网络层以及数据链路层

 

TCP/IP就是互联网的协议。下面,我们来看看OSI模型与TCP/IP模型的对比图:

    根据上图,我们可以发现TCP/IP协议分为四层,分别是应用层、传输层、网络层以及网络接口层,对应OSI的关系也一目了然。

    如果在之前我们就能很好地理解OSI模型各层所起的作用,那现在我们就可以很轻松地得出结论,指出TCP/IP协议栈中某些协议所起到的作用大概是属于哪种类型的。例如TCP协议与UDP协议属于传输层,无疑就是关于管理(建立、断开)两端口之间的连接;而IP则必然是关于寻址路由的协议。

 

      3.应用层典型的协议中,基于TCP、UDP协议的分别有哪些?(面试中比较少问,笔试题中常常会以选择题的形式考察)

          TCP:SMTP,FTP,TELNET,POP3,IMAP, BGP,http,SSH

          UDP:SNMP,TFTP简单文件传输协议,用于传小文件,功能简单少,DNS

      4.ipconfig的作用是什么?(一些常用的指令记一记还是有好处的,最好能实际操作一下,加深印象)

         显示当前TCP/IP配置的信息。

      5.请说出三个你觉得比较常见的端口以及对应的应用?(这个没什么好说的,注意点就是了)

         21-FTP、22-SSH、23-telnet、25-SMTP、80-HTTP、SNMP-161、MySQL数据库服务-3306

      6.简单讲讲ICMP协议(HTTP协议、DHCP协议等)的作用和基本原理(这道题就不说答案了,大家自己去看看之前的博客,最好能再总结其他常见协议的作用和基本原理)

      7.如何进行两台电脑ping不通,你觉得可能的原因有哪些?

        (这道题还是挺有意思的,如果事先不知道答案要准确回答出来,要基础知识很扎实并且思考比较全面才行,下面是网上的参考答案,欢迎童鞋们吐槽)

        (1)首先考虑是否是网络的问题

        (2)局域网设置问题,电脑互联是要设置的。看是否安装了必要的网络协议,最重要的是IP地址是否设置正确。

        (3)网卡驱动未安装正确

        (4)防火墙设置有问题

        (5)是否有什么软件阻止了ping

 

 

     第一题:TCP与UDP的区别

      TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
      UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

      (最好还能够各自举例说明一下,例如什么协议或应用采用TCP,为什么;又有什么协议或应用采用UDP,为什么。主要是给面试官说明具体问题具体分析,两协议没有优劣之分)

       第二题:讲讲TCP的三次握手(四次挥手)的整个过程

       TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:

       1)客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。

       2)服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号(sequence number)y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。

       3).客户端接收到服务器端返回的SYN+ACK报文后,向服务器端返回一个确认号y+1和序号x+1的ACK报文,一个标准的TCP连接完成。

       (四次挥手的过程类似,这里就不多说了,图片来自参考资料http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html,上面画的图不错。建议大家在面试的时候要随身带一支笔和一张白纸,在被问到这种需要画图的问题时主动画图给面试官看,加分不少的!像我这样画图很丑的人,可以多练习几次,不会到时候涂涂抹抹,影响讲解的效果)

       第三题:为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?

       这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你不可以马上关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

       第四题:讲讲TCP协议中滑动窗口

       TCP的首部中有一个很重要的字段就是16位长的窗口大小,它出现在每一个TCP数据报中,配合32位的确认序号,用于向对端通告本地socket的接收窗口大小。也就是说,如果本地socket发送一个TCP数据,其32位确认序号是5,窗口大小是5840,则用于告诉对端,对端已经发出的4个字节的数据已经收到并确认,接下来,本地socket最多能够接收从第5个字节开始的5840个字节长度的数据。这是由接收方进行的一种流量控制,接收方通过告诉发送方自己所能够接收数据的大小,达到控制发送方发送速度的目的。(本段内容引子班里的一位offer大神给我的总结资料。其实还会涉及慢启动算法等相关内容,值得深入研究)

来源:http://www.cnblogs.com/levenyes/p/3383459.html

 

复制代码
什么是进程(Process)和线程(Thread)?有何区别?

    1. 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
    2. 线程是进程的一个实体,是CPU调度和 分派的基本单位,它是比进程更小的能独立运行的基本单位。
    3. 线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和 栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
    4. 一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。
复制代码
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
安全 JavaScript 前端开发
购物全返商城平台系统开发步骤流程/需求设计/教程指南/源码功能
开发购物全返商城平台系统涉及多个步骤和考虑因素。
|
算法 Python
请解释Python中的关联规则挖掘以及如何使用Sklearn库实现它。
使用Python的mlxtend库,可以通过Apriori算法进行关联规则挖掘。首先导入TransactionEncoder和apriori等模块,然后准备数据集(如购买行为列表)。对数据集编码并转换后,应用Apriori算法找到频繁项集(设置最小支持度)。最后,生成关联规则并计算置信度(设定最小置信度阈值)。通过调整这些参数可以优化结果。
454 9
|
12月前
|
前端开发 关系型数据库 MySQL
PHP外链网盘系统网站源码
> 本文将详细介绍如何从零构建一个基于PHP和MySQL的文件管理系统,分解项目代码并剖析每个模块的功能。我们将以`index.php`、`config.php`和`api.php`这三个核心文件为例,详细展示如何设计文件列表、数据库配置和文件上传接口,从而实现一个完整的文件管理系统。该文章可以作为学术研究和代码实现的参考。
491 98
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
512 2
|
机器学习/深度学习 人工智能 自然语言处理
炸裂!PAI-DSW 和 Free Prompt Editing 图像编辑算法,成就了超神的个人 AIGC 绘图小助理!
【6月更文挑战第11天】PAI-DSW 和 Free Prompt Editing 算法引领图像编辑革命,创造出个人AIGC绘图小助理。PAI-DSW擅长深度图像处理,通过复杂模型和深度学习精准编辑;Free Prompt Editing则允许用户以文本描述编辑图像,拓展编辑创意。结合两者,小助理能根据用户需求生成惊艳图像。简单Python代码示例展示了其魅力,打破传统编辑局限,为专业人士和普通用户提供创新工具,开启图像创作新篇章。未来,它将继续进化,带来更多精彩作品和体验。
362 7
|
存储 NoSQL Redis
Redis常见面试题:ZSet底层数据结构,SDS、压缩列表ZipList、跳表SkipList
String类型底层数据结构,List类型全面解析,ZSet底层数据结构;简单动态字符串SDS、压缩列表ZipList、哈希表、跳表SkipList、整数数组IntSet
|
Web App开发 机器学习/深度学习 人工智能
详细解读AI测试之Applitools入门教程
详细解读AI测试之Applitools入门教程
770 0
|
消息中间件 SQL 并行计算
什么是Flink?请简要解释其概念和特点。
什么是Flink?请简要解释其概念和特点。
350 0
|
数据采集 XML 前端开发
Spring MVC(spring-webmvc)之全局数据处理、拦截器、自定义类型转换器等使用指南
Spring MVC(spring-webmvc)之全局数据处理、拦截器、自定义类型转换器等使用指南
513 0
Spring MVC(spring-webmvc)之全局数据处理、拦截器、自定义类型转换器等使用指南