TCP和UDP对比
- TCP
- 面向连接,提供可交付服务
- 端对端的全双共通信
- 面向字节流,一般进程是数据块通信,TCP进程将其看做一连串无结构字节流。
- UDP
- 无连接,不可靠服务。
- 一对一或一对多或多对多
- 面向报文流。
- 没有拥塞控制机制,首部开销比TCP小。(8vs20)
TCP的三次握手
- TCP三次握手(三次报文段握手)并不传递数据,传递报文段建立数据的连接。
- 名词
| 名词 | 解释 | 作用 |
|---|---|---|
| SYN | 同步标志 | 请求建立连接 |
| ACK | 确认标志 | 同意建立连接 |
| seq | *** | 报文段首字节序列编号 |
| ack | 确认号 | 接收端期待的数据编号 |
- 过程
- 第一次握手,客户端发送同步标识和***,进入
SYN-SENT状态,请求同步。 - 第二次握手,服务端接受客户端的同步标识和***,并发送确认标识和***,进入
SYN-REVD状态。 - 第三次握手,客户端接受服务器的确认标识和***,发送确认标识进入
ESTAB-LISTEN状态。
- 为什么三次握手?
三次握手的实质,通信双方协商初始***
两次握手的例子
TCP四次挥手
TCP如何保证数据传输
- 数据包校验,接收端校验,不正确则抛弃。
- 超时重发
- 应答机制
- 流量控制,发送端有滑动窗口控制发送数据,防止接收端缓存溢出
- 失序重排