TCP/IP协议网络上类似的科普知识很多,博主针对一些资料做了下整理,加入了自己的一些理解和观点。主要还是针对新人教程,结构比较清晰,有一定学习价值。

下面进入主题,我们知道现在互联网协议是经过分层的,根据国际标准化组织ISO于1984年提出的开放系统互联参考模型,也就是现在的OSI参考模型。为了简化相关网络操作,促进标准化工作,针对网络结构上进行了分层,也便人们学习和操作,下面依次介绍OSI和TCP/IP两种模型协议具体功能和区别,以及数据传输流程原理是怎样的:

分层模型1、OSI参考模型

1)物理层:在设备之间传输比特流, 常用的物理层传输介质有网线、双绞线、同轴电缆、光纤等。

2)数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。

3)网络层:提供逻辑地址,供路由器确定路径。

4)传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
5)会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
6)表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
7)应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

2、TCP/IP参考模型

1)TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。

2)TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。

3)TCP/IP模型的核心是网络层和传输层:网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。

3、OSI与TCP/IP模型对应关系

各层包含协议范围如下图所示:

数据传输过程了解了OSI和TCP/IP模型和功能后,再来讲一下数据传输过程,看看数据是如何通过这些分层模型,在互联网中进行传输。

我们在网络中传输数据,一般以自上而下由应用层到物理层,这个过程我们称作为数据封装过程,自下而上由物理层到应用层,这个过程我们称作为数据解封装过程,其中每层模型都分别扮演这它的角色和功能,下面我将用图文方式带大家具体了解下:

1、数据封装流程

1、数据封装过程,我们先来做个假设以发送方来举例,发送一个QQ消息首先到达应用层,由应用进行封装格式,然后下发到传输层。

2、到达传输层后,传输层会在上层数据基础上,封装一个TCP头部报文,继续打包下发。

3、数据到达网络层,网络层会在上层数据基础上,再封装一个IP头部报文,然后继续打包下发。

4、数据到达数据链路层,数据链路层会在上层数据基础上,再封装一个MAC头部报文,然后继续打包下发。

5、最终数据到达物理层,通过比特电信号将数据发送到网络中,整个数据封装过程结束。

2、数据解封装流程

1、数据解封装正好相反,接收方接收数据,首先物理层通过电信号接收到数据,并将数据发送到数据链路层。

2、数据链路层查看数据包封装格式,拆掉链路层的MAC头部报文信息然后将数据继续向上层发送。

3、数据到达网络层,网络层查看数据包格式,发现有IP头部,去掉头部信息然后将数据继续向上发送。

4、数据到达传输层,同理传输层查看有TCP头部信息,去掉头部信息后将数据发送到应用层。

5、应用层接收到数据,并将数据发送给应用程序,最终用户接收到QQ消息信息,整个数据包解封装过程完成。

3、PDU数据传输单元我们知道每一层数据都会进行封装与解封装,我们将每一层数据包传输格式,称为数据传输单元,俗称PDU,也就是我们经常听到的,数据包、数据帧、比特流这些,下面我附上一张图详细说明每一层数据具体名称:

这里我们只需要了解每层格式分类及名称含义即可,下面将具体列出每个协议单元具体功能和作用:

1、比特流:物理链路传输的0、1比特流。

2、数据帧:就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。

3、数据包:在包交换网络里,单个消息被划分为多个数据块,这些数据块称为包,它包含发送者和接收者的地址信息。这些包然后沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合。

4、数据段:这里特指传输层的PDU,也即传输层传给网络层的PDU。数据流被分割成小块,传输层报头被创建并放在数据字段前面的报头中,此时的数据块称为数据段。用这个报头进行在接收端对数据段进行排序。传输层PDU。

5、报文或消息:这部分主要是应用层作为补充,网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。应用层的数据块。报文也是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头以一定格式组织起来的数据。传输层实现报文交付。我们将位于应用层的信息分组称为报文。

4、设备与层的对应关系最后我们再了解一下每一层都分别对应着哪些设备,直接上图:

这部分了解一下就可以了,知道每层对应的设备是什么,一般我们说二层交换机、三层交换机,对应的就是设备与层的关系,也就限定了设备的作用范围。5、终端之间通讯

  • 以太网MAC地址

我们知道MAC地址由两部分组成,分别是供应商代码和序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配,

以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

如下图所示:

如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比特是组织唯一标识符OUI,由IEEE统一分配给设备制造商。

  • 数据帧传输

数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为数据帧,数据帧中封装的信息决定了数据如何传输。

Ethernet_II的帧中各字段说明如下:

1、D.MAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。

2、S.MAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。

3、类型字段(Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧。

4、数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。

5、循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。

数据帧传播方式可分为三种:

1、单播

指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。

在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

2、广播

第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。

广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。

当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

3、组播

第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。

组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。

当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下,通常会使用组播方式。

4、发送与接收

当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。

帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。

如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。

总结我们分别了解了OSI和TCP/IP模型,知道了层的概念和每层的具体功能和作用,此外我们学习了数据在网络中传输过程以及如何通过分层来细化和规范传输流程。整个数据封装和解封装逻辑很清晰,数据传输的每一层都掌握一种封装报文的格式,并且在数据发送和接收时候会对自己所在报文类型进行封装与解封装操作,再深入一点就是每层报文封装格式,这部分内容我们留到后面分享,博主会在后面做协议文案时候,专门写一篇汇总文章,将我们常见的协议进行汇总讲解,并结合实际工作中使用情况着重讲解一些日常中用的比较多的协议报文使用与解析。今天的内容就分享到这里了,如果教程对你有帮助,麻烦给博主点个赞支持一下,当然如果有任何问题也可以在评论区留言,博主会尽可能的进行解答,也欢迎大家指正问题和不足地方,博主会不断优化改进,争取将最好的作品分享给大家。 

tcp 组播_深入了解TCP/IP协议相关推荐

  1. tcp 组播_华为组播理论知识详解(二)

    二.IGMP协议简介 IGMP是Internet Group Management Protocol的简称,又被称为互联网组管理协议,是TCP/IP协议族中负责IPv4组播成员管理的协议. IGMP用 ...

  2. 同一个ip能否两次加入组播_组播IGMPv1/v2/v3精华知识汇总

    闲言少叙,直奔主题,开说之前先做点铺垫,回顾一下网络的基础知识. D类地址划分回顾 组播是IPv4地址分类中的D类,我们回顾一下IPv4的地址划分 A类:首bit=0,0-127网段,网络掩码8,其中 ...

  3. 组播MAC地址和各类IP地址

    MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备位置.MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique ide ...

  4. 10mbps 局域网组播_无线局域网Apple Bonjour部署指南

    当适合于对支持的组播应用例如Apple的Bonjour协议,本文在运行原理和配置提供信息为Cisco Unified无线LAN解决方案.查询和宣布特定服务的此协议enable (event) Appl ...

  5. 加入rtp组播_耗时10+小时撰写 带你系统认识组播 收藏这些概念

    组播multicast:在一个或跨越多个广播域,实现点对多点的通信需求,不存在强制性:比单播技术更加灵活.比广播技术更加高效:广泛应用在网络电视.在线直播.远程教育.视频会议等对带宽和数据交互实时性较 ...

  6. java tcp门禁_门禁控制器的TCP/IP协议功能

    原标题:门禁控制器的TCP/IP协议功能 门禁控制器的TCP/IP协议功能 Linux支持多种不同的网络协议,TCP/IP是Linux系统中最健壮.速度最快和最可靠的部分.TCP/IP协议包括了各个层 ...

  7. 单播 广播 组播_【技术解析】关于组播概念那些你需要知道的~

    点击蓝字关注我 今天,小盟带大家继续学习一下组播知识~ 一.IGMP Message 1.组成员一旦开启IGMP,会自动发送Membership Report消息到叶路由器 2.IGMPv2版本,组成 ...

  8. 单播 广播 组播_组播概念3

    一.IGMP Message 1.组成员一旦开启IGMP,会自动发送Membership Report消息到叶路由器 2.IGMPv2版本,组成员退出组会发送leave消息,IGMPv1不会 3.也就 ...

  9. linux添加组播路由命令,linux – 使用ip route add将组播路由添加到多个接口

    TLDR:有没有办法使用"ip route"为多个网卡添加组播路由? 我们的软件使用两个多播组与两个不同的物理网络上的两个不同的设备组进行通信.除此应用程序外,一个网络上的设备无需 ...

最新文章

  1. Python fileinput模块:逐行读取多个文件
  2. Socket IO与NIO(二)
  3. thinkphp的伪静态化
  4. Win 7/10 安装Oracle 11g
  5. ssh 连接_怎样解决Linux环境下远程连接ssh速度慢的问题
  6. 北京市:通过区块链等技术手段,实现住所申报材料无纸化
  7. cocos2d-x项目101次相遇-安装和环境搭建 -xcode
  8. 黑马程序员——iOS学习——启动App界面黑屏
  9. mapreduce shuffle过程问答
  10. 云和恩墨技术通讯:Oracle AMM自动内存管理引起数据库阻塞
  11. 互联网平台黑产解密(下)
  12. 爬虫日记(71):用OCR来对抗字体反爬
  13. (MATLAB)绘制三维曲线(plot3/plot)
  14. 2021最新(ISC)2 CISSP 考试费用列表
  15. Cadence PSpice 仿真5:运放噪声仿真实战图文教程
  16. 【科研论文】Endnote入门指南
  17. Latex图片、公式、参考文献插入技巧
  18. YOLOX之绘制AP图与损失曲线
  19. (转)Flickr架构
  20. 宏碁E5-471G加固态硬盘、内存条避坑指南

热门文章

  1. linux内核分析--异步io(一)
  2. “加密解密专区”的“滚动”广告太老了
  3. SparkSQL概念介绍
  4. 大数据应用需要注意什么问题
  5. 什么是大数据平台和大数据
  6. android tv webview,Android TV开发---WebView焦点处理
  7. 扫地机器人石头爬坡_都这么强了,还要怎么升级:真实评测石头T6扫地机器人...
  8. jquery修改服务器json,在没有JQuery的情况下将JSON发送到服务器并获取JSON作为回报...
  9. 单个字段中根据条件剔除数据
  10. 从零开始部署基于阿里容器云的微服务(consul+registrator+template)(一)