【计算机网络】网络协议五层模型下的各层数据传输的结构(以TCP包为例)

这篇具有很好参考价值的文章主要介绍了【计算机网络】网络协议五层模型下的各层数据传输的结构(以TCP包为例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、网络协议层次

五层数据,网络协议,计算机网络,tcp/ip

二、数据在网络体系中的流向

五层数据,网络协议,计算机网络,tcp/ip

1.应用层

    应用层的数据就是我们写的代码的内容。比如我要传一个字符串 “hello wolrd” 到目的主机,那么报文M就表示的是 hello world 的二进制(0 1)形式。
    应用层就是我们主机的应用程序的那一层。比如你用 visual studio运行了你写好的代码程序,正在运行的代码程序就叫作应用程序。对于windows来说,单运行visual studio这个软件也叫作应用程序。visual studio这种软件底层也是写好的代码和控件,你运行这个软件,也就是运行了这个代码程序。

2.传输层(运输层)

    运输层是建立 “端口到端口” 的通信。主要以TCP/UDP协议为主。当数据(M)从 应用层 到 运输层 后,为 报文M 添加 Ht 头部。这个头部以TCP协议为例。结构为:
五层数据,网络协议,计算机网络,tcp/ip
    也就是说,Ht 头部共20个字节(一般情况下是没有可选长度字段和填充字段的),其中端口号字段(4字节)实现了 “端口到端口” 的通信,通过抓包数据:
五层数据,网络协议,计算机网络,tcp/ip
    如果传输层采用UDP协议,UDP的头部结构总共8个字节,UDP协议会为报文M增加一个8字节的头部 Ht 组成传输层的数据段 Ht + M
五层数据,网络协议,计算机网络,tcp/ip

3.网络层

    网络层建立 “主机到主机” 的通信。传输层的 数据段 Ht + M 到达网络层之后,网络层将添加IP协议数据报头 Hn 一起组成 数据报 Hn + Ht + M 传到数据链路层。一般情况下也是20个字节,可选字段和填充字段一般不设置。
五层数据,网络协议,计算机网络,tcp/ip
五层数据,网络协议,计算机网络,tcp/ip
    网络层包括著名的网际协议(IP协议),该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。IP仅有一个,所有具有网络层的因特网组件必须运行IPo因特网的网络层也包括决定路由的路由选择协议,它根据该路由将数据报从源传输到目的地。尽管网络层包括了网际协议和一些路由选择协议,但通常把它简单地称为IP层,这反映了IP是将因特网连接在一起的黏合剂这样的事实。

4.数据链路层

    数据链路层主要是将网络层的传下来的数据加上数据链路层的头部 Hi 封装成 帧 Hi + Hn + Ht + M。数据链路层的头部数据共 14个字节 加上 帧尾添加的FCS字段 4个字节一起组成一个完整的一帧。
这幅图有一点小问题,目的地址指的是目的MAC地址,不是ip地址,ip地址是网络层的头部字段。源地址同理。
五层数据,网络协议,计算机网络,tcp/ip
五层数据,网络协议,计算机网络,tcp/ip
    这里可以看到数据链路层将帧传到 物理层,物理层添加的头部一共8个字节:前同步码(7 字节)+帧定界符(1 字节)。
    从这张图可以看出,帧的数据部分必须要在 46个字节 ~ 1500字节之间。1500个字节是因为MTU(最大传输传输单元)的限制。那为啥最少还要限制要46个字节(算上帧头帧尾一共64字节)?

    假设当主机A、B都要向C发送数据。我们知道主机C是不能同时recv(同一端点的同一信道上)两方发来的数据的,只能接受一方的send。当A检测到网络是空闲的,开始发数据包到C,尽力传输,当数据包还没有到达C时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B首先发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55或AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发生了错误(这个错误用叠加数据解释比较好理解),就会重传这个数据包。但如果碰撞信号返回到A时,数据包已经发完,则A不会重传这个数据包。

    要保证以太网的重传,必须保证A收到碰撞信号的时候,数据包没有传完,要实现这一要求,A和B之间的距离很关键,也就是说信号在A和B之间传输的来回时间必须控制在一定范围之内。IEEE定义了这个标准,一个碰撞域内,最远的两台机器之间的round-trip time 要小于512bit time.(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。这也是我们常说的一个碰撞域的直径。

    512个位时,也就是64字节的传输时间,如果以太网数据包大于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。这就是为什么以太网要最小64个字节,同样,在正常的情况下,碰撞信号应该出现在64个字节之内,这是正常的以太网碰撞,如果碰撞信号出现在64个字节之后,叫 late collision。这是不正常的。

    总结:最小数据帧的设计原因和以太网电缆长度有关,为的是让两个相距最远的站点能够感知到双方的数据发生了碰撞;最远两端数据的往返时间就是争用期,以太网的争用期是51.2微妙,正好发送64byte数据

三、总结

    通过 二标题 中的网络数据流向可以知道。数据流向哪一层时就要添加或者去掉哪一层的头部。传输层头部字段有端口号,到达下一层网络层就有了ip地址,再流到数据链路层就有了MAC地址。一步步寻址,最终找到对应的目的主机。并往上一层层去掉头部还原应用层我们recv到的原始数据。本文还加了抓包图,可以对照抓包的数据一个个字段看,可以发现每一个字段的值和抓包的16进制值(换算)是一致的。文章来源地址https://www.toymoban.com/news/detail-777283.html

到了这里,关于【计算机网络】网络协议五层模型下的各层数据传输的结构(以TCP包为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)

    目录 物理层 数据链路层 网络层 运输层 应用层 计算机网络是个非常复杂的系统。 早在最初的ARPANET设计时就提出了分层的设计理念。 \\\"分层\\\"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。 下面,我们以五层原理结构体系

    2024年02月07日
    浏览(48)
  • 计算机网络学习01-TCP/IP 五层模型概述

    谈论计算机网络模型之前,我们先来谈谈,为什么要分层,这样的好处是什么。 当谈到Internet 时,我们总能听到的一个词汇就是 协议 (protocol)。协议定义了发送者、接收者和所有中间设备为了高效通信需要遵循的规则。当通信简单时,我们可能只是需要一个简单的协议:当通

    2024年02月08日
    浏览(34)
  • 【计算机网络笔记】TCP/IP参考模型基本概念,包括五层参考模型

    什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率 计算机网络体系结构概念 OSI参考模型

    2024年02月05日
    浏览(38)
  • 计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构

    计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构 七层体系结构(OSI七层结构) :为了使全世界不同体系结构的计算机能够互联,国际化标准组织ISO提出开放系统互联基本参考模型,简称OSI,即所谓的7层协议体系结构。 TCP/IP四层模型 :是由实际

    2024年02月06日
    浏览(47)
  • 计算机网络-TCP/IP模型及五层参考模型(OSI与TCP/IP相同点 不同点 5层参考模型及数据封装与解封装)

    OSI:先理论,但没有实践 TCP/IP:先实践,再理论 TCP/IP:基于协议栈而分层 网络接口层:数据链路层与物理层 应用层:包含上三层 异构网络互联:实现不同厂家生产的设备进行相互通信 IP协议面向无连接 传输层是端到端,有实现可靠传输的功能,即有面向连接的功能 传输层

    2024年01月23日
    浏览(47)
  • 【计算机网络】分层模型和应用协议

    1.1 五层网络模型 网络要解决的问题是: 两个程序之间如何交换数据 。 四层?五层?七层? 2.1 URL URL(uniform resource locator,统一资源定位符)用于定位网络服务 当协议是 http 端口为 80 时,端口可以省略 当协议是 https 端口为 443 时,端口可以省略 schema 、 domain 、 path 是必填

    2024年02月08日
    浏览(45)
  • 计算机网络参考模型(OSI七层与TCP/IP协议)

    目录 1 为什么要分层 1.1 层次划分的必要性 1.2 层次划分的方法 1.2 层次划分的优点 2 七层和四层的定义 2.1 七层的介绍 2.1.1 OSI七层参考模型 2.1.2 OSI七层工作原理 2.1.3 PDU 2.2 四层的介绍 2.2.1 TCP/IP 参考模型 2.2.2 TCP/IP协议族的组成 2.2.3 数据封装和解封过程 2.2.4 设备与层的对应

    2024年02月08日
    浏览(43)
  • 【计算机网络】(1)OSI七层模型、协议、交换技术、路由器技术

    计算机网络 是计算机技术与通信技术相结合的产物,它实现了远程通信 、远程信息处理和资源共享 数据通信 资源共享 管理集中化 实现分布式处理 负载均衡 (书本P57) 计算机网络的性能指标 速率 带宽(频带宽度或传送线路速率) 吞吐量 时延 往返时间 利用 (书本P58) 计算

    2024年01月19日
    浏览(42)
  • 计算机网络之TCP/IP协议第二篇:OSI参考模型详解

    😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

    2024年02月09日
    浏览(41)
  • 系分笔记计算机网络OSI七层模型概念、协议和作用以及TCP/IP协议

      计算机网路是系统分析师考试的常考知识点,本篇主要记录了知识点:OSI七层模型概念、协议和作用以及TCP/IP协议中比较重要的考点。   计算机网络的OSI七层模型从底层往上,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。   计算机网络

    2024年01月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包