一、网络类型
局域网:网络覆盖范围在1000米以内的网络;
城域网:网络覆盖范围在20km以内的网络;
广域网:网络覆盖范围在20km以上的网络;
因特网,互联网:更大的国际化的广域网;
以太网,令牌环网:组网方式。
二、IP地址
本质:一个uint32_t无符号32位的整数。
作用:在网络中能够唯一标识一台主机。
发展:
因为IP地址为无符号32位整数,所以网络中的IP地址数量是有限个的,只有接近43亿个。随着网络的发展,IP地址数已经不能够满足人们的使用,所以为了解决这个问题,又发展出了一些相关的技术和IPv6的产生。
IPv4版本IP地址:uint32_t
1)DHCP:动态地址分配
2)NAT技术:网络地址转换技术-组建私网
IPv6版本IP地址:uint8_t ip[16]
IPv6版本IP地址,并不向前兼容IPv4。
注意:
在网络中通信的每一条数据中,都会包含两个信息:源端IP地址&对端IP地址。因为这两个信息描述了数据从网络中的哪个主机发出,和要到达哪个主机。
数据五元组:源端IP,源端口,目的IP,目的端口,传输层协议
三、端口PORT
本质:uint16_t:无符号16位整数
作用:在一台主机上标识一个网络通信进程。
注意:
1)在网络通信的每一条数据中都会有两个信息:源端端口&对端端口。
2)一个端口只能被一个进程占用,但是一个进程可以使用多个端口。
3)每个主机上的网络通信程序都会提前告知操作系统,网卡收到的发往哪个端口的数据应该交给自己来处理。
四、网络通信协议
协议:
约定网络通信协议,指的就是网络通信中数据的格式约定。
为了实现网络互联,在复杂的网络通信环境中必须定义对应的协议标准。
1. 协议分层
将复杂网络通信环境,按照提供的服务、使用的协议、接口,进行划分。
2. ISO:OSI七层网络互联模型
应用层、表示层、传输层、网络层、链路层,物理层。
3. IEEE:TCP/IP五层模型
3.1 应用层
复杂应用程序之间的数据沟通。
典型协议:HTTP、FTP、SMTP、
3.2 传输层
负责进程之间的数据传输。
典型协议:TCP/UDP协议---包含了端口信息
3.3 网络层
负责地址管理与路由选择。
典型协议:IP协议---包含了IP地址信息。
典型设备:路由器
3.4 链路层
负责相邻设备之间的数据传输。
典型协议:ETH协议---包含了MAC地址信息。
典型设备:交换机
3.5 物理层
负责物理光电信号的传输。
典型协议:以太网协议
典型设备:集线器
五、字节序
1. 主机字节序
主机字节序:
cpu对内存中数据以字节为单位进行存取的顺序。
主机字节序取决于cpu架构。
例:x86---小端 mips---大端
注:内存有高低地址之分,数据的二进制有高低位之分。
分类:
大端:低地址存高位
小端:低地址存低位
示例:
2. 网络字节序
网络字节序:网络通信中的字节序标准,采用的是大端字节序。
在网络通信中,若通信两端主机是不同的字节序,则就有可能出现数据二义性。因此,规定了网络通信中必须使用网络字节序。
字节序针对什么样的数据?
针对存储单元大于一个字节的数据。
因为存储单元小于等于一个字节的数据,并不会受字节序影响。比如:字符,字符数组……
结构体变量的字节序问题:
结构体变量,若要考虑字节序问题,应该是针对每一个成员变量单独考虑,而不是整体考虑翻转。