目录
传输类型
单工:始终只能完成一个方向的数据传输(传输只有一个方向)
半双工:同一时间只能完成一个方向的数据传输(同一时间只能一个方向进行传输)
全双工:同一时间可以完成两个方向的数据传输(同一时间可以进行双向传输)
注意:同一物理链路上相连的两台设备的双工模式必须保持一致
自协商模式下,配置双工模式
执行命令negotiation auto
缺省情况下,以太网接口的双工模式是和对端接口协商得到的。
非自协商模式下,配置双工模式
执行命令undo negotiation auto
执行命令duplex { full | half },配置以太网接口的双工模式。
缺省情况下,以太网接口的双工模式为全双工。
网络里面三层架构
核心层:主要用于高速流量的转发
汇聚层(分布层)主要把我们接入流量汇聚起来给核心层
接入层:接入终端设备
TCP/IP模型
OSI模型
TCP/IP模型 掌握
目前应用比较广泛的是TCP/IP模型
TCP/IP模型当中重点
应用层
应用层协议=传输层协议+端口号。
TCP协议+23端口=telnet协议(应用层)
常用的应用层协议:Telnet协议、dns协议等
传输层
端口号(16bit):代表一个主机的不同服务
范围0—65535(其中0-1023是知名端口;1024-65535可以任意使用)
源端口(Sport)一般源端口是随机产生的
目的端口(Dport)一般目的端口是知名端口
web服务:80端口
telnet服务:23端口
ssh服务:22端口
dns服务:53端口
FTP服务:21端口
网络层
简称为三层,三层逻辑地址,可以变化的比如:192.168.1.1
网络设备主要是靠IP地址进行访问
源IP地址(SIP)
目的IP地址(DIP)
一般情况下,在数据包的传递过程中SIP和DIP不会发生变化。
数据链路层
简称二层,二层里面有一个物理地址 比如:
MAC地址 48bit,指的就是每一个网络设备生产之后就会有唯一MAC地址。
源MAC地址(SMAC)
目的MAC地址(DMAC)
一般情况下 在数据包的传递过程中 SMAC和DMAC是不断变化的
MAC地址由两部分组成,分别是供应商代码和序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。
物理层
网线(光纤)通过比特流进行传输。
数据传递过程中的封装和解封装
封装
数据包在发送的时候 进行的一个动作 叫做封装
APP头部 数据
UDP头部 APP头部 数据
IP头部 UDP头部 APP头部 数据
以太网头部 IP头部 UDP头部 APP头部 数据
就会变成比特流传输传输给对端
总结:逐渐加头部的过程 是从应用封装到物理层
解封装
当服务器接收数据流量的时候 我这边会进行解分装
首先会接收比特流
IP头部 UDP头部 APP头部 数据
UDP头部 APP头部 数据
APP头部 数据
数据
总结:逐渐去掉头部的过程 是从物理层解封装到应用层
TCP/UDP
TCP协议
传输控制协议 可靠协议
三次握手
A发送SYN
B回复SYN+ACK
A回复ACK
四次分手
A发送FIN
B回复ACK
B发送FIN
A回复ACK
UDP协议
用户数据协议 不可靠协议
ICMP
ICMP(Internet Control Message Protocol)是网络层的一个重要协议
ICMP作用:是一个网络层协议 用于收集现网诊断信息 包括数据包的连通性或者网络故障点
CMP使用两种报文 一个Echo-request(请求报文) 另一个是Echo-reply报文(响应报文)
ICMP错误报告
ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。比如,如果网络中发生了环路,导致报文在网络中循环,最终TTL超时,这种情况下网络设备会发送TTL超时消息给发送端设备。又比如如果目的不可达,则中间的网络设备会发送目的不可达消息给发送端设备。
小结:
注意:ICMP定义了多种消息类型,用于不同的场景
有些消息不需要Code字段来描述具体类型参数,仅用Type字段表示消息类型。
有些ICMP消息使用Type字段定义消息大类,用Code字段表示消息的具体类型。
ICMP重定向
主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,因为此转发路径是更优的路径。所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。主机收到Redirect消息后,向RTA发送报文,RTA会将报文转发给服务器A
发生重定向的条件:
第一:同接口进出
第二:满足第二条源和下一跳同网段
第三:路由器RTB发出的重定向报文
典型应用
PING应用
Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息
PING常用的配置参数说明如下
-a(source-ip-address)参数
指定发送ICMP ECHO-REQUEST报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。
现在全网已经互通了,我们在R1上面验证一下ping命令的参数
<R1>ping 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=40 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=20 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/30/40 ms
在R1上查看到达3.3.3.3路由的出接口为R1的G0/0/0接口
<R1>display ip routing-table 3.3.3.3
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
3.3.3.3/32 Static 60 0 RD 12.1.1.2 GigabitEthernet
0/0/0
所以:默认情况下,R1访问目标地址的时候,所携带的源IP地址是12.1.1.1即自己的接口IP地址作为源IP地址访问目标IP地址
验证-a参数的用法:
<R1>ping -a 1.1.1.1 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=30 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/28/30 ms
<R1>
R1访问目标地址的时候,所携带的源IP地址是1.1.1.1即自己的loopback 0地址
-c(count)参数
指定发送ICMP ECHO-REQUEST报文次数。缺省情况下发送5个ICMP ECHO-REQUEST报文。
<R1>ping -c 1000 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=40 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=40 ms
Reply from 3.3.3.3: bytes=56 Sequence=6 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=7 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=8 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=9 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=10 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=11 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=12 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=13 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=14 ttl=254 time=30 ms
--- 3.3.3.3 ping statistics ---
14 packet(s) transmitted
14 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/28/40 ms
<R1>
-h(ttl-value)参数
指定TTL的值。缺省值是255。
<R1>ping -h 1 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
<R1>ping -h 2 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=40 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/32/40 ms
-t(timeout)参数
指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间。
<R1>ping -t 31 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Request time out
Request time out
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=20 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
3 packet(s) received
40.00% packet loss
round-trip min/avg/max = 20/26/30 ms
注意:ping命令的输出信息中包括目的地址、ICMP报文长度、序号、TTL值、以及往返时间。序号是包含在Echo回复消息(Type=0)中的可变参数字段,TTL和往返时间包含在消息的IP头中。
TRACERT应用
Tracert是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
<RTA>tracert 30.0.0.2
Tracert to 30.0.0.2(30.0.0.2), max hops:30, packet length:40, press CTRL_C to break
1 10.0.0.2 130 ms 50 ms 40 ms
2 20.0.0.2 80 ms 60 ms 80 ms
3 30.0.0.2 80 ms 60 ms 70 ms
TRACERT常用的配置参数如下:
-a (source-ip-address)参数
指定tracert报文的源地址。
-f (first-ttl)参数
指定初始TTL。缺省值是1。
-m (max-ttl)参数
指定最大TTL。缺省值是30。
-name参数
使能显示每一跳的主机名。
-p (port)参数
指定目的主机的UDP端口号。