IP是一个无连接协议,负责将数据从源转发到目的地,主要功能有:IP寻址、路由选择、分组及重组。IP提供主机间的逻辑通信,提供“尽力而为的服务”,将尽力而为地在主机之间传送数据段,不做任何承诺,不能保证段的交付与否,不能保证段交付的时间、不能保证段中数据的完整性。因此,IP服务被称为“不可靠”的服务。
传输层有两个协议:TCP和UDP
TCP(传输控制协议)是一个面向连接的协议,通过建立TCP连接以及采取流量控制、顺序编码、应答和计时器等措施,TCP保证将数据按序、正确地从源主机中的一个进程传递到目的主机的指定进程。TCP将IP所提供的主机间不可靠传输服务转换成为进程间的可靠的数据传输服务。
TCP协议提供可靠的数据传输服务是通过建立TCP连接实现的。一条“TCP连接”连接的两端是Internet上分别在两台主机中运行的两个进程,一个是发送进程,一个是接收进程,每个进程用一个Socket(IP地址和端口)唯一确定。一对Socket唯一标识一条TCP连接。TCP连接的是全双工和点对点的,全双工是指数据可双向传输,点对点是指每条TCP连接只有两个端点。
TCP连接提供双向字节流传输的可靠服务。发送方的TCP将用户送来的字节流划分成独立的数据交给网络层进行发送,而接受方的TCP将接收的数据包重新装配转换成字节流交给用户。接收方还要进行流量控制,以防止接收方来不及处理发送方发送的数据导致缓冲区溢出。
UDP是传输层的一个简单的协议,它只在IP协议上增加了应用程序多道处理和简单的错误校验功能。UDP从应用程序结果报文,附上源端口和目的端口以及length、checksum字段成为UDP段,就直接递交给网络层;网络层将UDP层封装在IP数据包中后,尽力而为地将数据报传递给接收主机,UDP将根据IP地址和两个端口,将段中数据交给相应进程。期间,两个收发的传输层实体不存在握手的过程,因此UDP被认为是无连接的。UDP段封装在IP数据报中发送,与TCP不同,UDP不能将数据报分段传输,一个IPv4数据报最长65535字节。