1OSI的七层网络结构图,和TCP/IP的五层结构图?
2详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?
Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
Q4:请问C++的类和C里面的struct有什么区别 ? ????
Q5:请讲一讲析构函数和虚函数的用法和作用?
Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?
OSI:
应用层 表示层 会话层(session)传输层 网络层(network) 数据链路层 物理层
]TCP/IP:应用层
传输层 互联网络层(Internet) 数据链路层 物理层
2详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?
I
P
协议
是在网络层,
----
互联网络层定义了分组格式和协议的协议。
IP
协议只保证计算机能发送和接收分组数据,
TCP
协议是在传输层
而
TCP
协议则可提供一个可靠的、可流控的、全双工的信息流传输服务
在
Internet
上传输控制协议和网际协议是配合进行工作的。网际协议(
IP
)负责将消息从一个主机传送到另一个主机。为了安全消息在传送的过程中被分割成一个个的小包。
传输控制协议( TCP )负责收集这些信息包,并将其按适当的次序放好传送,在接收端收到后再将其正确地还原。传输协议保证了数据包在传送中准确无误
传输控制协议( TCP )负责收集这些信息包,并将其按适当的次序放好传送,在接收端收到后再将其正确地还原。传输协议保证了数据包在传送中准确无误
http://zhidao.baidu.com/question/1486424.html?si=5
UDP
(
用户数据报协议
)协议是在传输层
--
主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位
UDPvs.TCP
UDP 和 TCP 协议的主要区别是两者在如何实现信息的可靠传递方面不同。 TCP 协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。
与 TCP 不同 , UDP 协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把 UDP 协议称为不可靠的传输协议。
相对于 TCP 协议 , UDP 协议的另外一个不同之处在于如何接收突法性的多个数据报。不同于 TCP , UDP 并不能确保数据的发送和接收顺序
UDP 和 TCP 协议的主要区别是两者在如何实现信息的可靠传递方面不同。 TCP 协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。
与 TCP 不同 , UDP 协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把 UDP 协议称为不可靠的传输协议。
相对于 TCP 协议 , UDP 协议的另外一个不同之处在于如何接收突法性的多个数据报。不同于 TCP , UDP 并不能确保数据的发送和接收顺序
Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
(一般意义上说)
交换机是工作在数据链路层
。但随着科技的发展,现在有了三层交换机,三层交换机已经扩展到了网络层。也就是说:它等于
“
数据链路层
+
部分网络层
”
。
交换机中传的是帧。通过存储转发来实现的。
路由器是工作在网络层 。路由器中传的是 IP 数据报 。主要是选址和路由
路由器是工作在网络层 。路由器中传的是 IP 数据报 。主要是选址和路由
http://zhidao.baidu.com/question/14471943.html?si=2
Q4:请问C++的类和C里面的struct有什么区别 ? ????
C++
类可以定义函数和变量,
struct
中也可以定义函数,当然是通过函数指针方法
类默认属性是 private 的
struct 默认属性是 public 的,当然你是没办法定义 private 的
类默认属性是 private 的
struct 默认属性是 public 的,当然你是没办法定义 private 的
C
中的
struct
的成员默认的访问权限是
public,
在以前
C
的
struct
中是不允许有成员函数的
,
但是现在
C++
对
struct
进行了扩展
,
现在的
struct
中也可以有成员函数
,
还有一个区别就是
C++
的
template
机制只支持
class
不支持
struct
Q5:请讲一讲析构函数和虚函数的用法和作用?
置于
“
~
”
是析构函数
;析构函数因使用
"~"
符号
(
逻辑非运算符
)
,表示它为腻构造函数,加上类名称来定义。
;析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。
有适放内存空间的做用 !
虚函数是 C++ 多态(重载)的一种表现 ??
例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为 virturl (虚函数 ) 。
使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。
如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为 virturl 函数名 =0
我们把这样的函数(方法)称为纯虚函数。
如果一个类包含了纯虚函数,称此类为抽象类
;析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。
有适放内存空间的做用 !
虚函数是 C++ 多态(重载)的一种表现 ??
例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为 virturl (虚函数 ) 。
使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。
如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为 virturl 函数名 =0
我们把这样的函数(方法)称为纯虚函数。
如果一个类包含了纯虚函数,称此类为抽象类
Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?
全局变量和局部变量的区别是在存储器中位置不同,具体说,全局变量存储在数据段中,局部变量都有可能,一般来说在堆栈段
全局变量和局部变量在程序的不同的段中。编译器根据语法;操作系统其实不需要知道