网络基础 一
网络的发展背景:
交换机
最初两个计算机之间的数据交换是通过交换机完成的,假设有A,B两个机器连在交换机上,A机器先将数据传送给交换机,交换机收到数据后将其传输到与其相连的另一台机器B上,完成数据传输。
交换机是根据所连接的计算机的mac地址(物理网卡地址)进行数据交换的。
但是交换机它存在很大的缺陷,就是无法智能识别,如果一个交换机上连接了两台以上的计算机,它就不知道应该把接收到的数据送的哪台机器上,后来就产生了路由器解决了这一问题。
路由器
路由器在交换机数据交换功能的基础上增加了一条功能----进行网络识别:
为网络中的每一条数据选择一条合适的路径,发送到目标主机上。
路由器已经能够实现在同一局域网下的任意两台机器之间进行数据交换。
网络的划分
局域网:覆盖范围<1km的网络
城域网:覆盖范围<20km的网络
广域网:覆盖范围>20km的网络
互联网/因特网:更大的国际性的广域网
按照组网方式还可以细分:以太网、令牌环网。
IP地址
IP地址:本质是 unit32_t----无符号四个字节的整数;
在网络中作为一个计算机的唯一标识;网络中主机之间的定位是通过IP地址进行标识的,并且网络中的每条信息中都会包含两条信息:源端IP地址
和对端IP地址
;表明这条信息从哪里来,到哪里去。
ipv4:uint32_t----可以表示大概43亿个ip地址,不够全球用户使用 (DHCP/NAT)
DHCP:采用动态分配方法保证用户可以正常上网,谁需要上网就给谁分配ip地址
NAT:当数据处理量不大时,组建私网,让这个私网下的所有用户使用同一个ip地址
ipv6:uint8_t addr[16]----无符号16个字节每个字节8位的整数,可以表示2^128个ip地址,足够全球用户使用,但推广程度不高
端口号
端口号:uint16_t 类型的-----无符号2个字节的整数
在一台主机上唯一标识一个进程:通信进程会将接收到的数据发送到指定端口下
注意:一个端口只能被一个进程占用,但是一个进程可以使用多个端口。
协议
“协议” 其实就是一种约定。
计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息.。要想传递信息, 就需要约定好双方的数据格式。这种约定就是协议,要实现网络互连就必须要具有统一的协议。
协议分层
协议分层的意义:将复杂网络环境按照提供的服务以及使用的接口协议不同,将网络通信层次清晰的划分出来,更加容易实现网络互联。
OSI七层模型:
以提供的服务不同,将网络通信环境划分为7层:
应用层、表示层、会话层、传输层、网络层、链路层、物理层
但是由于该划分过于复杂繁琐,所以便产生了后过来优化过的TCP\IP五层模型
TCP\IP五层(或四层)模型
注意:物理层一般考虑的少,所以也可以看作 TCP\IP四层模型。
应用层:负责应用程序之间的数据沟通;FTP、HTTP
传输层:负责进程之间的数据传输;UDP、TCP(内部具有一个描述信息叫端口,用来标识进程)添加源端端口和对端端口,描述数据从哪个进程来,要送到哪个进程
网络层:负责地址管理与路由选择;IP;添加两个信息源端IP地址和对端IP地址,描述数据要从哪个主机送往哪个主机。路由器
链路层:负责相邻设备之间的数据传输;以太网协议-eth ;交换机
物理层:负责物理光电信号的传输;以太网协议;集线器
举例说明TCP\IP五层模型的工作流程:
五元组
五元组:sip+sport+dip+dport+protocol
sip:源端ip
dip:对端ip
sport:源端端口
dport:对端端口
protoco:协议
以上五部分称为五元组,这五个信息完整的描述了一条通信,网络中的每条数据中都包含这五条信息。