- OSI的七层网络模型有哪些,每一层有什么作用?
(1)应用层
负责处理不同应用程序之间的通信,需要满足提供的协议,确保数据发送方和接收方的正确
应用层提供的协议:
HTTP:超文本传输协议,用于Web浏览器和Web服务器之间的通信。
FTP:文件传输协议,用于文件的上传和下载。
SMTP:简单邮件传输协议,用于发送和接收电子邮件。
POP3:邮局协议版本3,用于从邮件服务器上接收电子邮件。
IMAP:Internet邮件访问协议,用于从邮件服务器上接收和管理电子邮件。
......
2)表示层
负责网络中通信的数据的编码和格式,确保通信过程中数据的正确,数据加密或者解密,保证了数据的安全性等等
例如:
编码格式的转换
音视频格式的转换
数据的加密与解密
数据的压缩与解压缩
图像格式的转换
......
(3)会话层
负责与其他计算机中的应用程序建立、维护或者终止会话
4)传输层
负责计算机与计算机之间(端与端)的数据的传输,保证了数据收发的过程
TCP协议:传输控制协议
UDP协议:数据报协议
(5)网络层
网络层,称为网络协议层-----“IP协议”,负责不同网络中的应用程序之间的通信,保证数据的发送方能准确到数据的接收方
(6)数据链路层
负责的是将网络中的数据转换成物理层能识别的信号(字节类型的数据),还负责设备结点(用MAC地址来进行表示)之间的数据的传输
主要功能:
物理寻址,错误重发等等
(7)物理层
负责底层最原始的数据(比特数据)的传输
- TCP/IP的四层网络模型有哪些,每一层有什么作用?
(1)应用层
将表示层、会话层统一归属到应用层,应用层中的应用程序使用端口号来进行标识
(2)传输层
(3)网络层
(4)网络接口层(数据链路层)
将数据链路层和物理层归属到数据链路层或者是网络接口层,使用MAC地址来唯一表示计算机的物理地址,还定义了一些列的网络接口(以太网、令牌网等等)
3、什么是大端存储?什么是小端存储?用C语言代码实现数据在内存中的存储是大端存储还是小端存储?
大端存储:数据的高字节,存储在内存的低地址,数据的低字节,存储在内存的高地址
小端存储:数据的高字节,存储在内存的高地址,数据的低字节,存储在内存的低地址
#include <stdio.h>union A{short a;char arr[2];};int main(int argc, const char *argv[]){union A s;s.a=0x1234;printf("arr[0]=%x\n",s.arr[0]);if(s.arr[0]==0x34){printf("小端存储\n");}return 0;}
4、sizeof和strlen有什么区别
1.Sizeof是运算符而strlen是函数
2.Sizeof可以用类型做参数,strlen只能用char*做参数
3.数组做sizeof参数不退化,而传递给strlen则退化成指针
4.strlen结果是运行时候才能计算出来,而且计算出来的是字符串的长度不是内存的大小
5.当使用的是结构体或者变量时,sizeof返回的是实际的大小,静态空间数组则返回数组的尺寸
6.sizeof不能返回动态分配的数组或者外部数组的尺寸