•早期ARPAnet使用网络控制协议NCP(Network Control Protocol)
–一台主机直接对另一台主机的通信协议
–不能连接不同类型电脑和操作系统
–没有纠错功能
•1974年5月,Kahn和Vinton Cerf在IEEE刊物上发表“分组网络互联的一个协议”
•1974年12月,二人正式发表第一份TCP协议的详细说明
•后来把这一协议分成两个不同的协议
–用来检测网络传输中差错的传输控制协议(TCP)
–专门负责对不同网络进行互联的互联网协议(IP)
网络软件系统设计采用分层思想进行设计。一般把网络的层次结构和每层所使用协议的集合称为网络体系结构(Network Architecture),一个具体的网络系统其所包含的层数和每层所使用的协议是确定的。在这种层次结构中,各层协议之间形成了一个从上到下类似栈的结构的依赖关系,通常叫协议栈(Protocol Stack)。
TCP/IP协议的体系结构分为四层,这四层由高到低分别是:应用层、传输层、网络层和链路层。
1.链路层(Link Layer)
链路层在TCP/IP协议栈的最低层,也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。链路层的功能是把接收到的网络层数据报(也称IP数据报)通过该层的物理接口发送到传输介质上,或从物理网络上接收数据帧,抽出IP数据报并交给IP层。
2.网络层(Network Layer)
网络层也称为互联网层,由于该层的主要协议是IP协议,因而也可简称为IP层。它是TCP/IP协议栈中最重要的一层,主要功能是可以把源主机上的分组发送到互联网中的任何一台目标主机上。包括IP协议(网际协议)、ICMP协议(控制报文协议)和IGMP协议(组管理协议)
3.传输层(Transport Layer)
我们通常所说的两台主机之间的通信其实是两台主机上对应应用程序之间的通信,传输层提供的就是应用程序之间的通信,也叫端到端(End to End)的通信。在TCP/IP协议族中传输层包含两个不同的传输协议:一个是TCP(传输控制协议);另一个是UDP(用户数据报协议)。
TCP协议为两台主机提供高可靠性的数据传输,发送数据时,对应用层数据进行分片打包,适合网络传输,接收分组进行确认,丢失分组设置重发。
UDP协议面向无连接,不可靠网络传输,只是把数据报从一台主机发送到另一台主机,不保证数据证据,可靠性由应用程序实现。
4.应用层(Application Layer)
应用层向使用网络的用户提供特定的、常用的应用程序,如使用最广泛的远程登录(Telnet)、文件传输协议(FTP)、超文本传输协议(HTTP)、域名系统(DNS)、简单网络管理协议(SNMP)和简单邮件传输协议(SMTP)等。要注意有些应用层协议是基于TCP协议的(如FTP和HTTP等),有些应用层协议是基于UDP协议的(如SNMP等)。
TCP/IP通信模型
TCP/IP协议的工作流程:https://www.cnblogs.com/yinbiao/p/11014835.html