网络分类
以范围
- 局域网、城域网、广域网
组网技术
- 以太网、令牌环网
IP地址
每一台主机在网络中的唯一标识
ipv4:uint32_t 无符号四字节整数
ipv6: uint8_t ip[16] 不向前兼容
技术扩展DHCP/NAT
端口port
在一台主机上标识一个网络通信的进程
端口是一个 uint16_t 无符号2 字节整数(0~65535),为了让接收方主机收到之后知道要让哪个进程处理数据
一个端口只能被一个进程占用。
源端IP:发送方
对端IP:接收方
网络通信中的数据都有五个信息(五元组):源端IP、对端IP、远端端口、对端端口、协议。
网络通信在实际物理层面是以光电信号来传输的,网卡就是实现二进制与光电信号的转化的重要设备。网卡的制造商有很多,要实现网络互连就需要统一的格式,也就是下面要说的协议
协议
网络通信协议就是通信两端数据格式的约定,就像两个人要交流,就要说一样的语言一样。当然一个协议远远不够实现网络互联,协议有很多也复杂。于是就有了协议分层。
协议分层:目的为了将复杂网络环境的进行清晰的划分,更容易实现网络互联。
OSI七层模型(由下至上):物理层、链路层、网络层、传输层、会话层、表示层、应用层
这个模型不太实用,划分的太细致,实现起来很复杂。
TCP/IP五层模型(由上到下):
- 应用层:负责进程之间的数据沟通。如HTTP、FTP…
- 传输层:负责进程之间的数据传输。描述这是哪两个进程之间的通信。如TCP、UDP
- 网络层:负责地址管理与路由选择。IP协议
设备:路由器(转发数据以及选择最短路径) - 链路层:负责相邻设备之间的数据传输。起点到终点之间会经过多段路程。ETH以太网协议(MAC地址)
设备:交换机 - 物理层:通过物理光电信号将数据传输。以太网协议(硬件层面)
设备:集线器
网络字节序
字节序:CPU对内存中数据进行存取的顺序,针对的数据类型为存储单元大于一个字节
大端:低地址存高位
小端:高地址存高位
对于网络通信的影响:通信两端主机字节序不同,造成数据二义
解决办法:定义网络通信字节序标准,网络字节序—大端字节序。