总结的一个牛公司的面试题:

本文详细介绍了OSI七层模型与TCP/IP五层模型的区别,深入解析了IP协议的作用及TCP与UDP的不同特性。同时探讨了交换机与路由器的工作原理及其在网络层次中的定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1OSI的七层网络结构图,和TCP/IP的五层结构图?
 
OSI:     应用层 表示层 会话层(session)传输层 网络层(network) 数据链路层 物理层
]TCP/IP:应用层                          传输层 互联网络层(Internet) 数据链路层 物理层
 

2详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?
I P 协议 是在网络层, ---- 互联网络层定义了分组格式和协议的协议。 IP 协议只保证计算机能发送和接收分组数据,
TCP 协议是在传输层    TCP 协议则可提供一个可靠的、可流控的、全双工的信息流传输服务
Internet 上传输控制协议和网际协议是配合进行工作的。网际协议( IP )负责将消息从一个主机传送到另一个主机。为了安全消息在传送的过程中被分割成一个个的小包。
  
传输控制协议( TCP )负责收集这些信息包,并将其按适当的次序放好传送,在接收端收到后再将其正确地还原。传输协议保证了数据包在传送中准确无误
 
http://zhidao.baidu.com/question/1486424.html?si=5
 
UDP 用户数据报协议 )协议是在传输层 -- 主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位
UDPvs.TCP
UDP
TCP 协议的主要区别是两者在如何实现信息的可靠传递方面不同。 TCP 协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。
TCP 不同 UDP 协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把 UDP 协议称为不可靠的传输协议。
相对于 TCP 协议 UDP 协议的另外一个不同之处在于如何接收突法性的多个数据报。不同于 TCP UDP 并不能确保数据的发送和接收顺序
 
 
 
 
 
 

  Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
(一般意义上说)
交换机是工作在数据链路层 。但随着科技的发展,现在有了三层交换机,三层交换机已经扩展到了网络层。也就是说:它等于 数据链路层 + 部分网络层
交换机中传的是。通过存储转发来实现的。
        
路由器是工作在网络层 。路由器中传的是 IP 数据报 。主要是选址和路由
http://zhidao.baidu.com/question/14471943.html?si=2

  Q4:请问C++的类和C里面的struct有什么区别 ????
 
C++ 类可以定义函数和变量, struct 中也可以定义函数,当然是通过函数指针方法
类默认属性是 private
struct
默认属性是 public 的,当然你是没办法定义 private
 
C 中的 struct 的成员默认的访问权限是 public, 在以前 C struct 中是不允许有成员函数的 , 但是现在 C++ struct 进行了扩展 , 现在的 struct 中也可以有成员函数 , 还有一个区别就是 C++ template 机制只支持 class 不支持 struct
 

  Q5:请讲一讲析构函数和虚函数的用法和作用?
 
置于 是析构函数 ;析构函数因使用 "~" 符号 ( 逻辑非运算符 ) ,表示它为腻构造函数,加上类名称来定义。
;析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。
有适放内存空间的做用 !

虚函数是 C++ 多态(重载)的一种表现 ??
例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为 virturl (虚函数 )
使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。

如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为 virturl 函数名 =0
我们把这样的函数(方法)称为纯虚函数。
如果一个类包含了纯虚函数,称此类为抽象类
 
 
 

  Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?
全局变量和局部变量的区别是在存储器中位置不同,具体说,全局变量存储在数据段中,局部变量都有可能,一般来说在堆栈段
全局变量和局部变量在程序的不同的段中。编译器根据语法;操作系统其实不需要知道
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值