计算机网络

简介: 计算机网络

OSI七层模型

在这里插入图片描述

TCP/IP四层模型

具体是应用层,传输层,网络层,网络接口层

应用层

应用层,主要提供两个应用程序之间信息交换的服务, 定义了信息交换的格式,消息交换的格式, 消息会给下一层传输层来传输. 应用层交互的数据单元叫做报文

还定义了网络通信规则, 对于不同网络应用需要不同的应用层协议.

应用层常见协议:

在这里插入图片描述

● HTTP(超文本传输协议): TCP协议,用于传输超文本和多媒体内容的协议,主要是为Web浏览器与Web服务器之间的通信设计的。当我们用浏览器浏览网页的时,网页就是通过HTTP请求加载。
● SMTP(Simple Mail Transfer Protocol,简单邮件发送协议):基于 TCP 协议,是一种用于发送电子邮件的协议。注意 ⚠️:SMTP 协议只负责邮件的发送,而不是接收。要从邮件服务器接收邮件,需要使用 POP3 或 IMAP 协议。
● POP3/IMAP(邮件接收协议):基于 TCP 协议,两者都是负责邮件接收的协议。IMAP 协议是比 POP3 更新的协议,它在功能和性能上都更加强大。IMAP 支持邮件搜索、标记、分类、归档等高级功能,而且可以在多个设备之间同步邮件状态。几乎所有现代电子邮件客户端和服务器都支持 IMAP。
● FTP(File Transfer Protocol,文件传输协议) : 基于 TCP 协议,是一种用于在计算机之间传输文件的协议,可以屏蔽操作系统和文件存储方式。注意 ⚠️:FTP 是一种不安全的协议,因为它在传输过程中不会对数据进行加密。建议在传输敏感数据时使用更安全的协议,如 SFTP。
● Telnet(远程登陆协议):基于 TCP 协议,用于通过一个终端登陆到其他服务器。Telnet 协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,这有潜在的安全风险。这就是为什么如今很少使用 Telnet,而是使用一种称为 SSH 的非常安全的网络传输协议的主要原因。
● SSH(Secure Shell Protocol,安全的网络传输协议):基于 TCP 协议,通过加密和认证机制实现安全的访问和文件传输等业务
● RTP(Real-time Transport Protocol,实时传输协议):通常基于 UDP 协议,但也支持 TCP 协议。它提供了端到端的实时传输数据的功能,但不包含资源预留存、不保证实时传输质量,这些功能由 WebRTC 实现。
● DNS(Domain Name System,域名管理系统): 基于 UDP 协议,用于解决域名和 IP 地址的映射问题。

传输层

传输层主要任务就是负责向两台终端设备进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。

传输层常见的协议:
在这里插入图片描述

  1. TCP(Transmission Control Proocol,传输控制层协议):提供面向连接,可靠的数据传输服务。三次握手,四次挥手。
  2. UDP(User Datagram Protocol,用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效。

    网络层

    网络层负责为分组交换网上的不同主机提供通信服务。发送数据,网络层会把传输层产生的报文或用户数据封装成分组和包进行传送。在TCP/IP体系结构中,由于由于网络层使用IP协议, 因此分组叫做IP数据报,简称数据报。

🔥传输层的“用户数据报UDP”和网络层的“IP数据报”不要弄混

互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Internet Protocol)和许多路由选择协议,因此互联网的网络层也叫做 网际层 或 IP 层

网络层常见协议:

● IP(Internet Protocol,网际协议):TCP/IP 协议中最重要的协议之一,主要作用是定义数据包的格式、对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。目前 IP 协议主要分为两种,一种是过去的 IPv4,另一种是较新的 IPv6,目前这两种协议都在使用,但后者已经被提议来取代前者。
● ARP(Address Resolution Protocol,地址解析协议):ARP 协议解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题。
● ICMP(Internet Control Message Protocol,互联网控制报文协议):一种用于传输网络状态和错误消息的协议,常用于网络诊断和故障排除。例如,Ping 工具就使用了 ICMP 协议来测试网络连通性。
● NAT(Network Address Translation,网络地址转换协议):NAT 协议的应用场景如同它的名称——网络地址转换,应用于内部网到外部网的地址转换过程中。具体地说,在一个小的子网(局域网,LAN)内,各主机使用的是同一个 LAN 下的 IP 地址,但在该 LAN 以外,在广域网(WAN)中,需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置。
● OSPF(Open Shortest Path First,开放式最短路径优先) ):一种内部网关协议(Interior Gateway Protocol,IGP),也是广泛使用的一种动态路由协议,基于链路状态算法,考虑了链路的带宽、延迟等因素来选择最佳路径
● RIP(Routing Information Protocol,路由信息协议):一种内部网关协议(Interior Gateway Protocol,IGP),也是一种动态路由协议,基于距离向量算法,使用固定的跳数作为度量标准,选择跳数最少的路径作为最佳路径
● GP(Border Gateway Protocol,边界网关协议):一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议,具有高度的灵活性和可扩展性。

网络接口层

我们可以把网络接口层看作是数据链路层和物理层的合体。

  1. 数据链路层(data link layer)通常简称为链路层( 两台主机之间的数据传输,总是在一段一段的链路上传送的)。数据链路层的作用是将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。
  2. 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异

网络分层的原因?

由于在我们平时使用框架开发一个后台程序来说, 我们往往会按照每一层需要实现不同的功能的原则将系统分为多层(Controoler,Service,Dao...)

复杂的系统需要分层, 因为每一层都需要专注于一类事. 网络分层一个道理

  1. 各层之间相互独立: 各层独立之后, 就不需要关注其他层的实现,只需要知道自己如何调用下一层的接口就可以
  2. 提高整理的灵活性,: 每一层都可以使用最合适的技术来实现, 你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。
  3. 大问题化小问题: 分层可以将复杂的网络问题分解为许多较小的、界线比较清晰简单的小问题来逐个解决, 这样就使得复杂问题变得易于设计,实现和标准化. 这和平时开发是一样的, 将系统的大功能分解为容易理解的更小问题上一个道理, 这些较小的问题具有更好的边界定义(目标和接口)
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
11月前
|
弹性计算 Linux 网络安全
阿里云服务器购买流程详解:自定义、快速、活动、云市场镜像四种常见购买方式及适用场景详解
对于部分第一次购买阿里云服务器的用户来说,可能还不是很清楚阿里云服务器购买流程是怎样的,特别是选购过程中的一些注意事项。常见的购买方式有自定义购买、快速购买、通过活动购买、通过云市场镜像页面购买这四种购买方式,每种方式都有各自的适用场景和注意事项。本文将详细介绍这四种阿里云服务器购买方式的详细流程和适用场景,以供大家参考和选择最适合自己的方式。
637 5
|
11月前
|
存储 安全 算法
金融行业数据安全解决方案详述
安得卫士推出金融科技专项数据安全方案,构建覆盖数据全生命周期的纵深防御体系。通过强制加密、终端加固、网络防泄漏与数据库防护四大核心能力,实现合规可控、内外兼防,保障金融数据安全高效流转。
521 0
|
JavaScript 前端开发 安全
JDK1.8 新特性详解及具体使用方法
本文详细介绍了JDK 1.8的新特性及其组件封装方法,涵盖Lambda表达式、Stream API、接口默认与静态方法、Optional类、日期时间API、方法引用、Nashorn JavaScript引擎及类型注解等内容。通过具体代码示例,展示了如何利用这些特性简化代码、提高开发效率。例如,Lambda表达式可替代匿名内部类,Stream API支持集合的函数式操作,Optional类避免空指针异常,新日期时间API提供更强大的时间处理能力。合理运用这些特性,能够显著提升Java代码的简洁性、可读性和可维护性。
1220 50
|
API 开发者
在线CAD实现图纸比较功能
MXCAD提供了一项实用的图纸比对功能,帮助设计师高效识别不同版本CAD图纸间的改动。用户只需几个简单步骤即可启动比对过程:打开MXCAD在线示例,上传目标图纸,选择“图纸比对”并加载待比对文件。系统会清晰标出所有差异,甚至支持实体定位以便更直观地查看变化细节。此外,MXCAD还开放了相关API,允许开发者根据具体需求进行定制化二次开发,如利用`McObject.loadDwgBackground()`方法加载背景图纸并通过`MxCompare`类获取差异数据等。关注“梦想云图网页CAD”公众号了解更多资讯。
1158 135
在线CAD实现图纸比较功能
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
1275 3
|
Shell 程序员 开发者
轻松搞定在Python中构建虚拟环境
本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。 通过本教程,你将学会: - 创建和管理虚拟环境 - 避免依赖性冲突 - 部署Python应用到服务器 适合新手和希望提升开发环境管理能力的开发者。
1238 2
|
安全 Linux 数据库
在Linux中,如何使用OpenVAS和Nessus进行漏洞扫描和管理?
在Linux中,如何使用OpenVAS和Nessus进行漏洞扫描和管理?
|
机器学习/深度学习 人工智能 自然语言处理
2024年5月大语言模型论文推荐:模型优化、缩放到推理、基准测试和增强性能
本文汇总了2024年5月发布的七篇重要大语言模型论文,涉及模型优化、缩放、推理及性能增强。
1718 2
|
监控
揭秘:为何多年经验的网工还对光模块的光衰正常范围一知半解?这个秘密可能彻底改变你的网络优化策略!
【8月更文挑战第19天】在信息化时代,光纤通信至关重要,光模块作为其核心组件,其性能直接影响数据传输质量。光衰,即光信号在光纤中传输时的功率损失,是评估光模块性能的关键指标。本文将阐述光衰的基本概念、测量方法及对网络性能的影响,并提供光衰正常范围的标准,帮助网络工程师更好地理解与应用这一重要知识点,确保网络稳定可靠。
4648 0