网络协议

  • 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
图解TCP

电子邮件协议

  • 常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,处于应用层的下层。
    • SMIP
      • SMIP协议帮助每台计算机在发送或中转信件时找到下一个目的地
      • SMTP认证:要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器
    • POP
      • POP邮局协议负责从邮件服务器中检索电子邮件
      • POP可以下载邮件、从服务器中删除邮件或询问是否有新邮件
    • IMAP
      • 互联网信息访问协议(IMAP)是一种优于POP的新协议,它可以决定客户机请求邮件服务器提交所收到邮件的方式,请求邮件服务器只下载所选中的邮件而不是全部邮件

SMIP

  • SMIP是一种推协议,即服务端向客户端发送推送请求,客户端接受,服务端发送邮件
  • SMIP用于将发送方的邮件服务器发送报文到接收方邮件服务器
  • 当需要将邮件从接收方服务器发送到用户手中时,不能用SMIP协议,因为当用户不接受邮件时服务器会一直请求,这样会造成资源浪费,此时需要拉协议(最典型的拉协议是HTTP协议)如POP或IMAP

POP3

POP3按照3个阶段进行工作:特许、事务处理以及更新

  • 特许阶段,用户代理发送用户名和口令
  • 事务处理阶段:用户代理取回报文;还可以对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息
  • 更新阶段:结束该POP3会话;这个时候该邮件服务器删除那些被标记的删除的报文
  • POP3的缺陷:当用户用用户代理将邮件存储在本地之后,在本地所进行的对邮件的删除等操作,不会对用户的邮件服务器造成影响

IMAP

  • IMAP是双向的,在本地的操作也会反馈到服务器

参考连接

五分钟读懂TCP 协议——TCP协议简介

网络协议之Tcp、Http

电子邮件协议百度百科

邮件系统协议及其工作原理

电子邮件协议之SMTP、POP3和IMAP