第一天
一.什么是网络?
网络是由网络连接设备通过传输介质将网络终端设备连接起来,进行资源共享,信息传递的平台
(1)网络连接设备:路由器、交换机
(2)传输介质 :网线、光纤 xian、同轴电缆
(3)网络终端设备 :电脑 手机 PAD 电视--智慧家居
二.什么是路由器(Router)?
连接互联网内局域网和广域网的设备。例如:USB type-c 网线 光纤 硬盘 内存
路由器的作用:
· 实现网络互连,为分组数据提供转发。
· 子网间速率适配
· 隔离子网
· 隔离广播域
· 指定访问规则
三.OSI(又称开放式系统互联模型)
OSI是Open System Interconnection的缩写,意为开放系统互联模型,1984年颁布的参考模型,是由国际标准化公司(ISO)制定,一个开放式体系结构,将网络分成七层。
模型把网络通信的工作分为七层,它们由高到低分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。(记忆口诀:应表会传网数物,物数网传会表应)
第一层到第三层属于高三层,具体负责端到端的数据通信。(产生数据)
第四层到第七层为低层,负责创建网络通信连接的路。( 传输数据)
每一层都有自己负责的工作项目,然后把数据传到下一层。
OSI七层参考模型
1.应用层:通过人机交互来实现各种各样的服务;
2.表示层:编码 解码 加密 解密
3.会话层:发现 建立 维持 终止会话进程
4.传输层:
(1)通过端口号来区分不同的服务
端口号范围:0-65535
端口号分类:
静态端口号 :(1-1023)一个端口号对应一个服务,呈永久绑定关系
http :超文本传输协议 端口 ==80 /8080
https :安全协议 端口 ==443
域名系统 (DNS)— TCP/UDP 端口 53
超文本传输协议 (HTTP) — TCP 端口 80
简单邮件传输协议 (SMTP)— TCP 端口 25
邮局协议 (POP)— TCP 端口 110
Telnet — TCP 端口 23
动态主机配置协议 — UDP 端口 67 和端口 68
文件传输协议 (FTP)— TCP 端口 20 和端口 21
( URL::443--静态端口号被省略掉了
URL——统一资源定位符)
动态端口号( 1024-65535) 一个端口号对应一个服务,呈暂时性绑定关系
0为保留端口号,在网络编程中使用,用于代表所有端口号。
(2)提供可靠的传输 协议--标准,可以对话的标准
TCP 传输控制协议 面向连接的可靠传输协议
UDP 用户数据报文协议 非面向连接的不可靠传输协议
面向连接 --三次握手、四次挥手机制
可靠 --确认 重传 排序 流控
TCP 传输速度---慢
UDP 传输速度---快
3.数据分段
MSS最大段长度 1480B
MTU最大传输单元 1500B
单位的换算关系 --字节和位
数据的封装与解封装:
封装可以理解为各层将每一层的实现数据添加到内容数据之前,解封装是逆过程。**而真正完成这个工作的是工作在各个层次的协议**。
类似于寄信的时候不能可把信纸直接寄出,需要要信封,收件人,发件人,邮编,邮票等东西,这些东西相当于各层的实现数据。
(1)封装
A主机传输数据到B主机
=>从应用层传输上层数据
=>封装tcp到传输层
=>封装IP头部到网络层
=>封装MAC头部到数据链路层
=>最终到物理层转封装成比特流
具体如下图:
(2)解封装
A主机传输数据到B主机
=>从应用层传输上层数据
=>封装tcp到传输层
=>封装IP头部到网络层
=>封装MAC头部到数据链路层
=>最终到物理层转封装成比特流
具体如下图:
5.网络层 :根据IP地址来进行逻辑寻址 编址、寻址 --IP协议--网际网络协议
互联网的每一个节点,必然会存在一个IP地址
6.数据链路层 :
LLC -逻辑链路控制子层 --为上层服务提供FCS校验 --封装与解封装
MAC -媒介访问控制子层 ---根据MAC地址来进行物理寻址
7.物理层 :定义电气电压 光学特性 接口规范
分层的目的
- 降低层次之间的关联性,某一层的协议增加或减少不影响其他层次协议的工作。
- 便于标准化的制定。
- 便于学习和了解计算机层次
四、三次握手,四次挥手
1.三次握手
SYN:同步序列号请求
ACK:确认
Seq+1 = ack
2.四次挥手
FIN-请求断开连接
3.为什么握手是三次,挥手是四次?
三次握手:为了防止无效的连接请求报文到达服务器而引起错误。
TCP是通过程序实现的,可靠的,面向连接的协议。而程序是严谨的,每一次建立连接都会进行“三次握手”这样的步骤。建立连接的目的是为了可靠的数据传输。所以需要保证客户端和服务端都能正常的发送或接收数据。如果有一方无法正常发送、接收数据,那么整个数据传输既不可靠也不能成功。
四次挥手:确保数据能够完整传输。
三次握手是为了建立可靠的数据传输通道,而四次挥手是为了保证等数据传输完再关闭连接,保证双方都达到关闭连接的条件才能断开。
五.报头
1.TCP
首先,源端口与目的端口必不可少,没有这个数据就不知道发给那个应用。下来是报文序列号,为什么需要给报文编号呢,当然是解决数据的乱序问题,不编个号怎么确认那个数据是先来的那个是后到的。然后确认序列号,发出去的报文应该有个确认,不然我怎么知道对方收到没收到,如果没收到就应该重传,当然出现损坏也会重传,如果是职场人,凡事有个响应是必要的。TCP是一个可靠传输协议,他面临的网络环境可能很复杂,网络层是没有可靠性保证的,如果网络环境比较差,TCP作为靠谱协议他不能改变网络环境但是他可以通过算法和重传来保证数据传输可靠。
下来的数据偏移指的是首部长度,表示数据开始的地方离TCP段的起始处有多远。由于首部长度不固定,因此数据偏移字段是必要的。以32比特(4字节)为计算单位。最多有60字节的首部,若无选项字段,正常为20字节。Reserved,
保留字段,必须填0。
接下来是一些状态位,syn表示发起一个连接,ack是确认,RST是重新连接,表明TCP连接中出现严重错误(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立连接。FIN表示断开连接。PSH,表示数据应尽快的交付接收应用进程,而不再等待整个缓存都填满了后再向上交付。URG,紧急指针有效标识。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
window表示窗口大小,TCP能够一次发多个数据,而不是一个一个发送,这样效率更高,确认是只需要确认最后一个即可。那么窗口值设置多少好呢,TCP有流控机制,根据双方发送能力和接受能力来,也就是说不能发的太多把对方撑死,也不能太少把对方饿死,TCP还有拥塞机制,如果网络传输拥塞丢包了,他就会降低窗口值减小速度,也就说路上堵车我管不了,我能做的就是不开车骑个单车上班,尽量不迟到,不能改变世界我就改变自己。这里其实就是算法来控制的,大家下去需要查阅资料写在作业里面,TCP的慢启动算法,TCP的拥塞避免算法,快重传算法,快速恢复算法等。
2.UDP
3.IP
Version :版本 4
IHL : 头部长度
Type of service:服务类型
Total Length: 总长度
标识 标志 片偏移 ==>支撑跨层封装
Time to live: 生存时间 TTL
TTL 范围0-255(我们的数据包每经过一个路由器,这个TTL就会减1。当这个值为0时候这个数据包就会被丢弃,不再转发。)
3.TCP/IP与OSI区别
(1)相同
#都是模型化
#下层为上层服务,每层相互独立
(2)不同
#OSI模型是先有模型后有应用
#TCP/IP先有应用,再有模型
#TCP/IP是四层模型(五层--对等模型) OSI 七层
#TCP/IP仅支持TCP/IP网络
第二天
一、IP地址
互联网的每一个节点都会有一个IP地址
IP地址的分类
版本:IPv4地址、IPv6地址
1.IPv4地址:32位的二进制数,由点分十进制的书写方法表示
二进制与十进制之间的转换
00000000.00000000.00000000.00000000
2^7 ==>2^0
=>128 64 32 16 8 4 2 1
例:192.168.1.1
10101000=128*1+64*1+0*(32+16+8+4+2+1) =192
192.168.1.1
==11000000.10101000.00000001.00000001
172.16.24.37
==10101100.00010000.00011000.00100101
*一个完整的IP地址需要子网掩码/网络掩码 netmask
网络掩码的作用:区分网络位和主机位
网络位:标识此IP地址处于哪个广播域内
主机位:可以给主机分配的IP地址
子网掩码中为1 代表网络位
子网掩码中为0 代表主机位
192.168.1.1
255.255.255.0
==11111111.11111111.11111111.00000000
192.168.1.1/24
192.168.00000001.1/22
==>192.168.00000010.1/22
2.IPv4 地址的分类
(1)IPv4地址( 有限地址==> 2^32 --约42亿)根据使用场景(范围)
私有地址 --免费使用、本地唯一性
公有地址 --付费使用、全球唯一性
(2)IPv4地址,根据第一个8位的范围分为
A 1-126
B 128-191
C 192-223
D 224-239
E 240-254
其中ABC三类地址为单播地址、D类地址为组播地址、E类地址科研使用,保留
单播地址:既可以作为源地址,也可以作为目标地址使用
组播地址:只能作为目标地址去使用
主类网:默认情况下,ABC三类地址拥有默认的子网掩码长度
A /8 255.0.0.0
B /16 255.255.0.0
C /24 255.255.255.0
私有地址范围:
A:10.0.0.0/8
B:172.16.0.0/16-172.31.0.0/16
C:192.168.0.0/24-192.168.255.0/24
特殊的IP地址:
0.0.0.0/0 ==> 无效地址/默认地址/缺省地址
作用:在网络中表示所有IP地址
255.255.255.255 ==>受限广播地址
作用:广播地址,只能作为目标地址使用,表示目标为所有IP地址
127.0.0.1 ==> 本地环回地址
作用:用于检测TCP/IP协议栈道是否能够正常的封装和解封装数据,PC在系统安装完成之后默认存在。用于检测网卡的好坏 ---使用测试连通性指令PING
Ping 127.0.0.1
169.254.x.x/16 ==> 本地私有地址
作用:当PC无法通过自动获取IP地址的方式获取到IP地址时,PC会自动产生一个IP地址,即169.254.x.x/16
192.168.1.0/24 主机位全 0 的地址-网络地址
主机位全0 的地址代表一个网段,代表本网段内的所有IP地址 .相当于=>2104班全体同学
代表地址范围:192.168.1.1/24~192.168.1.255/24
此地址不能给主机使用
192.168.1.255/24 主机位全 1 的地址-广播地址
主机位全1 的地址代表本网段内的广播地址,只能作为目标地址使用;也不能给主机使用.相当于=>2104班班群内@所有人
注意:在一个网段内,除了主机位全0和主机位全1 的地址外,剩下的地址均可给主机使用
(3)例子:
例1:192.168.1.0/24
可用地址范围:
192.168.1.1/24-192.168.1.254/24
可用主机数量(2^主机位-2):254 = 2^8-2
网络地址 192.168.1.0/24
广播地址 192.168.1.255
例2:写出172.16.3.0/16 的可用地址范围、可用主机数量、以及广播地址和网络地址。
可用地址范围:172.16.0.1/16-172.16.255.254/16
可用主机数量(2^主机位-2):65534=2^16-2
网络地址 172.16.0.0/16
广播地址 172.16.255.255/16
重点来了!!!
3.子网划分
为了解决私有地址少,灵活应用的需求,VLSM 可变长子网掩码==>子网划分,将原来的一个大的广播域逻辑的划分为若干个小的广播域。
做法:通过借用主机位来充当网络位,实现
(1)借1位 划分2个广播域--2个网段
192.168.1.0/24
192.168.1.00000000/24+1=25
192.168.1.10000000/24+1=25
192.168.1.0/25
可用地址范围:192.168.1.1/25~192.168.1.126/25
可用主机数量:126
网络地址:192.168.1.0/25
广播地址:192.168.1.127/25
192.168.1.128/25
可用地址范围:192.168.1.129/25~192.168.1.254/25
可用主机数量:126
网络地址:192.168.1.128/25
广播地址:192.168.1.255/25
(2)借2位 划分 4个广播域-- 4个网段
192.168.1.0/24
192.168.1.00000000/24+2=26
192.168.1.01000000/24+2=26
192.168.1.10000000/24+2=26
192.168.1.11000000/24+2=26
192.168.1.0/26
网络地址:192.168.1.0/26
广播地址:192.168.1.63/26
可用地址范围:192.168.1.1/26 - 192.168.1.62/26
可用地址数量:62 = 2^6-2
192.168.1.64/26
网络地址:192.168.1.64/26
广播地址:192.168.1.127/26
可用地址范围:192.168.1.65/26 - 192.168.1.126/26
可用地址数量:62 = 2^6-2
192.168.1.128/26
网络地址:192.168.1.128/26
广播地址:192.168.1.191/26
可用地址范围:192.168.1.129/26 - 192.168.1.190/26
可用地址数量:62 = 2^6-2
192.168.1.192/26
(3)借3位 划分 8个广播域-- 8个网段
192.168.1.0/24
192.168.1.00000000/24+3=27
192.168.1.00100000/24+3=27
192.168.1.01000000/24+3=27
192.168.1.01100000/24+3=27
192.168.1.10000000/24+3=27
192.168.1.10100000/24+3=27
192.168.1.11000000/24+3=27
192.168.1.11100000/24+3=27
192.168.1.0/27
网络地址:192.168.1.0/27
广播地址:192.168.1.31/27
可用地址范围:192.168.1.1/27 - 192.168.1.30/27
可用地址数量:30 = 2^5-2
192.168.1.32/27
192.168.1.64/27
192.168.1.96/27
192.168.1.128/27
192.168.1.160/27
192.168.1.192/27
192.168.1.224/27
最后找到规律:
划分网段数量=2^借位
可用主机数量=2^主机位-2(网络地址、广播地址)
可用地址范围=网络地址+1 - 广播地址-1
划分网段之间的关系:
简便算法:
首先:必须要找到首段地址,之后递增网段,递增的数值就是借位的最低位(最右边那位)的代表数字(也就是掩码:例:/27 就是第27位的代表数字)
4.CIDR 无类域间路由---汇总
将多个小的广播域汇总为一个大的广播域
做法:母网号一致,取相同位,去除不同位
192.168.00000001.0/24
192.168.00000010.0/24
192.168.00000011.0/24
192.168.0.0/24
前22位相同:
192.168.0.0/22 < 24
超网--汇总后的子网掩码长度小于主类网的子网掩码长度
主类网---默认的子网掩码长度