IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络实验相关总结(验证性,wireshark,CPT) -> 正文阅读

[网络协议]计算机网络实验相关总结(验证性,wireshark,CPT)

验证性

Ipconfig

ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息,它有很多的参数可用,比如使用最多的/all
在cmd中使用命令
在CMD窗口使用ipconfig/all会获得更加详细的信息
ipconfig/all

1.【ipconfig微软文档】
2.【ipconfig wiki】

Ping

PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。
使用方式
Ping百度
其中字节表示一个packet包含32*8=256bits,时间表示单个包来回的时间和,TTL则是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,一定程度上可以表示当前IP到目标IP的“距离”。
使用ping/? 可以获取更多有关该指令的信息:
ping/?

当ping命令无法正确执行时,即ping某一目标的<ip>可以正确通信,但ping它的域名却无法正常通信时可以考虑是否是DNS解析服务器出错或者DNS的配置出现错误导致目标IP的地址解析出现问题

Tracert (Trace Route)

TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。
使用示例(使用tracert命令追踪baidu.com):
tracert baidu.com

1.tracert的原理是TTL机制,通过不停发送TTL递增的包,记录经过的节点
2.发送的packet会经过网关传往外界,所以追踪其他的ip地址时会出现前几个节点相同的情况

ARP(Address Resolution Protocol)

ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。

图解ARP

arp命令使用示例(arp -a):
arp -a使用arp -s命令可以将arp缓存类型由静态转换为动态(尝试固定网关):
arp -s
出现提示添加失败,该提示出现的原因是权限不够需要提升权限才可用
以管理员身份运行 cmd后再次执行该命令即可正常执行
arp -s admin
此外还可以使用 arp/? 查看arp的相关帮助
arp/?

DHCP(Dynamic Host Configuration Protocol)

DHCP即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

1 用于内部网或网络服务供应商自动分配 IP 地址给用户
2 用于内部网管理员对所有电脑作中央管理

简单的说,DHCP 可以让计算机自动获取/释放网络配置。
命令示例(ipconfig/release):
ipconfig/release
也可以使用以下命令重新获取网络配置 ipconfig/renew :
ipconfig/renew

网卡ip变成169.254.x.x,一种情况是是pc的网卡启动或者dhcp续租成功时,检测到环境中存在ip冲突,操作系统为保护起见分配的保留ip地址。此地址不是合法的地址,因此无法获取的网关的mac地址,无法实现上网等操作。路由器不响应这类消息的arp请求,这个地址无法通过路由器。另一种情况是dhcp功能打开,发出discover消息,没有得到应答消息,操作系统自动分配给pc网卡一个169.254.xx.xx的ip地址。

netstat

无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。

netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

目录C:\WINDOWS\system32\drivers\etc\services可以查看对应的端口
services
使用 netstat -an可以查看连接:
netstat -an

DNS(Domain Name System)

DNS即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。

一图解析DNS原理

DNS的相关信息可以在C:\WINDOWS\system32\drivers\etc\hosts查到
hosts
解析过的 DNS 记录将会被缓存,以利于加快解析速度。可以使用 ipconfig /displaydns 命令查看:
ipconfig/displaydns

我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。

使用 nslookup 命令可以指定DNS服务器进行解析

cache

cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。

浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

启用cache的情况下打开网页:
cache on
关闭cache的情况下打开网页:
cache off
可以看到关闭cache的情况下加载的时间明显更长

Wireshark

Ethernet 帧结构

帧
帧结构:
前导码:包括同步码(用来使局域网中的所有节点同步,7字节长)和帧标志(帧的起始标志7,1字节)两部分;

目的地址:接收端的MAC地址,6字节长;

源地址:发送端的MAC地址,6字节长;

类型:数据包的类型(即上层协议的类型),2字节长;

数据:被封装的数据包,46-1500字节长;

校验码:错误检验,4字节长。

Ethernet帧最小长度46字节

当PING子网外的主机时,目的mac会填写当前网关mac:
当前网关mac
清空ARP表后,ping外网地址会解析得到网关mac:
网关mac

获得网关的mac是因为数据包要抵达通信子网之外必须先通过网关,所以返回的是网关的mac。

IP包结构

ip包
(1)版本:用来表示TCP/IP是哪个版本,ipv4还是ipv6.
(2)区分服务:确定更高的传输优先级。
(3)总长度:确定数据部分长度。一共是16位,最多有2^16-1=65535字节。
(4)标识:如果出现数据包分片,那么标识用来确定哪些数据包是需要组合的。
(5)标志:确定该数据包是完整的还是分片中的一部分。占3位,只有前两位有用。
(6)片偏移:偏移等于当前字节在数据部分的第几个再除以8.
(7)生存时间:就是TTL,time to live,每过一个路由器就减1。8位二进制。防止数据包在网络中循环。
(8)协议:用协议号标识数据部分是什么数据。

ip包
因为ip包的最大长度为1500,当超过1500的ip包发送后会被路由分段重组,如图所示分段的第二个包:
分段包

TTL 事件

前面介绍tracert的原理就是TTL机制,即Time to Live机制,而tracert就是根据这样的机制,随着包的TTL的递增,从而获取路径。如图:
tracert原理
如果我们收到一个包的TTL为50,我们可以大概推测该点离我们有大约50跳的距离。

TCP报文结构

TCP报文结构

首部长度:一般为20字节,选项最多40字节,限制60字节。

源端口、目的端口

序号:TCP协议面向字节流,传输文件按顺序在缓存里面分块存放,要组建数据包,一块一块的往外发,加上IP,Mac等。序号就是指这个数据包的编号,通过这个来确认发送的数据有序,比如现在序列号为1000,发送了1000,下一个序列号就是2000。

确认号:接收端缓存中收到数据包,然后去掉头,给发送端一个确认,我收到的数据包的最后一个字节。确认号是服务器告诉客户端该发以第几个字节为头的数据包。只要一确认,该确认的数据就会从缓存里面删掉。

数据偏移:是用来记录TCP报文段第多少个字节后,就开始是数据部分。首部最长可以60个字节。

6位标志URG表示紧急指针是否有效,URG为1的数据包可以插队,优先发。

ACK表示确认号是否有效。PSH为1的数据包优先从接收缓存发给接收方。RST为1,表示TCP出现严重错误,要求对方重新连接。SYN表示请求建立一个连接。FIN表示通知对方本端要关闭连接。

窗口:A和B通信时,B要告诉A他的接收缓存是多少字节。A设置发送缓存的大小。两边缓存最好一样。缓存多少字节,就是窗口大小。

检验和:由发送端填充,接收端对报文段执行CRC(循环冗余校验,利用除法及余数的原理来作错误侦测)算法以检验TCP报文段在传输中是否损坏。

紧急指针URG校验位为1才有作用,紧急指针为50,就是1-50个字节是要紧急处理的。

选项:长度可变,最长可达40字节。

UDP报文结构

udp报文结构

伪头部 : 只是为了提取 IP 数据报中的源IP,目的IP信息并加上协议等字段构造的数据。在实际传输中并不会发送,仅起到校验和计算使用,因此称之为伪首部。

源端口号 : 一般是客户端程序请求时,由系统自动指定,端口号范围是 0 ~ 65535,0~ 1023为知名端口号。

目的端口 : 一般是服务器的端口,一般是由编写程序的程序员自己指定,这样客户端才能根据ip地址和 port 成功访问服务器

UDP 长度 : 是指整个UDP数据报的长度 , 包括 报头 + 载荷,

UDP校验和 : 用于检查数据在传输中是否出错,是否出现bit反转的问题,
当进行校验时,需要在UDP数据报之前增加临时的 伪首部。

UDP数据

TCP 建立和释放连接

tcp连接

SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)

建立过程:
第一次握手:
Client的应用进程主动打开,将标志位SYN置为1,随机产生一个seq=x,并将数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

第二次握手:
Server应用进程被动打开,Server收到数据包后由标志位SYN=1知道Client请求建立连接,若同意客户端的请求,则发回确认报文,Server将标志位SYN和ACK都置为1,ack(number)=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

第三次握手:
Client收到确认报文之后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,通知上层应用进程连接已建立,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

断开连接过程:
第一次挥手:
数据传输结束以后,Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

第二次挥手:
Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),此时本次连接就进入了半关闭状态,客户端不再向服务器发送数据。而服务器端仍会继续发送。Server进入CLOSE_WAIT状态。

第三次挥手:
若服务器已经没有要向客户端发送的数据,其应用进程就通知Server释放TCP连接,Server发送一个FIN,用来关闭Server到Client的数据传送。Server进入LAST_ACK状态。

第四次挥手:
Client收到FIN后,Client进入TIMEWAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

DNS解析

先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析:
DNS请求
QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文
opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态
AA:授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器
TC:截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断
RD:递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考
RA:允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询
zero,这3位未用,必须设置为0
rcode:4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)

CPT(Cisco Packet Tracer)

用交换机构建 LAN

交换机构建局域网
各PC的基本网络配置如下表:
ip表

生成树协议

只使用交换机构建拓扑结构,如图:
生成树
是初始时的状态。我们可以看到交换机之间有回路,这会造成广播帧循环传送即形成广播风暴,严重影响网络性能。

随后,交换机将自动通过生成树协议(STP)对多余的线路进行自动阻塞(Blocking),以形成一棵以 Switch8 为根(具体哪个是根交换机有相关的策略)的具有唯一路径树即生成树!

经过一段时间,随着 STP 协议成功构建了生成树后,Switch8 的两个接口当前物理上是连接的,但逻辑上是不通的,处于Blocking状态(桔色)如下图所示:
blocking

路由器配置初步

配置

1.这显然是两个不同的子网。在不同子网间通信需通过路由器。
2.现实中,两个路由器连接是远程的。该连接通过路由器的光纤接口或者serial 口进行,一般不会通过双绞线连接。因为双绞线衰落快,最长传输距离约100米,不适合长距离传输。

0号route

以太网口0/0配置:

Router>enable   // 从普通模式进入特权模式
Router#configure terminal   // 进入全局配置模式
Router(config)#interface f0/0   // 进入配置以太网口模式
Router(config-if)#ip address 192.168.1.1 255.255.255.0   // 配置该接口的 IP
Router(config-if)#no shutdown   // 激活接口
Router(config-if)#^z   // 直接退到特权模式
Router#

广域网口0/0配置:

Router>en   // 从普通模式进入特权模式
Router#conf t   // 进入全局配置模式
Router(config)#int s0/0   // 进入配置广域网口模式
Router(config-if)#ip address 192.168.2.1 255.255.255.0   //配置该接口的 IP
Router(config-if)#clock rate 64000    // 其为 DCE 端,配置时钟频率
Router(config-if)#no shutdown   // 激活接口
Router(config-if)#^z   // 直接退到特权模式
Router#

1号router

以太网0/0配置:

Router>en   // 从普通模式进入特权模式
Router#conf t   // 进入全局配置模式
Router(config)#int f0/0   // 进入配置以太网口模式
Router(config-if)#ip address 192.168.3.1 255.255.255.0   // 配置该接口的 IP
Router(config-if)#no shutdown   // 激活接口
Router(config-if)#^z   // 直接退到特权模式
Router#

广域网0/0配置:

Router>en   // 从普通模式进入特权模式
Router#conf t   // 进入全局配置模式
Router(config)#int s0/0   // 进入配置广域网口模式
Router(config-if)#ip address 192.168.2.2 255.255.255.0   //配置该接口的 IP
Router(config-if)#no shutdown   // 激活接口
Router(config-if)#^z   // 直接退到特权模式
Router#

静态路由

静态路由:静态路由是非自适应性路由协议,是由网络管理人员手动配置的,不能够根据网络拓扑的变化而改变。 因此,静态路由简单高效,适用于结构非常简单的网络。

静态 0号router

Router>en   // 从普通模式进入特权模式
Router#conf t   // 进入全局配置模式
Router(config)#ip route 192.168.3.0 255.255.255.0 192.168.2.2   // 告诉交通大学路由器到 192.168.3.0 这个网络的下一跳是 192.168.2.2
Router(config)#exit   //退到特权模式
Router#show ip route    //查看路由表

静态 1号router

Router>en   // 从普通模式进入特权模式
Router#conf t   // 进入全局配置模式
Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1   // 告诉重庆大学路由器到 192.168.1.0 这个网络的下一跳是 192.168.2.1
Router(config)#exit   //退到特权模式
Router#show ip route    //查看路由表

VLAN

VLAN(Virtual Local Area Network)即虚拟局域网。通过划分VLAN,我们可以把一个物理网络划分为多个逻辑网段即多个子网。
划分 VLAN 后可以杜绝网络广播风暴,增强网络的安全性,便于进行统一管理等。

构建如图拓扑结构:
VLAN
下面我们就该交换机的 24 个 100M 接口分为 3 个部分,划分到 3 个不同的 VLAN 中,id 号分别设为 10、20、30,且设置别名(computer、communication、electronic)以利于区分和管理。
配置:

Switch>en
Switch#conf t
Switch(config)#vlan 10    // 创建 id 为 10 的 VLAN(缺省的,交换机所有接口都属于VLAN 1,不能使用)
Switch(config-vlan)#name computer    // 设置 VLAN 的别名
Switch(config-vlan)#exit
Switch(config)#int vlan 10    // 该 VLAN 为一个子网,设置其 IP,作为该子网网关
Switch(config-if)#ip address 192.168.0.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#vlan 20    // 创建 id 为 20 的 VLAN
Switch(config-vlan)#name communication    //设置别名
Switch(config-vlan)#exit
Switch(config)#int vlan 20
Switch(config-if)#ip addr 192.168.1.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#vlan 30    // 创建 id 为 20 的 VLAN
Switch(config-vlan)#name electronic    // 设置别名
Switch(config-vlan)#exit
Switch(config)#int vlan 30
Switch(config-if)#ip add 192.168.2.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#int range f0/1-8    // 成组配置接口(1-8)
Switch(config-if-range)#switchport mode access    // 设置为存取模式
Switch(config-if-range)#switchport access vlan 10    // 划归到 VLAN 10 中
Switch(config-if-range)#exit
Switch(config)#int range f0/9-16
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#int range f0/17-24
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 30
Switch(config-if-range)#^Z
Switch#show vlan // 查看 VLAN 的划分情况

vlan ip表
此时可以使用 ping 命令进行测试,你会发现只有在同一 VLAN 中的 PC 才能通信,且广播也局限于该 VLAN。
vlan ping

DHCP、DNS及Web服务器简单配置

配置拓扑图如下:
dhcp
该拓扑中,服务器及客户机都连在同一交换机上。为简单起见,服务器 Server-PT 同时作为 DHCP、DNS 以及 Web 服务器,各客户机无需配置,将自动获取网络配置。
配置如下:
DHCP配置
各pc ip配置获取如下:
pc1
pc 2

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-04 13:46:39  更:2022-01-04 13:47:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 9:21:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码