总结---6

简介:       1.OSI参考模型有多少层?分别是哪几层?(不建议死记硬背,可以看看我在系列文章第一篇里的描述,效果比较好,不会因为紧张而答不出来)          七层模型,自下而上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

 

      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. 一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。

 

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储
Stream流中各阶段方法说明及组合示例
Stream流中各阶段方法说明及组合示例
321 1
|
安全 C# 开发者
【C# 多线程编程陷阱揭秘】:小心!那些让你的程序瞬间崩溃的多线程数据同步异常问题,看完这篇你就能轻松应对!
【8月更文挑战第18天】多线程编程对现代软件开发至关重要,特别是在追求高性能和响应性方面。然而,它也带来了数据同步异常等挑战。本文通过一个简单的计数器示例展示了当多个线程无序地访问共享资源时可能出现的问题,并介绍了如何使用 `lock` 语句来确保线程安全。此外,还提到了其他同步工具如 `Monitor` 和 `Semaphore`,帮助开发者实现更高效的数据同步策略,以达到既保证数据一致性又维持良好性能的目标。
176 0
|
存储 Ubuntu 网络安全
在 Ubuntu 14.04 服务器上安装和配置 OpenLDAP 和 phpLDAPadmin 的方法
在 Ubuntu 14.04 服务器上安装和配置 OpenLDAP 和 phpLDAPadmin 的方法
156 0
|
存储 文件存储 C语言
【C语言】通讯录3.0 (文件存储版)
通讯录是一种记录联系人信息的工具,包括姓名、电话号码、电子邮件地址、住址等。 文章的一二三章均于上一篇相同,可以直接看第四章改造内容。 此通讯录是基于通讯录2.0(动态增长版)的基础上进行增加文件操作功能,请先看系列文章第二篇,再看本篇博客。
131 1
|
Linux 测试技术 虚拟化
重大升级!英特尔 CPU 内购功能 (SDSI)已添加至 Linux 5.18 内核中
重大升级!英特尔 CPU 内购功能 (SDSI)已添加至 Linux 5.18 内核中
1073 0
重大升级!英特尔 CPU 内购功能 (SDSI)已添加至 Linux 5.18 内核中
|
SQL 关系型数据库 MySQL
hive数据库操作与sqoop工具的使用
hive数据库操作与sqoop工具的使用
|
Python
『三分钟学分析』Graveyard分析模型是真的牛X!(下)
在上篇品牌知名度实例的基础上,讲一个经典分析模型,对品牌知名度做更立体的分析。
506 0
『三分钟学分析』Graveyard分析模型是真的牛X!(下)
|
新零售 容器
做一个微信小程序多少钱?
  很多朋友在问做一个微信小程序多少钱?他们知道微信小程序是下一个风口,也想从小程序上分得一杯羹。微信小程序是一个不需要下载安装就可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一下即可打开应用。
2895 0

热门文章

最新文章