应用层
DNS:采用客户/服务器模型,运行在UDP上,端口号为53。
FTP:采用客户/服务器模型,运行在TCP上,控制端口为21,数据端口为20。主动模式使用规定端口,被动模式端口号取决于客户端。
STMP:采用客户/服务器模型,运行在TCP上,端口号为25。
POP3:采用客户/服务器模型,运行在TCP上,端口号为110。
HTTP:采用客户/服务器模型,运行在TCP上,端口号为80。
应用程序 | FTP数据连接 | FTP控制连接 | TELNET | HTTP | SMTP | DNS | TFTP | POP3 | SNMP |
使用协议 | TCP | TCP | TCP | TCP | TCP | UDP | TCP | TCP | UDP |
熟知端口号 | 20 | 21 | 23 | 80 | 25 | 53 | 69 | 110 | 161 |
传输层
UDP:首部8B的开销。计算校验和时需要添加12B的伪首部,如果数据部分不是偶数个字节,需要添加一个全0的字节(但此字节不发送)。
TCP:首部20B的开销。计算校验和时要添加12B的伪首部,将伪首部协议字段的17改成6。整个长度时4B的整数倍。
网络层
SDN:采用集中式的控制平面和分布式的数据平面,两个平面相互分离,控制平面利用控制-数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络。SDN可编程接口称为“北向接口”, SDN控制器和转发设备建立会话的接口称为“南向接口”,SDN控制器集群内部控制器之间的通信接口称为“东西向接口”。
IPv4:由首部和数据部分组成。
- 最常用的首部长度是20B,以4B为单位。
- 总长度以1B为单位。
- 标识:总共16位,是一个计数器,每产生一个数据报就+1。
- 标志:占3位,最低位MF=1表示还有分片,MF=0表示最后一个分片。中间一位是DF=0时才允许分片。
- 片偏移以8B为单位。
多播地址:224~239。
NAT:将专用网址转化为公共网址。
- 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
CIDR:无分类编址,在变长子网掩码的基础上。地址块中的地址数一定是2的整数次幂,还有最长前缀匹配。
ARP:地址解析协议,完成IP到MAC地址的映射。
DHCP:常用于给主机动态地分配IP地址,提供了即插即用的联网机制。是应用层协议,运行在传输层协议UDP上的。
ICMP:网际控制报文协议,让主机或路由器报告差错和异常情况。ICMP报文作为IP数据报的数据加上数据报的首部,组成IP协议发送出去。ICMP是网络层协议。分为ICMP差错报文和ICMP询问报文。PING(应用层)使用ICMP的回送请求和回答报文,Traceroute(网络层)使用了ICMP的时间超过报文。
IPv6:从根本上解决了IP地址耗尽的问题。
- 更大的地址空间,有128位。
- 支持即插即用(自动配置)。
- 不允许分片。
- 首部长度是8B的整数倍。
- 增大了安全性。
从IPv4像IPv6过渡采用双协议栈和隧道技术两种策略:双协议栈是指一台设备同时装有IPv4和IPv6的协议栈。隧道技术是指IPv6进入IPv4的网络时,把IPv6装进IPv4数据报的数据部分。
RIP:路由信息协议(是应用层协议,运行在UDP上,端口为520),网络中每个路由器都要维护从它自身到其他每个目的网络的距离记录。允许一条路径最多包含15个路由器,距离16表示网络不可达。可见,RIP只适用于小型网络。每30秒广播一次RIP路由信息,RIP网络中每个网络的子网掩码都必须相同。
- 仅和相邻路由器交换信息。
- 交换的信息是当前路由器知道的全部信息,即自己的路由表。
- 网络出现故障时,会出现慢收敛现象(即需要较长的时间才能将此消息传送到所有路由器)
OSPF:网络层协议,直接使用IP数据报传送(首部协议字段是89)。可对不同链路设置成不同的代价。如果同一个网络又多条相同代价的路径,那么可以将通信量分配给这几条路径称为多路径间的负载平衡。
- 路由表中不会储存完整路径,只会储存下一跳。
- 只有当链路状态发生变化时,路由器采用洪泛法向所有路由器发送此信息,整个过程收敛很快,不会出现RIP的“坏消息传得慢”。
- 发送的信息是本路由器相邻的所有路由器的链路状态。
- 每隔一段时间就刷新一次数据库中的链路状态。
BGP:是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。是应用层协议,运行在TCP上。在BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需在发生变化时更新有变化的部分。
IGMP:因特网组管理协议。并不是在因特网范围内对所有组播成员进行管理的协议。IGMP不知道IP组播包含的成员数,也不知道它们分布在那个网络上。IGMP让连接到本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组。