一、概述
1.2
分层:
链路层:设备驱动程序及接口卡
网络层:IP、ICMP、IGMP(Internet组管理协议)
运输层:TCP UDP
应用层:Telnet、FTP、e-mail等
可靠连接得由应用层提供。IP提供的是不可靠服务,尽可能快的把分组从源结点送到目的节点。
应用层关心的是应用程序的细节,而不是数据传输活动。
应用层和运输层使用端到端(end to end)协议,网络层提供逐跳(Hop-by-hop)协议。
ICMP:IP协议的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要信息。
IGMP:把UDP数据报多播到多个主机。
IPV4五类地址:
协议进入协议栈时的封装过程:
数据帧分用过程:
1.8客户-服务器模型
重复型服务器:
1、等待客户请求
2、处理客户请求
3、发送响应
4、返回第一步
并发型服务器:
1、等待客户请求
2、启动新服务器处理请求,可能生成新的进程、任务或线程,处理完成后终止新服务器
3、返回第一步
二、链路层
2.1引言
链路层三个目的:
(1)为IP模块发送和接受IP数据报
(2)为ARP模块发送请求和接受应答
(3)为RARP模块发送请求和接受应答
三、IP:网际协议
特殊情况的IP地址:
C类子网掩码划分:
四、ARP:地址解析协议
ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射,点对点链路不设置ARP。
ARP报文格式:
目的地址为全1的特殊地址是广播地址,电缆上的所有以太网接口都要接收广播的数据帧。
对不存在主机的ARP请求,tcpdump命令输出的超时限制为29.5秒,telnet大约在75秒。大多数BSD (Berkeley Software Distribution,伯克利软件套件是Unix的衍生系统)把完成TCP连接请求的时间限制设置在75秒。
ARP高速缓存,一般对完整的表项为20分钟。不完整的为3分钟。
RARP:逆地址解析协议
RARP请求为广播方式,应答为单播方式
超时重发机制,超时间隔采用递增方式,到一个阈值(大于42.80s时),重新设置为5.34秒,这种比每次采用相同值的方法要好。
RARP服务器实现难点:
在硬件层进行广播,不经过路由器转发,在关机状态下引导。通常在一个网络上(例如一根电缆)提供多个RARP服务器。
RARP需要不同的帧类型字段吗?ARP和RARP都使用相同的值0x0806吗?
答:一个单独的帧类型并不是必须的,因为op字段对于所有的四个操作(ARP请求,ARP应答,RARP请求,RARP应答)都有一个不同的值。但是实现一个RARP服务器,独立于内核中的ARP服务器,更容易处理不同的帧类型字段。
2、在一个有多个RARP服务器的网络上,如何防止它们的响应发送冲突?
答:每个RARP服务器在响应之前,可以延长一个小的随机时间。
作为一个优化,可以指定一个RARP服务器为主服务器,其他的为次服务器。主服务器发出响应不需要延迟,而次服务器发出响应则需要延迟一个随机的时间。
作为另一个优化,也是指定一个RARP服务器为主服务器,其他为次服务器。次服务器只对在一个短时间段内发生的重复请求进行响应。这里假设出现重复请求的原因是主服务器停机了。
ICMP:Internet控制报文协议
报文类型:查询报文,差错报文。
下列不会导致产生差错报文:
1)ICMP差错报文
2)目的地址是广播地址或者多播地址(D类地址)的IP数据报
3)作为链路层广播的数据报
4)不是IP分片的第一片
5)源地址不是单个主机的数据报。说明源地址不能为零地址、环回地址、广播地址或多播地址。
ping程序
利用ICMP回显请求回显应答报文,而不用经过传输层(TCP/UDP).
Ping服务器一般在内核中实现ICMP的功能。