网络协议
- OSI/RM 一种分层的体系结构,参考模型有7层:
- 媒介层:物理层,数据链路层,网络层
- 主机层:传输层,会话层,表示层,应用层
- TCP/IP是基于OSI/RM的协议簇,包含多种协议
- 应用层发送请求,每一层封装自己的信息到请求中,最后将整个请求发送。
- 接受请求从最底层(网络接口层)开始,每一层解析属于自己的信息。
TCP协议
- TCP协议是以太网协议和IP协议的上层协议,也是应用层协议的下层协议。
- 以太网协议规定了电子信号如何组成数据包,解决了子网的点对点通信,IP协议解决了多个局域网互通的问题。
- TCP协议保证数据通信的完整性和可靠性,防止丢包。数据包
TCP协议中的三次握手和四次挥手
建立连接的三次握手
- 第一次握手:客户端向服务端发送连接请求包,标记位SYN置为1,Seq=X=0
- 第二次握手:服务器由SYN=1得知客户端请求建立连接,为这次连接分配资源,向客户端返回应该SYN和ACK都置为1的TCP报文,设置顺序号码(Seq)=Y=0,确认号码(ack)=X+1=1
- 第三次握手:客户端检查ack是否正确以及ACK是否为1,若正确,客户端再次发包,ACK为1,SYN为0,ack=Y+1=1,Seq=X+1=1,Server收到后确认号码值与ACK=1则连接建立成功,可以传送数据了
SYN表示连接,ACK表示响应,X为客户端发给服务端的顺序号码,Y为服务器发给客户端的顺序号码,服务端和客户端分别验证XY来检查是否是与同一个端口握手
断开连接的四次挥手
客户端和服务端都可以断开连接
- 第一次挥手:客户端向服务端发送FIN报文,将标志位FIN和ACK置为1,顺序号码为X=1,确认号码Z=1
- 第二次挥手:服务端收到FIN后,发回ACK=1,ack=X+1=2,Seq=Z。客户端进入FIN_WAIT状态。
- 第三次挥手: 服务端数据发送完毕,向客户端发送FIN报文,关闭连接,其他值与第二次挥手相同
- 第四次挥手:客户端收到FIN,发回ack=Z+1=2,ACK=1顺序号码Seq=X+1=2,客户端进入TIME_WAIT状态,如果服务端没有回应说明服务端已经关闭则客户端关闭。
FIN表示关闭连接
每一次发包的ack(确认号码)与上一次接包的Seq(顺序号码)相同,ack与Seq交替保证端头的唯一性
图解TCP
电子邮件协议
- 常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,处于应用层的下层。
- SMIP
- SMIP协议帮助每台计算机在发送或中转信件时找到下一个目的地
- SMTP认证:要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器
- POP
- POP邮局协议负责从邮件服务器中检索电子邮件
- POP可以下载邮件、从服务器中删除邮件或询问是否有新邮件
- IMAP
- 互联网信息访问协议(IMAP)是一种优于POP的新协议,它可以决定客户机请求邮件服务器提交所收到邮件的方式,请求邮件服务器只下载所选中的邮件而不是全部邮件
- SMIP
SMIP
- SMIP是一种推协议,即服务端向客户端发送推送请求,客户端接受,服务端发送邮件
- SMIP用于将发送方的邮件服务器发送报文到接收方邮件服务器
- 当需要将邮件从接收方服务器发送到用户手中时,不能用SMIP协议,因为当用户不接受邮件时服务器会一直请求,这样会造成资源浪费,此时需要拉协议(最典型的拉协议是HTTP协议)如POP或IMAP
POP3
POP3按照3个阶段进行工作:特许、事务处理以及更新
- 特许阶段,用户代理发送用户名和口令
- 事务处理阶段:用户代理取回报文;还可以对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息
- 更新阶段:结束该POP3会话;这个时候该邮件服务器删除那些被标记的删除的报文
- POP3的缺陷:当用户用用户代理将邮件存储在本地之后,在本地所进行的对邮件的删除等操作,不会对用户的邮件服务器造成影响
IMAP
- IMAP是双向的,在本地的操作也会反馈到服务器
参考连接