这个博客参考了许多up主的视频和网上其他的博主的文章,还有我老师的ppt
这里是目录
- 一、osi七层模型(参考模型)
- 1.物理层
- 2.数据链路层(数据一跳一跳进行传递)
- 3.网络层(端到端传输)
- 4.传输层(服务进层到服务进层的传输)
- 5.会话层
- 6.表示层
- 7.应用层(最接近用户)
- 具体过程
- 二、TCP/IP协议(四层)
- 三、IP地址(ipv4)
- 1、IP地址分类
- 2、私有地址
- 四 ARP协议【数据链路层】
- 1、工作过程
- (1)同一个网络
- (2)不同网络
- 2、发送的ARP数据报
- 五、DNS(域名系统)【应用层】【封装在UDP协议中】
- 1、域名分级
- 2、查询ip
- 六、PPP(Point to Point Protocol 点对点协议)【数据链路层】
- 1、功能
- 2、格式
- 3、运行过程
- 七、RIP(距离矢量路由协议)【封装在UDP协议中】【应用层】
- 八、OSPF(链路状态路由协议)【传输层】【封装在IP协议中】
- 1、格式
- 2、ospf的五大类型分组
- 3、工作步骤
- 九、路由汇总
- 十、IP协议【网络层】
- 1、IP数据包格式
- 2、ip分片
- 案例
- 十一、ICMP协议(Internet Control Message Protocol 互联网控制信息协议)【网络层】
- 1、功能
- 2、格式
- 3、类型和代码
- 十二、Tracert命令
- 工作过程
- 十三、路由重定向
- 十四、Telnet【应用层】【封装在TCP协议中】
- 1、NVT
- 2、工作过程
- 3、本地终端与远程主机的协商
- 十五、TCP
- 1、三次握手
- 2、四次挥手
- 十六、DHCP【应用层】【封装在UDP协议中】
- 1、报文
- 2、工作过程
- 3、dhcp Relay
- 十七 、NAT(网络地址转换)
- 1、类型
- 2、配置
- 十八、HTTP【应用层】【封装在TCP协议中】
- 1、无连接
- 2、无状态
- 十九、命令
- 1、静态路由
- 2、rip 路由选择协议
- 3、ospf 路由选择协议
- 4、ip
- 5、vlan
- 6、arp
- 7、ppp协议
- 二十、总结
一、osi七层模型(参考模型)
1.物理层
用不同的媒介(光/电/电磁波)将比特(0和1)传输出去,数据出去之后会经过不同的网络拓扑(所以需要中继器和集线器这样的设备,但还是不够,数据要去到哪台设备是要定向的,因此需要高级一点的网络模型,于是到了数据链路层)
2.数据链路层(数据一跳一跳进行传递)
bit被封装成帧,在封装时加上Mac地址,为了可以通过Mac地址对不同设备进行传输,就出现了交换机(2层)。
还会进行差错检测(防止0变成1,1变成0)和流控制。
数据链路层的三个基本问题
封装成帧
透明传输
差错检测
3.网络层(端到端传输)
为了快速定位,还需要ip地址进行寻址和路由选择。
包是这层数据的名字。
路由器根据包里的ip地址进行路由转发。
4.传输层(服务进层到服务进层的传输)
通过ip和mac地址定位到主机,这层则可以通过端口号来定位主机上的软件服务。
段是这层数据的名字。
传输层负责可靠传输(tcp)[tcp可以分段传输]和不可靠传输(udp)。
通过流量控制保证传输速度。
5.会话层
软件服务可以保存登陆状态,以及同步服务。
6.表示层
不同pc的数据表示不大相同,表示层就可以进行编码和解码。还可以进行加密和解密,文件压缩等。
7.应用层(最接近用户)
会话层,表示层,应用层的数据的名字都叫做"报文"。
常见的应用层协议为http,比如两个应用软件需要进行沟通,我们就可以根据http协议编写应用程序。
具体过程
客户端发送的数据,就是报文,报文来到传输层,加上端口号封装成段,段来到网络层,加上ip地址封装成包,这是如果目标ip地址与源ip地址不是同一个网络下的,则要经过默认网关,但是客户主机最初不知道默认网关的mac地址,无法封装成帧,这时则要通过arp协议广播寻找默认网关的mac地址,把包封装成帧。把帧转发到默认网关,网关查看mac,发现是发给自己的,再解封为包查看ip地址,发现ip地址在另一个网络,就会进行路由转发,最终到达目标网络。
二、TCP/IP协议(四层)
应用层(应用+表示+会话)
传输层
网络层
网络接口层(数据链路层+物理层)
三、IP地址(ipv4)
1、IP地址分类
A:1.0.0.0~126.255.255.255
B:128.0.0.0~191.255.255.255
C:192.0.0.0~223.255.255.255
D:224.0.0.0~239.255.255.255
E:240.0.0.0~255.255.255.255(保留地址)
2、私有地址
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
直接广播地址:主机号全为1
本地广播地址:f.f.f.f
网络地址:主机号全为0
环回地址:127.0.0.1,通常被称为本地回环地址(Loop back
address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。可以用来测试本机的网络配置。
四 ARP协议【数据链路层】
1、工作过程
(1)同一个网络
查看ARP缓存表(保存着ip和mac地址的映射关系),
如果缓存表中存在目标主机的mac地址则直接把目标mac填入帧;
如果没有,则通过arp协议获取目标主机的mac地址,将对应的映射关系填入缓存表中,再把目标mac填入帧。
发送帧。
(2)不同网络
查看ARP缓存表(保存着ip和mac地址的映射关系),
如果缓存表中存在默认网关的mac地址则直接把目标mac填入帧;
如果没有,则通过arp协议获取默认网关的mac地址,将对应的映射关系填入缓存表中,再把默认网关填入帧。
发送帧。
2、发送的ARP数据报
发送给默认网关的ARP数据报,
目的ip:默认网关的ip
目的mac:广播mac
五、DNS(域名系统)【应用层】【封装在UDP协议中】
将域名解析为ip地址
域名比如:www.bilibili.com
www(访问主站) mail(访问邮箱) member(会员) space
1、域名分级
2、查询ip
1、先从DNS缓存中查找,然后从hosts文件中查找,以上都找不到的情况下发送DNS 报文给本地域名服务器获取。
2、
迭代查询:我不知道地址,但是a知道,我告诉本地域名服务器a的地址,让本地域名服务器去找a,a也不知道,提供b的地址,让本地域名服务器找b……如此下去,直到找到域名的ip地址。
递归查询:我不知道地址,我去找a,a不知道,a去找b……直到最后找到ip地址,我把ip地址给本地域名服务器。
DNS协议中,所有的客户端PC知道根服务的IP地址——错!
六、PPP(Point to Point Protocol 点对点协议)【数据链路层】
点到点协议,是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
PPP 具有动态分配IP地址的能力,允许在连接时刻协商IP 地址;
PPP 支持多种网络协议,比如 TCP/IP、NetBEUl、NWLINK等;
PPP 具有错误检测能力,但不具备纠错能力,所以 ppp 是不可靠传输协议;
无重传的机制,网络开销小,速度快:
PPP 具有身份验证功能;
PPP 可以用于多种类型的物理介质上,包括串口线、电话线。
运行PPP协议的双方独占链路
1、功能
(1)它可以通过串行接口传输TCP/IP包;
(2)它可以安全登录
2、格式
3、运行过程
七、RIP(距离矢量路由协议)【封装在UDP协议中】【应用层】
和相邻路由器交换路由表中的所有路由。
缺点:跳数衡量的路径并非最优路径;最大跳数为15条,网络规模小;每隔30秒给邻居发送自己的全部路由信息,浪费网络资源;收敛速度慢。
知识点:
使用UDP协议
传输层的端口:520
120的默认管理距离(静态路由是1,ospf是110)。在RIP路由中设置管理距离是衡量一个路由可信度的等级,可以通过定义管理距离来区别不同路由来源。路由器将挑选具有最小管理距离的路由。
组播的地址为:224.0.0.9
更新时间:30秒
只有邻居才会交换路由信息
采用水平分割法(不要把从一个邻居学习到的路由再发送回该邻居)来解决路由环路问题。
八、OSPF(链路状态路由协议)【传输层】【封装在IP协议中】
和区域内所有的路由器交换自己直连的路由。
1、格式
2、ospf的五大类型分组
(1)类型1:问候(Hello) 分组,用来发现和维持邻居的可达性在广播网络中还可用来选举DR和BDR
(2)类型2:数据库描述 (Database Description) 分组,向邻居发送的链路状态数据库的摘要信息。
(3)类型3:链路状态请求 (Link State Request) 分组,向对方请求发送某些链路状态项目的详细信息。
(4)类型4:链路状态更新 (Link State Update) 分组,用洪泛法向全网发送链路状态更新。
(5)类型5: 链路状态确认 (Link State Acknowledgment) 分组对收到的链路状态更新分组进行确认。
3、工作步骤
(1)通过组播hello包发现邻居
(2)建立邻接关系。
只有建立邻接关系才可以交换链路状态信息,但不是所有的邻居都会建立邻接关系,
在整个网络中只有选举出来的DR(优先级【默认1,范围0~255】)和BDR可以和其他路由器建立邻接关系。
广播型网络才会选举DR和BDR,PPP网络不会。每一个广播域都要选举DR和BDR。
(3)传递链路状态信息。每台设备都有一个LSDB(Link Statu Database,链路状态数据库),LSDB的内容是一条条的LSA(Link Statu Advertisement,链路状态公告)
(4)路由计算
在路由上配置OSPF协议,增加其直连的路由时,需要配置路由丢应的区域号
每隔30分钟/网络发生变化的时候向邻接路由器发送链路状态信息的摘要,收敛以后,网络上每个路由器都对全网的链路状态有相同的认识,每台路由器根据链路状态,独立计算路由。
知识点:
IP协议号为89
以组播地址224.0.0.5发送协议包
单播、广播、组播(也叫多播、任播)的区别:1对1;1对全部、1对1组(只有组内的主机可以接收到信息,这里是同一个广播域的路由接收信息)
OSPF 适用于IP协议
增量更新机制:只发送邻居需要的LSA。(先发送LSA摘要,如果需要的话再请求)
分区域:
背景:因为网络如果很庞大的话,LSDB也是很大的,非常占内存和消耗带宽,所以我们提出划分区域管理路由。
知识点:
区域边界路由器(Area Border Router):两个区域通过ABR连接。
骨干区域:编号为0。所有的非骨干区域之间的通信都要通过骨干区域0转发。
区域编号:32位2进制,也可以表示为一个十进制数。
九、路由汇总
背景:大型互连网络中可能会有成百上千个网络地址。
路由器在维护如此庞大的路由表时常会遇到问题。
就像之前“IPv4 地址规划”介绍过的,路由汇总可以减少一台路由器必须维护的路由数量,
因为路由汇总可以用单个汇总地址代表一系列网络地址。
十、IP协议【网络层】
1、IP数据包格式
2、ip分片
ip最大分组长度可达65535字节,当较大的ip分组穿过承载能力小于ip分组的数据链路层时,网络层的ip分组必须要进行分片,这些分片到达目的地之后,根据标识,标志,片偏移(数据首字节/8)重组成原来的ip。
标识符:用于识别属于同一个数据包的分片,以区别于同一主机或其他主机发送的其它数据包分片,保证分片被正确的重新组合。
标志字段:用于判断是否已经收到最后一个分片。
第1位为无用位。
第2位D是不分片位(DF),Do not fragment,顾名思义,不要分片,当DF位设置为1时,表示路由器不能对报文进行分片处理。
第3位(标志字段的最低位)M表示还有后继分片(MF),More fragment,多分片,当路由器对报分进行分片时,除了最后一个分片的MF位设置为0外,其他所有分片的MF位均设置1,以便接收者直到收到MF位为0的分片为止。
片偏移字段:标识某个分片在分组中的位置。
数据链路层最大数据:1500字节。
IP数据包的首部为20~60个字节,其中20个字节是固定的。
IP数据包的分片过程是在网络层完成的。
案例
十一、ICMP协议(Internet Control Message Protocol 互联网控制信息协议)【网络层】
每个ICMP消息都是直接封装在一个IP数据报中的,因此,和UDP一样,ICMP是不可靠的。
1、功能
主要用于在主机与路由器之间传递控制信息(询问信息),包括报告错误(错误通知)、交换受限控制和状态信息等。
2、格式
3、类型和代码
icmp中, 类型和代码的关系为大类和小类。
代码的值表示是类型值中的一种。
十二、Tracert命令
Tracert 命令用IP生存时间 (TTL) 字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。
工作过程
首先, tracert 送出一个 TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个【ICMP time exceeded 超时】消息(包括发IP 包的源地址,IP 包的所有内容及路由器的IP 地址)。tracert 收到这个消息后,便知道这个路由器存在于这个路径上。
tracert 每次将送出的数据包的 TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包抵达目的地。
当数据包到达目的地后,该主机则不会送回ICMP timeexceeded 消息,一旦到达目的地,由于 tracert 通过 UDP报文段向不常见端口(30000 以上)发送数据包,因此会收到 【ICMP port unreachable 端口不可达】消息,故可判断到达目的地。
十三、路由重定向
路由重定向是指路由器把改变路由的报文发送给源主机,通知源主机下次把去往某目的网络的IP分组发送给另一个路由器。
十四、Telnet【应用层】【封装在TCP协议中】
TELNET可以让我们从本地计算机通过Internet网络登录到另一台远程计算机上。当登录上远程计算机后,本地计算机就等同于远程计算机的一个终端,从而实现了从本地计算机对远程计算机的操作。
远程登录时需要满足以下条件:远程主机开启TELNET服务,监听23号端口,在本地计算机上必须装有包含TELNET协议的客户程序,必须知道远程主机的IP地址或域名,必须知道登录标识与密码。
1、NVT
TELNET使用网络虚拟终端(Net Virtual Terminal) 来屏蔽异构计算机间字符编码的差异。
具体做法:客户把用户击键的命令或数据,转换成NVT格式并通过网络交给服务器,服务器再把这些命令或数据从NVT格式转换成所需的格式,反过来亦是如此。
2、工作过程
(1)本地与远程主机建立连接,建立TCP连接;
(2)将本地终端上输入的用户名和密码及以后输入的任何命令或字符以NVT格式传送到远程主机;
(3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
(4)最后,本地终端对远程主机进行撤销连接。该过程是撤销一个TCP连接。
3、本地终端与远程主机的协商
Telnet传送键盘输入数据是一个字符一个字符地传送。
Telnet是以明文传送数据的。
十五、TCP
为了实现可靠传输,TCP必须面相字节流,发送的数据按字节编号。
可靠三要素:序号、重传、确认。
1、三次握手
2、四次挥手
十六、DHCP【应用层】【封装在UDP协议中】
1、报文
报文 源ip 目的ip 源mac 目的mac
discover 0.0.0.0 f.f.f.f 客户主机的mac f.f.f.f.f.f
offer dhcp服务器自己的ip 分配给客户主机的ip dhcp服务器的mac 客户主机的mac
request 0.0.0.0 f.f.f.f 客户主机的mac f.f.f.f.f.f
ask d hcp服务器自己的ip 分配给客户主机的ip dhcp服务器的mac 客户主机的mac
2、工作过程
3、dhcp Relay
本网络上没有DHCP Server时,必须配置DHCP Relay
本网络上有DHCP Server时,无需配置DHCP Relay
存在DHCP Relay的网络中,从申请IP的PC发出的DHCP Discover报文还是广播报文
存在DHCP Relay的网络中,从DHCP Relay到DHCP Server的所有报文都是单播报文
十七 、NAT(网络地址转换)
将内网的私有IP地址转换为公有IP地址,使得可以访问外网。
1、类型
类型 私有ip 公有ip
静态 1 : 1
动态 N : N
端口多路复用(PAT/NAPT) N : 1
2、配置
静态NAT
ip nat inside source static 10.10.3.131 2.2.2.131
int s0/0 #定义nat的方向
ip nat outside
int f0/0
ip nat inside
动态NAT
access-list 1 permit 10.10.0.0 0.0.255.255 #允许源ip为10.10.0.0/16的数据通过
(1)ip nat pool xianyu 2.2.2.10 2.2.2.100 netmask 255.255.255.0 or
(2)ip nat pool xianyu 2.2.2.10 2.2.2.100 prefix-length 24
ip nat inside source list 1 pool xianyu
int s0/0 #定义nat的方向
ip nat outside
int f0/0
ip nat inside
端口多路复用(PAT)
access-list 1 permit 10.10.0.0 0.0.255.255
ip nat inside source list 1 s2/0(outside口) overload #也可以定义地址池,和动态nat几乎一样,只是多了overload
用telnet登录R2
conf t
enable password cisco #配置特权用户密码
line vty 5 0 #最多配置6个虚拟终端
login
password cisco #配置远程登录密码
远程登录
telnet 3.3.3.3
R1上打开nat调试
debug ip nat
R1上查看nat信息
show ip nat translations tcp
十八、HTTP【应用层】【封装在TCP协议中】
1、无连接
http 1.0 是无连接的,但是现在网页很复杂,嵌入了很多图片,这时候每次访问图片都需要建立一次TCP连接就显得很低效。
解决办法: Keep-Alive(持续连接) 被提出用来解决这效率低的问题。
持续连接的结束问题:
1.响应时采用Transfer-Encoding: chunked,解决传输数据的边界问题。
2.在HTTP响应头部中,用“Content-Length: 12395”告诉了客户端实体长度为12359字节
2、无状态
协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。给服务器发送HTTP 请求之后,服务器发送数据过来,但是,发送完,不会记录任何信息。
每个HTTP请求都是独立的,Keep-Alive没能改变这个结果如果后续处理需要前面的信息,则必须重传。
优点与缺点:优点减轻了服务器负荷。缺点每次请求可能会传输重复的内容。
无状态的特点严重阻碍了客户端与服务器进行动态交互的 Web应用程序,例如购物车程序。
解决办法: Cookie和 Session
十九、命令
1、静态路由
ip route 【目标网段】【子网掩码】【 下一跳】
默认路由
ip route 0.0.0.0 0.0.0.0 10.10.0.254
2、rip 路由选择协议
router rip
version 2
network 【直连网段】
三层交换机上配置rip要开启ip routing
configure terminal #进入全局配置模式
ip routing
end #退出
wr #保存
查看路由表信息
show ip route
3、ospf 路由选择协议
router ospf 10(进程号)
network 【直连网段】 【反码】 area 0(区域号)
4、ip
清除ip地址
clear ip
查看ip地址
show ip
给pc配ip地址
ip 10.10.0.1/24 10.10.0.254(网关ip)
给路由器/三层交换机配ip地址
int g0/0
ip address 10.10.0.1 255.255.255.0
5、vlan
划分vlan
vlan 10
vlan 20 #在交换机上创建vlan10和vlan20
interface g0/0
switchport access vlan 10 #将接口g0/0划分到vlan10上
interface g0/1
switchport access vlan 20
查看vlan的相关信息
shiw vlan-switch brief
配置trunk口
int g0/0
switchport mode trunk
查看trunk的配置情况
show int trunk
6、arp
清除pc/交换机上的arp缓存
clear arp
查看pc/交换机上的arp缓存
show arp
查看/清除交换机上的mac地址表
show/clear mac-address-table
7、ppp协议
两个路由的接口都要配置上
int g0/0
encapsulation ppp
二十、总结
数据链路层:ppp,arp
网络层:ip,icmp
传输层:tcp,udp,ospf【ip】
应用层:http【tcp】,dns【udp】,dhcp【udp】,rip【udp】,telnet【tcp】