一、应用层
1.DNS协议
DNS(Domain Name System)是一个分布式数据库,提供了域名和IP地址之间映射的服务。
DNS可以用UDP或者TCP传输,使用的端口号都为53。大多数情况下在进行域名解析时都使用UDP进行传输(负载更低,响应更快),但是如果报文或返回的相应超过512字节,那么会转为TCP传输;另外在区域传送(指主域名服务器向辅助域名服务器传送变化的那部分数据,辅域名服务器会定时向主域名服务器查询了解数据是否有变动)时也会使用TCP传输。
2.FTP协议
FTP(File Transfer Protocol)是文件传输协议,使用TCP连接,一般需要使用两个连接。
控制连接:服务器一般用21端口等待客户端连接。客户端主动连接后,使用这个链接将客户端的命令传给服务器,并传回服务器的应答。
数据连接:用于传送文件数据。如果是服务端主动建立连接,则为主动模式,此时服务端使用20端口,客户端端口随机,但是要大于1024;如果是客户端主动建立连接,则为被动模式,此时服务端端口号随机,客户端端口号由自己指定。
主动模式要求客户端开放端口号给服务器端,需要去配置客户端的防火墙。被动模式只需要服务器端开放端口号即可,无需客户端配置防火墙。但是被动模式会导致服务器端的安全性减弱,因为开放了过多的端口号。
3.DHCP协议
DHCP (Dynamic Host Configuration Protocol) 是动态主机配置协议,是一个局域网的网络协议,用户不需要手动配置IP地址等信息,如子网掩码,网关等。
4.电子邮件协议
电子邮件协议包含发送协议和读取协议,发送协议常用SMTP,读取协议常用POP3和IMAP。
5.HTTP/HTTPS协议
HTTP(Hyper Text Transfer Protocol)协议,超文本传输协议,是一个基于请求与响应,无状态的应用层协议,常基于TCP/IP协议传输数据。
特点:
- 无状态:协议对于事务处理没有记忆能力,服务端对于客户端每次发送的请求都认为是完全独立的,每个请求包含了处理这个请求所需的完整的数据,发送请求不涉及状态变更。
- 无连接:每次连接只处理一个请求,服务端处理完客户端一次请求,等到客户端作出回应之后便断开连接,便于尽快将资源释放出来服务其他客户端。
- 客户/服务器模式:HTTP协议的工作模式,客户端发出请求,服务端发送响应,服务器端不会主动发出响应。
- 简单快速:请求方式简单,只需要指定请求方法和路径,每种方法规定了服务器提供的不同类型的服务;由于HTTP协议简单,因此HTTP服务器的程序规模小,通信速度很快。
- 灵活:允许传输任意类型的数据对象,如json格式数据,表单数据,xml,需要在http报文中指明Content-Type的类型。
二、传输层
UDP报文:8字节头部+数据部分
UDP协议特点:
(1)无连接。通信之前不需要先建立连接,直接通过IP和端口号通信。
(2)不可靠传输。没有确认、重传等机制,协议简单。
(3)面向数据报。
TCP报文:20字节头部+数据部分
三、网络层
IP数据报:20字节首部+数据部分
四、数据链路层
作用之一:将网络层来的IP数据包添加首部和尾部,用于标记帧的开始和结束。
以太网MAC帧:首部14字节 + 数据部分(IP数据报) + 尾部4字节