计算机网络 传输层
运输层要解决的问题?
- 网络层实现了异构网络之间的通信,尽最大努力在主机之间交付数据
-
遗留的问题:
-
参与通信的主机中,到底是谁在发送和接受应用程序的数据?(特指只知道找到电脑,不知道数据给哪个APP/进程(端口))
- 如果出现了分组的重复、丢失、失序等不可靠传输的问题,如何处理?(该实现可靠传输了)
运输层有点特殊
- 运输层是用户功能中的最低层,从这一层往上都是和用户使用的程序接触了
- 运输层又是面向通信部分的最高层
主机之间的通信,实际上是两台主机中的应用进程之间的通信
复用/分用
两个协议UDP/TCP

端口
- 运输层协议负责把数据交给指定的端口
- 操作系统负责让正确的进程对应正确的端口
套接字 socket = (IP地址 : 端口号)
UDP套接字:
TCP套接字:<源IP地址,目的IP地址,源端口号,目的端口号>
UDP
概述
网络层提供的服务:
- 尽最大努力将数据包交付到目的主机
- 不保证投递的可靠性和顺序
- 不保证带宽及延迟要求
UDP只在IP的数据包服务之上增加了一些功能:
- 复用和分用
- 差错检测
TCP
这里只是概述
- TCP是面向连接的运输层协议
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
- TCP在无连接、不可靠的IP之上,提供面向连接的可靠交付服务:流水线式发送,报文段检错,丢失重传等
- TCP提供全双工通信,发送方和接收方可以同时与对方收发数据