IP地址
作用:在网络中能够唯一标识一台主机;
本质:uint32_t 无符号32位的一个整数;
注意:在网络通信的每一条数据中,都会有两 个信息—源端IP地址和对端IP地址,描述了数据从哪个主机来到哪个主机去;
IPv4版本IP地址:uint32_t ;
①DHCP:动态地址分配;
②NAT技术:网络地址转换技术,用于组建私网;
IPv6版本IP地址:uint8_t IP[16] (不兼容IPv4);
端口PORT
本质:uint16_t 无符号16位的一个整数;
作用:在一台主机上标识一个进程;
注意:在网络通信的每一条数据中,都会有两个信息—源端端口和对端端口,描述了数据从哪个端口来到哪个端口去,且一个端口只能被一个进程占用,但一个进程可以占据多个端口;
网络通信协议
指的是网络通信中的格式约定,根据复杂网络通信环境,按照提供的服务,使用的协议,接口可以进行协议的分层;
ISO:OSI七层网络互联模型
应用层,表示层,会话层,传输层,网络层,链路层,物理层;
IEEE:TCP/IP五层模型
应用层:负责不同应用程序之间的数据沟通,HTTP,FTP等;
传输层:负责不同进程之间的数据传输,TCP/UDP—包含了端口信息;
网络层:负责地址管理与路由选择,IP协议—包含了IP地址信息,典型设备:路由器;
链路层:负责相邻设备之间的数据传输,ETH(以太网协议,包含了源端MAC地址和对端MAC地址),MAC地址(物理硬件地址),典型设备:交换机;
物理层:负责物理光电信号的传输,以太网协议,典型设备:集线器;
一条数据中包含了:sip, sport, dip, dport, protocal——五元组(源端IP地址,对端IP地址,源端端口,对端端口,协议;这条数据表示了一条网络通信
网络字节序
字节序:CPU对内存中数据以字节为单位进行存取的顺序(取决于CPU架构);
分类:大端存储(低地址存高位),小段存储(低地址存低位);
存在的问题:通信两端主机是不同的字节序产生的二义性;
因此规定在网络通信中必须采用网络字节序(网络通信中的字节序标准),采用的是大端字节序;
对于short,int,long,float,double以及对应的无符号类型等存储单元大于一个字节的数据需要考虑字节序问题,对于结构体变量需要考虑字节序问题时,只需要考虑单个元素的字节序问题就好;