运输层提供的服务
运输层提供端到端(也就是应用到应用)的逻辑通信;而IP则是指主机到主机之间的通信;运输层的逻辑通信就是:主机到app;而IP之间的主机的连接被运输层简化(忽略具体过程)
运输层的基本作用
在IP和app之间提供复用和分用的功能;根据需求的不同;运输层有两种不同的运输协议,面向连接的TCP和无连接的UDP.
面向连接和无连接协议
- 在传送数据之前不需要先建立连接
- 对方的运输层在收到 UDP 报文后,不需要给出任何确认。
- 虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
端口号
端口 :虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点
注意区分:
在协议栈层间的抽象的协议端口是软件端口
路由器或交换机上的端口是硬件端口。
TCP的主要特点
- 面向连接
- 点到点
- 可靠
- 全双工
- 面向字节流
注意:
TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。
TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。
TCP 可把太长的数据块划分短一些再传送。
TCP 也可等待积累有足够多的字节后再构成报文段发送出去。
TCP的连接对象
TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。TCP 连接的端点叫做套接字 (socket) 或插口。(UDP的链接对象直接是端口)
端口号拼接到 (contatenated with) IP 地址即构成了套接字。
每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。
可靠传输的工作原理
为了不造成拥堵;停止等待协议:“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
为了信道上不发生错误:自动重传
TCP的流量控制和拥塞控制
- 流量控制
TCP设置了接收缓存;但是如果应用程序提取速度过慢;还是会出现溢出;因此TCP提供流量控制服务;匹配发送速度和应用接收数据的速度。(接收端控制发送端)
- 拥塞控制
当网络发生拥塞时,抑制发送方(一个全局性的过程,涉及到所有的主机、所有的路由器)
TCP的连接建立
TCP连接的建立过程叫做握手;
建立连接的过程中只有一次握手;但有三次报文交换;称之为三报文握手
采用三报文握手是因为防止失效(过期)的报文又传送到了,产生错误。
TCP的释放
四报文握手
完。