【Linux 网络编程】TCP/IP四层模型

应用层、传输层、网络层、链路层
链路层:常用协议 ARP(将物理地址转化为IP地址) RARP(将IP地址转换为物理地址)
网络层(IP层):重要协议ICMP IP IGMP
传输层:重要的协议TCP、UDP
应用层:用户自定义协议 tftp telnet

TCP的特点:
(1)基于字节流     (2)面向连接
(3)可靠传输        (4)缓冲传输
(5)全双工           (6)流量控制

TCP如何保证可靠性
(1)应用数据被分割成TCP认为最适合发送的数据块,称为段传递给IP层。
(2)当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,
    将重发这个报文。
(3)当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常推迟几分之一秒。
(4)TCP将保持它首部和数据的校验和。这是一个端到端的校验和,目的是检测数据在传输过程中的任何变化。如
    果收到段的校验和有差错,TCP将丢弃这个报文段并且不确认(导致对方超时重传)。
(5)TCP承载于IP数据包来传输,而IP数据包的到达可能会失序,因此TCP报文段的到达可能会失序。TCP将对收到
    的数据进行重新排序。
(6)TCP数据会发生重复,TCP的接收端必须丢弃重复数据。
(7)TCP还能提供流量控制。TCP连接的每一方都有一定大小的缓冲空间。

原文地址:https://www.cnblogs.com/jamesharden/p/6488578.html