一个ip数据报报头内容包括长1650字节,报头长28字节,现要在MTU为665字节的物理网络中传输,如何分片画出各片结构示意图

详细阐述数据传输的工作过程
一、FTP客户端发送数据到FTP服务器端,详述其工作过程。两台机器的连接情况如下图所示:
详细解答如下1.1、假设初始设置如下所示:客户端FTP端口号为:32768服务器端FTP端口号为:21
1.2、不同网络段上的两台计算机通过TCP/IP协议通讯的过程如下所示:协议是水平的,服务是垂直的。
物理层,指的是电信号的传递方式,透明的传输比特流。&链路层,在两个相邻结点间的线路上无差错地传送以帧为单位的数据。网络层,负责为分组交换网上的不同主机提供通信,数据传送的单位是分组或包。传输层,负责主机中两个进程之间的通信,数据传输的单位是报文段。网络层负责点到点(point-to-point)的传输(这里的&点&指主机或路由器),而传输层负责端到端(end-to-end)的传输(这里的&端&指源主机和目的主机)。
1.3、数据包的封装过程
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。1.4、工作过程(1)在PC1客户端,将原始数据封装成帧,然后通过物理链路发送给Switch1的端口1。形成的帧为:
注:发送方怎样知道目的站是否和自己在同一个网络段?每个IP地址都有网络前缀,发送方只要将目的IP地址中的网络前缀提取出来,与自己的网络前缀比较,若匹配,则意味着数据报可以直接发送。也就是说比较二者的网络号是否相同。本题中,PC1和PC2在两个网络段。(2)Switch1收到数据并对数据帧进行校验后,查看目的MAC地址,得知数据是要发送给PC2,所以Switch1就对数据帧进行存储转发,查看自己的MAC地址列表后,从端口2将数据转发给路由器的S0端口。(3)Router收到数据后,先对数据进行校验,然后对IP数据报进行分析,重新对数据进行封装,查看路由表后,从S1端口将数据发送出去,此时得到新的数据帧如下:
注:目的IP和源IP地址不会被改的,改变的是MAC,路由器会把远端的源MAC地址改成下一跳的MAC地址,然后就发送出去(4)Switch2接收到Router给它发送的数据后,进行校验后直接存储转发,查看自己的MAC地址列表后,将数据帧从端口1发送给PC2服务器端。(5)PC2服务器端收到数据后,先进行校验,然后进行拆分,得到TCP报文段,由此可以知道目的端口号是21,然后把数据交付给相应的FTP应用进程进行处理。
二、在数据的传输中会出现以下一些问题,该如何解决?1、针对数据链路层,传输的数据会出现差错或者丢失的问题,也有两端传输速度不同的问题,如何解决这些问题?答:首先我们假设主机A向主机B发送数据(1)差错控制差错控制方法分两类,一类是自动请求重发ARQ,另一类是前向纠错FEC,也叫前向纠错码(Forward Error Correction简称FEC)。 &在ARQ方式中,当接收端发现差错时,就设法通知发送端重发,直到收到正确的码字为止,ARQ方式只使用检错码。在FEC方式中,接收端不但能发现差错,而且能确定二进制码元发生错误的位置,从而加以纠正,FEC方式必须使用纠错码。常用的纠错码有奇偶校验码、循环冗余码和海明码等例如:在数据帧中加上CRC,这样主机B就可以检验所接收的数据是否有差错,如果有差错,那么主机B可以向主机A发送一个否认帧NAK,以表示主机A应当重传出现差错的那个数据帧。(2)丢失的解决办法超时重传。如果主机A在发送完数据给主机B之后,若到了超时计时器所设置的重传时间而还没有收到主机B的任何确认帧ACK,则主机A就重传前面所发送的这一数据帧。(3)流量控制①假设主机A向主机B传输的数据是无差错的,那么,最简单的流量控制方法就是:发送方每发送一帧数据就暂时停下来,接收方收到数据帧之后就交付给主机,然后发一信息给发送方,表示接收的任务已经完成,这时,发送方再接着发送下一个数据帧。在这种情况下,接收方的接收缓存的大小只要能够装得下一个数据帧即可。②滑动窗口:分别在发送端和接收端设置发送窗口和接收窗口发送窗口用来对发送端进行流量控制,为发送窗口的大小WT就是代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。每收到对一个帧的确认,发送窗口就向前滑动一个位置。由此也可以知道,第一种流量控制发法中,WT=1。在接收端设置接收窗口时为了控制可以接收哪些数据而不可以接收哪些数据,在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。每收到一个序号正确的帧,接收窗口就向前滑动一个位置。
2、IP数据报有它的长度,而数据传输过程中,一些中间设备也有一个相关的设置MTU(最大传输单元),如果现在假设IP数据报的长度是5000字节,而MTU设置是1500字节,那么该怎么办?答:解决的办法是对IP数据报进行分片与重组。详细过程如下:2.1、 IP v4数据报格式一个IP v4数据报由报头和数据两部分组成,其中数据包括高层需要传输的数据,而报头是为了正确传输高层数据而增加的控制信息。报头的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在报头的固定部分的后面是一些可选字段,其长度是可变的。下图给出了IPv4数据报的格式义。
IP数据报的格式
2.2、不同数据链路层协议的MTU值&
一个路由器可能连接不同MTU的网络,如下图
2.3、IP数据报分片数据报分片时,每个分片前都要加上相应的IP报头,形成新的IP数据报,除包含一些分片控制域(如标志、偏移量)外,分片的报头和原IP数据报的报头基本一样。标识符、标志、偏移量3个字段在IP报头中的作用是:标识:占16bit,标识数据报。当数据报长度超出网络最大传输单元(MTU)时,必须要进行分割,并且需要为分割段(fragment)提供标识。所有属于同一数据报的分割段被赋予相同的标识值。标志:占3bit,指出该数据报是否可分段。目前只有前两个比特有意义。标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面&还有分片&的数据报。MF=0表这已是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don&t Fragment)。只有当DF=0时才允许分片。片偏移:占13bit,若有分段时,用以指出该分段在数据报中的相对位置,也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8字节为偏移单位,即每个分片的长度一定是8字节(64Bit)的整数倍。
2.4、IP数据报重组在最终的目的主机上将接收到的所有分片进行重新组装的过程就是IP数据报重组。这时要根据数据报的标识、标志、偏移量等字段将分段的各个IP数据报重新组装成完整的原始数据报。
2.5本题的详解过程数据报的数据部分为5000字节长(使用固定首部),需要分片长度不超过1500字节的数据报片。因固定首部长度为20字节,因此每个数据报片的长度不能超过1480字节。于是分为4个数据报片,其数据报片的数据部分长度分别为1480字节、1480字节、1480字节和560字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。分片结果如下图所示:
3、两个主机的应用进程,也会出现差错和丢失,两端的缓存也不同,如何控制流量?应用进程如何与端口号进行匹配?答:因为运输层提供的功能是应用进程之间的逻辑通信,所以面向连接的传输控制协议TCP就保证了全双工的可靠交付的服务。具体的有关差错控制和流量控制如下面的详细解释:
3.1、运输层为相互通信的应用进程提供了逻辑通信,如下图所示:
3.2、TCP发送报文段的示意图如下:
3.3、TCP 的数据编号与确认&TCP 协议是面向字节的。TCP 将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。 &
3.4、TCP 的流量控制与拥塞控制(1)滑动窗口(进行流量控制)TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。 &
上图(a)表示发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。发送端只要收到了对方的确认,发送窗口就可前移。发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。上图(b)表示发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。现在发送端还可发送 300 字节。&上图(c)表示发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。现在发送端最多还可发送 400 字节的数据。&利用可变窗口大小进行流量控制双方确定的窗口值是 400,如下图所示:
(2)拥塞控制为了更好地进行拥塞控制,因特网标准推荐使用一下三种技术,慢启动(slow_start)、加速递减(multiplicative decrease)和拥塞避免(congestion avoidance)。&拥塞避免&并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。&拥塞避免&是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。&
3.5、端口号的识别(1)端口的概念:端口就是运输层服务访问点 TSAP。端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。从这个意义上讲,端口是用来标志应用层的进程。&(2)端口在进程之间的通信中所起的作用
(3)端口号端口用一个 16 bit 端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。端口号分为两类:一类是熟知端口,其数值一般为 0~1023。当一种新的应用程序出现时,必须为它指派一个熟知端口。另一类则是一般端口,用来随时分配给请求通信的客户进程。&端口的作用可用下图来表示:
(4)插口TCP 使用&连接&(而不仅仅是&端口&)作为最基本的抽象,同时将 TCP 连接的端点称为插口(socket),或套接字、套接口。插口包括IP地址(32bit)和端口号(16bit),共48bit。插口和端口、IP 地址的关系是: &
原文标题:数据传输过程详解
文章出处:【微信号:WW_CGQJS,微信公众号:传感器技术】欢迎添加关注!文章转载请注明出处。
发布评论请先
UFS支持命令队列,就是主机一下可以发很多个命令下去,然后UFS设备支持并行和乱序执行,谁先完成谁先....
单片机(MCU)系统为了与SPI标准外围接口器件进行通信,必须使用SPI( Serial Perip....
大多数那些应用也需要一颗微小的电池来储存采集到的电能,并释出储存的能量做为电子组件的运作电源;依据设....
出现问题不要慌...
监控系统发现电商网站主页及其它页面间歇性的无法访问;
查看安全防护和网络流....
TSC2014支持I2C串行总线和数据传输协议在所有三种定义的模式:标准,快速和高速。它提供10 0....
一般情况下全为 0。当客户端、服务端协商采用 WebSocket 扩展时,这三个标志位可以非0,且值....
vertx生态中包含了业界常用各种组件的Reactive封装,包括jdbc、zookeeper、各种....
//买一个手机。2.bind
//SIM卡....
Telnet 远程登录协议 提供远程访问其他主机功能,允许用户登录,SNMP 简单网络管理协议 提供....
手头项目也需要加入DMA数据传输,以最大限度地提升CPU效率,于是测试了一下XMEGA的DMA模块,....
针对现有煤矿监测监控系统在功耗、通信及抗干扰方面存在的缺陷, 设计了新型的煤矿瓦斯监控分站。
本文介绍了一种基于MSP 430单片机的移动对象数据传输系统,它设计了一个面向对象的数据采集和接收模....
本文提 出了在水位监测方面,利用全球移动通信(GsM )作为远程信号的传输平台,以短消息方式 实现无....
在大多数客户应用中,高解码比特错误率(BER)。性能是必需的。由于卷积码和Turbo码被广泛使用在无....
在Microchip单片机上实现传输控制协议/网际协议(Transmission Control P....
针对当前各行业对无线数据传输的需求情况,设计了基于 M SP430F 12x[ 系列单片机与 C C....
由于网络协议非常复杂,内核里面用到了大量的面向对象的技巧,所以我们从创建连接开始,一步一步追述到最后....
所谓三次握手(Three-Way Handshake)即建立TCP连接,是指建立一个TCP连接时,需....
//服务器端---服务器是一个被动的角色
//买一个手机
....
2018对 TE Connectivity(以下简称“TE”)而言意义非凡,这是TE进入中国市场的第....
2018年连接器和线缆行业在新产品开发设计上继续高歌猛进.
机器人实时tcp速度可以通过系统模拟量输出。
针对二维可重构单元阵列(RCA)硬件任务的跨层数据传输问题,提出了一种前序遍历回溯旁节点添加算法。该....
本文档内容介绍移动产品在数据传输和存储方面的挑战,供参考
法规和标准尚待完善,民众对安全问题关注不够,企业对生产成本严格控制,安全意识相对淡薄,智能家居安全还....
在过去的2017年度,车载射频和高速数据传输的需求体现出呈几何数量的上升趋势。特别是在亚洲和中国,汽....
为了实现低占空比无线传感器网络中任意端到端之间的实时数据传输,提出了一种基于动态切换的实时路由协议(....
多路复用技术是把多个低速信道组合成一个高速信道的技术,它可以有效的提高数据链路的利用率,从而使得一条....
为提高802.15.4网络媒体接人控制(MAC)层数据传输可靠性,提出一种基于非饱和态的节点工作过程....
在数据密集型结构的数据中心平台中,数据的传输时间是影响整体任务完成时间的重要因素。优秀的虚拟机放置优....
地球辐射带(又称范艾仑辐射带)分布的大量高能带电粒子会经由剂量效应,单粒子作用,充放电事件等,造成卫....
本项目针对现有TCP协议在丢失率较高的网络环境下所表现出的糟糕性能,提出基于网络编码的改造,以TC....
低空多无人机自组织网络由于数据传输容易被地形或建筑物等遮挡,通信中断时有发生,同时传统拥塞处理体系已....
无线自组网按需平面距离矢量路由( AODV)算法在路由发现过程中会产生大量的广播消息,消耗了大量网络....
本研究旨在解决各种需要低成本无线数据传输的桥接设备.即某客户端设备通过RS232与本桥接设备相连。该....
TCP( Transmlssion Control Protocol)处于Internet协议栈体系....
ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 C....
机会网络基于方向的地理路由( DIG)算法存在数据分组传输时延偏大以及成功率偏低的问题,这是由于DI....
unhide 是一个小巧的网络取证工具,能够发现那些借助 rootkit、LKM 及其它技术隐藏的进....
I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。但是在嵌入式音频系....
一般的无协议通讯指的是不需遵循共同规则的通讯方式,主要是通过网络终端来传递信息,此类通讯往往不需要进....
无线传感器网络的固有通信特征会引发能耗不均衡现象,进而产生能量空洞问题;混合数据传输是新近提出的一种....
本文只是为了便于理解,做非常宽泛的描述,措辞不甚严谨,不当之处还望指正,感谢。 看本文章之前,建议对....
近年来,毫米波探测技术在雷达、辐射测量和射电天文学等领域得到广泛的应用与发展。很多时候需要将毫米波探....
一般的无协议通讯指的是不需遵循共同规则的通讯方式,主要是通过网络终端来传递信息,此类通讯往往不需要进....
采用GPRS的嵌入式系统可以实现无线数据传输领域的复杂应用,在远程抄表、工业控制、遥感遥测、智能交通....
随着手机、网络视频监控系统、智能家庭远程控制系统、智能电视机顶盒和互联网电视的发展,嵌入式手持设备正....
车载自组织网络(vehicular ad hoc networks,简称VANETs)具有网络间歇连....
SPI简介SPI,是英语Serial Peripheral interface的缩写,顾名思义就是....
记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,....
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-博客访问: 628374
博文数量: 55
博客积分: 400
博客等级: 一等列兵
技术积分: 2750
注册时间:
认证徽章:
一个人的差异在于业余时间
分类: LINUX 03:22:59
& & & 关于mtu和mss 网上的资料很多,在看《tcp/ip详解卷1》的时候里面重点说了下mtu的重要性. 但是却没找到mss,或许是因为mss是tcp层的一个概念吧,当然mss和mtu也有莫大的关系.这里为什么再写一下,是因为在实际工作中,前方测试遇到的一个奇怪问题. 解决完之后,做一个总结而已.
& & &那么什么奇怪的问题呢? 就是大部分网站能上去,有些网站上不去. 或许经常玩网络设备的人马上就会想到了mtu或者mss ,当时我们没有遇到过.并没有发现问题!通过网络接口抓包也没有发现什么... 因为在家里测试没有问题.所以只有环境的问题了,那么问题出在了什么地方呢? &
& & &1. 这里先说说mtu&
简单的看这个图,来说哈,(画的很拙劣 - - !)
mtu是一个链路层的一个概念,mtu的定义:除去帧头的数据包大小.RFC 894(以太网)
以太网帧报头为 目的地址 6+源地址 6+协议类型 2+CRC 4=18 bytes
&所以一般以太网mtu最大是1500 ,而对于ppp还要减去8字节的开销,就是1492字节.
我们就从lan到wan数据包的流程说起吧.
首先pc会发送一个数据帧,一般模式1500(mtu).虽然有mtu协商的功能,但是有时候并不那么智能.这里举例:
#ping &-f -l &2000 & x.x.x.x &&
这里ping一个大包 ,并且不允许分片.&
#来自 x.x.x.x&的回复: 需要拆分数据包但是设置 DF。
有时候网络中pc会发一个我们认为合理的包,但是不通.首先pc发送的数据帧,先达到switch芯片,那么switch一般会允许多大的帧通过呢? &
这里我们简单的参考6097的一个芯片. 默认是允许1522的帧(tag) 1518 (untag) ,如果开启了超大帧模式,为1632.
而对于lan侧,或许我们调整可以接收的范围就行了.当然很多时候pc不会发送一个那么大的帧. 如果是从vlan到pc呢?&
首先对于一个网络设备,从tcp/udp层封包,往下面传递,到vlan,加tag,封帧,驱动发送.所以vlan所允许的mtu很重要,或许发送给pc的帧,pc不能接受!&
如果vlan的mtu为1500 ,那么最大可以发送出去的帧为1522 (tag) ,1518(untag) .
所以在ip层,如果ip包大于mtu值,会分片小于mtu.并发送出去. 这里并不讲数据包的收发具体的函数流程.&
但是实际中我们需要上网,就需要wan---lan之间的数据通信. 一般我们的路由器会pppoe拨号,即wan口. 我们知道对于pppoe的帧,它会附加8字节的pppoe头信息,所以一般默认的pppoe所允许的mtu大小为2 .
这里附加说明一下对于icmp包的,ip头长度默认是28字节,而一般ip头位20字节,(默认没有附加字段)。
2. 在ip foward的时候会检查mss和mtu值.决定是否分片.而mss和tcp连接有关.
一般在tcp建立连接的时候,双方会协商出来一个最小的mss值,因为一般tcp通信中一些数据包不允许分片.所以需要在发送的时候,直接发送一个比较小的数据报文.&
不然就会被网络处理的时候丢弃掉.
我们来看看mss的定义:
MSS: Maxitu Segment Size 最大分段大小
它是tcp数据包每次能够传输的最大数据分段.为了达到最佳的传输效能,tcp
协议在建立连接的时候通常要协商双方的MSS值,这个值一般是减去ip头和tcp头
而有时候我们会遇到一些问题:
MSS---路径最大传输单元 (PMTU) 黑洞路由器 &当路由器必须将 IP 包分段但又因 DF 标记设置为 1 而不能分段时,路由器可采用以下任一种方式:
& (1) 发送符合 RFC 792 中最初定义的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,然后丢弃该包。 &原始消息格式中不包含有关转发失败的链路的 IP MTU 的信息。
&(2) 发送符合 RFC 1191 中重新定义的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,然后丢弃该包。此新消息格式包含一个 MTU 字段,可指出转发失败的链路的 IP MTU。 & RFC 1191 定义了路径 MTU (PMTU) 发现,它使得成对的 TCP 对等方能够动态地发现二者之间路径的 IP MTU,从而发现该路径的 TCP MSS。一旦收到符合 RFC 1191 定义的“Destination Unreachable-Fragmentation Needed and DF Set”消息,TCP 就会将该连接的 MSS 调整为指定 IP MTU 减去 TCP 和 IP 报头的大小。这样,在该 TCP 连接上发送的后续包就不会超过最大大小,无需分段即可在该路径上传输。&
(3)直接丢弃包。 & 直接丢弃需分段但 DF 标记设置为 1 的包的路由器称为 PMTU 黑洞路由器。
PMTU 黑洞路由器会给 TCP 连接带来问题
在 TCP 三次握手期间交换的 TCP 数据段不会太大,因而不会被 PMTU 黑洞路由器丢弃。但是,一旦开始在连接上传输数据—假定基于协商的 MSS 确定的 PMTU 比实际 PMTU 大—TCP 数据段的大于实际 PMTU 的 IP 包就会被直接丢弃
是的,有时候我们不能保证每个网络设备都有(2)中,mtu自动发现功能.&对于涉及PPPOE+NAT、IPsec、L2TP、GRE等组网,通常由于报文太大需要分片,这样会降低传输速率; 所以选择一个合适的MSS对传输数据来说比较重要. linux中一般可以通过netfilter iptables设置TCP MSS来解决
iptables -A FORWARD -p tcp- -tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
这条规则的目的就是改变TCP MSS以适应PMTU(Path MTU)
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN- j TCPMSS --set-mss 128
设置MSS为128
对于有兴趣分析代码的朋友,可以自己看内核代码关于发现与协商的流程,有空我也需要看看.
阅读(9854) | 评论(0) | 转发(4) |
给主人留下些什么吧!~~
请登录后评论。当前位置: >
假设有一个IP数据报,头部长度为20B,数据部分长度为2000B,现该分组从源主机到目的主机需要经过两个网络,这两个网络所允许的最大传输单元MTU为1500B和576B。请问该数据报如何进行分组?
所属学科:
试题类型:主观题
所属知识点:
试题分数:10.0 分
暂未组卷。
暂无学习笔记。
&&&&&&&&&&&&&&&希赛网 版权所有 & && 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
《宽带ip网络》综合练习题(含答案1)
下载积分:1000
内容提示:《宽带ip网络》综合练习题(含答案1)
文档格式:DOC|
浏览次数:126|
上传日期: 15:02:50|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
《宽带ip网络》综合练习题(含答案1)
关注微信公众号周热销排行
用户评论(0)
在此可输入您对该资料的评论~
添加成功至
资料评价:

我要回帖

更多关于 ip数据报最短多少字节 的文章

 

随机推荐