运输层总结
运输层协议:端到端协议
- 面向连接的传输控制协议 TCP
- 无连接的用户数据报协议 UDP
-主要任务:为相 互通信的应用进程 提供 逻辑通信服务-屏蔽:运输层向高层用户 屏蔽 了下面网络核心的细节(如网络拓扑、所采用 的路由选择协议等),使应用进程看见的就是好像在两个运输层实体 之间有一条 端到端的逻辑通信信道
TCP
为实现可靠数据传输,就必须增加许多措施(TCP连接管理、确认机制、 超时重传、流量控制以及拥塞控制)UDPUDP通信的双方传送数据之前 不需要建立连接
UDP不需要实现可靠传输,因此 不需要使用实现可靠传输的各种机制
标识进程:进程标识符(PID)
区分进程:端口号(长度为16bit,取值范围是0~65535)复用:应用层报文在运输层:用UDP协议封装-->UDP复用用TCP协议封装-->TCP复用两者都用IP协议封装-->IP复用
用户数据报协议UDP:
- 无连接
- 支持一对一,一对多,多对一和多对多通信。
- 对应用层交付的报文直接打包,面向报文
- 尽最大努力交付,也就是不可靠;
- 不使用流量控制和拥塞控制。
- 首部开销小,仅8字节
传输控制协议TCP:
- 面向连接
- 每一条TCP连接只能有两个端点, 只能是一对一(点对点)通信。
- 面向字节流(TCP不保证接收进程收到的数据块大小等于发送进程发出的应用层报文;但接收方进程收到的字节流必须和发送方进程发出的字节流完全一样)
- 可靠传输、流量控制、拥塞控制
- 首部最小20字节,最大60字节
- 全双工通信(连接两端同时发送和接受)
-
TCP 报文段的首部格式
- 序号:32bit
本TCP报文段数据载荷的第一个字节的序号
- 确认号:32bit
期望收到对方下 一个TCP报文段的数据载荷的 第一个字节的序号,同时也是对之前收到的所有数据的确认
- 确认标志位ACK
只有当ACK取值为1时,确认号字段才有效。ACK取值为0时,确认号字段无效TCP规定:在 TCP连接建立后,所有传送的TCP报文段都必须把ACK置1