运输层在协议栈中的地位和作用,运输层通信与网络层有什么重要的区别?

  • 运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向上层应用层提供服务,提供端到端的逻辑通信。而网络层是为主机之间提供逻辑通信(面向主机、承担路由功能,即主机寻址及有效的分组交换)。
  • 各种应用进程之间通信需要 可靠和尽力而为 的两类服务质量,必须由运输层以复用和分用的形式加载至网络层。

    为什么说UDP是面向报文的,而TCP是面向字节流的

  • UDP 对应用程序交付的报文在其首部添加首部后交付 网络层,既不合并,也不拆分,保留用户数据的边界。也就是说无论应用层交给 UDP 多长的报文,它统统发送,一次发送一个。因此,应用层需要控制报文的大小,避免超过传输大小的要求而被拆分。

  • 而 TCP 将上层交付的数据看成无结构的字节流来发送。TCP 有一个缓存区域,可以看成蓄水池,最小单位为字节(水滴),等水装满了就可以发送了。

    为啥需要 UDP 封装一层数据,直接使用 IP 它不香么?

  • IP 数据报只能找到目的主机而无法找到目的进程。

  • UDP 提供对应用进程的复用和分用功能,并提供对数据部分的差错校验。