TCP/IP协议是什么(TCP/IP四层模型)

1. TCP/IP协议是什么?

TCP/IP协议是一种网络体系模型的代名词,指的是多种协议的协议簇,即包含TCP、IP、MAC、UDP、HTTP、FTP等多种协议,它是四层网络模型,包含应用层、传输层、网络层、链路物理层,和OSI七层网络模型、五层网络模型略有区别,TCP/IP四层模型可以说是OSI七层网络的简化版。

TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络。

2. TCP/IP分层详解

TCP/IP的四层结构:1. 应用层;2. 传输层;3. 网际互联层;4. 网络接口层(即主机-网络层)

2.1 应用层

TCP/IP协议的应用层是将OSI中的应用层、表示层、会话层合在了一起,它是直接为用户的应用程序提供服务,比如:浏览器和客户端的文本传输服务:HTTP协议和FTP协议;域名服务:DNS协议;电子邮件协议:SMTP协议;远程登录服务:TELMET协议和SSL协议;动态主机配置服务:DHCP协议等等。

2.2 传输层

传输层对应于OSI参考模型的传输层,处理应用层的数据,格式化数据流以及提供可靠传输,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。

TCP协议提供的是一种可靠的、通过”三次握手”来连接的数据传输服务;而UDP协议提供的则是不保证可靠的(并不是不可靠)、无连接的数据传输服务。

TCP协议和UDP协议的区别,可查看往期相关文章:

【网络协议】TCP与UDP协议区别及应用场景深度分析!!!

【网络协议】TCP与UDP在程序编程中的区别及应用场景深度分析!!!

【网络协议】划重点啦!TCP与UDP的重点面试题!!!

2.3 网际互联层

网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。

IP协议是网际互联层最重要的协议,它提供的是一个可靠、无连接的数据包传递服务。

2.4 网络接口层

网络接口层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接口层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。

3.TCP/IP是如何进行数据通信的呢?

对于发送方发送数据包而言,数据包由顶向下,逐层增大:

1. 应用层:应用程序调用 Socket API 发送网络包,把数据包放到 Socket 发送缓冲区中
2. 网络协议栈从 Socket 发送缓冲区中,取出数据包;再按照 TCP/IP 栈,从上到下逐层处理
3. 传输层:增加 TCP 头
4. 网络层:增加 IP 头和执行路由查找确认下一跳的 IP,并按照 MTU 大小进行分片
5. 数据链路层:分片后的网络包,再送到数据链路层,进行物理地址寻址,以找到下一跳的 MAC 地址,并且添加帧头和帧尾,放到发包队列中
6. 驱动程序通过 DMA ,从发包队列中读出网络帧,并通过物理网卡把它发送出去

对于接收方接收数据包而言:

1. 当一个网络帧到达网卡后,网卡会通过 DMA 方式,把这个网络包放到收包队列中;然后通过硬中断,告诉中断处理程序已经收到了网络包。
2. 网卡中断处理程序会为网络帧分配内核数据结构(sk_buff),并将其拷贝到 sk_buff 缓冲区中;然后再通过软中断,通知内核收到了新的网络帧。
3. 内核协议栈从缓冲区中取出网络帧,并通过网络协议栈,从下到上逐层处理这个网络帧。

4. 数据链路层:在数据链路层检查报文的合法性,找出上层协议的类型,去掉帧头、帧尾,然后交给上一层网络层。

5. 网络层:网络层取出 IP 头,判断网络包下一步的走向,比如是交给上层处理还是转发。当网络层确认这个包是要发送到本机后,就会取出上层协议的类型(比如 TCP 还是 UDP),去掉 IP 头,再交给传输层处理。6. 传输层:传输层取出 TCP 头或者 UDP 头后,根据 源 IP、源端口、目的 IP、目的端口 四元组作为标识,找出对应的 Socket,并把数据拷贝到 Socket 的接收缓存中。

7. 应用层:应用程序就可以使用 Socket 接口,读取到新接收到的数据。

原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/77463.html

(0)
速盾高防cdn's avatar速盾高防cdn
上一篇 2024年5月26日 下午10:59
下一篇 2024年5月26日 下午11:02

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注