1、OSI的七层网络模型有哪些,每一层有什么作用?
- 物理层(Physical Layer):负责传输数字信号,例如比特流。
- 数据链路层(Data Link Layer):提供可靠的点到点数据传输,包括帧同步、错误检测和纠正等功能。
- 网络层(Network Layer):负责数据包的路由和转发,实现不同网络之间的通信。
- 传输层(Transport Layer):提供端到端的可靠数据传输,例如分段、流量控制和错误恢复。
- 会话层(Session Layer):处理不同应用程序之间的对话控制和同步。
- 表示层(Presentation Layer):负责数据的格式转换和加密解密等操作。
- 应用层(Application Layer):提供特定的网络应用程序,例如电子邮件和文件传输。
2、TCP/IP的四层网络模型有哪些,每一层有什么作用?
- 网络接口层(Network Interface Layer):负责将数据包传输到网络介质上,例如以太网或Wi-Fi。
- 网络层(Internet Layer):负责进行网络寻址和数据路由,实现不同网络之间的通信。
- 传输层(Transport Layer):提供端到端的可靠数据传输,例如TCP和UDP协议。
- 应用层(Application Layer):提供特定的网络应用程序,例如HTTP、FTP和DNS。
3、你在做项目的过程中有没有遇到问题?遇到了什么问题?如何解决?之后再次遇到怎么处理?
- 分析问题的原因和影响,并制定解决方案。
- 寻求他人的意见和建议,尤其是团队成员或专家的帮助。
- 进行必要的调整和优化,以达到预期的结果。
- 在项目结束后,总结经验教训,并记录下来以便在类似情况下可以参考和应对。
4、什么是大端存储?什么是小端存储?用C语言代码实现数据在内存中的存储是大端存储还是小端存储?
大端存储和小端存储是计算机中数据存储的两种方式:
- 大端存储(Big-Endian)是指将高字节存储在低地址,低字节存储在高地址的方式。
- 小端存储(Little-Endian)是指将低字节存储在低地址,高字节存储在高地址的方式。
- C语言代码如下
-
#include <stdio.h> int main() { union { int i; char c; } u; u.i = 1; if (u.c == 1) { printf("小端存储\n"); } else { printf("大端存储\n"); } return 0; }
5、sizeof和strlen有什么区别?
sizeof和strlen是C语言中的两个运算符,有以下区别:
- sizeof是一个运算符,用于计算数据类型或变量的大小(字节数),包括数据类型占用的内存空间和对齐补齐的字节数。
- strlen是一个函数,用于计算字符串的长度,即字符串中字符的个数(不包括结束符’\0’)。
#include <stdio.h>
#include <string.h>
int main() {
int num = 123;
printf("int类型的大小:%zu\n", sizeof(num)); // 输出 sizeof(int) 的值
char str[] = "Hello";
printf("字符串的长度:%zu\n", strlen(str)); // 输出字符串长度
return 0;
}