网络协议必知必会

简介: 网络协议必知必会

一、 计算机协议介绍

1 什么是协议

简单来说,协议就是计算机之间通过网络实现通信时事先达成的一种 “ 约定 ” ;这种 “ 约 定” 使那些由不同厂商的设备,不同 CPU 及不同操作系统组成的计算机之间,只要遵循相同 的协议就可以实现通信。 协议可以分很多种,每一种协议都明确界定了它的行为范:2 台计算机之间必须能够 支持相同的协议,并且遵循相同的协议进行处理,才能实现相互通信。

2 协议的标准化

计算机通信诞生之初,系统化与标准化未收到重视,不同厂商只出产各自的网络来实现 通信,这样就造成了对用户使用计算机网络造成了很大障碍,缺乏灵活性和可扩展性。为解 决该问题,国际标准化组织(ISO )在 1978 年提出了 “ 开放系统互联参考模型 ” ,即著名的 OSI/RM 模型( Open System Interconnection/Reference Model )。它将计算机网络体系结构的 通信协议划分为七层,自下而上依次为:物理层(Physics Layer )、数据链路层( Data Link Layer )、 网络层(Network Layer )、传输层( Transport Layer )、会话层( Session Layer )、表示层 (Presentation Layer )、应用层( Application Layer )。


20200614234342927.png

除了标准的 OSI 七层模型以外,常见的网络层次划分还有 TCP/IP 四层协议以及 TCP/IP

五层协议,它们之间的对应关系如下图所示:

20200614234408134.png

二、 TCP/IP 协议群

1 什么是 TCP/IP 协议群

从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中 有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到 的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。 TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网络协议群。


20200614234509746.png

2 什么是应用协议

应用协议是定义了运行在不同系统上的应用程序进程如何相互传递报文的协议。

常见的应用协议:

2.1TELNET 协议

TCP/IP 协议族中的一员,是 Internet 远程登录服务的标准协议和主要方式。它为用户提 供了在本地计算机上完成远程主机工作的能力。Telnet 是常用的远程控制 Web 服务器的方 法。

2.2FTP 协议

文件传输协议( File Transfer Protocol )。是用于在网络上进行文件传输的一套标准协议, 它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, FTP 允许用户以文件操作 的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。

2.3HTTP 协议

一个简单的请求 - 响应协议,它通常运行在 TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

2.4SNMP 协议

简单网络管理协议。专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及 HUBS 等)的一种标准协议,它是一种应用层协议。

2.5 SMTP 协议

一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。

2.6 DNS 协议

DNS ( Domain Name System ,域名系统),万维网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接知读取的 IP地址。

3 什么是传输协议

传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。

3.1 TCP 协议

TCP : (Transmission Control Protocol) 传输控制协议, TCP 是一种面向连接的、可靠的、基于字节流的传输层(Transport layer )通信协议。 TCP 为提供可靠性传输,实行 “ 顺序控制或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等 多功能。

3.2 UDP 协议

UDP : (User Datagram Protocol) 的简称, 是不具有可靠性的数据报文协议。虽然可以确保发送消息的大小,却不能保证消息一定会到达。

3.3 TCP 与 UDP 比较

TCP 和 UDP 的优缺点无法简单地、绝对地去做比较: TCP 用于在传输层有必要实现可靠传输的情况;UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。 TCP和 UDP 应该根据应用的目的按需使用。

4 什么是网际协议

网际协议是一个网络层协议,它包含寻址信息和控制信息 ,可使数据包在网络中路由。

4.1 IP 协议

IP 协议( Internet Protocol 网际互连协议),它主要是完成两个任务,一个是寻找地址,第二个是管理分割数据片。

4.2 ICMP 协议

ICMP 的主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包被废弃的具体原因,改善网络设置等。

IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4 。也就是说,在 IPv4 时期,即使没有ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中, ICMP 的作用被扩大,如果没有 ICMPv6, 6IPv6 就无法进行正常通信。

4.3 ARP 协议

ARP 协议 (Address Resolution Protocol ,地址解析协议 ) 是一个位于 TCP/IP 协议群中的网络 层,负责将某个 IP 地址解析成对应的 MAC 地址。主机将包含目标 IP 地址信息的 ARP 请求广播到网络中的所有主机,并接收返回消息,以此确定目标 IP 地址的物理地址。

5 什么是路由控制协议

路由控制协议是一种网络层协议,它通过提供一种共享路由选择信息的机制,允许路由 器与其他路由器通信以更新和维护自己的路由表,并确定最佳的路由选择路径。通过路由选 择协议,路由器可以了解未直接连接的网络的状态,当网络发生变化时,路由表中的信息可 以随时更新,以保证网络上的路由选择路径处于可用状态。

5.1 RIP 协议

RIP(Routing Information Protocol, 路由信息协议)是一种内部网关协议( IGP ),是一种动态路由选择协议,用于自治系统(AS )内的路由信息的传递。

5.2 OSPF 协议

OSPF(open shortest path first, 开发最短路径优先协议 ) 路由协议是用于网际协议( IP )网络的链路状态路由协议。

5.3 BGP 协议

BGP(Border Gateway Protocol, 边界网关协议 ) 边界网关协议( BGP )是运行于 TCP 上的一种自治系统的路由协议。 目的是为了方便管理规模不断扩大的网络,网络被分成了不同自治系统。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。

三、 TCP 协议传输特点

TCP 是一个可靠的传输协议,在创建连接时会经历三次握手,在断开连接时会经历四次挥手。

1 建立连接的三次握手

所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。

20200614234603857.png

2 断开连接的四次挥手

四次挥手即终止 TCP 连接,就是指断开一个 TCP 连接时,需要客户端和服务端总共发送4 个包以确认连接的断开。

20200614234621851.png

四、 服务端口

1 端口作用

端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输。

20200614234751669.png

2 端口分配

操作系统中一共提供了 0~65535 可用端口范围。

按端口号分类:

公认端口( Well Known Ports ):从 0 到 1023 ,它们紧密绑定( binding )于一些服务。

通常这些端口的通讯明确表明了某种服务的协议。例如: 80 端口实际上总是 HTTP 通讯。

注册端口( Registered Ports ):从 1024 到 65535 。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从 1024 左右开始。

3 常见的应用层协议与端口分配

20200614234825737.png

五、 数据包与处理流程

1 什么是数据包

通信传输中的数据单位,一般也称“数据包”。在数据包中包括:包、帧、数据包、段、消息。

网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。

20200614234905801.png

2 数据包处理流程

20200614234932129.png

目录
相关文章
|
存储 编译器 Linux
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
214 0
|
10月前
|
监控 安全 算法
龙蜥衍生版KeyarchOS国密应用、eBPF安全技术实践介绍|龙蜥大讲堂107期
龙蜥衍生版KeyarchOS国密应用及eBPF安全技术实践介绍。本次分享由浪潮信息的霍文和甄鹏主讲,涵盖全栈国密、国密密钥证书、国密通信等内容,并介绍了基于eBPF技术的新一代零侵入安全防御组件KSecure。通过实际案例展示了敏感信息传输加密、虚拟机热迁移等应用场景,以及如何利用eBPF实现进程注入检测等安全功能。该技术方案有效提升了操作系统的安全性与合规性,为服务器提供了强大的安全保障。
262 12
龙蜥衍生版KeyarchOS国密应用、eBPF安全技术实践介绍|龙蜥大讲堂107期
|
9月前
|
人工智能 负载均衡 数据可视化
阿里云百炼免费0元部署DeepSeek-R1满血版,替大家试过了,3分钟部署成功!
阿里云百炼平台提供免费100万Token,一键部署DeepSeek-R1满血版仅需3分钟。新手无需编码,最低0元即可体验。平台支持自动弹性扩展,保障API调用稳定性,并提供Chatbox客户端简化操作流程。详情及教程见阿里云百炼官网。
445 4
|
前端开发 JavaScript
掌握微前端架构:构建现代Web应用的新方法
本文介绍了微前端架构的概念及其在现代Web应用开发中的优势与实施方法。微前端架构通过将应用拆分成独立模块,提升了开发效率和灵活性。其核心优势包括技术栈灵活性、独立部署、团队协作及易于维护。文章详细阐述了定义边界、选择框架、管理状态和通信等关键步骤,并讨论了状态同步、样式隔离及安全性等挑战。微前端架构有望成为未来Web开发的重要趋势。
|
监控 Java 大数据
【Java内存管理新突破】JDK 22:细粒度内存管理API,精准控制每一块内存!
【9月更文挑战第9天】虽然目前JDK 22的确切内容尚未公布,但我们可以根据Java语言的发展趋势和社区的需求,预测细粒度内存管理API可能成为未来Java内存管理领域的新突破。这套API将为开发者提供前所未有的内存控制能力,助力Java应用在更多领域发挥更大作用。我们期待JDK 22的发布,期待Java语言在内存管理领域的持续创新和发展。
|
存储 分布式计算 大数据
阿里云 EMR 强势助力,与阿里云大数据体系共创辉煌,把握时代热点,开启生态建设之旅
【8月更文挑战第26天】阿里云EMR(Elastic MapReduce)是一种大数据处理服务,与阿里云的多个服务紧密结合,共同构建了完善的大数据生态系统。EMR与对象存储服务(OSS)集成,利用OSS提供可靠、低成本且可扩展的数据存储;与MaxCompute集成,实现深度数据分析和挖掘;还支持数据湖构建服务,加速数据湖的搭建并简化数据管理与分析过程。EMR提供多种编程接口及工具,如Hive、Spark和Flink等,帮助用户高效完成大数据处理任务。
438 2
|
JSON 物联网 Serverless
|
算法 Java 编译器
第十五届蓝桥杯Java软件开发大学B组自我经验小结
第十五届蓝桥杯Java软件开发大学B组自我经验小结
225 0
|
运维 Prometheus Kubernetes
基于Kubernetes的容器化运维实践
本文将介绍如何在Kubernetes平台上进行容器化运维。首先,我们将了解Kubernetes的基本概念和组件。然后,我们将探讨如何部署和管理应用程序,以及如何使用Kubernetes进行自动化运维。最后,我们将讨论一些最佳实践和常见问题解答。通过阅读本文,您将能够更好地理解Kubernetes在现代IT环境中的重要性,并学会如何有效地利用它来提高运维效率。
|
网络协议 安全 Linux
深入解析HTTP请求:了解请求特征与报文格式的关键秘密
这篇文章将带您深入了解HTTP请求的特征和报文格式。HTTP作为一种简单、灵活且易于扩展的协议,适用于各种操作系统和设备。我们还将探讨持久性连接如何提高请求的效率。了解HTTP报文的构成,包括起始行、头部字段和消息正文,将帮助您更好地理解HTTP的工作原理。无论您是初学者还是已经有一定了解的读者,本文都将为您提供全面的HTTP知识。
510 1
深入解析HTTP请求:了解请求特征与报文格式的关键秘密