当前位置:   article > 正文

TCP/IP协议模型详解六数据传输过程_tcp数据传输过程

tcp数据传输过程

2.4、数据传输流程

数据传输流程

2.4.1、发送方

当我们在window系统或unix系统中使用应用程序发送一个“你好”文本数据时,是怎样传输出去并让对方接收的的?

1、在传输层,将“在吗?”分成段,加上源端口和目的端口,防止出错的校验码,按顺序编号。

在数据“在吗?”发送之前,首先判断这个程序是应用TCP还是UDP方式传输,判断是使用TCP协议传输,先与目标端口方进行联系,你在不在?我在的,三次握手,得到同意,并告诉自己能最大接收的MTU、确认号,将确认号封装到TCP数据包里,一切OK,说明接收方的电脑是开着的,应用程序也是开着的,开始发送。

TCP数据包大小=20字节TCP头部+最大1460字节数据=1480最大字节数。

数据包,在每层的数据都可统称为数据包。

2、到达网络层,这个TCP数据包作为数据,根据带TCP报文的“在吗?”这段数据的大小将进行分片,不超过自己能传输的最大数据值就不分了,因为接口层最大传输是1500字节,网络层自身的IP头部就有20字节,IP数据包最大为1480。

IP数据包大小=20字节IP头部+最大1480字节数据=1500最大字节数。

在网络层将TCP数据包封装目标IP地址、源IP地址、协议类型(TCP 还是UDP)、防止出错的校验码、标识(ID号)和标志(分片的还是不分片的)。在封装IP地址时,IP协议判断目标IP地址是不是属于本地网段,不属于本地网段,IP数据包将发送到网关。准备完毕IP数据包发送出去。

3、接口层,收到网络层的IP数据包作为数据,封装源MAC地址和目标MAC地址,协议类型(IP还是ARP、ICMP),防止出错的校验码。这里如果不知道接收方的MAC地址,先将数据存入缓存中,接着使用ARP协议查询,同一链路直接获取接收主机的MAC地址,不是同一链路查询网关地址(下一跳),得到具体网关MAC地址后,再封装。OK,通过网卡发送数据帧。

2.4.2、数据帧传输过程

“在吗?”的数据帧通过网卡进入网线传输出去,首先是根据交换机转发过滤表来到网关路由器的接口。
在这里插入图片描述
路由器网关接口收到数据帧,对数据包进行解封装,查看网络层头部信息的目的 IP 地址的网络地址(注意IP地址是由网络地址和节点地址两部分组成),根据路由表匹配的IP数据包中的目标IP地址,如上图,匹配到192.168.0.0网络地址的下一跳是172.16.10.253,G0/0/0是出接口,将IP数据包传输到路由器B的出接口G0/1,IP数据包装将封装为以太数据帧,加上源MAC是路由器B的出接口G0/1的MAC地址,目的MAC是接收主机的MAC地址。

交换机工作在OSI模型的第二层,不带路由功能的交换机一般称为二层交换机,路由器工作在OSI模型的第三层,TCP/IP协议模型里工作在二层网络层。
在这里插入图片描述

2.4.3、数据帧接收

接收主机B通过网线接收到数据包,在网卡通过驱动程序解析出IP数据包交给操作系统对IP数据包进行处理,得到的TCP数据包也由操作系统处理,最后根据端口号调用传送给应用程序。
在这里插入图片描述
以上是一个简单流程,实际中包含每一层的进行数据校验、协议类型判断。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/466326
推荐阅读
相关标签
  

闽ICP备14008679号