TCP/IP网络模型
TCP/IP网络模型简介
TCP/IP 是互联网相关的各类协议族的总称。所谓协议,可以将其理解为规则,好比是两个人交流需要双方事先了解对方的语言,约定在线下还是线上的形式进行交流。要想实现通信,就要事先确定使用哪种语言进行通信、以何种方式进行通信、如何探测到通信目标、由哪一边先发起通信、怎样结束通信等规则。 TCP/IP作为互联网相关协议族的总称,内含各种协议,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等。TCP/IP协议在一定程度上参考了OSI的七层模型,将各类协议简化分类在四个层次中。
OSI七层模型、TCP/IP四层模型比对
OSI七层模型 | TCP/IP四层模型 | 实现功能 | TCP/IP协议族 | 应用层 | 应用层(用户进程) | 文件服务、电子邮件、虚拟终端 | HTTP、FTP、DNS、Telnet等 | 表示层 | 代码转换、数据加密 | 无协议 | 会话层 | 解除或建立其他接点的连接 | 无协议 | 传输层 | 传输层(报文进行分组和重组,数据重组) | 提供端对端的接口 | TCP、UDP | 网络层 | 网络层(把分组报文发送给目标网络) | 为数据包选择路由 | IP、ICMP等 | 数据链路层 | 链路层(物理硬件接口) | 传输有地址的帧以及错误检测功能 | SLIP、MTU等 | 物理层 | 以二进制数据形式在物理媒体上传输数据 | IEEE802、ISO02110等 |
TCP
一、TCP简介
TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 完整的TCP通信可以分为三个步骤,即创建连接、数据传送、终止连接。
二、TCP的特点
1)面向连接
TCP的第一步:创建连接,说明TCP传输是面向连接的。不同于广播,TCP的通信是点对点的。
2)传输可靠
为保证传输过程中的可靠性,TCP传输采取了以下几种机制: 1、发送应答:即发出的数据需要对方在接收后返回应答。 2、超时重传:为保证不丢包,TCP为传输的数据编上序号;若在超时时间内没有得到对应序号的成功接收应答,将会重新上传该包数据。 3、错误校验:用校验数据检查上传的内容是否正确。 4、流量控制和阻塞管理:使用流量控制(即控制传输速率)来避免发生主机发送过快而导致接收方无法及时处理数据的情况。
3)面向字节流
与UDP一个个报文独立地传输不同,TCP在不保留报文边界的情况下以字节流方式进行传输。
4)全双工通信
TCP允许全双工通信,即通信双方的应用程序在任何时候都能发送数据(半双工:通信双方都可以扮演发送方与接收方两个身份给对方发送数据,但在一个时间段只能有一方处于发送状态;单工:有明确的发送方与接收方,两者身份不可互换),因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。所以,TCP既可以一个个地发送数据段,也可以缓存一段时间后一次发送更多的数据段。
三、TCP传输模型
client
server
创建连接
发送数据
接收数据
loop
[传输数据]
终止连接
client
server
UDP
一、UDP简介
UDP协议,用户数据报协议(英语:User Datagram Protocol,缩写为UDP)是一种面向无连接的、不可靠的、面向报文的、高时效性传输层通信协议。
二、UDP的特点
1)面向无连接
因为无需面向连接,所以可以随时向外发出数据。
2)不可靠性与高时效性
首先不可靠性体现在无连接上,通信都不需要建立连接,发送比较随意。 其次,UDP传输收到什么数据就传递什么数据,并且也不会备份数据,因为没有应答,发送数据也不会关心对方是否已经正确接收到数据了。 再者因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件发生改变,也不会对发送速率进行调整,这样实现的弊端就是在网络条件不好的情况下可能会导致丢包。但是优点也很明显,因为没有过多除传输外的操作,UDP的时效性很高,在某些实时性要求高的场景(比如电话会议)就需要使用 UDP 而不是 TCP。
3)面向报文
发送方对应用程序下传的报文,既不合并,也不拆分,而是保留这些报文的边界,在报头添加必要数据后就向下交付IP层。因此,应用程序必须选择合适大小的报文。
4) 单播,多播,广播通信
同时支持一对一,一对多,多对多,多对一的方式传输,也就是说UDP提供了单播,多播,广播的功能。同作为传输层的协议,UDP传输也是双向的。
三、UDP传输模型
client
server
发送数据
接收数据
loop
[传输数据]
client
server
|