【网络技术】计算机网络介绍

2023-07-10 10:37:55

写在前面

计算机网络是指将多台计算机连接起来,使它们能够相互通信和共享资源的系统。

它是现代计算机科学中的重要分支之一,为全球范围内的信息交流和数据传输提供了基础。

本文将介绍计算机网络的基础概念、体系结构、协议、常见问题等的知识。

一、基本介绍 

1.计算机网络是什么?

计算机网络是由若干台计算机和与之相连的通信设备组成的系统,这些设备通过通信链路进行数据交换和共享资源。计算机网络可以实现远程数据传输、远程控制、远程协作等功能,它是现代信息技术的基础。

2.计算机网络的作用

计算机网络的作用主要有以下几个方面:

(1)资源共享:计算机网络可以实现多台计算机之间的资源共享,如共享打印机、磁盘等。

(2)数据通信:计算机网络可以实现多台计算机之间的数据传输和通信,如电子邮件、文件传输等。

(3)远程访问:计算机网络可以实现对远程计算机的访问和控制,如远程登录、远程维护等。

(4)信息传播:计算机网络可以实现信息的广播和传播,如互联网上的新闻、广告等。

3.计算机网络的分类

根据规模和范围,计算机网络可以分为以下几类:

(1)局域网(LAN):局域网是指在一个局限范围内的计算机网络,如一个公司、学校或者办公楼内的网络。

(2)城域网(MAN):城域网是指在一个城市范围内的计算机网络,如一个城市的政府部门、银行等。

(3)广域网(WAN):广域网是指跨越较大地理范围的计算机网络,如互联网。

(4)无线局域网(WLAN):无线局域网是指使用无线通信技术的局域网。

二、计算机网络的体系结构

计算机网络的体系结构是指计算机网络中各层次之间的关系和交互方式。常见的计算机网络体系结构有:

  • OSI七层模型
  • TCP/IP四层模型

1.OSI七层模型

OSI七层模型是国际标准化组织(ISO)制定的计算机网络体系结构,它将计算机网络分为七层,每层对应不同的功能和服务。从下往上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

(1)物理层:负责实现数据的物理传输,包括电缆、光纤等传输媒介的选择和使用。

(2)数据链路层:负责将数据转换为帧(Frame)格式,进行差错控制和流量控制等功能。

(3)网络层:负责进行路由选择、拆装数据包等功能,实现不同网络之间的通信。

(4)传输层:负责提供端到端的可靠数据传输,包括TCP和UDP两种协议。

(5)会话层:负责建立、管理和终止应用程序之间的会话。

(6)表示层:负责对数据进行编码和解码,保证应用程序之间的数据格式一致。

(7)应用层:提供应用程序所需的服务,如电子邮件、文件传输等。

2.TCP/IP四层模型

TCP/IP四层模型是实际应用较多的计算机网络体系结构,它将计算机网络分为四层,包括网络接口层、网络层、传输层和应用层。

(1)网络接口层:负责控制计算机与物理网络之间的数据传输,包括物理地址的映射和帧的传输等功能。

(2)网络层:负责进行路由选择和数据包转发等功能,实现不同网络之间的通信,包括IP协议。

(3)传输层:负责提供端到端的可靠数据传输,包括TCP和UDP两种协议。

(4)应用层:提供应用程序所需的服务,如电子邮件、文件传输等,包括HTTP、FTP、SMTP等协议。

三、计算机网络的协议

计算机网络的协议是指计算机网络中各层次之间进行通信所需遵循的规则和标准,常见的协议有TCP、IP、HTTP、FTP、SMTP等。

1.TCP协议

TCP(Transmission Control Protocol)协议是一种面向连接的、可靠的传输协议,它负责在网络上可靠地传输数据。TCP协议通过三次握手建立连接,保证数据可靠性,支持流量控制和拥塞控制等功能。

2.IP协议

IP(Internet Protocol)协议是一种无连接的、不可靠的网络层协议,它负责在网络上传输分组。IP协议可以解决不同网络之间的通信问题,支持路由选择和分组转发等功能。

3.HTTP协议

HTTP(Hypertext Transfer Protocol)协议是一种应用层协议,用于在Web浏览器和Web服务器之间传输数据。HTTP协议是基于请求/响应模式的,支持客户端和服务器之间的交互,常用于网页浏览、文件传输等应用。

4.FTP协议

FTP(File Transfer Protocol)协议是一种应用层协议,用于在客户端和服务器之间传输文件。FTP协议支持文件上传、下载和删除等操作,是网络文件传输的标准协议。

5.SMTP协议

SMTP(Simple Mail Transfer Protocol)协议是一种应用层协议,用于在邮件服务器之间传输电子邮件。SMTP协议支持邮件发送和接收等操作,常用于电子邮件的传输。

四、常见问题

1 ifconfig 介绍

ifconfig(interface configuration)是一个用于配置和显示网络接口信息的命令行工具,常用于Unix、Linux和其他类Unix操作系统中。在命令行中输入ifconfig命令,会显示当前系统中所有可用的网络接口的详细信息,包括接口名称、MAC地址、IP地址、网络掩码、广播地址、MTU、数据包统计信息等。

2 输出的主要内容 

下面是ifconfig命令输出的主要内容:

  1. 接口名称:ifconfig命令会列出当前系统中所有的网络接口,每个接口都有一个唯一的名称,例如eth0、lo等。

  2. MAC地址:MAC地址是网络接口的唯一标识符,它由六个十六进制数表示,用冒号隔开。MAC地址通常被用于网络设备之间的通信,以及网络设备的身份验证等。

  3. IP地址:IP地址是网络接口的逻辑地址,用于标识网络中的设备。ifconfig命令会显示每个接口的IP地址,包括IPv4地址和IPv6地址等。

  4. 网络掩码:网络掩码是用于将IP地址划分为网络地址和主机地址的掩码。ifconfig命令会显示每个接口的网络掩码,以及网络地址和主机地址等信息。

  5. 广播地址:广播地址是用于向同一网络中的所有设备发送数据包的地址。ifconfig命令会显示每个接口的广播地址。

  6. MTU:MTU(Maximum Transmission Unit)是数据链路层可以传输的最大数据包大小。ifconfig命令会显示每个接口的MTU值。

  7. 数据包统计信息:ifconfig命令会显示每个接口的数据包统计信息,包括接收的数据包数量、发送的数据包数量、错误的数据包数量等。

除了上述信息,ifconfig命令还可以用来配置网络接口的参数,例如设置IP地址和网络掩码、启用或禁用网络接口等。ifconfig命令是网络管理和故障排除中一个非常有用的工具,可以帮助管理员快速了解系统中各个网络接口的状态和配置信息。

3 示例介绍

在命令行中输入ifconfig命令时,会输出当前系统中所有可用的网络接口的详细信息。

下面是一个示例输出:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::a00:27ff:fe30:9e2a  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:30:9e:2a  txqueuelen 1000  (Ethernet)
        RX packets 32553  bytes 23721425 (22.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 26732  bytes 5422956 (5.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

根据输出内容,可以解释如下:

  1. eth0:这是网络接口的名称,表示这是第一个以太网接口。

  2. flags=4163<UP,BROADCAST,RUNNING,MULTICAST>:这是网络接口的标志,表示该接口已经启用(UP)、支持广播传输(BROADCAST)、正在运行(RUNNING)和支持多播传输(MULTICAST)。

  3. mtu 1500:这是网络接口的最大传输单元(MTU),表示最大数据包的大小为1500字节。

  4. inet 192.168.0.100:这是IPv4地址,表示该接口的IP地址为192.168.0.100。

  5. netmask 255.255.255.0:这是网络掩码,表示前24位是网络地址,后8位是主机地址。

  6. broadcast 192.168.0.255:这是广播地址,表示将数据包发送到该地址时,所有在同一网络中的设备都会接收到数据包。

  7. inet6 fe80::a00:27ff:fe30:9e2a:这是IPv6地址,表示该接口的IPv6地址为fe80::a00:27ff:fe30:9e2a。

  8. prefixlen 64:这是IPv6地址的前缀长度,表示前64位是网络地址。

  9. scopeid 0x20<link>:这是IPv6地址的作用域,表示该地址的作用域为链路本地。

  10. ether 08:00:27:30:9e:2a:这是MAC地址,表示该接口的MAC地址为08:00:27:30:9e:2a。

  11. txqueuelen 1000:这是发送队列的长度,表示可以同时发送的数据包数量。

  12. RX packets 32553:这是接收数据包的数量。

  13. bytes 23721425:这是接收数据包的总字节数。

  14. RX errors 0:这是接收数据包时出现错误的数量。

  15. dropped 0:这是接收数据包时丢弃的数量。

  16. overruns 0:这是接收数据包时发生覆盖的数量。

  17. frame 0:这是接收数据包时出现的帧错误数量。

  18. TX packets 26732:这是发送数据包的数量。

  19. bytes 5422956:这是发送数据包的总字节数。

  20. TX errors 0:这是发送数据包时出现错误的数量。

  21. dropped 0:这是发送数据包时丢弃的数量。

  22. overruns 0:这是发送数据包时发生覆盖的数量。

  23. carrier 0:这是发送数据包时出现的载波错误数量。

  24. collisions 0:这是发送数据包时出现的冲突数量。

通过这些输出内容,可以了解每个网络接口的状态和配置信息,包括网络接口的名称、IP地址、MAC地址、传输统计信息等。这对于网络管理和故障排除非常有用。

5 思考问题

1 如何查看网络状态

要查看网络状态,可以使用以下命令:

ping命令

ping命令可以用来测试网络连接是否正常。它向指定的IP地址或域名发送一个ICMP(Internet控制消息协议)回显请求,如果目标主机能够回复,则表明网络连接正常。

例如,要测试网络连接是否正常,可以使用以下命令:

ping google.com

这个命令会向谷歌的主页发送一个ICMP回显请求,并等待主页服务器返回一个响应。如果网络连接正常,则会显示类似下面的输出:

PING google.com (172.217.12.174) 56(84) bytes of data.
64 bytes from ord30s26-in-f14.1e100.net (172.217.12.174): icmp_seq=1 ttl=118 time=9.25 ms
64 bytes from ord30s26-in-f14.1e100.net (172.217.12.174): icmp_seq=2 ttl=118 time=9.26 ms
64 bytes from ord30s26-in-f14.1e100.net (172.217.12.174): icmp_seq=3 ttl=118 time=9.22 ms

这个输出显示了ICMP回显请求的结果,包括从主机接收到的响应数据包的大小、源IP地址、目标IP地址、TTL(生存时间)和延迟时间等信息。

netstat命令

netstat命令可以用来显示网络连接的状态和统计信息。它可以显示活动的TCP和UDP连接、打开的端口、路由表、网络接口的统计信息等。

例如,要显示当前所有的网络连接和监听端口,可以使用以下命令:

sudo netstat -anp

这个命令会列出所有的网络连接和监听端口,并显示它们的状态、本地地址、远程地址、PID(进程标识符)和进程名称等信息。

ss命令

ss命令是一个更快速和更高效的替代netstat命令的工具。它可以显示当前的套接字(socket)信息,包括TCP和UDP连接、监听端口、进程名称等。

例如,要显示当前所有的TCP连接和监听端口,可以使用以下命令:

sudo ss -tlnp

这个命令会列出所有的TCP连接和监听端口,并显示它们的状态、本地地址、远程地址、PID和进程名称等信息。 

图书推荐

图书名称:

  1. 《计算机网络:自顶向下方法(原书第8版)》
  2. 《现代网络技术:SDN、NFV、QoE、物联网和云计算》

可任选一本

《计算机网络:自顶向下方法(原书第8版)》

《计算机网络:自顶向下方法(原书第8版)》——深入理解云计算必读著作。数十万读者的选择,被国内外数百所高校选用,被译为14种语言畅销全球。

先睹为快:计算机网络

《现代网络技术:SDN、NFV、QoE、物联网和云计算》

《现代网络技术:SDN、NFV、QoE、物联网和云计算》——一人写了70本书的大佬新作!全面、系统地论述影响现代网络的五种关键技术和应用,内容涵盖SDN、NFV、QoE、物联网、云计算。

先睹为快:现代网络技术

 参与方式 

图书数量:本次送出 4 本   !!!⭐️⭐️⭐️
活动时间:截止到 2023-07-14 12:00:00

抽奖方式:

  • 在新星计划【云原生之k8s入门】方向参加的小伙伴中随机抽取

参与方式:

中奖名单 

🍓🍓 获奖名单🍓🍓

 中奖名单:请关注博主动态

名单公布时间:2023-07-14 下午

更多推荐

JS中Symbol的介绍

1、引入Symbol类型的背景ES5的对象属性名都是字符串,这容易造成属性名冲突的问题举例:使用别人的模块/对象,又想为之添加新的属性,这就容易使得新属性名与原有属性名冲突2、Symbol类型简介symbol是一种原始数据类型其余原始类型:未定义(undefined)、空值(null)、布尔值(boolean)、字符串

进一步观察扩散模型中的参数有效调整

摘要:像Stablediffusion[31]这样的大规模扩散模型非常强大,可以找到各种真实世界的应用程序,而通过微调来定制这样的模型会降低内存和时间的效率。受自然语言处理最新进展的推动,我们通过插入小型可学习模块adapters(称为适配器)来研究大型扩散模型中的参数高效调优。具体来说,我们将适配器的设计空间分解为正

[Linux入门]---文本编辑器vim使用

文章目录1.Linux编辑器-vim使用2.vim的基本概念4.vim正常模式命令集从正常模式进入插入模式从插入模式转换为命令模式移动光标删除文字复制替换撤销更改跳至指定行5.vim末行模式命令集5.总结1.Linux编辑器-vim使用vi/vim作为Linux开发工具之一,从它的键盘操作图也可以知道,它的操作不会很简

网络安全(黑客)自学

前言:我是去年8月22日才正式学习网络安全的,因为在国营单位工作了4年,在广东一个月工资只有5000块,而且看不到任何晋升的希望,如果想要往上走,那背后就一定要有关系才行。而且国营单位的气氛是你干的多了,领导觉得你有野心,你干的不多,领导却觉得你这个人不错。我才24周岁,实在的受不了这种工作氛围,情绪已经压制了很多久,

Feign实战-Springboot集成OpenFeign Demo以及参数详解

最近整理一下微服务的文章,先拿一直用的OpenFeign开刀思考:微服务之间如何方便优雅的实现服务间的远程调用一、说说openFeign是什么吧?说到这个,那不得不先说说RPC1.什么是RPCRPC全称是RemoteProcedureCall,即远程过程调用,其对应的是我们的本地调用。RPC的目的是:让我们调用远程方法

【前端设计模式】之策略模式

概述在前端开发中,我们经常会遇到需要根据不同的条件或情况来执行不同的算法或行为的情况。这时,策略模式就能派上用场。策略模式是一种行为型设计模式,它将不同的算法封装成独立的策略对象,使得这些算法可以互相替换,而不影响客户端代码。这种灵活性和可扩展性使得策略模式在前端开发中得到广泛应用。前端应用示例1.抽象策略类假设我们正

集简云票税通,高效、管理销项发票,满足多样化开票需求

随着数字化时代的到来,传统的纸质发票已经逐渐被电子发票所替代。然而,对于许多企业来说,管理和开具大量的销项发票仍然是一项繁琐的任务:票税处理成本高,手工开票效率低。部分企业手工开票量大,耗费大量财务精力。企业对账难,涉税数据分散,财务工作量大业务财务系统之间无法连接,数据传递和回传的及时性和准确性难以把控......为

【汇编】数制与数据编码

【汇编】数制与数据编码文章目录【汇编】数制与数据编码1、计算机中的数制1.1数制介绍1.1.1进制1.1.2进制转换1.2基本数学运算1.2.1原反补码1.2.2加法&减法溢出&进位补码运算1.3其他数据编码1、计算机中的数制1.1数制介绍1.1.1进制不同进制是用于表示数字的不同数制系统,它们在数学、计算机科学和工程

分享一个基于微信小程序的高校图书馆预约座位小程序 图书馆占座小程序源码 lw 调试

💕💕作者:计算机源码社💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流!💕💕学习资料、程序开发、技术解答、文档报告💕💕JavaWeb项目💕💕微信小程序项目💕💕Python项目💕💕Android项目文章目录

c++模板初阶

文章目录前言一、泛型编程1、泛型编程2、函数模板2.1函数模板的使用2.2函数模板的实例化2.3模板参数的匹配原则3、类模板前言一、泛型编程1、泛型编程在学习了前面的c++重载之后,我们写一个Swap函数用来交换不同类型的数据时,可以使用函数重载,然后让每个Swap函数的形参不同。voidSwap(int&x,int&

通过 DevOps、CI/CD 和容器增强您的软件开发之旅...

软件行业已经在DevOps、CI/CD和容器中找到了针对开发导向问题的有效解决方案。尽管并不强制要求将这三者一起使用,但它们通常是相互补充和依赖的。DevOps促进开发和IT团队之间的协作,而CI/CD简化软件交付流程以更快地获得结果。容器化将应用程序与其依赖项结合起来,以建立一致的开发和部署环境。实施这些方法可以优化

热文推荐