1、OSI的七层网络模型有哪些,每一层有什么作用?
答:(1)应用层:负责处理不同应用程序之间的通信,需要满足提供的协议,确保数据发送方和接收方的正确。
(2)表示层:负责网络中通信的数据的编码和格式,确保通信过程中数据的正确,数据加密或者解密,保证了数据的安全性等等
(3)会话层:负责与其他计算机中的应用程序建立、维护或者终止会话。
(4)传输层:负责计算机与计算机之间(端与端)的数据的传输,保证了数据收发的过程
(5)网络层:负责不同网络中的应用程序之间的通信,保证数据的发送方能准确到数据的接收方
(6)数据链路层:负责的是将网络中的数据转换成物理层能识别的信号(字节类型的数据),还负责设备结点(用MAC地址来进行表示)之间的数据的传输
(7)物理层:负责底层最原始的数据(比特数据)的传输
2、TCP/IP的四层网络模型有哪些,每一层有什么作用?
(1)应用层高:将表示层、会话层统一归属到应用层,应用层中的应用程序使用端口号来进行标识
(2)传输层:传输层的作用是在源结点和目的结点的两个进程实体之间提供可靠的端到端的数据传输。
(3)网络层:负责不同网络中的应用程序之间的通信,保证数据的发送方能准确到数据的接收方
(4)网络接口层(数据链路层):将数据链路层和物理层归属到数据链路层或者是网络接口层,使用MAC地址来唯一表示计算机的物理地址,还定义了一些列的网络接口(以太网、令牌网等等)
3、什么是大端存储?什么是小端存储?用C语言代码实现数据在内存中的存储是大端存储还是小端存储?
大端存储:数据的高字节,存储在内存的低地址,数据的低字节,存储在内存的高地址
小端存储:数据的高字节,存储在内存的高地址,数据的低字节,存储在内存的低地址
4、sizeof和strlen有什么区别?
sizeof
是一个操作符,用于在编译时确定特定类型或对象在内存中所占的字节数。它可以用于基本数据类型、结构体、数组等,返回的是一个常量表达式。由于sizeof
在编译时计算大小,它不依赖于对象的实际内容或状态,因此使用它是安全的,不会导致运行时错误。
strlen
是一个函数,用于在运行时计算C字符串的长度,返回的是字符串中不包括结尾的字符数。如果传入的指针是空指针或者结尾没有‘\0’,可能导致程序崩溃。