1. 通信网络产生

如果有两台电脑如何网络通信?这当然很简单,主要一根网线就可以,
如果是三台电脑呢?当然我们仍然可以相互交叉网线,但是这个要每个电脑有2块网卡,4台电脑呢?10台呢?所以这个方法不现实,
所以,首先想到用集线器(HUB),实现网络互相,它主要作用就是让信息复制,发给任何人(广播),这样导致资源消耗严重,并且同时发送信息,消息会碰撞,引发错误。
是否可以将数据发送给指定电脑呢?MAC地址是每个网卡唯一标识,相当于人的身份证,所以可以MAC地址来自动寻址传输数据,解决冲突问题,这个设备就是交换机,因为交换机是根据网口地址传送信息,比直接用交换机传送多了一个步骤,也把交换机工作在计算机数据链路层。
但是突然出现另一个网络,用交换机无法进行通信,因为两边在不同地方,所以要有个快递员,把数据递过去,这个设备就是路由器,路由器通过IP地址寻址的,IP地址相当于你家家庭住址,我们把路由器工作在计算机网络层。
总结一下:
交换机是MAC寻址的,路由器是IP地址寻址的
交换机适合局域网内互联,路由器实现全网段互联

2. 网络基础

2.1 地址

2.1.1 MAC地址

形象地说,MAC地址等同于人的身份证号码,是唯一性的
长度为48位,前6位是网络硬件制造商的编号
后6位代表制造商所制造的某个网络产品的序列号

2.1.2 IP地址

IP地址是IP协议提供一种统一的地址格式,它为互联网上每个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异,相当于现实生活中的地址。
IP地址分类
A类0~126,B类地址(128~191),C类地址(192~223),D类地址(224~239),E类地址(240~255)
特殊地址
- 0.0.0.0 任意地址,用于配置默认路由
- 127.0.0.0/8 作为回环使用,用于测试本地TCP/IP协议栈是否正常
- 255.255.255.255 广播地址,用于本网络所有节点
公有地址和私有地址
公有地址直接访问Intent,私网地址不能,需要NAT地址转换协议转换
网络掩码
用于区分网络地址和主机地址,1表示网络位,0表示主机位(连续)
每个网段中有两个特殊网段不能使用,网络地址和广播地址
网络地址,主机位全0,代表一个网段(头);
广播地址,主机位全1,代表一个网段内的所有节点(尾);
主机地址,代表网段中一个节点。
子网划分
使用默认掩码问题,地址范围过大或者过小,导致IP地址浪费
所以可以可边长子网掩码(VLSM)
如何划分子网
网络号
增量
广播号
主机号

2.1.3 两者区别

MAC是身份证号码,IP家庭住址
二层基于MAC地址转发数据,三层基于IP地址转发报文

2.2 OSI参考模式

2.2.1 应用层

DNS,域名解析系统
建立IP地址与域名关系,相互转换
系统自带DNS查询工具
HTTP,超文本传输协议
客户端访问万维网
网络浏览器通过翻译源代码文件来表示文本,图像,音乐,动作及视频
SMTP和POP3,邮件服务
Telnet,终端网络
FTP和TFTP
FTP,提供可靠的文件传输服务,具有认证、权限等功能
TFTP,提供不可靠的文件传输服务,消耗资源较小,速度较快,常用于网络设备的配置文件和系统文件传输

2.2.2 传输层

传输层定义主机应用程序之间端到端的连通性,常见就是TCP和UDP
传输层提供端到端的连接(会话之间)
网络层提供点到到的连接(节点之间)
根据端口号区分不同应用协议
如FTP默认为21,HTTP是80
TCP,可靠的、面向连接的协议,传输效率低,类似打电话
TCP会话建立的三次握手
小王:你是小红吗?
小红:我是小红,你是小王对吧
小王:好的,我知道了
TCP会话的结束的四次握手
UDP,不可靠,无连接的服务,传输效率高,类似于群聊(直播)
两者区别

2.2.3 网络层

IP协议,网络层提供IP路由功能
TTL,time to live生存时间
Protocol,用来标识上层使用的协议,常见的协议号

2.2.4 数据链路层

以太网,Ethernet当今主导地位的局域网组网技术,
以太网分类
数据链路层定义两个子层,LLC层和MAC层
LLC层,逻辑链路控制,负责识别网络层协议类型并对网络层的数据进行封装
MAC层,介质访问控制,负责控制物理层设备,处理硬件设备的物理寻址、定义网络拓扑及数据帧的传递顺序

2.3 按地址传递

单播,广播,组播
单播,Unicast发送给单个设备(明确目标地址)
广播,Broadcast发送给所属广播域内的所有设备(目标地址不明确)
组播,Multicast发送给一组目标,MAC地址为***,IP地址为D类

2.4 数据传递过程

电脑访问网页的过程
HTTP基于TCP的,在上层TCP应用是数据封装上一个TCP的头部(称之为段),头部包括,源端口号,目的端口号,源端口号随机,目的端口号为80;
IP层,数据段装上一个IP头,IP头包括IP源地址,目的IP地址,协议号,TCP的协议号众所周知为6,称之为数据包;
数据链路层,数据包封装一个以太网数据帧头,数据帧头源MAC地址,目的MAC,IP地址不是同网段,要交给自己的网关,所以这个目的MAC就是网关,如果没有就发送ARP广播,目的MAC为全F,找到网关的MAC地址,将目的地址改成网关地址,另外,在以太网帧头的类型字段写上0x0800这个值,说明帧头后面封装的是IP包,这个我们称为数据帧;
物理层传输bit流,电气化的脉冲,数据组变成一堆01在网线传输;
路由器受到数据帧,查看MAC地址是否自己,发现自己,有看是0x0800,于是知道是IP包,将以太网帧头剥去,交给IP协议层处理;
先看数据传输过程,IP头是否受损,在查看目的IP,并不是自己IP,从自己路由表找下一个目的地路径,找到接口并将数据包交给以太网协议处理;
为IP包封装新的以太网帧头,帧头源MAC地址就是自己的路由器接口,目的是下一跳的目的MAC,如果不知道MAC,又要发送ARP请求,拿到MAC地址;
好不容易,数据帧到了Server,发现是自己MAC地址,发现是0x0800,于是知道是IP包,去掉帧头交给上层协议ip处理,发现ip也是自己网卡的ip,去掉ip包头中的协议字段,协议字段为6知道是TCP的数据,将数据交给上层的TCP协议去处理,TCP处理头部的目的端口号,发现目的端口号为80,本地的TCP80开放的,剥去TCP头部,交给HTTP应用,HTTP拿到应用数据,到达目的地。
返回数据同样按照上述过程。

3. 交换

交换机主要功能:
1. 终端设备的接入;
2. 以太网数据帧的交换,根据目的MAC地址转发数据帧;
3. 学习MAC地址,并维护MAC地址表;
4. 防止二层环路

3.1 交换过程

交换机主要功能:
终端设备的接入;
以太网数据帧的交换,根据目的MAC地址转发数据帧;
学习MAC地址,并维护MAC地址表;
防止二层环路
学习-泛洪-转发-更新
学习,从一个接口收到数据帧时,把数据帧的源MAC地址和该接口进行绑定,存放MAC地址表
泛洪,从一个接口收到广播帧,组播帧,未知单播帧,把该帧从其他所有接口转发出去,将数据帧从除了收到它的接口之外的所有其他接口都发一份拷贝
转发,从一个接口收到已知单播帧,立即从相应接口转发出去(除目标地址是自己)
更新,交换机地址表中的表项默认的保存300秒,交换机重启会清楚所有接口学习到的记录,接口关闭后会清空该接口学习到的记录,一个源MAC地址出现在别的接口上,会删除老的记录,添加新的记录。