找回密码
 注册
搜索
查看: 2704|回复: 0

网络协议——最全的网络协议图

[复制链接]

455

主题

49

回帖

2204

积分

管理员

积分
2204
发表于 2018-11-13 14:59:02 | 显示全部楼层 |阅读模式
网络协议——最全的网络协议图cpp软件架构狮 2018-11-08 21:21:37
计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。计算机网络协议同我们的语言一样,多种多样。
为了给网络协议的设计提供一个结构,网络设计者以分层的方式组织协议。
一个协议层能够用软件、硬件或者两者的结合来实现。比如HTTP和SMTP这样的应用层协议几乎总是在端系统中用软件实现的,传输层协议也是如此。因为物理层和数据链路层负责处理跨越特定链路的通信,它们通常是实现在与给定的链路相联系的网络接口卡(比如以网络或WIFI接口卡)中。网络层通常是硬件和软件实现的混合体。
1.网络层次划分
将所有的协议综合起来,各个层次的所有协议被称为协议栈。因特网的协议栈由5个层次组成:物理层、链路层、网络层、传输层和应用层。这个划分方法称为TCP/IP五层协议。除此之外,还有OSI七层模型和TCP/IP四层协议。它们之间的对应关系如下:


下面来看下史上最全的网络协议图:

图片来自网络,高清大图可以在我的微信公众号:cpp软件架构狮,回复网络图


当然比较常用的是TCP/IP五层协议。
1.1 应用层
应用层是网络应用程序以及它们的应用层协议存留的地方。因特网应用层包括许多协议,例如HTTP(Web应用的主要协议)、SMTP(邮件传输)和FTP(文件传送)等。再比如我们每天都在使用的DNS域名系统。
应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议与另外一个端系统中的应用程序交换信息的分组。
我们把位于应用层的信息分组称为报文。
1.2 传输层
因特网的传输层在应用程序端点之间传送应用层报文。在因特网中,有TCP和UDP两个传输层协议。
TCP向它的应用程序提供了面向连接的服务,这种服务包括了应用层报文向目的地的确保传递和流量控制。TCP也将长报文划分成短报文,并提供拥塞控制机制,因此,当网络拥塞时,发送方可以抑制其传输速率。
UDP协议向它的应用程序提供无连接服务。这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。
我们把传输层分组称为报文段。
1.3 网络层
因特网的网络层负责将称为数据报的网络层分组从一台主机移动到另一台主机。在一台源主机中的因特网传输层协议(TCP或者UDP)向网络层递交传输层报文段和目的地址。
网络层包括著名的IP协议,该协议定义了在数据报中的各个字段以及端系统和路由器如果作用于这些字段。网络层也包括决定路由的路由选择协议,它使得数据报根据该路由从源传输到目的地。
1.4 链路层
网络层通过源和目的地之间的一系列路由器路由数据报,为了将分组从一个结点移动到路径的下一个结点,网络层必须依靠链路层的服务。特别是在每个结点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个结点,在下一个结点,链路层将数据报上传给网络层。
由链路层提供的服务取决于应用于该链路的特定的链路层协议,比如我们常见的以太网,WIFI等。
因为数据报从源到目的地传送通常要经过几条链路,一个数据报可能被沿途不同链路上的不同链路层协议处理。例如,一个数据报可能被一段链路上的以太网和下一段链路上的PPP所处理。网络层将受到来自每个不同链路的链路层协议的服务。
我们把链路层分组称为帧。
1.5 物理层
链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个一个比特从一个结点移动到下一个结点。物理层的协议是和链路相关的,并且进一步与该链路的实际传输媒体相关。比如,以太网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有是关于光纤的等等。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

党灏宇
党灏浛

QQ|手机版|daweida.com

GMT+8, 2024-4-19 14:55 , Processed in 0.166390 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表

Warning: PHP Startup: Unable to load dynamic library 'fileinfo.so' (tried: /usr/local/zend/php7.4/include/php/ext/fileinfo.so (/usr/local/zend/php7.4/include/php/ext/fileinfo.so: cannot open shared object file: No such file or directory), /usr/local/zend/php7.4/include/php/ext/fileinfo.so.so (/usr/local/zend/php7.4/include/php/ext/fileinfo.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0