本文介绍: 在这一层常用协议包括传输控制协议(TCP)(一种近乎无损、基于连接协议)和用户数据报协议(UDP)(一种有损的无连接协议)。在这个结构中,最顶层是根域(Root Domain),下面是顶级域(Top-Level Domain,TLD),然后二级域(Second-Level Domain),以此类推。当输入网址按下回车一次客户端发送出的请求数据,都会从第七层逐渐处理加入不同的标头然后到达目标地址,到达目标地址方向从第一层逐层去掉标头,直到网络的第七层服务器拿到干净的请求数据

一、OSI七层模型简述

二、七层模型详解(DNS、CDN、OSI)

三、HTTP 超文本传输协议 和 HTTPS 超文本加密传输协议(SSL加密)
curl命令

四、探索OSI七层模型

五、TCP/IP四层模型简述
六、TCP/IP 协议基本概念

在这里插入图片描述
在这里插入图片描述
计算机网络漫谈:OSI七层模型与TCP/IP四层(参考)模型
白话 OSI 七层网络模型
【网络原理】TCP/IP协议五层模型
Telnet、SSH和VNC 区别
大白话讲述了浏览器地址栏输入网址按下回车背后发生的一些事情,包含了DNS、CDN、OSI七层模型、网络的三次握手和四次挥手
Linux Network Programming – basic concept of socket

一、OSI七层模型简述

OSI(Open Systems Interconnection网络模型是一个用于理解设计计算机网络体系结构抽象框架。该模型分为七个不同的层,每一层都有其特定的功能任务。以下是 OSI 模型的七个层:

  1. 物理层(Physical Layer

  2. 数据链路层(Data Link Layer

  3. 网络层(Network Layer

  4. 传输层(Transport Layer

  5. 会话层(Session Layer

  6. 表示层(Presentation Layer

  7. 应用层(Application Layer

每个层次都向其上层提供服务,并依赖于其下层提供的服务。这种模块化设计使得网络协议服务开发理解维护更为容易。不同协议工作不同的层次上,从而使得网络中的不同设备能够互相通信

OSI 模型的七层是什么

开放系统互联(OSI)模型由国际标准化组织和其他机构在 20 世纪 70 年代末制定。1984 年发布了第一版 ISO 7498 标准当前版本为 ISO/IEC 7498-1:1994。接下来介绍模型的七层。

  1. 物理层
    物理层是指物理通信介质和通过该介质传输数据技术。数据通信核心是通过光纤电缆、铜缆和空气等各种物理通道传输数字电子信号物理层包括与信道密切相关技术指标标准例如蓝牙、NFC 和数据传输速度

  2. 数据链路层
    数据链路层是指用于通过物理层已经存在网络连接两台计算机技术。该层管理数据帧,这些数据帧是封装数据包中的数字信号。数据的流量控制和错误控制通常是数据链路层的重点。以太网是该级别标准一个示例。数据链路层通常分为两个子层:介质访问控制(MAC)层和逻辑链路控制(LLC)层。

  3. 网络层
    网络层涉及的概念包括跨分散网络或者节点计算机多个互连网络进行的路由转发寻址网络层可以管理流量控制。在整个互联网上,互联网协议 v4(IPv4)和 IPv6 是主要的网络层协议。

  4. 传输层
    传输层的主要重点是确保数据包正确顺序到达,没有丢失错误,或者在需要可以无缝恢复。流量控制和错误控制通常是传输层的重点。在这一层,常用的协议包括传输控制协议(TCP)(一种近乎无损、基于连接的协议)和用户数据报协议(UDP)(一种有损的无连接协议)。TCP 通常用于所有数据必须完好无损的情况(例如文件共享),而 UDP 则用于没有必要保留所有数据包的情况(例如视频流式传输)。

  5. 会话层
    会话层负责会话中两个独立应用程序之间的网络协调。会话管理一对一应用程序连接的开始和结束以及同步冲突。网络文件系统(NFS)和服务器消息块(SMB)是会话层的常用协议。

  6. 表示层
    表示层主要关注应用程序发送使用的数据本身的语法例如超文本标记语言(HTML)、JavaScript 对象标记(JSON)和逗号分隔值(CSV)都是描述表示层数据结构建模语言

  7. 应用
    应用关注应用程序本身的特定类型及其标准化通信方法例如浏览器可以使用超文本传输安全协议(HTTPS)进行通信,而 HTTP 和电子邮件客户端可以使用 POP3(邮局协议版本 3)和 SMTP(简单邮件传输协议)进行通信

并非所有使用 OSI 模型的系统都会实现一层

在 OSI 模型中如何进行通信?

开放系统互联(OSI)模型中的各层经过精心设计,无论应用程序底层系统复杂程度如何应用程序可以通过网络与其他设备上的另一个应用程序进行通信。为此,使用了各种标准和协议与上层或下层进行通信。每个层都是独立的,只知道与其上层和下层通信的接口

通过将所有层和协议链接在一起,可以复杂的数据通信从一个高级应用程序发送到另一个高级应用程序。此流程工作原理如下所示

  1. 发送方的应用层将数据通信向下传递到下一个层。
  2. 传递数据之前,每个层都会为数据添加自己的标头和寻址
  3. 数据通信向下层移动,直到最终通过物理介质传输。
  4. 在介质的另一端,每层根据该级别相关标头处理数据。
  5. 接收端,数据向上移动并逐渐解包,直到另一端的应用程序收到数据。

OSI 模型有哪些替代方案

过去曾使用过各种联网模型,例如顺序数据包交换/互联网数据包交换(SPX/IPX)和网络基本输入输出系统(NetBIOS)。如今,开放系统互联(OSI)模型的主要替代方案是 TCP/IP 模型。

TCP/IP 模型

TCP/IP 模型由五个不同的层组成:

OSI 模型仍然是一种广受欢迎的联网模型,从整体角度描述网络的运作方式用于教育。但是,TCP/IP 模型现在在实践中更常用。

关于专有协议和模型的说明

需要注意的是,并非所有基于互联网系统和应用程序都遵循 TCP/IP 模型或 OSI 模型。同样,并非所有基于离线的联网系统和应用程序都使用 OSI 模型或任何其他模型。

OSI 和 TCP/IP 模型都是开放标准。这些模型经过精心设计,任何人都可以使用,也可以进一步构建满足特定要求。

组织还设计自己内部专有标准,包括协议和模型,这些标准是封闭源代码的,仅用于其系统。有时,组织随后可能会将其发布给公众,以实现操作性和进一步社区发展一个例子s2ntls,这是一种 TLS 协议,最初是 Amazon Web Services(AWS)的专有协议,但现在是开源的。
在这里插入图片描述

二、七层模型详解(DNS、CDN、OSI)

状态

在这里插入图片描述
状态码(Status Codes)通常是由服务器返回客户端一个三位数字,用于表示请求的处理结果。这些状态码被包含在 HTTP(Hypertext Transfer Protocol)和其他一些网络协议响应消息中。以下是一些常见的 HTTP 状态码及其含义:

  1. 1xx信息性状态码)服务器收到请求需要请求者继续执行操作

  2. 2xx成功状态码):请求被成功接收理解和接受。

  3. 3xx重定向状态码)需要客户执行更多的操作完成请求。

  4. 4xx(客户端错误状态码):请求包含错误或无法完成。

  5. 5xx(服务器错误状态码):服务器在处理请求的过程中发生错误。

这些状态码使得客户端能够了解服务器对其请求的处理结果,并采取相应的措施。HTTP状态码是Web开发中常见的一部分开发者可以通过状态码更好调试和处理网络请求。

DNS

DNS(Domain Name System)是互联网用于域名转换为 IP 地址的系统。它充当一个分布式数据库,将人类可读的域名映射计算机识别的 IP 地址。DNS 主要有两个功能

  1. 域名解析(Name Resolution):域名解析为相应的 IP 地址。

  2. 反向解析(Reverse Resolution): 将 IP 地址解析为相应的域名

DNS 使用分层树状结构进行组织。在这个结构中,最顶层是根域(Root Domain),下面是顶级域(Top-Level Domain,TLD),然后二级域(Second-Level Domain),以此类推。

例如,在 www.example.com 中,.com 是顶级域,example二级域,www主机名

DNS 的工作过程如下

  1. 查询发起:用户浏览器输入一个域名时,计算机首先检查本地 DNS 缓存

  2. 本地 DNS 查询 如果本地 DNS 缓存没有相应的记录计算机会向本地 DNS 服务器发送查询请求。

  3. 根域查询 如果本地 DNS 服务器也没有相关记录,它会向根域服务器发送查询请求。

  4. TLD 查询: 根域服务器返回顶级域的信息本地 DNS 服务器随即向顶级域服务器发出查询请求。

  5. 域权威服务器查询: 顶级域服务器返回相应的权威 DNS 服务器的信息,本地 DNS 服务器再向权威 DNS 服务器发出查询请求。

  6. 解析域名: 最终,权威 DNS 服务器返回域名对应的 IP 地址,这个信息被传递用户计算机,同时也会在本地 DNS 缓存存储

这个过程中,每一级的 DNS 服务器都负责指导查询请求到达下一级服务器,直到最终得到 IP 地址。这使得 DNS 具有高度分布式和可伸缩性。

nslookup命令

在这里插入图片描述

nslookup 是一个用于查询 DNS(Domain Name System)信息的命令行工具。它可以用于查找域名对应的 IP 地址、反向解析 IP 地址,以及获取其他与 DNS 相关的信息。在使用 nslookup 时,你可以指定要查询的域名或 IP 地址。

以下是 nslookup 的一些基本用法

查询域名对应的 IP 地址:

nslookup example.com

这将返回 example.com 对应的 IP 地址。

反向解析 IP 地址:

nslookup 8.8.8.8

这将返回 IP 地址 8.8.8.8 对应的域名。

查询域名的不同类型记录

nslookup -type=mx example.com

这将返回 example.com邮件交换(MX)记录

指定使用的 DNS 服务器:

nslookup example.com 8.8.8.8

这将使用 Google 的 DNS 服务器(8.8.8.8)来查询 example.com 的信息。

nslookup 提供了交互式模式,允许用户输入系列的查询命令。在命令提示符输入 nslookup 进入交互式模式后,可以直接输入域名或 IP 地址进行查询。

注意nslookup 在一些操作系统中可能被弃用,建议使用更现代的工具,如 dighost,来进行 DNS 查询。

CDN

CDN(Content Delivery Network)是一种用于提高网络内容传输速度、降低延迟分布式网络服务。它通过将内容部署到全球各地的多个服务器节点上,使用户能够从物理距离更近的服务器获取所需的内容,从而提高访问速度性能

以下是 CDN 的一些关键特点和优势:

  1. 内容缓存分发 CDN 将静态资源(如图片、CSS 文件、JavaScript 文件缓存多个位于不同地理位置的服务器上。用户请求这些资源时,CDN 会自动内容提供给用户,从最近的服务器节点获取,减少了网络延迟

  2. 负载均衡 CDN 使用负载均衡技术,将流量分散到多个服务器上,防止某一服务器过载。这有助于提高整体性能和稳定性。

  3. 全球分发 CDN 通常在全球范围部署服务器节点,使内容能够快速传送给全球用户。这对于国际化网站在线服务特别有用。

  4. 安全性 CDN 提供一些安全功能,如 DDoS 攻击防护、SSL 加密支持等,有助于提高网站和应用的安全性

  5. 节省带宽成本 由于 CDN 在分发内容时尽可能从最近的节点提供,可以减少主机服务器的带宽使用,从而降低带宽成本

  6. 提高用户体验 CDN 的使用能够显著提高网站和应用的加载速度,改善用户体验,减少页面加载时间

一些知名的 CDN 提供商包括 Akamai、Cloudflare、Amazon CloudFront、Fastly 等。网站管理员可以通过将其内容托管到 CDN 上,以更高效地提供内容并提升用户体验

whois命令

在这里插入图片描述
whois 是一个用于查询域名注册信息的命令行工具。通过 whois 命令,你可以获取有关域名的详细信息,包括域名的注册人、注册商、注册日期过期日期以及域名服务器等信息。

使用 whois 命令的一般语法为:

whois domain_name

其中,domain_name 是你要查询的域名。

例如,如果你想查询 example.com注册信息,可以运行

whois example.com

whois 命令返回包含有关该域名注册信息的文本输出

注意whois 查询的结果可能因域名注册商、域名后缀等而异。有些注册商或域名后缀可能限制了对注册信息的显示,因此你可能无法获取到完整的信息。

在某些系统上,你可能需要安装 whois 工具,可以通过包管理器进行安装例如,在 Ubuntu 上,你可以运行以下命令安装

sudo apt-get install whois

一旦安装完成,你就可以使用 whois 命令查询域名注册信息了。

三、HTTP 超文本传输协议 和 HTTPS 超文本加密传输协议(SSL加密

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在网络上传输数据的协议。

HTTP(Hypertext Transfer Protocol

  • 明文传输: HTTP 是一种明文传输协议,意味着通过 HTTP 传输的数据是未加密的。这使得数据容易被窃听和篡改

  • 端口号 HTTP 默认使用端口80。

  • 安全性: 由于数据未加密,因此对于一些敏感信息(如用户名密码等)的传输存在风险

HTTPS(Hypertext Transfer Protocol Secure

总的来说,当你需要保护数据传输安全性时,特别是在涉及用户隐私信息的场景下,推荐使用 HTTPS。在一些网站上,登录、注册、支付操作通常会通过 HTTPS 进行,以提供更高的安全性。

curl命令

curl -iv 命令用于执行 HTTP 请求,并显示关于请求和响应头的详细信息-i 选项将 HTTP 头部包含输出中,而 -v 选项(或 --verbose)使操作更具冗长性,提供额外的信息。

以下是使用 curl -iv 的示例:

curl -iv https://www.example.com

该命令将对 https://www.example.com 执行 HTTP GET 请求,并显示请求和响应的头部信息。

您可能会看到一些信息,包括 SSL 握手详细信息(如果是 HTTPS 请求),请求头,响应头,以及与 HTTP 事务相关的其他信息。
在这里插入图片描述
在这里插入图片描述

四、探索OSI七层模型

互联网之所以互联是因为他们基于TCP/IP协议族进行传输
客户端和服务器的每一次交互都要通过2*7=14道关

客户端数据流向的方向

从七层模型的最高层开始

  1. 第七层 应用层(各种程序协议)

是由应用程序负责的协议层

例如:HTTP协议、SMTP协议、POP协议等

常见的应用层协议及其端口

协议 端口 说明
HTTP 80 文本传输协议
HTTPS 443 HTTP的安全版本,通过SSL/TLS提供加密和身份验证
FTP 20, 21 文件传输协议
Telnet 23 远程终端协议,通信是明文的,不安全
SSH 22 安全外壳协议,用于远程安全登录
SMTP 25 简单邮件传输协议,用于电子邮件传输
POP3 110 邮局协议版本3,用于接收电子邮件
IMAP 143 互联网邮件访问协议,用于接收电子邮件
DNS 53 域名系统,用于域名解析
SNMP 161 简单网络管理协议,用于网络设备监控
HTTPS (ALT) 8443 HTTPS的备用端口
  1. 第六层 表示层(数据加解密转换压缩

是负责数据的加解密,数据的转换和压缩

例如:HTTP协议数据传输中的GZIP数据压缩,缩小数据大小,以节约网络传输数据流量

  1. 第五层 会话层(建立管理回话,SSL、TLS)

负责的就是数据加密协议的协商工作

例如:我们看到开发者工具窗口时间线的紫色部分

上面五六七层可以统称为应用程序层

  1. 四层 传输层(TCP、UDP传输、数据分割

负责数据是按照TCP的方式还是按照UDP的方式进行传输

http是按照TCP方式传输的这一层就会为数据追加20字节的标头

例如:源端口、目标端口、请求序列号等信息

在这里插入图片描述
5. 第三网络层(IPV4/IPV6路由选择、分组传输)

负责数据路由的选择和数据等分组的传输

典型的IPV4和IPV6协议就是在这一层

这一层会为数据段追加来源IP和目标ip地址

在这里插入图片描述

特别提示一下路由选择,当你输入网址按下回车找到IP后进入网络层,路由选择是按照你访问的目标服务器的物理距离,来决定第二层数据先到哪里
不管你是TCP还是UDP都会经过上面几层

traceroute命令

traceroute 命令用于跟踪数据包从源到目标的路径,并报告每个节点的延迟。在不同的操作系统中,traceroute 命令的用法可能有所不同。

在大多数 Linux 系统上,您可以使用以下命令:

traceroute www.example.com

在 Windows 操作系统上,相应的命令是:

tracert www.example.com

这些命令将显示数据包从源到目标经过的每个路由器,并显示每个路由器延迟

请注意,有时网络管理员可能会阻止或限制对这些工具访问,因此在使用之前最好先获得相应权限
在这里插入图片描述

traceroute命令模拟路由选择
为了让用户更快的访问,使用了CDN技术让你可以在离你最近的服务器中快速打开网站

  1. 第二层 数据链路层组织数据帧、物理寻址

这一层确保物理层传输的数据帧,按需传输,并在这一层加入了来源MAC地址和目标MAC地址标头

就是每一个网卡都有自己的全球唯一MAC地址确保传输的数据不会找错设备

这里的MAC地址不一定是起初,访问的设备的MAC地址和真正的目的地的服务器的MAC地址,是由第三层路由选择的下一跳地址决定的

在这里插入图片描述
7. 第一层 物理层(数据比特流传输)

例如:网线、Wifi方式将你的二进制比特流的数据送出去

当输入网址按下回车一次从客户端发送出的请求数据,都会从第七层逐渐处理,加入不同的标头然后到达目标地址,到达目标地址方向从第一层逐层去掉标头,直到网络的第七层,服务器拿到干净的请求数据。

客户端和服务器还要确保数据链路的通畅,他俩必须建立可靠链接通道
在这里插入图片描述

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置
协议 位置
HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP 应用层
XDR、ASN.1、SMB、AFP、NCP 表示层
ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets 会话层
TCP、UDP、RTP、SCTP、SPX、ATP、IL 传输层
IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25 网络层
以太网令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP 数据链路层
线路、无线电、光纤、信鸽 物理层

在这里插入图片描述

五、TCP/IP四层模型简述

在这里插入图片描述

TCP/IP四层模型,也被称为互联网协议套件,是一个用于组织和设计网络协议的体系结构。与OSI模型不同,TCP/IP模型包含四个层次,分别是:

  1. 网络接口层(Network Interface Layer)

    • 称为链路层或数据链路层。
    • 负责将数据帧从一个网络节点传输到相邻节点。
    • 处理物理传输细节,如MAC地址。
  2. 网络层(Internet Layer)

  3. 传输层(Transport Layer)

  4. 应用层(Application Layer)

    • 包含了各种网络应用,如HTTP、FTP、SMTP等。
    • 提供用户接口和网络服务,允许应用程序访问网络。
    • 与OSI的应用层类似,但功能更加简化

在TCP/IP模型中,网络接口层和网络层一起对应OSI模型的数据链路层,传输层和应用层分别对应OSI模型的传输层和应用层。这个模型是TCP/IP协议族的基础,实际上,互联网上的通信是基于TCP/IP协议进行的。

六、TCP/IP 协议基本概念

TCP/IP 协议基本概念

OSI 模型所分的七层,在实际应用中,往往有一些层被整合,或者功能分散到其他层去。TCP/IP 没有照搬 OSI 模型,也没有 一个公认的 TCP/IP 层级模型,一般划分为三层到五层模型来描述 TCP/IP 协议。

TCP/IP 协议族常用协议:
层级 协议
应用层 TFTP, HTTP, SNMP, FTP, SMTP, DNS, Telnet
传输层 TCP, UDP
网络层 IP, ICMP, OSPF, EIGRP, IGMP
数据链路层 SLIP, CSLIP, PPP, MTU

TCP/IP四层模型:

TCP/IP分层模型的四个协议层分别完成以下的功能:

原文地址:https://blog.csdn.net/m0_62140641/article/details/134733869

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_45964.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注