[计算机网络] 传输层

时间:2020-12-11 14:35:18

一、前言

[计算机网络] 计算机网络和协议
[计算机网络] 物理层
[计算机网络] 数据链路层
[计算机网络] 网络层

计算机网络的传输层,是大厂技术方向、前后端岗位(如阿里巴巴 )笔试必考的,足以见证其在 IT 方面的重要性。
关键字:TCP

二、常见问题

1.TCP(Transmission Control Protocol)、UDP(User Datagram Protocol) 应用场景

1.1.TCP:建立会话、可靠传输(缺少了再传)、流量控制
QQ传文件
病毒

1.2.UDP:
域名解析
QQ聊天】(发送失败得再发送,聊天内容多的话分多次 UDP 发送)
多播、广播】(发送方不需要和接收方建立连接进行可靠传输)

2.传输层和应用层协议之间的关系

  • 端口号的取值范围:0 ~ 65535
    • 服务端
      • 系统端口:0 ~ 1023
      • 登记端口:1024 ~ 49151
    • 客户端:49152 ~ 65535

[计算机网络] 传输层

类型 端口
HTTP 默认使用TCP的80端口标识
FTP 默认使用TCP的21端口标识
SMTP 默认使用TCP的25端口标识
POP3 默认使用TCP的110端口
HTTPS 默认使用TCP的443端口
DNS 使用UDP的53端口
远程桌面协议(RDP) 默认使用TCP的3389端口
Telnet 使用TCP的23端口
Windows 访问共享资源使用TCP的445端口
微软SQL数据库 默认使用TCP的1433端口
mySQL数据库 默认使用TCP的3306端口

3.端口和服务

打开 cmd ,输入 netstat -n,可以看到本机的 TCP 连接
[计算机网络] 传输层

4.用户数据报协议(UDP)

UDP 协议不实现可靠传输,而是将可靠传输和排序等功能交给上层应用来完成。
4.1.特点:
(1)无连接
(2)一次交付一个完整的报文
(3)支持一对一、一对多、多对一、多对多
4.2 UDP 首部格式
(1)源端口
(2)目的端口
(3)长度
(4)校验和

5.传输控制协议(TCP)

实现可靠传输、流量控制、拥塞避免

5.1.特点:
(1)每一条 TCP 连接只能有两个端点
(2)通过 TCP 连接传送的数据,无差错、不丢失、不重复、按序发送
(3)全双工通信
(4)面向字节流
5.2.可靠传输
5.2.1.停止等待协议

1 2
[计算机网络] 传输层 [计算机网络] 传输层

5.2.2.连续 ARQ 协议 和 滑动窗口协议

1 2
[计算机网络] 传输层 [计算机网络] 传输层

5.2.3.SACK(Selective Acknowledgment,选择确认)
使 TCP 只重新发送丢失的包,不用发送后续所有的分组,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据已经提前收到等。

5.3.流量控制(flow control)
所谓的流量,就是让发送方的发送速率不要太快,要让接收方来得及接收
发送窗口取决于:接收方允许的窗口和拥塞窗口

图解 PS
[计算机网络] 传输层 rwnd:receiver window

5.4.拥塞控制

算法 图解
慢开始 [计算机网络] 传输层
拥塞避免 [计算机网络] 传输层
快重传 [计算机网络] 传输层
快恢复 [计算机网络] 传输层

6.TCP连接管理

三次握手
[计算机网络] 传输层
第一次
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:

TCP 连接的释放 需要经过“四次挥手”的过程

三、例子

1、一个 TCP 连接的数据传输阶段,如果发送端的发送窗口值由 2000 变为 3000 ,意味着发送端 在收到一个确认之前可以发送 3000B

四、大厂笔试题

[计算机网络] 传输层
[计算机网络] 传输层

五、其他

参考文献:
韩立刚 《计算机网络原理创新教程》
谢希仁 《计算机网络》