OSI七层模型与TCP/IP四层模型
一、OSI七层模型简述
- OSI 模型的七层是什么?
- 在 OSI 模型中如何进行通信?
- OSI 模型有哪些替代方案?
- TCP/IP 模型
- 关于专有协议和模型的说明
二、七层模型详解(DNS、CDN、OSI)
- 状态码
- DNS
- nslookup命令
- CDN
- whois命令
三、HTTP 超文本传输协议 和 HTTPS 超文本加密传输协议(SSL加密)
- curl命令
四、探索OSI七层模型
- 客户端数据流向的方向
- traceroute命令
五、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 模型的七个层:
-
物理层(Physical Layer):
- 主要关注传输比特流,处理物理介质和连接器的细节。
- 定义数据传输的硬件标准,如电压、电流、传输速率等。
-
数据链路层(Data Link Layer):
- 提供对物理层的透明访问,确保可靠的数据传输。
- 负责数据帧的组装和解析,以及错误检测和纠正。
-
网络层(Network Layer):
- 负责在网络中选择最佳路径,实现逻辑寻址和路由。
- 提供数据分组的传输服务,使用 IP 地址标识设备。
-
传输层(Transport Layer):
- 提供端到端的通信控制,确保数据的可靠性和完整性。
- 主要协议有 TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)。
-
会话层(Session Layer):
- 负责建立、管理和终止会话,实现数据的同步和恢复。
- 提供对话控制,使不同设备上的应用能够建立连接。
-
表示层(Presentation Layer):
- 负责数据格式的转换,确保应用层能够理解传输的数据。
- 处理数据加密、压缩和编码等。
-
应用层(Application Layer):
- 提供用户接口和网络服务,支持应用程序的高层协议。
- 包括各种网络应用,如电子邮件、文件传输和远程登录。
每个层次都向其上层提供服务,并依赖于其下层提供的服务。这种模块化的设计使得网络协议和服务的开发、理解和维护更为容易。不同的协议工作在不同的层次上,从而使得网络中的不同设备能够互相通信。
OSI 模型的七层是什么?
开放系统互联(OSI)模型由国际标准化组织和其他机构在 20 世纪 70 年代末制定。1984 年发布了第一版 ISO 7498 标准,当前版本为 ISO/IEC 7498-1:1994。接下来介绍模型的七层。
-
物理层
物理层是指物理通信介质和通过该介质传输数据的技术。数据通信的核心是通过光纤电缆、铜缆和空气等各种物理通道传输数字和电子信号。物理层包括与信道密切相关的技术和指标的标准,例如蓝牙、NFC 和数据传输速度。 -
数据链路层
数据链路层是指用于通过物理层已经存在的网络连接两台计算机的技术。该层管理数据帧,这些数据帧是封装在数据包中的数字信号。数据的流量控制和错误控制通常是数据链路层的重点。以太网是该级别标准的一个示例。数据链路层通常分为两个子层:介质访问控制(MAC)层和逻辑链路控制(LLC)层。 -
网络层
网络层涉及的概念包括跨分散网络或者节点或计算机的多个互连网络进行的路由、转发和寻址。网络层也可以管理流量控制。在整个互联网上,互联网协议 v4(IPv4)和 IPv6 是主要的网络层协议。 -
传输层
传输层的主要重点是确保数据包以正确的顺序到达,没有丢失或错误,或者在需要时可以无缝恢复。流量控制和错误控制通常是传输层的重点。在这一层,常用的协议包括传输控制协议(TCP)(一种近乎无损、基于连接的协议)和用户数据报协议(UDP)(一种有损的无连接协议)。TCP 通常用于所有数据必须完好无损的情况(例如文件共享),而 UDP 则用于没有必要保留所有数据包的情况(例如视频流式传输)。 -
会话层
会话层负责会话中两个独立应用程序之间的网络协调。会话管理一对一应用程序连接的开始和结束以及同步冲突。网络文件系统(NFS)和服务器消息块(SMB)是会话层的常用协议。 -
表示层
表示层主要关注应用程序发送和使用的数据本身的语法。例如,超文本标记语言(HTML)、JavaScript 对象标记(JSON)和逗号分隔值(CSV)都是描述表示层数据结构的建模语言。 -
应用层
应用层关注应用程序本身的特定类型及其标准化通信方法。例如,浏览器可以使用超文本传输安全协议(HTTPS)进行通信,而 HTTP 和电子邮件客户端可以使用 POP3(邮局协议版本 3)和 SMTP(简单邮件传输协议)进行通信。
并非所有使用 OSI 模型的系统都会实现每一层。
在 OSI 模型中如何进行通信?
开放系统互联(OSI)模型中的各层经过精心设计,无论应用程序和底层系统的复杂程度如何,应用程序都可以通过网络与其他设备上的另一个应用程序进行通信。为此,使用了各种标准和协议与上层或下层进行通信。每个层都是独立的,只知道与其上层和下层通信的接口。
通过将所有层和协议链接在一起,可以将复杂的数据通信从一个高级应用程序发送到另一个高级应用程序。此流程的工作原理如下所示:
- 发送方的应用层将数据通信向下传递到下一个层。
- 在传递数据之前,每个层都会为数据添加自己的标头和寻址。
- 数据通信向下层移动,直到最终通过物理介质传输。
- 在介质的另一端,每层根据该级别的相关标头处理数据。
- 在接收端,数据向上层移动并逐渐解包,直到另一端的应用程序收到数据。
OSI 模型有哪些替代方案?
过去曾使用过各种联网模型,例如顺序数据包交换/互联网数据包交换(SPX/IPX)和网络基本输入输出系统(NetBIOS)。如今,开放系统互联(OSI)模型的主要替代方案是 TCP/IP 模型。
TCP/IP 模型
TCP/IP 模型由五个不同的层组成:
- 物理层
- 数据链路层
- 网络层
- 传输层
- 应用层
虽然物理层、网络层和应用层等层似乎直接映射到 OSI 模型,但事实并非如此。相反,TCP/IP 模型最准确地映射到互联网的结构和协议。
OSI 模型仍然是一种广受欢迎的联网模型,从整体角度描述网络的运作方式,用于教育。但是,TCP/IP 模型现在在实践中更常用。
关于专有协议和模型的说明
需要注意的是,并非所有基于互联网的系统和应用程序都遵循 TCP/IP 模型或 OSI 模型。同样,并非所有基于离线的联网系统和应用程序都使用 OSI 模型或任何其他模型。
OSI 和 TCP/IP 模型都是开放标准。这些模型经过精心设计,任何人都可以使用,也可以进一步构建以满足特定要求。
组织还设计自己的内部专有标准,包括协议和模型,这些标准是封闭源代码的,仅用于其系统。有时,组织随后可能会将其发布给公众,以实现互操作性和进一步的社区发展。一个例子是 s2n-tls,这是一种 TLS 协议,最初是 Amazon Web Services(AWS)的专有协议,但现在是开源的。
二、七层模型详解(DNS、CDN、OSI)
状态码
状态码(Status Codes)通常是由服务器返回给客户端的一个三位数字,用于表示请求的处理结果。这些状态码被包含在 HTTP(Hypertext Transfer Protocol)和其他一些网络协议的响应消息中。以下是一些常见的 HTTP 状态码及其含义:
-
1xx(信息性状态码):服务器收到请求,需要请求者继续执行操作。
- 100 Continue:客户端应该继续请求。
-
2xx(成功状态码):请求被成功接收、理解和接受。
- 200 OK:请求成功。
- 201 Created:请求已经被实现,而且有一个新的资源已经依据请求的需要而建立。
- 204 No Content:服务器成功处理了请求,但没有返回任何内容。
-
3xx(重定向状态码):需要客户端执行更多的操作以完成请求。
- 301 Moved Permanently:请求的资源已被永久移动到新位置。
- 302 Found:请求的资源临时从不同的 URI 响应请求。
- 304 Not Modified:资源未被修改,可以使用缓存的版本。
-
4xx(客户端错误状态码):请求包含错误或无法完成。
- 400 Bad Request:请求无效。
- 401 Unauthorized:请求要求用户的身份认证。
- 403 Forbidden:服务器拒绝请求。
- 404 Not Found:服务器找不到请求的资源。
-
5xx(服务器错误状态码):服务器在处理请求的过程中发生错误。
- 500 Internal Server Error:服务器内部错误。
- 502 Bad Gateway:充当网关或代理的服务器,从远端服务器接收到了一个无效的响应。
- 503 Service Unavailable:服务器暂时不可用。
这些状态码使得客户端能够了解服务器对其请求的处理结果,并采取相应的措施。HTTP状态码是Web开发中常见的一部分,开发者可以通过状态码更好地调试和处理网络请求。
DNS
DNS(Domain Name System)是互联网上用于将域名转换为 IP 地址的系统。它充当一个分布式的数据库,将人类可读的域名映射到计算机可识别的 IP 地址。DNS 主要有两个功能:
-
域名解析(Name Resolution): 将域名解析为相应的 IP 地址。
-
反向解析(Reverse Resolution): 将 IP 地址解析为相应的域名。
DNS 使用分层的树状结构进行组织。在这个结构中,最顶层是根域(Root Domain),下面是顶级域(Top-Level Domain,TLD),然后是二级域(Second-Level Domain),以此类推。
例如,在 www.example.com
中,.com
是顶级域,example
是二级域,www
是主机名。
DNS 的工作过程如下:
-
查询发起: 当用户在浏览器中输入一个域名时,计算机首先检查本地 DNS 缓存。
-
本地 DNS 查询: 如果本地 DNS 缓存中没有相应的记录,计算机会向本地 DNS 服务器发送查询请求。
-
根域查询: 如果本地 DNS 服务器也没有相关的记录,它会向根域服务器发送查询请求。
-
TLD 查询: 根域服务器返回顶级域的信息,本地 DNS 服务器随即向顶级域服务器发出查询请求。
-
域权威服务器查询: 顶级域服务器返回相应的权威 DNS 服务器的信息,本地 DNS 服务器再向权威 DNS 服务器发出查询请求。
-
解析域名: 最终,权威 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
在一些操作系统中可能被弃用,建议使用更现代的工具,如 dig
或 host
,来进行 DNS 查询。
CDN
CDN(Content Delivery Network)是一种用于提高网络内容传输速度、降低延迟的分布式网络服务。它通过将内容部署到全球各地的多个服务器节点上,使用户能够从物理距离更近的服务器获取所需的内容,从而提高访问速度和性能。
以下是 CDN 的一些关键特点和优势:
-
内容缓存和分发: CDN 将静态资源(如图片、CSS 文件、JavaScript 文件)缓存到多个位于不同地理位置的服务器上。用户请求这些资源时,CDN 会自动将内容提供给用户,从最近的服务器节点获取,减少了网络延迟。
-
负载均衡: CDN 使用负载均衡技术,将流量分散到多个服务器上,防止某一服务器过载。这有助于提高整体性能和稳定性。
-
全球分发: CDN 通常在全球范围内部署服务器节点,使内容能够快速传送给全球用户。这对于国际化的网站和在线服务特别有用。
-
安全性: CDN 提供一些安全功能,如 DDoS 攻击防护、SSL 加密支持等,有助于提高网站和应用的安全性。
-
节省带宽成本: 由于 CDN 在分发内容时尽可能从最近的节点提供,可以减少主机服务器的带宽使用,从而降低带宽成本。
-
提高用户体验: 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 是在 HTTP 的基础上加入了安全套接字层(SSL/TLS)的协议。这意味着通过 HTTPS 传输的数据是加密的,更难以被窃听和篡改。
-
端口号: HTTPS 默认使用端口443。
-
安全性: 由于使用了加密,HTTPS 更适用于传输敏感信息,如登录凭据、支付信息等。
-
证书: 在使用 HTTPS 的网站上,服务器需要通过数字证书来证明其身份。这有助于确保用户连接的是正确的服务器,而不是遭到中间人攻击。
总的来说,当你需要保护数据传输的安全性时,特别是在涉及用户隐私信息的场景下,推荐使用 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道关
客户端数据流向的方向
从七层模型的最高层开始
- 第七层 应用层(各种程序协议)
是由应用程序负责的协议层
例如: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的备用端口 |
- 第六层 表示层(数据加解密、转换、压缩)
是负责数据的加解密,数据的转换和压缩
例如:HTTP协议数据传输中的GZIP数据压缩,缩小数据大小,以节约网络传输数据的流量
- 第五层 会话层(建立管理回话,SSL、TLS)
负责的就是数据加密协议的协商工作
例如:我们看到开发者工具窗口中时间线的紫色部分
上面五六七层可以统称为应用程序层
- 在数据向下传输的阶段,在数据段前加入HTTP标头
- 例如请求的方法是get还是post等信息
- 第四层 传输层(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技术让你可以在离你最近的服务器中快速打开网站
- 第二层 数据链路层(组织数据帧、物理寻址)
这一层确保物理层传输的数据帧,按需传输,并在这一层加入了来源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模型包含四个层次,分别是:
-
网络接口层(Network Interface Layer):
- 也称为链路层或数据链路层。
- 负责将数据帧从一个网络节点传输到相邻节点。
- 处理物理传输细节,如MAC地址。
-
网络层(Internet Layer):
- 提供主机到主机的数据传输服务,实现不同网络之间的数据包转发。
- 使用IP(Internet Protocol)协议,负责数据包的路由。
-
传输层(Transport Layer):
- 提供端到端的通信服务,确保数据传输的可靠性和完整性。
- 主要协议有TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。
-
应用层(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 协议。
-
在此描述用一个通用的四层模型来描述,每一层都和 OSI 模型有较强的相关性但是又可能会有交叉。
-
TCP/IP
的设计,是吸取了分层模型的精华思想——封装。每层对上一层提供服务的时候,上一层的数据结构是黑盒,直接作为本层的数据,而不需要关心上一层协议的任何细节。 -
TCP/IP 分层模型的分层以以太网上传输 UDP 数据包如图所示:
-
数据包:
宽泛意义的数据包:每一个数据包都包含"标头"和"数据"两个部分."标头"包含本数据包的一些说明."数据"则是本数据包的内容。 -
细分数据包:
应用程序数据包: 标头部分规定应用程序的数据格式.数据部分传输具体的数据内容.——对应上图中的数据! -
TCP/UDP数据包:
标头部分包含双方的发出端口和接收端口. UDP数据包: '标头’长度:8个字节,"数据包"总长度最大为65535字节,正好放进一个IP数据包. TCP数据包:
理论上没有长度限制,但是,为了保证网络传输效率,通常不会超过IP数据长度,确保单个包不会被分割. ——对应上图中的UDP数据! -
IP数据包:
标头部分包含通信双方的IP地址,协议版本,长度等信息. '标头’长度:20~60字节,"数据包"总长度最大为65535字节. ——对应上图中的IP数据 -
以太网数据包:
最基础的数据包.标头部分包含了通信双方的MAC地址,数据类型等.
'标头’长度:18字节,'数据’部分长度:46~1500字节. ——对应上图中的以太网数据
TCP/IP 协议族常用协议:
层级 | 协议 |
---|---|
应用层 | TFTP, HTTP, SNMP, FTP, SMTP, DNS, Telnet |
传输层 | TCP, UDP |
网络层 | IP, ICMP, OSPF, EIGRP, IGMP |
数据链路层 | SLIP, CSLIP, PPP, MTU |
TCP/IP四层模型:
TCP/IP分层模型的四个协议层分别完成以下的功能:
- 第一层:网络接口层
包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address
Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。 - 第二层:网间层
对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information
Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control MessageProtocol,ICMP)用来提供网络诊断信息。 - 第三层:传输层
对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。 - 第四层:应用层
对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等,这也是本书将要讨论的重点。
相关文章:
OSI七层模型与TCP/IP四层模型
一、OSI七层模型简述 OSI 模型的七层是什么?在 OSI 模型中如何进行通信?OSI 模型有哪些替代方案? TCP/IP 模型关于专有协议和模型的说明 二、七层模型详解(DNS、CDN、OSI) 状态码DNS nslookup命令 CDN whois命令 …...
QT 中 QProgressDialog 进度条窗口 备查
基础API //两个构造函数 QProgressDialog::QProgressDialog(QWidget *parent nullptr, Qt::WindowFlags f Qt::WindowFlags());QProgressDialog::QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *…...
学习ShardingSphere前置知识
学习ShardingSphere前置准备知识 一. SPI SPI(Service Provider Interface)是一种Java的扩展机制,用于实现组件之间的松耦合。在SPI模型中,服务提供者(Service Provider)定义了一组接口,而服务…...
读书笔记-《数据结构与算法》-摘要3[选择排序]
选择排序 核心:不断地选择剩余元素中的最小者。 找到数组中最小元素并将其和数组第一个元素交换位置。在剩下的元素中找到最小元素并将其与数组第二个元素交换,直至整个数组排序。 性质: 比较次数(N-1)(N-2)(N-3)…21~N^2/2交换次数N运行…...
Arduino驱动MLX90614红外测温传感器(温湿度传感器)
目录 1、传感器特性 2、测量方法 3、硬件原理图 4、控制器和传感器连线图...
Ubuntu上传文件到SMB共享文件夹
0. 前言 公司有一些数据共享文件夹,平时可以把开发的重要文件放到上面备份。本人开发使用ubuntu系统,共享文件夹是windows的形式,想通过命令的方式,方便快捷,还可shell脚本自动化。 1. 安装挂载库 sudo apt-get upd…...
【Linux】基础IO--重定向理解Linux下一切皆文件缓冲区
文章目录 一、重定向1.什么是重定向2.dup2 系统调用3.理解输入重定向、输出重定向和追加重定向4.简易shell完整实现 二、理解linux下一切皆文件三、缓冲区1.为什么要有缓冲区2.缓冲区的刷新策略3.缓冲区的位置4.实现一个简易的C语言缓冲区5.内核缓冲区 一、重定向 1.什么是重定…...
RINEX介绍
一、RINEX是什么 Receiver Independent Exchange Format (RINEX) 是一种用于存储、交换和处理全球定位系统 (GPS) 接收机观测数据的标准化文件格式。RINEX 格式由国际电信联盟 (ITU) 和国际GPS服务 (IGS) 组织共同开发和维护。它提供了一种通用的数据格式,使得不同…...
ROS-ROS通信机制-服务通信
文章目录 一、服务通信基本知识二、自定义srv三、C实现四、Python实现 一、服务通信基本知识 服务通信也是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。也即: 一个节点A向另一个节点B发送请求,B接收处理请求…...
chown和chmod
chown和chmod都是在Linux和Unix系统中用于设置文件和文件夹权限的命令,但它们的功能和用途有所不同。 功能:chown主要用于修改文件或文件夹的所有者和所属组,而chmod则主要用于修改文件或文件夹的读写执行权限。用途:如果想要授权…...
【GPU】linux 安装、卸载 nvidia 显卡驱动、cuda 的官方文档、推荐方式(runfile)
文章目录 1. 显卡驱动1.1. 各版本下载地址1.2. 各版本文档地址1.3. 安装、卸载方式 2. CUDA2.1. 各版本下载地址2.2. 各版本文档地址2.3. 安装、卸载方式2.4. 多版本 CUDA 切换方式 1. 显卡驱动 1.1. 各版本下载地址 https://www.nvidia.com/Download/Find.aspx?langzh-cn 1…...
6页手写笔记总结信号与系统常考知识大题知识点
题型一 判断系统特性题型二 求系统卷积题型三 求三大变换正反变换题型四 求全响应题型五 已知微分方程求系统传递函数题型六 已知系统的传递函数求微分方程题型七 画出系统的零极点图,并判断系统的因果性和稳定性 (笔记适合快速复习,可能会有…...
Qt-QSplitter正确设置比例
简短版本: splitter->setSizes({1000, 2000}); // 这个值至少跟像素值设置的一样大,或者更大,例如x10倍详细版本: setSizes 官方介绍如下: Sets the child widgets’ respective sizes to the values given in the…...
一篇吃透大厂面试题,2024找工作一帆风顺。
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...
【1day】用友 U8 Cloud系统TaskTreeQuery接口SQL注入漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...
华为快应用中自定义Slider效果
文章目录 一、前言二、实现代码三、参考链接 一、前言 在华为快应用中官方提供了<slider>控件,但是这个控件的限制比较多,比如滑块无法自定义,所以这里进行下自定义,自己修改样式。 二、实现代码 整体效果如下: 源码如下…...
C语言每日一题(43)旋转链表
力扣 61 旋转链表 题目描述 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3]示例 2: 输入:head [0,1,2], …...
CCF计算机软件能力认证考试—202209-1如此编码
题目背景 某次测验后,顿顿老师在黑板上留下了一串数字 23333 便飘然而去。凝望着这个神秘数字,小 P 同学不禁陷入了沉思…… 题目描述 已知某次测验包含 � 道单项选择题,其中第 � 题(1≤�≤&…...
Ubuntu18.04安装Ipopt-3.12.8流程
本文主要介绍在Ubuntu18.04中安装Ipopt库的流程,及过程报错的解决方法,已经有很多关于Ipopt安装的博客,但经过我的测试,很多都失效了,经过探索,找到可流畅的安装Ipopt的方法,总结成本篇博客。 …...
linux 内核同步互斥技术之信号量
信号量 信号量允许多个进程同时进入临界区,大多数情况下只允许一个进程进入临界区,把信号量的计数值设置为 1,即二值信号量,这种信号量称为互斥信号量。可允许多个锁持有者。 和自旋锁相比,信号量适合保护比较长的临界…...
交通强国添力量 无人机巡航为何备受期待?
在高速建设交通强国的过程中,交通运输部海事局计划完善“陆海空天”一体化水上交通运输安全保障体系。无人机巡航系统将在提升海事船舶监管和水上搜救能力方面发挥关键作用,以构建更为全面的监管体系。尽管已初步建立了海事监管体系,但仍存在…...
【PID学习笔记 6 】控制系统的性能指标之二
写在前面 上文介绍了控制系统的稳态与动态、过渡过程、阶跃响应以及阶跃信号作用下过渡过程的四种形式。本文紧接上文,首先总结过渡过程的分类,然后介绍控制系统的性能评价,最后重点介绍控制系统性能指标中的单项指标。 一、过渡过程的分类…...
ZLMediakit-method ANNOUNCE failed: 401 Unauthorized(ffmpeg、obs推流rtmp到ZLM发现的问题)
错误截图 解决办法:能推流成功,但是不能写入到wvp数据库中 修改配置文件config.ini 改成0 修改之后 重启服务 systemctl restart zlm*推流成功 解决办法:能推流,能写入数据库中 替换zlm版本,可以用我文章中提供的编译…...
聊聊logback的ThrowableProxyConverter
序 本文主要研究一下logback的ThrowableProxyConverter ThrowableHandlingConverter ch/qos/logback/classic/pattern/ThrowableHandlingConverter.java /*** Converter which handle throwables should be derived from this class.**/ public abstract class ThrowableHa…...
Kubernetes(k8s)访问不了Pod服务
在k8s集群部署java web应用的服务时,浏览器访问不了pod服务或linux终端curl http://192.168.138.112:30000即curl http://ip地址:端口号失败,如下图: 在网上找了很久的答案,最后还是没解决,后来突然想起来一直是在k8…...
python-学生管理|汉罗塔
1.编写程序,实现学生信息管理系统。 运行程序,在控制台输入“1”之后的结果如下所示: 学生管理系统 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示所有学生信息 0.退出系统 请选择功能:1 请输入新学生的姓名:小红 请输入…...
python 堆与栈
【一】堆与栈 【 1 】简介 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top&a…...
园区规划技术要点
(一)技术点介绍 1.WLAN:无线局域网WLAN(Wireless Local Area Network)是一种无线计算机网络,使用无线信道代替有线传输介质连接两个或多个设备形成一个局域网LAN(Local Area Network)…...
深入浅出 Linux 中的 ARM IOMMU SMMU III
系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的 dma_alloc_coherent()/dma_alloc_attrs() 等接口。dma_alloc_coherent()/dma_alloc_attrs() 等接口通过 DMA IOMMU 的回调分配内存,并为经过 IOMMU 的 DMA 内…...
Linux系统---图书管理中的同步问题
顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、问题描述 (1)图书馆阅览室最多能够容纳N(N5)名学生,若有更多学生想…...
西安商城类网站制作/百度投诉中心24人工客服
别问别人为什么,多问自己凭什么 乐观的人只顾着微笑,而忘了怨; 悲观的人只顾着怨,而忘记笑; 真正的美丽,不是青春的容颜,而是绽放的心灵; 你能帮多少人 就有多少人来帮你 十年前你是…...
大连网站建设资讯/惠州seo外包平台
python添加菜单图文讲解 分享一个基于tkinter的菜单程序添加操作,希望对需要的朋友有帮助。 打开python集成开发环境,使用 from tkinter import Tk from tkinter import Menu 导入Tk和Menu,最好不要用from tkinter import *因为这样可能刀座某…...
快手刷赞网站推广软件/优质的seo快速排名优化
我使用了很多C,我对Java的工作方式感到很困惑:如果我有课的话public class MyClass{private int[] myVariable;...public int[] getVar(){return myVariable;}}然后我想在其他地方使用我的变量:public static void main(String[] args){MyCla…...
网站上的报名表链接是怎么做的/抖音广告怎么投放
模板介绍 本套管理好自己的健康下载PPT模板,模板编号:P87161,大小10MB,共27页,比例为16:9,由封面、目录、转场页、内容、结尾5个部分构成。 内含青色,橙色,灰色多种配色,精美风格设计,动态播放效果,精美实用。 一份设…...
做传媒网站公司名称/seo站长工具是什么
要让用户控件的子控件具有外部访问权限可以修改子控件的Modifiers属性为public...
wordpress 不能自定义主题/自己如何建立网站
android8.1启动过程(七) SystemServer_we1less的博客-CSDN博客 这篇文章说道SystemServer进程主要用于创建系统服务,同时初始化Zygote 调用gCurRuntime->onZygoteInit();本文从这继续解析binder的启动过程。 onZygoteInit AOSP/frameworks/base/cmds/app_pr…...