1、第二部分TCP/IP及常用协议分析1 数据链路层协议以太网技术 Xerox,Intel,DEC1.1 802.3布线介质标准10Base5 粗同轴粗同轴10Base2 细同轴细同轴10BaseT 双绞线双绞线 10BaseF MMF100BaseT 双绞线双绞线100BaseF MMF/SMF1000BaseX 屏蔽短双绞线屏蔽短双绞线/MMF/SMF1000BaseT 双绞线双绞线10 Base 51.2 以太网帧格式PA:前同步码:前同步码-10101010序列,用于使接收方与发送方同步序列,用于使接收方与发送方同步SFD:帧首定界:帧首定界-10101011DA:目的地址:目的地址-MA
2、C 地址地址 SA:源地址:源地址-MAC地址地址LEN:数据长度(数据部分的字节数)(:数据长度(数据部分的字节数)(0-1500B)Type:类型:高层协议标识:类型:高层协议标识LLC PDU+pad:46-1500字节;字节;pad 填充字段,保证帧长不少于填充字段,保证帧长不少于64字节字节FCS:帧校验序列(:帧校验序列(CRC-32)FCSPA SALENSFDDALLC PDUPadFCSSATypePADADataPad2 ARP协议 解决以太网地址转换的问题;物理地址48位,IP地址32位;ARP允许主机在只知道同一网络上一个目的站IP地址的情况下,找到目的主机的物理地址。
3、AXBY广播针对B的ARP请求IP地址不符,丢弃IP地址相符,应答IP地址不符,丢弃得到B的物理地址 ARP属于网络层网络层协议;ARP报文封装在数据链路层数据链路层的帧中,并进行标识。(以太网:0806H)报 文帧 数 据 区帧首部硬件类型 协议类型硬件地址长度发送方硬件地址(b0-b3)发送硬件地址(b4-b5)发送IP地址(b2-b3)目的硬件地址(b2-b5)目的IP地址(b0-b3)081631协议地址长度操作发送IP地址(b0-b1)目的硬件地址(b0-b1)3.1 IP数据包格式版本头标长服务类型总 长标 识标志片偏移生存时间协 议头标校验和源 IP 地 址目 的 IP 地 址数
4、 据填充域.048161924313 IP协议3.2 IP数据报格式说明:l版本与协议类型版本与协议类型 版本(版本(VERS)-当前当前IP协议版本号是协议版本号是IPv4;协议(协议(Protocol)-创建该数据报数据区数据的高层协创建该数据报数据区数据的高层协议类型,如议类型,如TCP协议;实际表示数据区的数据格式;协议;实际表示数据区的数据格式;版本版本-IP数据报报头的数据格式,属网络层的范畴;数据报报头的数据格式,属网络层的范畴;协议协议-IP数据报数据区的数据格式,属传输层的范畴;数据报数据区的数据格式,属传输层的范畴;长度域:l长度:头标长(长度:头标长(HLEN)、总长、总
5、长(Total Length)l头标长:头标长:指出指出32bit长度单元的报头长度;长度单元的报头长度;IP数据报中除数据报中除IP选项与填充域外,其它域为定长;选项与填充域外,其它域为定长;不含不含IP选项与填充域的普通选项与填充域的普通IP数据报报头长为数据报报头长为“5”;含含IP选项与填充域的选项与填充域的IP数据报报头长应该是数据报报头长应该是32bit的整数倍,假的整数倍,假如不是则用填充位(如不是则用填充位(padding)添添0凑齐;凑齐;l总长度:总长度:IP数据报的长度,以字节为单位,包括报头;数据报的长度,以字节为单位,包括报头;总长度域为总长度域为16bit;IP数据
6、报的最大长度为数据报的最大长度为216-1,即,即65535byte;寿命(TTL)沿路径上,每个路由器在处理首部时,需要从寿命字段中减1。其它数据报首部字段 首部校验和字段(2B)用于保证首部数据的完整性;源IP地址和目的IP地址;选项字段,可变长;填充字段,为保证数据报是32b的整数倍添0。3.3 数据报封装如果IP数据报长度小于传输路径中所有物理网的最大帧长度,则可以直接将数据报封装在一个数据帧中。数据报头 数据报数据区帧头帧数据区3.4 数据报的大小、网络MTU及分片 不同网络规定了不同的MTU;1500 4470 TCP/IP可以把长数据报进行分片;分片通常发生在路由器上。主机A主机
7、B网络2MTU=600网络1MTU=1500网络3MTU=1500R1R2主机A与主机B进行通信,数据报将在R1进行分片。每片的大小必须是8的倍数,分片自动进行。数据1:600B 数据2:600B 数据3:200B数据报首部分片首部1数据1分片首部2数据2分片首部3数据3数据报片1(偏移量0)数据报片2(偏移量600)数据报片3(偏移量1200)数据报的重组 TCP/IP规定,数据报被分片后,到达目的主机后进行重组。此方法有缺点,但可行。分片控制 标识、标志和片偏移量三个字段用于控制数据报的分片和重组。标识字段(2B)含有标识该数据报的唯一整数;标志字段(3b)中分别为0,是否允许分段(0允许
8、,1不允许)、是否是最后分段(0是,1不是);片偏移量字段表示数据部分的偏移量。4 ICMP协议 IP协议本身没有任何可以帮助发送方测试连接性或了解故障的机制。ICMP是IP的一部分,在IP实现中必须包含ICMP。ICMP报文在IP包中传送。ICMP在两台机器上的IP协议软件之间提供了通信。ICMP是一个差错报告机制,没有全部指定对每个可能差错所采取的措施。当数据报产生差错时,ICMP只向数据报的最初源站回报差错情况,源站把差错交给相应的应用程序或采取其他措施来纠正问题。并非所有错误都有源站产生。数据报中只有源站和目的站的地址。ICMP数据ICMP首部数据报数据区数据报首部帧数据区帧首部ICM
9、P报文格式 每个ICMP报文的前三个字段相同。类型TYPE代码CODE校验和CHECKSUM 类型字段用来标识报文类型;代码字段提供有关报文类型的进一步信息。ICMP封装在IP数据报中,随IP包转发。ICMP可能造成拥塞,可能产生异常。测试目的站的可达性与状态(ping)使用ICMP报文中的回送请求(echo request)和回送应答(echo reply)报文。主机或路由器发送回送请求报文,收到的机器返回回送应答报文。多数软件的命令是ping。回送请求和回送应答报文格式 可选数据字段长度可变,包含要返回给发送者的数据应答与请求的数据要相同。标识符和序号字段用来匹配应答和请求。类型(8或0)代码(0)校验和标识符序号可选数据