网络协议分析

  • 格式:docx
  • 大小:384.62 KB
  • 文档页数:8

⏹IP协议负责主机到主机之间的通信。

运输层与网络层最大的区别是运输层提供进程通信能力。

TCP/IP使用端口来标识通信的进程。

⏹UDP和TCP都使用端口与上层的应用进程进行通信。

⏹端口是运输层服务访问点(TSAP)。

⏹应用进程将其数据通过端口向下交付给运输层;运输层将其报文段中的数据通过端口交付给相应进程。

⏹端口用来标志应用层的进程。

⏹运输层不使用端口号而使用“进程ID”来标识一个进程是否可行?⏹不可行。

⏹进程ID在系统每次启动后都不一样,客户进程就无法找到提供服务的进程。

⏹并且客户进程并不关心提供服务的是哪一个进程。

⏹端口用一个16 bit 端口号进行标志。

TCP和UDP是两个独立的软件模块,因此各自的端口号也相互独立。

如都可以有255号端口。

⏹端口号只具有本地意义,不同计算机的相同端口号是没有联系的。

⏹一类是熟知端口,其值为0~1023,用来分配给服务器进程,便于让客户知道。

⏹另一类则是一般端口,用来随时分配给请求通信的客户进程。

⏹使用知名端口有什么优点与缺点?⏹◆知名端口一般是供服务器使用的,便于来访者使用服务。

如果不用知名端口需要将端口号通知所有用户。

⏹◆但从网络安全的角度来看,知名端口更容易遭受攻击。

⏹客户端程序的端口号有两种使用方式:⏹◆一种是由应用程序开发者指定。

⏹◆另一种是由操作系统随机分配一个未使用的端口号。

⏹当不再进行网络通信时,可关闭端口,释放资源,被关闭的端口可被再分配。

⏹为了使多主机多进程通信时不发生混乱,必须把端口号和主机的IP地址结合起来使用,称为套接字(Scoket)。

⏹套接字包括IP地址(32位)和端口号(16位),共48位。

进行通信的一对套接字在整个Internet中是唯一的。

⏹TCP与UDP都使用套接字通信。

⏹⏹下层向上层提供的服务有两种形式:面向连接的服务与无连接的服务。

⏹面向连接的服务在进行数据交换前,先建立连接,传输结束后释放连接。

1)建立连接阶段:在有关协议数据单元中,必须给出源用户与目的用户的完整地址。

同时可协商服务质量等选项。

数据交换阶段:在这个阶段,每个报文中不必包含用户完整的地址,而是使用一个连接标识符来代替。

报文的发送和接收都是按顺序的,发送方先发送的报文,在接收方先收到。

3)释放连接阶段:通过相应的协议数据单元完成释放操作。

⏹两个实体通信前不必先建立连接。

无连接服务灵活方便,但不能防止报文的丢失、重复和乱序。

⏹每个报文必须包含完整的源地址和目的地址,因此开销较大。

⏹UDP提供无连接的传输服务,对等的UDP实体在传输时不建立端到端的连接,只是简单地发送或接收数据。

⏹UDP不保证可靠的数据传输,不具有确认、重传等机制。

使用UDP的程序可根据自己的需求设计相应的可靠性机制,如TFTP。

⏹虽然UDP只提供不可靠的交付,但在某些方面有特殊的优点:⏹发送数据之前不需要建立连接。

⏹UDP主机不需要维持复杂的连接状态表。

⏹UDP用户数据报只有8个字节的首部开销。

⏹网络出现的拥塞不会使源主机的发送速率降低。

这对某些实时应用是很重要的。

⏹UDP保留应用程序定义的报文边界,不把两个应用程序报文组合在一起,也不把单个报文划分成几部分。

⏹块数据将作为独立的单元到达对方的应用程序。

⏹应用程序必须关心IP数据报的长度。

⏹当应用程序把一块数据交给UDP发送时,这UDP用户数据报有两个字段:首部字段和数据字段。

首部字段有8个字节,由4个字段组成,每个字段2字节。

⏹在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。

伪首部仅仅是为了计算检验和。

⏹长度:是首部与数据部分的总长度。

⏹校验和:校验范围包括首部、数据部分、伪首部。

如果该字段为0就表明不进行校验。

因此UDP是否进行校验是可选的。

⏹UDP数据报的最大长度为:⏹IP数据报的最大长度是65535字节。

⏹65535 – 20 = 65515字节。

⏹UDP数据报中用户数据的最大长度是:⏹65515 – 8 = 65507字节。

⏹以上只是理论长度,具体长度与具体操作系统的协议模块有关,如SunOS下使用回送接口的最大IP数据报长度为32767字节,所以UDP的最大长度为32747。

⏹UDP用户数据报封装在IP数据报中,IP数据报的“协议类型”字段的值是17,表示数据部分是从UDP协议来的。

⏹UDP校验和校验的范围包括三部分:伪首部、UDP首部以及UDP数据部分。

⏹伪首部是IP首部的一部分,其中有些字段填0⏹若校验和不包括伪首部,即使UDP数据报不出错,也可能因为IP首部在传输中出错导致无法正确交付。

⏹伪首部中的高层协议类型字段是为了确保这个数据报是属于UDP而不是属于TCP。

⏹UDP的高层协议类型是17,若这个值在传输过程中出错,接收端就能检测出并丢弃这个数据包,从而不会交付给错误的协议。

⏹UDP校验和的计算方法与IP首部校验和的计算方法相同。

⏹UDP和IP的不可靠程度是否相同?⏹◇不同。

⏹◇IP只进行首部校验。

⏹◇UDP可以进行校验,也可以不进行校验。

如果校验则对整个UDP报文进行校验。

⏹为什么UDP校验和独立于IP校验和?⏹◇UDP是运输层的,UDP校验和的计算是在通信端点的主机上进行的。

⏹◇IP是网络层的,IP校验和的计算是在通信端点及中间路由器上进行的。

⏹你是否反对这样的协议:对包括UDP报文在内的整个IP数据报使用同一个校验和?⏹◇如果使用同一校验和,会导致在网络层的计算量过大,降低IP数据报的传输效率。

⏹一个UDP数据报首部的十六进制表示为:⏹06 32 00 45 00 1C E2 17⏹试求源端口、目的端口、用户数据报的总长度、数据部分长度。

⏹这个数据报是从客户发送给服务器的还是服务器发送给客户的?该服务器程序是什么?⏹◇源端口:0x0632 = 1586⏹◇目的端口:0x0045 = 69⏹◇总长度:0x001C = 28,数据部分长度20⏹◇从客户发给服务器的,服务器是TFTP。

⏹UDP数据报数据部分的长度为8192字节,通过以太网传送,该报文将被分成多少个IP数据报?每片的片偏移是多少?⏹需要封装在IP数据报中的数据长度为:⏹8192 + 8 = 8200 字节⏹以太网的MTU为1500,因此每片大小为:⏹1500 – 20 = 1480 字节(1480 ÷8 = 185)⏹8200 / 1480 > 5,所以应分成6片。

⏹片偏移依次是:0, 185, 370, 555, 740, 925⏹一个应用程序用UDP发送数据报。

一份数据报被分成了4个数据报片发送出去,结果第1片和第2片丢失了,只有第3片和第4片到达目的端。

⏹应用程序过了一段时间后超时重发该用户数据报,还分成与上次相同的4个数据报片。

⏹当重发的第1片和第2片到达目的端时,第一次收到的第3片和第4片还在目的端的缓存中,接收端能否将这4片组装成为一份数据报?为什么?⏹上面所说的分片是网络层分片还是应用层分片?⏹经分析,是网络层。

因“标识”字段不同,故不能重组⏹使用UDP的用户进程能否跳过UDP而直接交给IP层?UDP能否提供IP没有提供的功能?⏹IP数据报包含IP地址,该地址指定了目的主机。

但无法确定交给哪一个进程。

⏹UDP数据报包含“目的端口”,利用这一信息,数据包能传给正确的进程。

⏹如何判断远程主机上的某个UDP端口是否开放?⏹向远程主机的该端口发一UDP报文,通常情况下,如果收到“目的端口不可达”的ICMP报文就表示该端口关闭。

⏹对校验和的使用,UDP给出了两种方案:⏹◆使用校验和⏹◆不使用校验和⏹使用校验和时,即使只有一位发生了变化,整个数据包都会被丢弃。

在某些应用环境下,这种限制显得过于严格,比如音频、视频传播可以接收错误的数据,而不是将其丢弃。

⏹但是,如果禁用UDP的校验和功能,则将失去对UDP数据报的校验功能。

⏹为此,2004年7月,IETF推出了轻量级用户数据报协议UDP-Lite (Lightweight User DatagramProtocol)。

⏹它更加适应于网络的差错率比较大,但是应用对轻微差错不敏感的情况,例如实时视频的播放等。

⏹⏹拓扑1下同一组中的三台机器A,B,C。

⏹A编辑一个UDP数据报,目的MAC为C,目的IP为B。

然后发送该数据报。

⏹1、B、C的分析器捕捉MAC帧时能捕捉到吗?⏹能。

⏹2、B、C的分析器捕捉UDP数据报时能捕捉到吗?⏹能。

⏹3、B、C的UDP工具能接收到吗?⏹不能。

在实际应用中,B的MAC层发现目的MAC不是自己,就丢弃;C的IP层发现目的IP不是自己,就丢弃。

⏹4、如果目的MAC为B,目的IP为C,再回答上述问题。

⏹因为A、B处于同一共享模块,所以仅B的分析器能捕捉到数据包。

⏹在同一网段中,主机A将IP设为172.16.0.2,主机B将IP设为172.16.1.2,掩码均为255.255.255.0。

A使用UDP工具向255.255.255.255发送数据时,B能收到吗?⏹能。

⏹A发送的数据报在MAC层的目的地址为广播地址FFFFFF-FFFFFF,B收到后上交到网络层,网络层发现目的IP是255.255.255.255,就收下向上层交付。

⏹⏹IGMP⏹单播:单个源站与单个目的站之间的通信叫作单播。

IP数据报中的源IP地址和目的IP地址分别代表了源站和目的站。

⏹多播:一个源站和多个目的站之间的通信叫作多播。

IP数据报中的源地址是单播地址,目的地址是组地址(D类地址)。

⏹路由器收到多播数据包后,可从它的多个接口转发出去。

广播:源站和目的站是一对多的,源站只有一个,但所有其它主机都是目的站。

Internet不支持广播,因为这会产生非常大的通信量⏹多播可以分为两种:1.在物理网络上的多播,如以太网多播。

2.在逻辑网络上的多播,如IP多播。

3. 2.1 硬件多播4.在以太网中,硬件地址的一半用于硬件多播,用高位地址中的最低位(I/G比特)来区别单播地址(置0)和多播地址(置1)。

5.硬件多播只能在同一个物理网段上进行,路由器隔离了硬件多播和广播。

6. 2.2 IP多播7.IP多播(IP Multicasting)是对硬件多播的推广。

IP多播同样允许一个源站与一组目的站通信,但这组目的站可以位于互联网中的任意物理网络上。

8.这一组目的站叫作多播组(Multicast Group)。

⏹ 2.3 多播的优点:1.多播比多个单播更能节省网络带宽。

2.多播比多个单播具有更小的分组时延。

例如:一个组中有1000个成员,如果用单播,第一个分组和最后一个分组的时延可能是无法接受的。

3. 2.4 IP多播地址4.IP多播地址分为两类:永久地址和临时地址。

5.D类IP地址用于多播。

D类地址不再分层。

6.永久地址如:224.0.0.1 永久分配给一个物理网段上包含所有主机和路由器的组;224.0.0.2 永久分配给一个物理网段上包含所有路由器的组。