阅读tcp文档

This commit is contained in:
asahi
2025-01-26 02:09:18 +08:00
parent 04bb5d26c7
commit 36b9bc26b0

View File

@@ -275,3 +275,22 @@ MSB和LSB的定义如下
网络字节传输中,通常都按照`big endian`字节序来进行传输。 网络字节传输中,通常都按照`big endian`字节序来进行传输。
操作系统中,`unbuntu``windows`都采用`little endian` 操作系统中,`unbuntu``windows`都采用`little endian`
## tcp
### tcp服务
尽管tcp和udp都同样使用ip层但是tcp却提供和udp完全不同的服务。tcp提供了一种面向连接的、可靠的字节流服务。
#### 面向连接
面向连接代表两个tcp应用在通信时必须要先建立一个tcp连接。在一个tcp连接中仅有两方进行通信广播和多播无法应用于tcp连接。
#### 可靠性
tcp通过如下方式来提供可靠性
- 数据应该被分割成tcp认为最适合发送的数据块由tcp传递给ip的信息单位被称为报文段或段segment
- 当tcp发出一个segment后其将启动一个定时器并等待目的端收到该报文的确认。如果在指定时间内未接收到目的端的确认ack将针对该报文段进行重传
- 当tcp收到来源于tcp另一端的数据其将回复一个确认该确认并非立即发送而是通常会等待一段时间几分之一秒
- tcp将会维护其首部与数据的校验和其是一个端到端的校验和目的是检测数据在传输过程中是否发生变化。
- 如果校验和不符那么tcp将会丢弃接收到的报文段并且不针对该报文段作确认超时重传
- tcp数据段会通过ip数据报来进行传输而ip数据报并不会保证到达的顺序故而tcp数据段也可能会乱序到达
- tcp会针对接收到的数据段集合重新进行排序确保接收到的数据能被成功交付给应用层
- 因为ip数据报可能会发生重复故而tcp需要对重复数据进行丢弃
- tcp还能提供流量控制tcp的每一方都有大小固定的缓冲空间tcp接收方`只允许tcp发送方发送接收方缓冲区所能容纳的数据`
- 这将避免发送方发送过快导致接收方缓冲区溢出,用于协调发送方发送速率