《计算机通信与网络》明天就要考了,题目看熟了,书看多了,也无感。不如实战看一下。
DHCP(动态主机配置协议)
DHCP和BOOTP(引导程序协议)兼容,允许一台计算机加入新网可以自动获得IP地址。DHCP使用C/S服务模式。如果想避免在每个网络上都设置一台DHCP服务器,则需要设置一台DHCP中继代理,该代理保存DHCP服务器的IP地址信息。
1.首先看一下总体的包结构:
2.网络接入层。帧结构为前六个字节为目的MAC地址,后六个为源MAC地址。这个结构和IP、TCP的源目位置相反。说真的,我觉得这种设计对数据链路层来说是最为合适的。首先,主机在局域网内是可以接收到很多不是自己的帧,最先关注的应该就是目的MAC是不是自己的;再者呢,在以太网交换机的转发中有三种方式,直接转发就是只看目的MAC,六个字节就可以了,而并非十二个字节。
可以看到,主机在申请动态IP时,源MAC地址是自己的,目的MAC地址为ff:ff:ff:ff:ff:ff(全1)。因为这里是用的是广播形式,即让在同一物理子网中的所有主机都能够收到这个报文。在Ethernet_II格式的网络中,就是目标MAC为全1。
3.互连网络层
直接看IP数据报的内容,4即IPv4,5即IP首部长度为5*4字节,00服务类型没有用到,因此IPv6也给取消了这个。0148是IP首部和数据的总长度,因为这是在以太网中进行的,所以不会超过MTU=1500字节。1C9A是标识,和00 00共同在分片时进行使用。而从理论上来说,总长度表示占据了16个字节,意味着理论上最大是65535个字节(需要明确单位)。ff即为1111 1111 ,则设定初始TTL值为255,协议为11即UDP,9e 0b是首部校验和。这里使用首部校验和是为了降低路由器负担。00 00 00 00是源IP,ff ff ff ff是目的IP,由于终端没有IP地址,IP头中的原IP规定填为全0。当终端发出DHCP请求报文,它并不知道DHCP SERVER的IP地址,因此IP头中的目标IP填为子网广播IP——全1,以保证DHCP SERVER的IP协议栈不丢弃这个报文。
4.传输层
从步骤三我们知道,IP数据报中封装的是UDP报文。前两个字节00是源端口,44是目的端口即端口68.DHCP服务端口是UDP67和UDP68,这两个端口是正常的DHCP服务端口,可以理解为一个发送,一个接收。即客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。长度为00,校验和为43,数据为01 34 d6 ba。
UDP是无连接、不可靠的,可以支持点到点和点到多点之间的通信。UDP是面向报文的。
因为DHCP使用了UDP,后面也就不再单独拿出UDP来讲了。不同在于UDP传递数据时就是数据DATA。
5.应用层
前面提到,DHCP和BOOTP(引导程序协议)兼容。
DNS(域名系统)
DNS是个交互的对域名解析为IP地址的过程。DNS是一个分布式数据库连机系统,采用C/S应用模式,提供域名解析服务。域名解析的方法有递归解析、重复解析,也有递归加重复解析。
1.整体观察
可以看到两个报文一问一答。具体接下来再说。
2.网络接入层
目的MAC地址为00:5e:0: 8a:01:00,目的MAC地址为f0:18:98:09:4c:65。0800说明是IPv4.
3.互连网络层
IPv4,20字节,服务类型无定义。数据校验和003f。80 96 00 00显示未分片。TTL为255,协议类型为UDP。首部校验和2c1c。源IP地址ac 13 f6 1e即为172.19.246.30。目的IP地址为dd 83 8f 45,即为221.131.143.69
4.传输层
ff c9即为源端口,00 53(UDP83端口)为目的端口。
5.应用层
提问:
回答:
3.ICMP(差错与控制报文协议)
ICMP报文分为两类(1)差错报告报文:类型值为3时:表示终点不可达;类型值为4时:表示源点抑制;类型值为5时:表示改变路由(Redirect);类型值为11时:表示超时;类型值为12时:表示参数问题。(2)询问报文:类型值为8或者0时:表示回送(Echo)请求或应答;类型值为13或14时:表示时间戳(Timestamp)请求或应答。
ICMP位于网络层,但它的传递依赖于IP的支持。
1.整体观察
2.网络接入层
目的MAC地址:f0:18:98:09:4c:65,源MAC地址c4:47:3f:47:33:46,0800,IP协议
3.互连网络层
IPv4,20字节首部,ICMP服务,38H字节总长度,5427标识,标志和片偏移量0000,生存时间255,01协议类型ICMP,首部校验和2c81,源IP0a 50 00 01,目的IP0a 50 25 bc。
4.HTTP(超文本传输协议)
这是一个应用层协议,使用TCP连接为分布式超媒体信息系统提供可靠传送。HTTP是面向事物的应用层协议。
1.整体观察
2.网络接入层
3.互连网络层
协议字段为06H即TCP。
这里重点关注一下目的IP为0a 50 25 bc,即为10.80.37.188,是一个典型的私有地址。
私有地址一共分为三块:10/8、172.16/12、192.168/16。
私网地址如果想访问公网,必须使用NAT(网络地址转换)或NAPT(网络地址和端口转换)。
4.传输层
TCP是面向连接的,提供可靠的服务,只能进行点到点的通信,面向字节流。
TCP五元组格式为(源IP地址、源端口、目的IP地址、目的端口、TCP)
TCP的首部为20个字节,00 50为源端口80,c1 1b是目的端口49435。序号为00 00 00 01,确认号为75 8b c9 37。后面两个字节为50 19,最后六位为011001,即ACK、PSH、FIN置1,PSH表示应尽快将此报文段交付给接受应用程序,ACK和FIN确认释放请求。接收窗口为ff ff,校验和72 4d,紧急指针00 00。
TCP的可靠传输是通过确认机制和超时重传机制实现的。确认机制就是返回的确认序号是已收到的数据的最高序号加1,也可以理解为期望下次收到的第一个数据字节的序号。具有累计确认效果。
TCP流量控制是使用滑动窗口吗,通过WIN值接收端可以动态的控制发送端,实现端到端的流量控制。
TCP拥塞控制,有慢启动算法、拥塞避免算法等算法来辅助。
5.应用层
5.ARP(地址解析协议)
ARP协议是将IP地址解析为MAC地址。不可反向,那是RARP干的事。