TCP
报头形成TCP
段,送交网络层。TCP
段加上包括源、目的主机IP地址的IP报头,生成一个IP
数据包,并将IP数据包送交链路层。MAC
帧的数据部分装上IP数据包,再加上源、目的主机的MAC
地址和帧头,并根据其目的MAC
地址,将MAC帧发往目的主机或IP路由器。MAC
帧的帧头去掉,并将IP数据包送交网络层。IP
报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP
段送交传输层。TCP
报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。TCP
报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。