**IP:**一台主机在网络中的标识(不可重复)
IPv4: DHCP-NAT DHCP:动态地址分配 NAT:网络地址转换
IPv6: 每一台网络中的数据都会带有两条信息:源端ip地址、对端ip地址。
端口:网络通信中一台主机上进程的标识符。 uint16_t类型的数据——范围:0~65535 每一个网络中的数据不但带有源端ip和对端ip,还包括两个信息:远端端口,对端端口。
源端ip+源端端口+对端ip+对端端口:描述了当前这个数据是从网络中的哪个主机上的哪个进程发出来的,要发往哪台主机上的哪个进程。
问:为什么不用进程id表示? 答:进程id会改变,而端口是固定的,可以固定接收到消息。
协议:约定 网络通信协议:网络通信中的数据格式。 因此要实现网络互连,就必须具有统一的网络通信协议标准。
ISO—OSI七层网络互联模型: 以提供的服务不同将网络通信环境划分为7层。 层次划分:应用层、表示层、会话层、传输层、网络层、链路层、物理层。
TCP/IP五层模型: 应用层:负责应用程序之间的数据沟通。FTP、HTTP 传输层:负责进程之间的数据传输。UDP、TCP 网络层:负责地址管理与路由选择。IP、路由器 链路层:负责相邻设备之间的数据传输。以太网协议-eth、交换机 物理层:负责物理光电信号的传输。以太网协议、集线器
网络字节序:
主机字节序: 一台主机上cpu对内存中数据按照字节为单位进行存取的顺序。 分类: 大端:低地址寸高位; 小端:低地址存低位 一个变量/数组的起始地址就是低地址,随着下标变大而变大。
大小端取决于cpu架构,如x86架构为小端、MIPS架构为大端。
主机字节序主要强调的是存储单元大于一个字节的数据类型: short / int / long / float
主机字节序对网络通信的影响: 两个不同主机字节序主机之间的数据通信 主机字节序不同,则有可能在网络通信中产生数据二义
想要避免因为主机字节序不同而导致的数据二义,则需要在网络中统一字节序标准,即统一为大端字节序(网络字节序) 也就意味着如果你的主机是小端,则在网络通信时需要将数据转换为网络字节序后进行发送
|