传输层
传输层 100° *
常见的默认端口号 *

UDP
概念
UDP协议提供了无连接、不可靠、数据报尽力传输服务。收方双方通信时,直接进行数据传输。
优点
- **可控。**可以控制进程的数据传输机制。
- **实时性高。**不用建立连接。
- **开销小。**不用维护通信链路。
多路复用与分解
<!-- UDP 套接字 :使用二元组实现精准分解-->
<目的ip,目的port>
分配UDP套接字的端口号有2种方式 *:
① 创建UDP套接字时,传输层为其分配端口号
② 创建UDP套件字时,调用bind()
指定端口号。
应用
IP电话、视频会议。(实时性)
UDP数据报 *

TCP
概念 (1904卷:简述TCP面向连接服务)
面向连接、可靠、有序的字节流服务。收方双方在通信前,先建立传输链路,再进行数据传输,结束后拆除链路。是全双工通信服务。
多路复用与分解
<!-- TCP 套接字 :使用四元组实现精准分解-->
<源ip,源port,目的ip,目的port>
说明:源ip,目的ip
是TCP报文段的IP的首部字段;源port,目的port
封装了TCP报文段的首部字段
TCP报文段 *

应试
IMG_33F5454AB4D2-1 思路
16进制转10进制,需记住:0-9 10-15(A-F)。
再用 IP长度-(IP头+TCP头)=TCP数据部分的长度。
IMG_75DFEB6DCC3F-1 题目
这道题有待理解,解题思路是啥不太清楚。
IMG_8BAD1D4336FF-1
TCP流量控制
让发送方的发送速率不要太快,让接收方来得及接收。
发方发得太快,收方可能来不及接收,导致数据丢失。因此需引入流量控制协调双方的数据收发速度。使用滑动窗口机制实现流量控制。
TCP可靠数据传输
基于“以字节为单位的滑动窗口”实现可靠数据传输。
利用差错检测、确认、序号、重传、计时器实现可靠数据传输。
TCP拥塞控制 100° * **
拥塞控制:合理调度、规范、调整网络中发送数据的主机数、发送速率、数据量。

拥塞控制与不控制的差别:

TCP 四种拥塞控制算法实现拥塞控制。

慢启动
**在慢开始阶段,**每经过1个RTT,阈值+2(2倍)。
拥塞避免
在拥塞避免阶段,每经过1个RTT,阈值+1。默认阈值为16。当阈值等于16时,进入拥塞避免阶段,在拥塞避免阶段,每经过一个RTT,阈值+1。
快速重传
...
快速恢复
在拥塞避免阶段,若发方收到3次重复ACK,则说明网络拥塞,需将阈值减半,并进入拥塞避免阶段。
拥塞控制算法:*

不管是哪个阶段,其目的就是调整“拥塞窗口”,以避免拥塞或尽快消除已发送的拥塞。
应试

(1):SA 慢启动 BC 拥塞避免 FG 慢启动
(2):
- A 三个重复ACK表征的丢包
- C 三个重复ACK表征的丢包
- E 计时器超时
- G 拥塞窗口达到阈值,指数加速变线性加速
(3):一样。
(4):需要不停地改变。
TCP 三次握手四次挥手 *
目的:彼此确定双方的接收、发送能力。
三次握手
第1次,客户端向服务端发送试探报文(SYN)
第2次,服务端向客户端发送试探报文(SYN)
第3次,客户端向服务端发送确认报文(ACK)
如果中途握手失败,会进行重传。
四次挥手👋🏻
原因:TCP的半关闭状态导致需要四次挥手才能断开连接
第1次,客户端向服务端发送终止报文(FIN)
第2次,服务端向客户端发送确认报文(ACK)
第3次,服务端向客户端发送终止报文(FIN)
第4次,客户端向服务端发送确认报文(ACK)
只有双方都有意向关闭时,才能断开连接。
TCP Socket API *
TCP客户与服务器的典型Socket API调用过程