OSI七层模型
应用层 | 负责处理不同应用程序之间的通信,需要满足提供协议,确保数据发送方和接收方的正确 应用层提供的协议: HTTP:超文本传输协议,由于Web浏览器于Web服务器之间的通信 FTP:文本传输协议,用于文件的上传和下载 SMTP:简单邮件传输协议,用于从邮件服务器上接收电子邮件 IMAP:Internet邮件访问协议,由于邮件服务器上接收和管理电子邮件 等等。 |
表示层 | 负责网络中通信的数据的编码和格式,确保通信过程中数据的正确,数据加密或者解密,确保数据的安全性等等 编码格式转换 音视频格式的转换 数据的加密和解密 图像格式的转换 等等。 |
会话层 | 负责于其他计算机中的应用程序建立、维护或者终止会话 |
传输层 | 负责计算机与计算机之间的数据传输,保证了数据手法的过程 TCP协议:传输控制协议 UDP:数据报协议 |
网络层 | 称之为网络协议层——“IP协议”,负责不同网络中应用程序之间的通信,保证数据的发送方能准确的发送到接收方 |
数据链路层 | 负责的是将网络中的数据转换成物理层能识别的信号,还负责设备节点直接之间的数据的传输 主要功能:物理寻址,错误重发 |
物理层 | 负责底层最原始的数据传输 |
TCP/IP四层模型
应用层 | 将表示层和会话层一起划分到应用层。将三层的功能整合在一起。应用程序通过端口号标识 |
传输层 | 与ISO模型基本一致 |
网络层 | 与ISO模型基本一致 |
数据链路层 | 将数据链路层和物理层归属到数据链路层或者网络接口层,使用MAC地址来唯一表示计算机的物理地址,还定义了一系列的网络接口 |
C语言区分大端存储和小端存储
#include <stdio.h>
typedef short int_16;
typedef enum Mode{Small = 0,BIG =1
}Mode;
Mode SmallOrBig(){Mode mode = Small;int_16 val = 0x0001;if(*((&val)+1)==1){mode = BIG;}return mode;
}int main(int argc, const char *argv[])
{if(SmallOrBig()==Small){printf("小端\n");}elseprintf("大端\n");return 0;
}
小端存储:数据低位存储在地址低位,数据高位存储在地址高位
大端存储:数据低位存储在地址高位,数据高位存储在地址低位
sizeof()与strlen的区别
- sizeof() 是获取数据类型或者变量的存储空间的大小
strlen()是获取字符串的长度,作用比较单一。 - sizeof()是会将\0 计算在内的,
strlen()是不会计算\0位的 - sizeof()是运算符
strlen()是函数 - sizeof()是在程序开始就计算好的
strlen()是在程序运行到才返回结果