1、概述
运输层提供端到端的服务
2、在浏览器中输⼊ URL 地址到显示主⻚的过程?
DNS解析=>TCP连接=>发送HTTP请求=>服务器处理请求=>返回HTTP报文(三次握手)=>浏览器解析渲染页面=>连接结束(四次挥手)
(1)用户PC中的DNS客户端进程会发送一个DNS查询请求报文,其内容为域名www.porttest.com
对应的ip地址是什么,DNS查询请求报文使用运输层的UDP协议封装成UDP用户数据包,将UDP
用户数据包封装在IP数据报中,通过以太网发送给DNS服务器
(2)DNS服务器端收到该IP数据报之后,从中解封出UDP用户数据报,UDP首部中的目的端口号为53,
此时将UDP用户数据报的数据载荷部分(即DNS查询请求报文)交付给本服务器的DNS端进程,
DNS服务器端进程解析DNS查询请求的报文内容,之后按照要求查找对应的IP地址,
之后向用户PC发送DNS响应报文,其内容为域名www.porttest.com对应的ip地址是192.168.0.3,
DNS响应报文使用运输层的UDP协议封装成UDP用户数据包(首部,源端口号53,目的:49152),将UDP用户数据报封装在IP数据报中,
通过以太网发送给用户PC。
(3)用户PC收到后,根据目的端口号,将UDP用户数据报的数据载荷部分
(DNS响应报文)交给PC中的DNS客户端进程,其解析出域名www.porttest.com对应的ip地址,
此时用户PC端的HTTP进程向Web服务器发送HTTP请求报文,HTTP请求报文使用运输层的TCP协议封装为TCP报文段,之后将TCP报文段封装在IP数据报中,通过以太网发送给Web服务器
(4)Web服务器从中解析出TCP报文段,根据目的端口号将该报文段的数据载荷部分(HTTP请求报文)交给本服务器中的HTTP服务器端进程并解析该报文,按照要求发送查找内容,之后给用户PC发送响应报文。
(5)用户PC接收并解析并在网页浏览器页面渲染,连接结束
UDP与TCP
- TCP是可靠传输,UDP是不可靠传输
- TCP面向连接,UDP无连接
- TCP一对一通信,UDP支持一对一,一对多,一对全通信
- TCP保证传输数据的有序性,UDP不保证有序
- TCP传输速率相对UDP慢
- TCP有流量控制和拥塞控制,UDP没有
- TCP首部20字节,UDP8字节
TCP流量控制
TCP 利⽤滑动窗⼝实现流量控制。流量控制是为了控制发送⽅发送速率,保证接收⽅来得及接收。接收⽅发送的确
认报⽂中的窗⼝字段可以⽤来控制发送⽅窗⼝⼤⼩,从⽽影响发送⽅的发送速率。将窗⼝字段设置为 0,则发送⽅
不能发送数据。
TCP拥塞控制
TCP拥塞控制采用的四种算法
- 慢开始
慢开始算法的思路是当主机开始发送数据时,如果⽴即把⼤量数据字节注⼊到⽹络,那么可能会引起⽹络阻塞,因为现在还不知道⽹络的符合情况。经验表明,较好的⽅法是先探测⼀下,即由⼩到⼤逐渐增⼤发送窗⼝,也就是由⼩到⼤逐渐增⼤拥塞窗⼝数值。cwnd 初始值为 1,每经过⼀个传播轮次,cwnd 加倍。 - 拥塞避免
拥塞避免算法的思路是让拥塞窗⼝ cwnd 缓慢增⼤,即每经过⼀个往返时间 RTT 就把发送⽅的 cwnd 加 1。 - 快重传
- 快恢复
快重传与快恢复:
在 TCP/IP 中,快速᯿传和快恢复(fast retransmit and recovery,FRR)是⼀种拥塞控制算法,它能快速恢复丢失的数据包。
没有 FRR,如果数据包丢失了,TCP 将会使⽤定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了 FRR,如果接收机接收到⼀个不按顺序的数据段,它会⽴即给发送机发送⼀个᯿复确认。如果发送机接收到三个᯿复确认,它会假定确认件指出的数据段丢失了,并⽴即᯿传这些丢失的数据段。
有了 FRR,就不会因为᯿传时要求的暂停被耽误。当有单独的数据包丢失时,快速᯿传和快恢复(FRR)能最有效地⼯作。当有多个数据信息包在某⼀段很短的时间内丢失时,它则不能很有效地⼯作。