数据通信与网络(二)

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

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

网络学习-eNSP配置NAT

NAT实现内网和外网互通 #给路由器接口设置IP地址模拟实验环境<Huawei>system-viewEnter system view, return user view with Ctrl+Z.[Huawei]undo info-center enableInfo: Information center is disabled.[Huawei]interface gigabit

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使

Golang网络爬虫框架gocolly/colly(四)

爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟。回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook,myspace,filcker,youtube等等,国际上叫得上名字的社交网站都爬过,大部分网站提供restful api,有些功能没有api,就只能用http抓包工具分析协议,自己爬;国内的优酷、