前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IP协议与层次划分

IP协议与层次划分

作者头像
epoos
发布2022-09-19 10:27:17
4940
发布2022-09-19 10:27:17
举报
文章被收录于专栏:epoos.com

本文内容来自《计算机网络》谢希仁一书。

网络协议

什么是网络协议?

代码语言:javascript
复制
为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(network protocol)。
也可简称为协议。

网络协议主要组成要素

代码语言:javascript
复制
语法,即数据与控制信息的结构或格式;
语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
同步,即事件实现顺序的详细说明。

网络协议分层

1)标准网络分层 —— OSI的七层协议 学习OSI分层体系首先需要明白什么是OSI?

代码语言:javascript
复制
计算机想要实现全球网络互联就需要进行标准化数据通信。
为了使不同体系结构的计算机网络都能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。
不久,他们就提出一个试图使各种计算机在世界范围内互连成网的标准框架。
即开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为OSI。

OSI的七层协议体系结构的概念清楚,理论也较完整。 然而,在它20世纪90年代初期才完成了整套协议的制定,再加上它的规范既复杂又不实用。 因此市面上很少有厂家生产出完全符合其标准的产品。

2)TCP/IP四层协议 技术的发展并不是遵循严格的OSI分层的概念。 相比于OSI模型的七层协议,TCP/IP就常被称为是事实上的国际标准。

代码语言:javascript
复制
TCP/IP体系在标准OSI协议完全制定出来之前就已经得到了非常广泛的应用。
TCP/IP是一个四层的体系结构,它包含应用层、运输层(TCP|UDP)、网际层IP和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题)。

当然TCP/IP四层协议并不是完全按层级调用。 当前实际应用中,某些应用程序也会直接使用IP层,或直接使用最下面的网络接口层。

3)五层协议 从实质上讲,TCP/IP只有最上面的三层,因为最下面的网络接口层基本上和一般的通信链路在功能上没有多大差别,对于计算机网络来说,这一层并没有什么特别新的具体内容。

代码语言:javascript
复制
因此,在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。
即应用层、运输层、网络层、数据链路层、物理层。

五层协议是为了方便学习网络协议分层,实际上应用还是用的“TCP/IP四层协议”。

1)应用层(application layer)

应用层是体系结构中的最高层。 应用层的任务是通过应用进程间的交互来完成特定网络应用。 应用层协议定义的是应用进程间通信和交互的规则。 这里的进程(process)就是指主机中正在运行的程序。 对于不同的网络应用需要有不同的应用层协议。 应用层协议很多,如:

代码语言:javascript
复制
DNS(域名系统)
FTP(文件传输)
HTTP(超文本传输协议)
SMTP(邮件发送协议)
POP3(邮件接收协议)
Telnet(远程终端协议)
...

我们将应用层交互的数据单元称为**报文(message)**。

2)运输层(transport layer)

运输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。 应用进程利用该服务传送应用层报文。 所谓通用,是指并不针对某个特定网络应用,而是多种应用可以使用同一个运输层服务。 由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。 复用就是多个应用层进程可同时使用下面运输层的服务,分用与复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。

运输层主要使用以下两种协议:

代码语言:javascript
复制
TCP(传输控制协议)
UDP(用户数据报协议)

运输层数据传输的单位是用户数据报

3)网络层

网络层负责为分组交换网上的不同主机提供通信服务。 网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。 因特网是一个很大的互联网,它由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来。 网络层主要的协议是:

代码语言:javascript
复制
无连接的网际协议IP (Internet Protocol)和许多种路由选择协议

因此因特网的网络层也叫做网际层或IP层(文本中,网络层、网际层和IP层都是同义语)。 网络层把运输层产生的报文段或用户数据报封装成分 包(packet) 进行传送。 在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作 IP数据报,或简称为**数据报(datagram)**。

4)数据链路层(data link layer)

数据链路层常简称为链路层。 数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送。 数据链路层传输数据的单位是帧(frame) 每一帧包括数据和必要的控制信息,如:

代码语言:javascript
复制
同步信息
地址信息
差错控制
...

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。 这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。

控制信息还使接收端能够检测到所收到的帧中有无差错。 如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源。 如果需要改正数据在数据链路层传输时出现的差错(这就是说,数据链路层不仅要检错,而且要纠错),那么就要采用可靠传输协议来纠正出现的差错。 这种方法会使数据链路层的协议复杂些。

5)物理层(physical layer)

物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 在物理层上所传数据的单位是比特。

物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。 物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。

注意:

代码语言:javascript
复制
1)解释比特代表的意思,就不是物理层的任务。
2)传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理媒体当作第0层。

数据在各层之间的传输

下图说明的是应用进程的数据在各层之间的传递过程中所经历变化的简图。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 网络协议
    • 网络协议分层
      • 1)应用层(application layer)
      • 2)运输层(transport layer)
      • 3)网络层
      • 4)数据链路层(data link layer)
      • 5)物理层(physical layer)
    • 数据在各层之间的传输
    相关产品与服务
    数据传输服务
    腾讯云数据传输服务(Data Transfer Service,DTS)可帮助用户在业务不停服的前提下轻松完成数据库迁移上云,利用实时同步通道轻松构建高可用的数据库多活架构,通过数据订阅来满足商业数据挖掘、业务异步解耦等场景需求。同时,DTS 还提供私有化独立输出版本 DTS-DBbridge,支持异构数据库和同构数据库之间迁移和同步,可以帮助企业实现完整数据库迁移(如 Oracle)。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档