过了好久才解决这个简单的问题,罪过罪过- 答案:如果IP数据报不分片,分片标志DF(Don't Fragment)会被设置为1.分片标志MF(More Fragment)设置为0. 下面是详细解释: 1:首先来一张IP数据报的报文头部结构. 2:需要注意第二行数据,有这么三个字段 序列号:开始发送数据时由发送方生成.标识发送方发送的每一个数据报,如果发送的数据报未发生分片,则此值依次加1,如果发生了分片,分片后的各个数据报使用同一个序列号. 分片标志:三个bit位.第一位保留,未使用.第二位是D…
地址解析协议ARP ​ 在实际的应用中,我们会经常遇见这样的一个问题:我们已知一个机器(主机或者路由器的),我们怎么获取相应的硬件地址?,地址解析协议就是用来解决这个问题的. ARP协议的作用: 由上图可知: 首先ARP协议划归为网络层,但是ARP协议是为了从网络层使用的IP地址,解析出在数据链路层的MAC地址,因此有的书也会把ARP协议划分到数据链路层. ARP协议的要点 网络层使用的是IP地址,但在实际的链路层传输数据帧我们使用的是MAC地址.在一个网络上可能会有新的主机加入或者旧的主机撤去…
1.UDP首部 2.UDP分片 在第二章,讲链路层是,提到过以太网.刨除数据帧帧头.最多传输的长度为1500.也就是说,假设一个ip数据报,长度大于1500,则须要分片. 分片方法: 在ip头中3位标志,13位片偏移,这俩东西就是用来分片的. 3位标志中:一个很多其他的片标识.除了最后一个分片,其他分片都要有这个标识,另一个不分片标识,假设置上.则即便IP数据报再长.也不分片.可是会将该IP数据报丢弃,并发送一个ICMP差错报文给发送端. 13位片偏移:用于表示相对于起始的偏移量,就是个offs…
在C#中实现Python的分片技术 前言 之前在学习Python的时候发现Python中的分片技术超好玩的,本人也是正则表达式热爱狂,平时用C#比较多,所以决定把Python中的分片技术在C#中实现,添加到个人类库中,以便日后在写C#代码的时候能舔一舔Python的味道. 效果展示   Python版:  C#版: 切割技术讲解 这里先简要讲解一下Python中的分片技术,其他Python前辈也对此技术有丰富多彩的讲解文章,这里只是简要说明一下,好让读者们能知道下怎么回事,如果想更深入了解Pyt…
首先发送方抽取目的站的网络前缀,来判断是否目的站是否位于同一网络上,如果在二者有相同的网络前缀,则,直接使用直接交付的方式, 否则,使用由路由器互连的间接交付,这要借助IP路由表,采用表驱动法,路由表中只指明了通往目的站的下一跳转发:实际上,路由表中 的一个表项指明了数据报被转发的下一个路由器时所用的网络接口,以及已使用的时间计时之类的管理信息. IP转发算法: 从数据报中抽取目的IP地址D: if 表中含有D的一个特定路由 把数据报发送到表中指明的下一跳,然后退出: 计算地址D的网络前缀N:…
发送一个ip数据报到接受这个ip数据报经历的过程 好比寄一个快递的过程 这个包裹一共有三层, 这个包裹的最里面是数据,数据 第二层写着目的ip地址和源ip地址,即收件人和发件人的姓名 第三层也就是最外面那层写的是源MAC和目的MAC地址,即本快递服务站的后门门牌号,和下一个快递服务站的前门门牌号(这里假设快递服务站接收快递只在前门接收,发送快递只在后门,且前门和后门的门牌号不一样) 所以本服务站从前门接收到上一个站传来的包裹后,我必须把包裹的最外层拆掉,查看第二层的内容,即查看收件人和发件人分别…
小结: 1. 网络层两种服务 虚电路服务 virtual circuit  电信网 网络层负责可靠交付 数据报服务  网络层不负责可靠交付 提供灵活的.无连接的.尽最大努力交付的数据报服务 不提供服务质量的承诺 2. 数据报服务 分组到达终点的时间顺序不一定按发送顺序 3. 网络层协议 internet protocol 网际协议 ip adress resolution protocol 地址解析协议 ARP internet control message protocol 网际控制报文协议…
IP数据报(IP Datagram) 格式 解析 (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.目前广泛使用的IP协议版本号为4(即IPv4). (2)首部长度 占4位,可表示的最大十进制数值是15.请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节.当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在4字节的整数倍开始,这样在实现I…
1. IP数据报首部的固定部分中的各字段 ①版本:占4位,指IP协议的版本.通信双方使用的 IP协议版本必须一致.日前广泛使用的 IP协议版本号为 4 (即 IPv4). IPv6 目前还处于起步阶段. ②首部长度:占 4 位,可表示的最大十进制数值是 15.请注意, 这个字段所表示数的单位是32位字 ( 1 个32位字长是4 字节), 因此,当 IP 的首部长度为 1111 时 (即十进制的 15), 首部长度就达到 60字节.当 IP 分组的首部长度不是4字节的整数倍时, 必须利用最后的填充…
ip数据报分首部和数据两部分组成: 首部分为固定部分和可变部分 版本--占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 首部长度--占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节. 区分服务--占 8 位,用来获得更好的服务 在旧标准中叫做服务类型,但实际上一直未被使用过. 1998 年这个字段改名为区分服务. 只有在使用区分服务(DiffServ)时,这个字段才起作用. 在一般的情况下都不…