数据通信与网络(二)

2024-06-14 07:20
文章标签 网络 数据通信

本文主要是介绍数据通信与网络(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何构建网络协议

这些协议采用分层的结构,每层协议实现特定功能,同时也需要依靠低层协议所提供的服务。

网络协议可以理解为三部分组成:

1、语法:通信时双方交换数据和控制信息的格式,是对通信时采用的数据结构形式的一种规定。

2、语义:由通信过程的说明构成,它规定了需要发出何种控制信息完成何种动作以及做出何种应答。

3、时序(同步):通信如何发起,再收到一个数据后,下一步要做什么。

HTTP协议是应用层协议,是浏览器和Web服务器通信时使用的协议,当浏览器访问服务器时,会向服务器发出请求报文,报文的语法格式:GET/HTTP/1.1。

“GET”的语义是要获取文件;“/”的含义是指要访问网站的主页;“HTTP1.1”表明浏览器使用的协议是HTTP1.1版本。  

当Web服务器收到请求后,如果主页存在服务器的应答语法格式:HTTP/1.1 200 OK  data data ……。200 是状态码,代表成功;OK是文字说明, data是文件数据。

如果主页不存在,服务器的应答是:HTTP/1.1 404 NOT Found ,告诉浏览器没有找到对应的文件。

不同主机上的同一层次称为对等层

每一层中实现功能的协议元素称为实体,实体既可以是软件,也可以是硬件。

对等层内的实体称为对等实体。

每一层都有特定的功能,使用下一层为它提供的服务,同时也为自己的高层提供服务。

数据传递过程

数据从发送端的最高层开始,层层向下,层层封装,直到发送方的最底层,转换为电磁信号后经过物理链路到达接收端的最底层,再层层向上,层层解封装,最后到达接收方的最高层,整个通信过程是垂直

高层使用了低层的服务,低层向高层提供服务,高层通过低层提供的服务接口访问低层的服务。

数据的传递在概念上可以认为通信是水平的,数据高翔由对等层的一端直接到达了另一端。

通信的目的就是要实现对等层之间的水平通信,虽然事实上水平通信要依赖垂直通信来实现。

协议分层的优点:

1、每个层次都可以单独实现。

2、层次明确也更有利于标准化。

计算机网络体系结构

各个层次的所有协议也被称为协议栈

采用不同体系结构的两个网络之间很难通信

为使所有的网络都能互连互通,国际标准化组织ISO提出了开放系统互连参考模型(Open Systems Interconnection Reference Model,OSI/RM),简称OSI参考模型。

1~3层称为低层功能(LLF):通信传送功能——网络和终端具备的功能

第4~7层称为高层功能(HLF):通信处理功能——终端具备的功能

TCP/IP协议体系

应用层:相当于OSI参考模型的应用层,具体的协议有超文本传输协议(HTTP)、文件传输协议(FTP)等。

运输层: TCP协议:为应用程序提供面向连接的可靠的通信,具有流量控制和拥塞控制的功能。 UDP协议:提供无连接的不可靠通信,但是效率较高。

互联网层:相当于OSI参考模型的网络层,要为数据找到一条正确的路到达目的地,主要的协议是IP。

网络接口层:相当于OSI参考模型的数据链路层和物理层。

TCP/IP的应用层

应用层协议为文件传输、电子邮件、远程登录、网络管理、Web浏览等应用提供了支持。有些协议的名称与以其为基础的应用程序同名。

TCP/IP的传输层

传输层的主要功能:提供进程间可靠的传输服务。

传输层包括TCP和UDP两种传输协议:

TCP是面向连接的传输协议。 在数据传输之前建立连接; 把报文分解为多个段进行传输,在目的站再重新装配这些段; 必要时重新传输没有收到或错误的段,因此它是“可靠”的。

UDP是无连接的传输协议。 在数据传输之前不建立连接; 对发送的段不进行校验和确认,因此它是“不可靠”的; 主要用于请求/应答式的应用和语音、视频应用。

TCP和UDP都用端口(port)号来设别应用层实体,以便准确地把信息提交给上层对应的协议(进程)。

TCP/IP的网络层

主要功能是把数据报通过最佳路径送到目的端。

- 寻址(IP地址)、路由选择、封包/拆包

网络层的核心协议 --- IP,提供了无连接的数据报传输服务(不保证送达,不保证序,不保证无错)

        -传输前不需建立连接

        -提高了传输效率

网络层是网络转发节点(如路由器)上的最高层。

        -网络节点设备不需要传输层和应用层

网际层的其他重要协议:

ICMP(Internet Control Message Protocol)

传递控制信息

        - 可达性测试

        - 传送路由状态信息

        - 超时通知

        - 不可达通知

封装在IP中进行传输

ARP(Address Resolution Protocal)

为已知的IP地址确定相应的MAC地址

RARP (Reverse Address R二solution Protocal)

为已知的MAC地址确定相应的IP地址

IGMP(Internet Group Management Protocol)

多播组管理

TCP/IP的网络接口层

没有定义任何实际协议,仅定义了网络接口

任何已有的数据链路层协议和物理层协议都可以用来支持TCP/IP

典型的例子:

- Ethernet、Token Ring、HDHL、X.25、ATM

优点:适应性强、灵活

缺点:不能利用已存在的某些有用的功能

- TCP/IP总是认为其下层是不可靠的(尽管可能已经足够可靠)

TCP/IP协议栈

主机和路由器的协议栈

对于端系统(主机和服务器)而言,因为包括具体的网络应用,所以四层协议都具备。

对于通信子网中的分组交换设备(路由器),其作用是转发分组,并不关心高层数据,所以协议栈只包括下两层协议(互联网层和网络接口层)。

OSI参考模型和TCP/IP参考模型比较

相同之处:

1、两者都采用层次型的模型。

2、都以协议栈的概念为基础,且协议栈中的协议是彼此相互独立的。

3、两个模型中各层的功能大体相似。

不同之处:

1、服务、接口和协议这三个概念,OSI非常明确,TCP/IP没有区分三者间的差异。前者的协议隐蔽性比后者好,这有利于协议的更新。

2、OSI是模型在先协议在后,这意味着该模型具有通用性,而TCP/IP模型却相反,模型只有已有协议的一个描述,但未必适合其他的协议栈。

3、两种模型层的数目不同。

4、OSI的网络层同时支持面向连接和无连接服务,但远输层只支持面向连接服务。而TCP/IP的网络层只有一种无连接服务模式,但在远输层同时支持两种服务模式

5、TCP/IP较早就有较好的网络管理。OSI后来才考虑网管问题。

这篇关于数据通信与网络(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059741

相关文章

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子