必看的计算机网络复习笔记(4)

一.传输层

1. 传输层协议为运行在不同host上的进程提供了一种逻辑通信机制。

2.端系统运行传输层协议
1)发送方 : 将应用递交的消息分成一个或多个的segment,向下传给网络层。
2)接收方 : 将接收到的segment组装成消息,并向上交给应用层。

3. 传输层可以为应用提供多种协议。如:TCP/UDP

4.传输层与网络层的比较
1)网络层: 提供主机之间的逻辑通信机制
2)传输层: 提供应用进程之间的逻辑通信机制,位于网络层之上,依赖于网络层服务,对网络层服务进行(可能性)增强

5.Internet传输层协议
1) 可靠、按序的交付服务(TCP),具有拥塞控制,流量控制,连接建立。
2) 不可靠的交付服务(UDP):基于尽力而为的网络层。没有做(可靠性方面的)扩展。

二.多路复用/多路分用

1.复用和分用的原因: 如果某层的一个协议对应直接上层的多个协议/实体,则需要复用/分用
2.主机接收到IP数据报
1) 每个数据报携带源IP地址,目的IP地址。
2) 每一个数据报携带一个传输层的段
3) 每个段携带源端口号和目的端口号。

3. 主机收到segment之后,传输层协议提取IP地址和端口号信息,将segment向相应的socket

4.无线传输协议
1. 基于Internet IP协议进行复用/分用以及简单的错误校验
2. best effort 服务(尽力而为服务),udp段可能会出现数据丢失非按序到达现象
3.无连接
1) udp发送方和接收方之间不需要握手
2) 每个udp段的处理独立于其他段。

4.常用于流媒体应用可以容忍丢失,且速率敏感。
1)如何在udp上实现可靠数据传输?
答:在应用层增加可靠性机制,应用特定的错误恢复机制

5.udp校验和
1)目的: 检测udp段在传输中是否发生错误

三.可靠数据传输原理

1.什么是可靠数据传输?
答:不错,不丢,不乱

2.可靠数据传输协议
1) 可靠数据传输对应用层,传输层,链路层,都很重要。
2) 信道的不可靠特性决定了可靠数据传输协议的复杂性。

3. 底层信道完全可靠 -不会发生错误,-不会丢弃分组

4. 发送方和接收方的FSM独立

5.rdt2.0:产生位错误的信道
1) 底层信道可能翻转分组中的位
解决:利用校验和检测位错误
2)如何从错误中恢复?
-确认机制:接收方显式告诉发送方分组已正确接收
-NAK:接收方显式的告诉发送方分组有错误。
-发送方收到NAK后,重传分组
**3)**rdt2.0:中引入的新机制

6. 基于这种重传机制的rdt协议称为ARQ协议

四. 流水线机制和滑动窗口协议

1.流水线协议
1) 允许发送方在收到ACK之前连续发送多个分组
2) 更大的序列号范围
3) 发送方和或接收方需要更大的存储空间以缓存分组。

2.滑动窗口协议
1)窗口: 允许使用的序列号范围。例如:窗口尺寸为N,最多有N个等待确认的消息。
2)滑动窗口:随着协议的运行,窗口在序列号空间内向前滑动。
3)滑动窗口协议: GBN,SR
4) 分组的头部包括k-bit序列号
5) 窗口尺寸为N,最多允许N个分组未确认。
6)ACK(n): 确认到序列号n(包含n)的分组均已被正确接收,可能收到重复ACK

五. tcp概述

1.点对点: 一个发送方,一个接收方
2. 可靠的、按序的字节流。

3.流水线机制
1) TCP拥塞控制和流量控制机制设置窗口尺寸。

4. 发送方/接收方缓存
5. 全双工
1) 同一链接中能够传输双向数据流
6.面向连接
1) 通信双方在发送数据之前必须建立连接。
2) 连接状态只在连接的两端中维护,在沿途节点中并不能维护状态。
3) TCP连接包括:两台主机上的缓存、连接状态变量,socket等

7. 流量控制机制

六.TCP序列号和ack

1.序列号:
1) 序列号指的是segment中第一个字节的编号,而不是segment编号
2) 建立TCP连接时,双方随机选择序列号。

2.ACKs:
1) 希望接受到的下一个字节的序列号
2) 累计确认:该序列号之前的所有字节均已被正确接收到

3.接收方如何处理乱序到达的segment?
**1)**TCP规范中没有规定,由TCP的实现者做出决策。

4.TCP可靠数据传输
1.TCP在IP层提供的不可靠服务基础上实现可靠数据传输服务
1) 流水线机制
2) 累计确认
3) TCP使用单一重传定时器
4) 触发重传事件:-超时,-收到重复ack

5. 拥塞控制原理
1.拥塞的表现
1) 分组丢失(路由器缓存溢出)
2) 分组延迟过大(在路由器缓存中排队)

2.拥塞的代价
1) 对给定的goodput,要做更多的工作(重传)
2) 造成资源的浪费
3) 当分组被drop时,任何用于该分组的上游传输能力全部都被浪费掉了。

七.拥塞控制的方法

1.端到端拥塞控制:
1) 网络层不需要显式的提供支持
2) 端系统通过观察loss,delay等网络行为判断是否发生拥塞
3) TCP采用这种方法。

2.网络辅助的拥塞控制:
1) 路由器向发送方显式地反馈网络拥塞信息。
2) 简单的拥塞指示:SNA,DECbit
3) 指示发送方应该采取何种速率

3.TCP拥塞控制的基本原理
1) sender限制发送速率
2) CongWin:-动态调整以改变发送速率,-反应所感知到的网络拥塞

4.如何感知网络拥塞?
1) Loss事件=timeout或3个重复ack
2) 发生loss时间后,发送方降低速率

5.如何合理的调整发送速率?
1) 加性增-乘性减
2) 慢启动

6.加性增-乘性减:AIMD
1)原理: 逐渐增加发送速率,谨慎检测可用带宽,直到发生loss
2) AIMD

7TCP慢启动:SS
1)原理: 当连接开始后,呈指数增长。
2)何时应该将指数性增长切换为线性增长(拥塞避免)?
-当congwin达到loss事件前值得1/2时

猜你喜欢

转载自blog.csdn.net/weixin_44989801/article/details/106996960