运输层
- 运输层向它上面的应用层提供通信服务 .
- 运输层提供应用进程间的逻辑通信 , 从应用层来看 , 只要把应用层报文交给下面的运输层 就可以把这报文传送到对方的运输层.
- 网络层是为主机之间提供逻辑通信 , 而运输层为应用进程之间提供端到端的逻辑通信 .
- 运输层有两种不同的运输协议 , 即面向连接的TCP协议 , 无连接的UDP协议.
UDP TCP协议
- UDP : 用户数据报协议 , 则提供面向连接的服务
TCP : 传输控制协议 , 在传送数据之前不需要先建立连接
运输层的端口 :
- 在协议栈层间的抽象的协议端口是软件端口 , 软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址.
- 常用的熟知端口号 : https://wsgzao.github.io/post/service-names-port-numbers/
UDP 特点 :
- 无连接的
- 尽最大努力交付
- 面向报文的
- 没有拥塞控制 , 网络出现拥塞不会使源主机的发送速率降低 , 适合实时视频 , IP电话等场景
- UDP支持一对一,一对多,多对一和多对多的交互通信
- UDP的首部开销小,只有8个字节
TCP的主要特点 :
- TCP是面向连接的运输层协议
- 每一条TCP连接只能有两个端点 , 点对点 , 一对一
- TCP提供双工通信 : 通信双方在同一时刻既能发送数据又能接收数据
- 面向字节流
TCP的连接 :
- TCP连接的端点叫做套接字或插口 .
- 每一条TCP连接唯一地被通信两端的两个端点所确定. 192.3.4.5 : 80 , 80就是端口
TCP可靠传输的工作原理
- 传输信道不产生差错 : 超时重传, 自动重传请求ARQ
- 不管发送方以对快的速度发送数据 , 接收方总是来得及处理收到的数据
TCP报文段的首部格式 :
- 源端口 和 目的端口
- ……
TCP的拥塞控制 :
- 拥塞控制 就是防止过多的数据注入到网络中 , 这样可以使网络中的路由器或链路不支过载, 网络能承受现有的网络负荷 .
- 方法 : 慢开始 , 拥塞避免 , 快重传 , 快恢复
TCP的运输连接管理 :
- TCP的连接建立 : 三次握手 : C→ S 请求 ; S → C 确认 ; C → B 确认;
- TCP的连接释放 : 四次握手 : C → S 释放请求 ; S → C 确认 ; A确认进入等待 ; B → A 释放 ; A → B 确认;
-
- -