Title Loading...

  1. Time Loading...
  2. Wordcount Loading...
  3. Pluto

Catalogue

网络通信协议学习笔记(二) TCP/IP 模型及其协议簇

相关术语

  1. TCP:Transmission Control Protocol

  2. IP:Internet Protocol

  3. ICMP:Internet Control Message Protocol

  4. ARP:Address Resolution Protocol

  5. RARP: Reverse Address Resolution Protocol

  6. UDP:User Datagram Protocol

TCP/IP 分层模型

TCP/IP分层模型,是当今互联网中广泛使用的架构模型。它在OSI的七层模型的基础上做出了更符合实际需要的改变,因此成为了当今互联网事实上的标准。继上次学习OSI七层模型后,博主接着学习了TCP/IP的四层模型。

TCP/IP四层模型,从顶至下可以分为: 应用层、传输层、网络层、网络接口层。应用层对应OSI模型的应用层、表示层、会话层,传输层对应OSI的传输层、网络层对应OSI的网络层、而网络接口层则对应OSI的数据链路层和物理层。在TCP/IP的分层中,大多以具体的协议来进行每层的划分。

下面分别对TCP/IP分层模型的每一层进行释明。

第四层:应用层

面向用户的一层,具体应用有FTP、DNS等。

第三层:传输层

TCP协议便工作在这一层,此层的功能是根据端口号寻址,提供端到端的稳定(TCP)或者不稳定(UDP)的连接。在这一层中,数据被分段层一个一个的报文然后再传入下一层

第二层:网络层

IP协议工作在此层,此层负责的是通过ip地址进行寻址,还有路由选择。提供的是无连接、不稳定的通信。

第一层:网络接口层

此层包括OSI模型中的数据链路层和物理层。因此,此层具备将数据封装成帧、依据物理地址进行寻址等功能。并负责将数据以Bit流的形式送达对方主机。

TCP协议

TCP,即传输控制协议(Transmission Control Protocol)。此协议在TCP/IP分层模型中属于第二层,也就是传输层。谈到TCP,就绕不开其通信过程中的三次握手和四次挥手。

三次握手
第一次

假设网络中存在着两台主机A和B。若A想与B通信,首先,A主机向B主机发送一条想与B主机通信的消息消息1,并请求B主机回应是否收到消息。

第二次

B主机在收到A主机发来的连接请求后,便向A主机发送一条消息消息2,此消息告知A主机B主机已经收到A主机的连接请求、并询问A主机是否收到。

第三次

当A主机收到B主机的回复消息消息2后,A主机便得知双方的通信是畅通的,但此时B主机并不知道A主机是否能收到消息,于是,A主机再次向B主机发送一条确认消息消息3 ,告知B主机已经收到消息。当B主机收到A主机发来的消息3 ,通信线路便建立起来了。

四次挥手
第一次

当A主机和B主机通过三次握手建立通信,若此时A主机已经没有需要发送给B主机的数据,此时A主机便发送一条消息告知B主机:我已经没有要发送的数据了,可以断开连接了。

第二次

当B主机收到A主机请求断开连接的消息 ,B主机则向A主机发送一条已收到断开请求的连接,并继续发送未发完的数据。当A主机收到B主机的确认消息后,此时连接便处于半断开的状态。

第三次

在B主机发送完剩余数据后,此时可以断开连接了,B主机便向A主机发送一条确认断开连接的消息。

第四次

当A主机收到B主机发来的确认断开连接的消息,通信便彻底终结了。

IP协议

IP,即互联网协议(Internet Protocol)。此协议在TCP/IP分层模型中属于第三层,也就是网络层。IP协议是无状态、无连接、不可靠的,其可靠性靠上层协议提供,比如说TCP协议。它还负责根据IP地址寻址和路由选择。

ICMP协议

ICMP,即互联网控制报文协议(Internet Control Message Protocol)。此协议也属于第三层。他的设计和使用是为了解决IP协议的缺陷。因为IP协议是无状态、无连接的,所以缺少差错报告和差错纠正机制,并且不能查询管理。ICMP基于IP协议,他的报文并不是单独的格式,而是以IP协议的报文格式为载体,而它的报文又可以分为查询和差错报文。它的具体功能可以通过它的报文分类得知。

  1. 回显请求
  2. 回显应答
差错报文
  1. 终点不可达
  2. 源站抑制
  3. 超时
  4. 路由重定向

ICMP的应用有Ping(回送请求)和Tracert(超时)。

ARP和RARP协议

ARP,即地址解析协议(Address Resolution Protocol),此协议在TCP/IP模型中属于网络层,而在OSI七层模型中则属于数据链路层,对应TCP/IP模型的网络接口层。之所以存在划分的冲突,是由于ARP协议的工作原理。ARP的作用是根据上层地址来获取目标主机的物理地址,也就是MAC地址。因为涉及到对物理地址的处理,所以存在划分的冲突。在以太网中,主机间的通信最终需要根据物理地址进行,当某台主机A想与局域网里的另外一台主机通信,但此时主机A只知道B主机的IP地址,此时便需要用到ARP协议了。ARP协议的工作流程大致如下:

当局域网内的主机A想与另一台主机B通信,但此时A主机只知道B主机的IP地址而不知道MAC地址,此时A主机便向整个局域网内广播消息:请问有谁知道IP地址为xxx.xxx.xxx.xxx的B主机的MAC地址吗,知道的话请告知我?当知道B主机MAC地址的某一主机(可能是路由器)收到这条广播后,便以单播的形式向A主机发送B主机的MAC地址。

而RARP,反向地址解析协议(Reverse Address Resolution Protocol),从名字我们便可以看出,它和ARP协议类似,不同的是RARP是通过物理地址寻找IP地址。

UDP协议

UDP,即用户数据报协议(User Datagram Protocol),此协议同TCP协议工作在同一层。此协议提供的是无连接、不可靠的传输服务,多用于流视频等对可靠要求低的应用场景。

以上就是TCP/IP分层模型及其协议簇的基本内容,不够深入,仍需不断学习。