首页 > 其他分享 >TCP/IP四层网络模型

TCP/IP四层网络模型

时间:2022-10-20 19:12:26浏览次数:80  
标签:协议 IP 网络层 网络 TCP 四层 传输层

1. TCP/IP协议是什么?

  TCP/IP协议时一种网络体系模型的代名词,指的是多种协议的协议簇,即包含TCP、IP、MAC、UDP、HTTP、FTP等多种协议,它是四层网络模型,包含应用层、传输层、网络层、网络接口层,和OSI七层网络模型、五层网络模型略有区别。

 

2. 分层详解

  TCP/IP的四层结构:应用层、网络层、传输层、网络接口层

  

 

 

常见的三种网络体系结构模型图

  1. 应用层

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

 

   

  2. 传输层

    传输层是接口子网和资源子网的中间,他的作用是:处理应用层的数据,格式化数据流以及提供可靠传输,保证数据完好无误的传递到网络层。传输层常见的协议有:TCP协议和UDP协议。

    TCP协议和UDP协议的区别:   

  

  3. 网络层

    网络层进行网络连接的建立和终止以及负责寻址和路由选择,确保将数据传输到目标,同时也会处理输入数据包,判断是对数据进行转发还是传输给传输层。

 

   4. 网络接口层

    网络接口层包含了数据链路层和物理层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。

      包、帧、数据报、段、消息的概述:

 

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

  看下面这个图:

    

  • 对于发送方发送数据包而言,数据包由顶向下,逐层增大:
    应用层:应用程序调用 Socket API 发送网络包,把数据包放到 Socket 发送缓冲区中
    网络协议栈从 Socket 发送缓冲区中,取出数据包;再按照 TCP/IP 栈,从上到下逐层处理
    传输层:增加 TCP 头
    网络层:增加 IP 头和执行路由查找确认下一跳的 IP,并按照 MTU 大小进行分片
    数据链路层:分片后的网络包,再送到数据链路层,进行物理地址寻址,以找到下一跳的 MAC 地址,并且添加帧头和帧尾,放到发包队列中
    驱动程序通过 DMA ,从发包队列中读出网络帧,并通过物理网卡把它发送出去
  • 对于接收方接收数据包而言:
    当一个网络帧到达网卡后,网卡会通过 DMA 方式,把这个网络包放到收包队列中;然后通过硬中断,告诉中断处理程序已经收到了网络包
    网卡中断处理程序会为网络帧分配内核数据结构(sk_buff),并将其拷贝到 sk_buff 缓冲区中;然后再通过软中断,通知内核收到了新的网络帧
    内核协议栈从缓冲区中取出网络帧,并通过网络协议栈,从下到上逐层处理这个网络帧
    • 数据链路层:在数据链路层检查报文的合法性,找出上层协议的类型,去掉帧头、帧尾,然后交给上一层网络层
    • 网络层:网络层取出 IP 头,判断网络包下一步的走向,比如是交给上层处理还是转发。当网络层确认这个包是要发送到本机后,就会取出上层协议的类型(比如 TCP 还是 UDP),去掉 IP 头,再交给传输层处理
    • 传输层:传输层取出 TCP 头或者 UDP 头后,根据 源 IP、源端口、目的 IP、目的端口 四元组作为标识,找出对应的 Socket,并把数据拷贝到 Socket 的接收缓存中。
    • 应用层:应用程序就可以使用 Socket 接口,读取到新接收到的数据

 

标签:协议,IP,网络层,网络,TCP,四层,传输层
From: https://www.cnblogs.com/chf333/p/16810762.html

相关文章