传输层
既然有了IP协议,能将数据发送到指定的主机为什么还要由传输层。原因有两点:
IP协议提供的是不可靠的传输协议,它只是尽力将数据发送到目标主机,但是如果数据丢包,数据损坏,它都不能提供任何解决办法;
IP协议只是将数据发送到了目标主机,但是应该由哪个应用程序来接受这个数据包呢?IP协议没有办法告诉我们。
因此传输层的作用就是为了实现以上两点目的。
传输层协议有 TCP 协议和 UDP 协议。TCP 协议是面向有连接的协议,也就是说在使用 TCP 协议传输数据之前一定要在发送方和接收方之间建立连接。一般情况下建立连接需要三步,关闭连接需要四步。
TCP概述: TCP 协议是面向有连接的协议,还有数据重传、流量控制等功能,TCP 协议能够正确处理丢包问题,保证接收方能够收到数据,与此同时还能够有效利用网络带宽。然而 TCP 协议中定义了很多复杂的规范,因此效率不如 UDP 协议,不适合实时的视频和音频传输。
UDP概述: UDP 协议是面向无连接的协议,它只会把数据传递给接收端,但是不会关注接收端是否真的收到了数据。但是这种特性反而适合多播,实时的视频和音频传输。因为个别数据包的丢失并不会影响视频和音频的整体效果。
IP 协议中的两大关键要素是源 IP 地址和目标 IP 地址。而刚刚我们说过,传输层的主要作用是实现应用程序之间的通信。因此传输层的协议中新增了两个要素:源端口号,目标端口号。再加上IP首部中的