ICT领域面试常见问题总结(一)
2013-12-09 17:19
274 查看
最近面试在基础知识这块表现不好,所以想着有空就总结下学过的知识点,一方面当是帮助记忆顺便练练笔,另一方面也可以把有些话题放在网上和大家探讨一下。
主要分四章来总结这些问题
包括:网络、操作系统、数据结构和C/C++程序设计。
第一章 网络
(1)OSI参考模型与TCP/IP参考模型概念及区别
OSI的七层为:
物理层 // 在信道上传输的原始的比特流
链路层 // 将数据封装为帧,并接受确认帧,以确保正确性
网络层 // 子网的运行控制,控制数据包在网络上的路由
传输控制层 // 从会话层接收数据按顺序并传递给网络
会话层 // 确保不同的机器可以建立回话
表示层 // 用于完成特定功能
应用层 // 人们普遍需要使用的协议
TCP的四层为:
物理层 // 相当于一个物理链路层,直接提供主机到网络的数据交换
网络层 // 给主机重新分配一个IP,然后处理主机数据包在各网络间的路由
传输层 // 为应用程序提供一个端到端的连接保证数据的传输顺序和完整性
应用层 // 根据用户在网络方面的需求提供各种服务
OSI七层参考模型是理论模型,没有实际使用,而TCP/IP则使用较多,成为事实上的标准。
(2)TCP和UDP的作用和区别
TCP的中文名字是传输控制协议,它提供一种可靠的字节流服务。
UDP的中文名字是用户数据报协议,是一个简单的不可靠的服务,不能保证数据一定到达目的地。
他们的区别主要有三个方面:
1TCP提供了流量控制机制,而UDP没有。
2TCP提供超时重发,丢弃重复和数据校验功能,而UDP虽有校验但没有重发机制,可靠性不如TCP。
3TCP在传输数据前需要建立一个连接,而UDP不用。因TCP提供了超时重发的机制会占用一些时间,故速度不如UDP。
(3)TCP的三次握手和四次挥手过程
TCP建立连接的三次握手
C S
|-------- SYN -------->|
|<------- SYN,ACK -------|
|-------- ACK -------->|
TCP拆除连接的四次挥手
C S
|-------- FIN --------->|
|<------- ACK ---------|
|<------- FIN,ACK --------|
|-------- ACK -------->|
为什么建立需要三次而拆除却需要四次?
建立连接时主要使用的是同步信号和确认信号,拆除连接时使用的是完成信号和确认信号。
因为服务器准备好随时和客户建立连接,所以一旦客户发出请求就可以立即确认,并准备开始连接。中间不需要时间差。
但是,在拆除连接的过程中,上图表示客户数据发送完成,等待结束,而服务端可能有数据没传完,所以先给客户端反馈一个确认信息,然后处理没完成的数据,这一步完成后,可以断开连接了,才发送FIN信号和ACK。这个中间有个时间差,所以需要拆成两次挥手。
注!在握手过程中,客户需要第三次握手确认建立连接,这里会隐藏一个攻击即SYN攻击,即攻击者可以向服务器发送N个SYN信号而不确认,这个服务器就需要建立N个未成功的连接,服务器不断向客户重发求确认未果,造成服务器计算和连接资源浪费而影响正常客户使用。针对这一攻击,增加了两个策略,一个是重发次数策略,一个是等待时间策略。当重发次数或或等待时间到达预定值时,这个对应的连接依然未成功时,将直接被拆除。
(未完待续)
主要分四章来总结这些问题
包括:网络、操作系统、数据结构和C/C++程序设计。
第一章 网络
(1)OSI参考模型与TCP/IP参考模型概念及区别
OSI的七层为:
物理层 // 在信道上传输的原始的比特流
链路层 // 将数据封装为帧,并接受确认帧,以确保正确性
网络层 // 子网的运行控制,控制数据包在网络上的路由
传输控制层 // 从会话层接收数据按顺序并传递给网络
会话层 // 确保不同的机器可以建立回话
表示层 // 用于完成特定功能
应用层 // 人们普遍需要使用的协议
TCP的四层为:
物理层 // 相当于一个物理链路层,直接提供主机到网络的数据交换
网络层 // 给主机重新分配一个IP,然后处理主机数据包在各网络间的路由
传输层 // 为应用程序提供一个端到端的连接保证数据的传输顺序和完整性
应用层 // 根据用户在网络方面的需求提供各种服务
OSI七层参考模型是理论模型,没有实际使用,而TCP/IP则使用较多,成为事实上的标准。
(2)TCP和UDP的作用和区别
TCP的中文名字是传输控制协议,它提供一种可靠的字节流服务。
UDP的中文名字是用户数据报协议,是一个简单的不可靠的服务,不能保证数据一定到达目的地。
他们的区别主要有三个方面:
1TCP提供了流量控制机制,而UDP没有。
2TCP提供超时重发,丢弃重复和数据校验功能,而UDP虽有校验但没有重发机制,可靠性不如TCP。
3TCP在传输数据前需要建立一个连接,而UDP不用。因TCP提供了超时重发的机制会占用一些时间,故速度不如UDP。
(3)TCP的三次握手和四次挥手过程
TCP建立连接的三次握手
C S
|-------- SYN -------->|
|<------- SYN,ACK -------|
|-------- ACK -------->|
TCP拆除连接的四次挥手
C S
|-------- FIN --------->|
|<------- ACK ---------|
|<------- FIN,ACK --------|
|-------- ACK -------->|
为什么建立需要三次而拆除却需要四次?
建立连接时主要使用的是同步信号和确认信号,拆除连接时使用的是完成信号和确认信号。
因为服务器准备好随时和客户建立连接,所以一旦客户发出请求就可以立即确认,并准备开始连接。中间不需要时间差。
但是,在拆除连接的过程中,上图表示客户数据发送完成,等待结束,而服务端可能有数据没传完,所以先给客户端反馈一个确认信息,然后处理没完成的数据,这一步完成后,可以断开连接了,才发送FIN信号和ACK。这个中间有个时间差,所以需要拆成两次挥手。
注!在握手过程中,客户需要第三次握手确认建立连接,这里会隐藏一个攻击即SYN攻击,即攻击者可以向服务器发送N个SYN信号而不确认,这个服务器就需要建立N个未成功的连接,服务器不断向客户重发求确认未果,造成服务器计算和连接资源浪费而影响正常客户使用。针对这一攻击,增加了两个策略,一个是重发次数策略,一个是等待时间策略。当重发次数或或等待时间到达预定值时,这个对应的连接依然未成功时,将直接被拆除。
(未完待续)
相关文章推荐
- 【面试】【Hibernate常见问题总结】【02】
- 常见C++面试问题总结2
- 前端面试中常见的算法问题总结
- 总结14:面试常见问题
- 【面试】【Spring常见问题总结】【09】
- Java多线程面试常见核心问题总结
- Redis中一些最常见的面试问题总结
- 前端面试中常见的算法问题总结
- iOS 面试常见问题总结
- 面试求职--IT面试常见问题总结
- 面试常见问题总结
- 【面试】【Oracle常见问题总结】【01】
- 【面试】【Spring常见问题总结】【02】
- 【面试】【Hibernate常见问题总结】【01】
- HTTP/TCP常见面试问题总结
- 【面试】【Spring常见问题总结】【03】
- MySQL面试常见问题总结(MySQL5.5阅读总结)
- android面试常见问题总结
- 【常见面试问题总结目录】
- 常见C++面试问题总结2