TCP/IP协议

TCP/IP协议的工作流程如下:

  • 在源主机上,应用层将一串应用数据流传送给传输层。
  • 传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
  • 在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。
  • 链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。
  • 在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。
  • 网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。
  • 传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。
  • 在目的主机,传输层去TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

TCP/IP 协议的七层

  • **应用层(Application layer) **
  • 表示层(Presentation layer)
  • 会话层(Session layer)
  • 传输层(Transport layer)
  • 网络层(Network layer)
  • 数据链路层(Data link layer)
  • 物理层(Physical layer)

TCP和UDP的区别

  • TCP提供的是面向连接的、可靠的数据流传输
  • UDP提供的是非面向连接的、不可靠的数据流传输。
  • 简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般.

建立连接协议(三次握手)

  • 客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。
  • 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
  • 客户必须再次回应服务段一个ACK报文,这是报文段3。

连接终止协议(四次挥手)

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

  • TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。
  • 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
  • 服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。
  • 客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。

你可能感兴趣的:(TCP/IP协议)