C1任务-11:常用网络命令和端口

任务背景
工程师天天使用计算机做软件开发,有时候出了问题需要确定到底是自己的问题,还是网络的问题。所以学习并了解一些常见的计算机命令和开发中常用的端口,对开发工作会有很多实际的帮助

任务目标
了解常用的网络服务端口号
掌握常见网络命令及使用场景

常用网络命令
ping命令:这是在开发中使用频率极高的一个命令,主要用于确定网络的连通性,例如很多刚刚安装操作系统的计算机,第一件事就是先看看是否能联网,所以往往执行的第一条命令就是ping命令。它的格式是:ping主机名/域名/IP地址

ipconfig/ifconfig命令:当使用不带任何参数选项ipconfig/ifconfig命令时,显示每个已经配置了的接口的IP地址、子网掩码和缺省网关值。其中在Windows中使用的是ipconfig,而在Mac或Linux系统中,使用的是ifconfig

netstat命令:能够显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4以及IPv6统计信息,通过它可以了解网络当前的状态

常用网络端口:在网络技术中,端口包括逻辑端口和物理端口两种类型。物理端口是用于连接物理设备之间的接口,如ADSLModem、集线器、交换机、路由器上用于连接其他网络设备的接口,例如网卡RJ-45端口、SC端口等等。还有另一种是逻辑端口,就是用于区分不同网络服务的端口,比如有的端口负责完成发送与接收邮件,有的负责上网浏览网页,而有的负责用来和其他网络共享文件等等。在这里,我们指的就是这种逻辑端口

TCP与UDP段结构中端口范围在0~65535之间端口号小于256的是常用端口,服务器一般都是通过常用端口号来识别的任何TCP/IP实现所提供的服务都用0~1023之间的端口号1024~49151端口号是被注册的端口号,可以由用户自由使用,也是被IANA指定为特殊服务使用,从49152~65535是动态或私有端口号(以上并不是强制的)

端口号 服务/协议 说明
21 FTP 服务器所开放的端口,用于上传、下载
22 SSH SSH 连接
23 Telnet 远程登录服务
25 SMTP SMTP服务器所开放的端口,用于发送邮件
80 HTTP HTTP协议默认端口号
109 POP3 邮局协议端口号
161 SNMP 网络管理协议端口号
443 HTTPS HTTPS协议默认端口号
8080 WWW 代理一般的网站服务会开放此端口

练习
1.在Windows上,如果想查看本机IP地址,可以用哪个命令?
答:ipcomfig

2.http、https、telnet、ftp这四个协议默认的端口号分别是多少?
分别是80 443 23 21

这是一个最短路径问题,可以使用Dijkstra算法或者Floyd算法进行求解。以下是使用Dijkstra算法的示例代码: ```python import heapq # 构建有向图 graph = { 'S': {'A1': 6, 'A3': 3}, 'A1': {'S': 6, 'A2': 3, 'A3': 6, 'B1': 5, 'B2': 4}, 'A2': {'A1': 3, 'B1': 6, 'B2': 6, 'C1': 7, 'C2': 8, 'T': 3}, 'A3': {'S': 3, 'A1': 6, 'B1': 7, 'B2': 4}, 'B1': {'A1': 5, 'A2': 6, 'A3': 7, 'B2': 7, 'C1': 7, 'C2': 8}, 'B2': {'A1': 4, 'A2': 6, 'A3': 4, 'B1': 7, 'C1': 8, 'C2': 9}, 'C1': {'B1': 7, 'B2': 8, 'A2': 7, 'C2': 5, 'T': 5}, 'C2': {'B1': 8, 'B2': 9, 'A2': 8, 'C1': 5, 'T': 6}, 'T': {'A2': 3, 'C1': 5, 'C2': 6} } def dijkstra(graph, start, end): # 初始化距离列表和堆 distances = {node: float('inf') for node in graph} distances[start] = 0 heap = [(0, start)] # 初始化前驱节点列表 previous_nodes = {node: None for node in graph} while heap: # 弹出堆中距离最小的节点 (distance, current_node) = heapq.heappop(heap) # 如果该节点已经访问过,则跳过 if distance > distances[current_node]: continue # 遍历该节点的所有邻居 for neighbor, weight in graph[current_node].items(): new_distance = distance + weight # 如果新的距离比之前的距离更小,则更新距离和前驱节点 if new_distance < distances[neighbor]: distances[neighbor] = new_distance previous_nodes[neighbor] = current_node heapq.heappush(heap, (new_distance, neighbor)) # 构建路径 path = [] current_node = end while current_node is not None: path.insert(0, current_node) current_node = previous_nodes[current_node] return distances[end], path start = 'S' end = 'T' distance, path = dijkstra(graph, start, end) print(f'最短路径为:{" -> ".join(path)},长度为:{distance}') ``` 在上述代码中,我们首先构建了一个有向图,然后使用Dijkstra算法求解经过指定节点的最短路径。其中,使用了堆来维护当前距离最小的节点,以提高算法的效率。最后,输出了最短路径及其长度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逻辑鬼才灰太狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值