一、概述
Transmission Control Protocol
,传输控制协议,是一种面向连接
的、可靠
的、基于字节流
的传输层
通信协议。
Internet Protocol
,网际互连协议,是 TCP /IP 体系中的网络层
协议。
TCP/IP
传输协议,即传输控制/网络协议,也叫作网络通讯协议
,它是在网络的使用中的最基本的通信协议。它不仅仅指的是TCP 和 IP 两个协议,而是指一个由 众多协议构成的协议簇
, 只是因为其中的 TCP 协议和 IP 协议最具代表性,所以被称为 TCP / IP 协议。
二、层次模型
OSI 七层模型 | 功能 | 传输单位 | 网络协议 | TCP 四层模型 |
应用层 | 为用户的应用程序提供网络通信服务 | 数据包 | HTTP、TFTP、FTP、NFS、WAIS、SMTP | 应用层 |
表示层 | 主要负责数据格式的转换,管理数据的加密与解密,确保各个系统中应用层之间数据的发送与读取 | 数据包 | Telnet、Rlogin、SNMP、Gopher | |
会话层 | 负责建立和断开通信连接。通过传输层建立数据传输的通路,在系统之间发起会发和接收会话 | 数据包 | SMTP、DNS | |
传输层 | 定义了一些传输数据的协议和端口号,为应用进程之间提供端到端的逻辑通信 | 报文段/用户数据报 | TCP、UDP | 传输层 |
网络层 | 为不同主机之间提供网络连接,用于数据的传输 | 数据报 | IP、ICMP、ARP、RARP、AKP、UUCP | 网际层 |
数据链路层 | 定义了在单个链路上如何传输数据,控制网络层和物理层之间的通信 | 帧 | FDDI、Ethernet、Arpanet、PDN、SLIP、PPP | 数据链路层 |
物理层 | 定义了物理设备的标准 | 比特 | IEEE |
三、TCP连接传输
2.1 连接建立
三次握手:
- 客户端发送连接请求报文段,无应用层数据。
- 服务端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。
- 客户端为该TCP连接分配缓存变量,并向服务器返回确认的确认,可以携带数据。
2.2 数据传输
2.3 连接释放
四次挥手:
- 客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。
- 服务端回送一个确认报文段,客户到服务器这个方向的连接就释放了(半关闭状态)。
- 服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。
- 客户端回送一个确认报文段,再等到事件等待计时器设置2MSL(最长报文段寿命)后,连接彻底关闭。
四、TCP & UDP
TCP | UDP | |
可靠性 | 可靠 | 不可靠 |
连接性 | 面向连接 | 无连接 |
报文 | 面向字节流 | 面向报文 |
效率 | 传输效率低 | 传输效率高 |
双工性 | 全双工 | 一对一、一对多、多对一、多对多 |
流量控制 | 滑动窗口 | 无 |
拥塞控制 | 慢开始、拥塞避免、快重传、快恢复 | 无 |
传输速度 | 慢 | 快 |
应用场景 | 效率要求低,准确性要求高,要求有连接 | 效率要求高,准确性要求低 |
可靠性:是指保证接收方进程从缓存区读取出的字节流与发送方发出的字节流是完全一样的。