数据报

计算机网络之运输层

十年热恋 提交于 2020-01-26 20:31:16
尽管IP分片看起来是是透明的,但有一点让人不想使用它:即使只丢失一片数据也要重传整个数据报。为什么会发生这种情况呢? 因为IP层本身没有超时重传的机制——由更高层来负责超时和重传(TCP有超时和重传机制,但UDP没有。一些UDP应用程序本身也执行超时和重传)。当来自TCP报文段的某一片丢失后,TCP在超时后重发整个TCP报文段,该报文段对应于一份IP 数据报。没有办法只重传数据报中的一个数据片。事实上,如果对数据分片的是中间路由器,而不是起始端系统,那么超始端系统就不无知道数据报是如何被分片的。就这个原因,经常要避免分片。 注:把一份IP数据报分片以后,只有到达目的地才进行重新组装(这里的重新组装与其他的网络协议不同,它们要求在下一站就进行重新组装,而不是在最终的目的地)。重新组装由目的端的IP层来完成,其目的是使分片和重新组装过程对运输层(TCP和UDP)是透明的,除了某些可能的越级操作处。已经分片过的数据报有可能会再次进行分片(可能不止一次)。IP首部中包含的数据为分片和重新组装提供了足够的信息。 1,MTU(Maximum Transmission Unit,MTU),最大传输单元 (1)以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节。链路层的这个特性称作MTU。不同类型的网络大多数都有一个上限。如果IP层有一个数据要传

计算机网络---数据链路层

假装没事ソ 提交于 2020-01-26 04:49:03
数据链路层 一、链路和数据链路  1、 链路: 一个结点与相邻结点之间的一段物理线路(计算机网络由结点和链路组成)  2、 数据链路: 上述物理链路 + 必要的通信协议 二、 帧: 帧是数据链路层的协议数据单元。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层(网络层协议数据单元是IP数据报,或称分组,包),过程大致如下:  1、结点A的数据链路层把网络层交下来的ip数据报添加 首部和尾部 封装成帧  2、结点A把封装好的帧发送给结点B的数据链路层  3、若结点B收到无差错的帧,则取出其中的数据报交给上面的网络层,否则丢弃这个帧  (说明:在步骤2中,结点A先把封装好的帧传给本结点的物理层,物理层通过传输媒体传输比特流,结点B的物理层接收,并转换成相应的帧给数据链路层) 三、数据链路层的三个基本问题  1、 封装成帧: 在一段数据(IP数据报)的前后分别添加首部和尾部,构成一个帧。IP数据报是帧的数据部分,首部和尾部是控制部分。   ~ 每个数据链路层协议都规定了所能传送的帧的 数据部分长度上限---最大传送单元MTU ,IP数据报的大小必须小于该MTU值    ~为了接收方准确的接收帧的起止,需要给帧的首部和尾部使用特殊的帧定界符(SOH和EOT)  2、 透明传输: 透明,表示 某一个实际存在的事物看起来却好像不存在一样

计算机网络网络层IP协议

半城伤御伤魂 提交于 2020-01-23 23:06:02
本文是在学习谢希仁编著的《计算机网络》一书的网络层相关知识后,对某些个人认为是重点内容的部分做出的总结。 本文的将涉及:IP地址划分,CIDR,ARP,IPv4数据报格式,IP层转发分组的过程,ICMP,路由选择协议,IPv6,MPLS. 1. IP地址划分 首先要清楚,IP地址是给互联网上每一台主机或路由器的每一个接口分配一个在全世界范围内是唯一的32位的标识符,而且是一个软件地址(有别于MAC地址)。 IP地址由互联网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配。 IP地址呈现两级结构,第一级为网络号,由IP地址管理机构分配,第二级为主机号,由运行商自行分配。IP地址的结构可以记为: IP地址 ::= { <网络号>, <主机号> } 传统的IP地址被划分为5类: A, B ,C ,D ,E类。前三类为单播地址,D类为多播地址,E类保留为以后用。每类IP地址的格式详见《计算机网络》(谢希仁著,第七版) P119,这里不多阐述,事实上,由于近年来已经广泛地使用了无分类的IP地址进行路由选择,A, B, C类地址的区分已经成为了历史。这里仅介绍一下IPv4中某些特殊的地址: 网络号 : 主机号 源地址使用 : 目的地址使用 : 意义 0 : 0 可 : 不可 :

IP 数据报

丶灬走出姿态 提交于 2020-01-23 16:18:28
IP 数据报 1.IP 数据报的格式 一个 IP 数据报由首部和数据两部分组成。(数据报也可以说是数据包) 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。 在首部的固定部分的后面是一些可选字段,其长度是可变的。 2.IP 数据报首部的固定部分中的各字段 从图中可看到,数据报首部可分为固定部分和可变部分,固定部分为了五行,每行32位即4个字节。 版本 ——占 4 位(第一行四个字节中0~3位),指 IP 协议的版本该 IP 协议的版本号为 4 (即 IPv4); 首部长度 ——占 4 位(第一行四个字节中4~7位),表示首部总的长度(固定+可变部分);可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节。 区分服务 ——占 8 位(第一行四个字节中8~15位),区分服务。即该段设置了数据报的优先程度,若要想实现数据报优先传输还需要在路由器端配置相应的区分服务设置。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段 。 总长度 ——占 16 位(第一行四个字节中16~31位),指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。 标识 (identification)——占 16 位(第二行四个字节中1

TCP/IP详解,卷1:协议--第8章 Traceroute程序

可紊 提交于 2020-01-22 22:09:51
引言 由Van Jacobson编写的Tr a c e r o u t e程序是一个能更深入探索T C P / I P协议的方便可用的工具。 尽管不能保证从源端发往目的端的两份连续的 I P数据报具有相同的路由,但是大多数情况下 是这样的。Tr a c e r o u t e程序可以让我们看到I P数据报从一台主机传到另一台主机所经过的路由。 Tr a c e r o u t e程序还可以让我们使用I P源路由选项。 使用手册上说:“程序由Steve Deering提议,由Van Jacobson实现,并由许多其他人 根据C. Philip Wood, Tim Seaver 及Ken Adelman等人提出的令人信服的建议或补充意见 进行调试。 Traceroute程序的操作 在7 . 3节中,我们描述了 I P记录路由选项(R R)。为什么不使用这个选项而另外开发一个 新的应用程序?有三个方面的原因。首先,原先并不是所有的路由器都支持记录路由选项, 因此该选项在某些路径上不能使用( Tr a c e r o u t e程序不需要中间路由器具备任何特殊的或可选 的功能)。 其次,记录路由一般是单向的选项。发送端设置了该选项,那么接收端不得不从收到的 I P 首部中提取出所有的信息,然后全部返回给发送端。在 7 . 3节中,我们看到大多数P i n g服务器的 实现(内核中的I C

IPv4数据报格式及其语义

断了今生、忘了曾经 提交于 2020-01-22 16:16:09
一、IP数据报的格式如下图所示 版本 首部长度 服务类型 数据报长度 16比特标识 标志 13比特片偏移 寿命 上层协议 首部检验和 32比特源IP地址 32比特目的IP地址 选项(如果有的话) 数据 IPv4数据报格式 二、各部分语义 1) 版本 (号):4bit,规定了数据包的IP协议版本;通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分 2) 首部长度: 因为IPV4数据报可包含一些可变数量的选项,所以需要用这4bit来确定首部的长度,以确定IP数据报的数据部分实际从哪里开始。大多数IP数据报不包含选项,所以一般IP数据报具有20字节的首部 3) 服务类型: 8bit,服务类型包含在首部中以使不同类型的IP数据报能相互区分开来,例如,将实时数据报(如用于IP电话应用)与非实时流量(如FTP)区分开来也许是有用,提供特定等级的服务是一个由路由器管理员决定的策略问题 4) 数据报长度 :这是IP数据报的总长度(首部加上数据),以字节计,因为该字段长为16bit,所以IP数据报的理论最大长度为65535字节,然而数据报很少有超过1500字节的 (因为IP数据还要靠数据链路层运输的,而链路层帧能承载的最大数据量为叫做最大运输单元(Maximum Transmission Unit,MTU)) 5) 标识、标志、片偏移:    要理解这三个内容,要先理解一些其他知识   (1

计算机网络-网络层(1)IPv4和IPv6

限于喜欢 提交于 2020-01-22 16:14:28
IPv4数据报格式: 版本号 这4比特规定了数据报的IP 协议版本。通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分。 首部长度 以4字节为单位,没有选项的首部长度为5*4=20字节 服务类型 8bit服务类型(TOS)字段,使不同类型的IP数据报能相互区别开来。 例如一些特别要求低时延、高吞吐量或可靠性的数据报,应用于IP电话应用的实时数据报和应用于FTP应用的非实时流量 一般不用,为0 数据报长度(字节) IP分组可以封装的最大字节数:65535-20=65515B 16比特标识 一个链路层帧能承载的最大数据量叫做最大传送单元MTU 路由器从某条链路收到一个IP数据报,通过检查转发表确定出链路,并且该出链路的MTU比该IP数据报的长度要小,则将IP数据报中的数据分片成两个或更多个较小的片(fragment) IP分片到达目的主机后进行重组,缺失分片后会等待一段时间,然后全部丢弃 IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识,配合源IP地址、目的IP地址、协议等进行分组唯一标识 标志位 1位保留 DF =1禁止分片;DF =0允许分片 MF =1非最后一片;MF =0最后一片(或未分片) 片偏移 指定该片应放在初始IP数据报的相对偏移量(以8字节为单位) 生存时间(TTL) IP分组在网络中可以通过的路由器数(或跳步数) 路由器转发一次分组

IPv4与IPv6数据报格式

十年热恋 提交于 2020-01-22 16:13:17
IPv4: IPv4数据报中的字段: 版本号: 规定了数据报的IP协议版本,通过查看版本号,路由器能够确定如何解释IP数据报 的剩余部分,因为不同IP版本使用不同的数据报格式。 首部长度: IPv4数据报可能包含一些可变数量的选项,这些选项包括在数据报的首部,所以 需要用这 4比特来确定IP数据报中数据部分实际从哪里开始。由于大多数IPv4数据报不包含 选项,所以一般的IPv4数据报具有20字节的首部。 服务类型TOS: 用于区别不同类型的IPv4数据报,它们可能要求低时延、高吞吐量或可靠性。 总长度:这是整个IP数据报的长度,即首部加数据,使用字节计算。该字段长为16比特,因 此,IPv4数据报的理论最大长度为65535字节。 标识、标志位、片偏移: 它们与IP分片有关,标识号用于确定哪些数据报其实是同一个较大 数据报的片,最后一个片的标志位被设为0, 而其他片的标志位被设为1, 偏移字用于指定 该片应该存放在数据报的哪个位置。 TTL: 用于确保数据报不会长时间在网络中循环,每当数据报由一台路由器处理时,该字段 的值减一,当TTL为0时,数据报将会被丢弃。 协议: 该字段标识数据报的数据部分将会交给哪个特定的运输层协议 首部校验和: 用于帮助路由器检测收到的IP数据报中的比特错误,路由器一般会丢弃检测出 错误的数据报, 源和目的IP地址: 顾名思义

UNIX网络编程--IPV4 IPV6 ICMPV4 ICMPV6

☆樱花仙子☆ 提交于 2020-01-22 16:11:55
一、IPV4首部 IP层提东无连接不可靠的数据报递送服务。它会尽力把IP数据报递送到指定的目的地,然而并不保证他们一定到达,也不保证他们的到达顺序与发送顺序一致,还不保证每个IP数据报只到达一次。任何期望的可靠性(既五差错按顺序不重复地递送用户数据)必须由上层提供支持。对于TCP应用程序而言,这有TCP本身完成,对于UDP应用程序而言,这得由应用程序完成。IP层最重要的功能之一是路由。每个IP数据报包含一个源地址和一个目的地址。 1)4位版本字段值为4. 2)首部长度字段是包括任何选项在内的整个IP首部的32位字长度。这个4位字段的最大取值为15,因而IP首部的最大长度为60个字节。扣除首部拱顶部分所占据的20字节外,它最多允许40个字节的选项。 3)历史性的8位服务类型字段被替换为两个字段:6位区分服务码点和2位显示拥塞通知 4)16位总长度字段是包括IPV4首部在内的整个IP数据报的字节长度。数据报中的数据量就是笨字段减掉4乘以首部长度(首部长度都是32位或4字节的整数倍)本字段是必需的,因为有些数据链路要求把帧垫补成某个最小长度(例如以太网),因而有效IP数据报的大小有可能小于数据链路的最小长度。 5)16位标识字段由IP模块为每个IP数据报设置成不同的值,用于分片和重组。该字段必须就源IPV4地址

NAT协议详解

旧街凉风 提交于 2020-01-22 15:47:59
NAT(Network Address Translation,网络地址转换)是将IP数据报头中的IP地址转换为另一个IP地址的过程。 在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。 私网IP地址是指内部网络或主机的IP地址,公网IP地址是指在因特网上全球唯一的IP地址。 RFC 1918为私有网络预留出了三个IP地址块,如下: A类:10.0.0.0~10.255.255.255 B类:172.16.0.0~172.31.255.255 C类:192.168.0.0~192.168.255.255 (上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP或注册中心申请而在公司或企业内部自由使用。) NAT最初的设计目的是用于实现私有网络访问公共网络的功能,后扩展到实现任意两个网络间进行访问时的地址转换应用,本文中将这两个网络分别称为内部网络(内网)和外部网络(外网),通常私网为内部网络,公网为外部网络。 内网用户主机PC(192.168.1.3)向外网服务器(1.1.1.2)发送的IP报文通过NAT设备。 l NAT设备查看报头内容,发现该报文是发往外网的,将其源IP地址字段的私网地址192.168.1.3转换成一个可在Internet上选路的公网地址20.1.1