交换机:实现主机之间的数据交换;
路由器:实现数据交换和路由选择,相当于就是一个网关的作用;
网络的划分:
局域网:网络覆盖范围在一千米以内
城域网:网络覆盖范围在10-20千米
广域网:网络覆盖范围在20千米以外
IP地址
用来标识唯一的主机,分为IPV4和IPV6两个版本,IPV4位uint32_t类型的,IPV6是uint8_t arr[16],但是IPV6并不向前兼容IPV4,因此还是IPV4目前被较为广泛的使用。在网络中每条信息都会包含源IP和目的IP
PORT端口
被用来在主机中标识唯一的进程,uint16_t,无符号两个字节的整数,当主机上的一个程序运行起来之后,会告诉操作系统自己的IP地址和端口,这个时候操作系统如果从网卡上接收到数据后,就会根据目的地址信息,选择将数据交给正确的进程处理,并且网络中每条信息也会包含源端口和目的端口
一个进程可以使用多个端口,但是一个端口只能被一个进程使用
TCP/IP五层模型:
1.应用层:负责应用程序之间的数据沟通;典型协议:HTTP、FTP、DNS;描述数据的组织解析以及一些数据的描述信息
2.传输层:负责应用程序之间的数据传输;典型协议:TCP、UDP;描述端口信息标识从哪个进程到哪个进程
3.网络层:负责地质管理与路由选择;典型协议:IP;路由器;描述IP信息,标识从哪个主机到哪个主机
4.链路层:负责相邻设备之间的数据帧识别与传输;典型协议:以太网协议;交换机;描述MAC地址,标识从哪个设备到哪个设备
5.物理层:负责物理光电信号的传输;典型协议:以太网协议;集线器;
数据的传输流程:发送端主机的层层数据封装:tcp/ip五层模型的层层对原始数据的描述->接收端主机的层层数据分用:tcp/ip五层模型的层层对网络数据进行解析得到原始数据的过程
网络字节序:
字节序:cpu在内存中对数据进行存取的顺序
网络字节序:在网络传输的过程中,数据的存储顺序
大端字节序:低地址存高位;小端字节序:低地址存低位
网络字节序是大端还是小端取决于什么?取决于cpu架构,x86架构–小端,mips–大端架构
如何解决在网络通信中由于字节序不同造成的数据二异的问题?—在网络通信中使用相同的网络字节序标准
如何判断大端小端?union tmp{int a;uchar b;} tmp.a = 1;if(tmp.b == 1){小端}else{大端};