【网络】TCP/IP在媒介上的传输(简单介绍+图形理解)

在了解数据如何传输之前,我们先简单了解一下什么是数据单位和数据包

数据单位

数据单位顾名思义就是用来描述数据的,但是,在不同的协议中,数据单位有不同的表述,先区分一下他们的不同

包:全能性术语
帧:数据链路层中包的单位
数据包:IP和UDP等网络层以上的分层中包的单位
段:表示TCP数据流中的信息
消息:应用协议中数据的单位

数据包首部

数据经过每一层,都会给这一层所发的数据加一个首部,这个首部包含了这一层的很多重要信息,比如发送的目标地址和协议相关的信息。
在这里插入图片描述

1、数据包的发送

在这里插入图片描述
当我们发送一封邮件,先要经过应用程序对其进行编码处理,编码处理转换后,由于各种原因邮件不一定会立马发送出去,但是,应用程序在邮件发送出去那一刻会建立TCP连接,从而利用TCP连接发送数据。

而数据到了传输层之后,TCP负责建立连接、发送数据以及断开连接。为了实现这一功能,就需要在应用层数据的前端附加一个TCP首部,其中包含了源端口号和目标端口号(用以识别发送主机和接收主机上的应用)、序号(用以发送的包中哪部分是数据)以及校验和(用以判断数据是否被损坏),然后发送给IP。

IP将TCP传来的数据和TCP首部当做自己的数据,并在前面加上自己的IP首部,IP首部中包含接收端IP地址以及发送端接收地址。如果不知道接收端的MAC 地址,可以利用ARP查找。IP包生成后,参考路由控制表决定接受此IP包的路由或主机。随后,IP包将发送给连接这些路由器或主机网络接口的驱动程序,以实现真正的发送数据

从IP传输过来的 IP包,对于以太网来说就是数据,给这些数据加上以太网首部并进行发送处理,以太网首部包括了接收端的MAC地址以及标志以太网类型的的以太网数据的协议。根据上述信息产生的以太网数据包将通过物理层传输给接收端

经过发送端层层处理后,一个数据就变成了如下图所示的样子

在这里插入图片描述

2、数据包的处理

数据包的接收处理流程就是发送流程的逆过程
还是上面那张图,我们来看一下接收端部分
在这里插入图片描述
主机收到以太网的包后,首先从以太网的包的首部找到MAC地址判断是否为发送给自己的包,如果不是发送给自己的包则丢弃数据,而如果 接收到了恰好是发送给自己的包,就查找以太网包首部中的类型从而确定以太网协议传输过来的数据类型,如果是IP包就传给处理IP的子程序,如果是其他协议,就传给相对应的协议进行处理

(在我们这里讲的例子中,以太网接收到的是IP包,所以我们下一步解释IP模块的处理)

IP模块收到IP包首部以及后面的数据后,也做与上述类似的处理,如果判断出首部中的ip地址与自己ip地址匹配,则接受数据,并查找上一层的协议,如果是TCP,就将IP包首部后面的部分传给TCP,如果是UDP就把IP包首部后面的部分传给UDP
这里需要注意一点:再有路由器的情况下,接收端地址往往不是自己的地址,此时需要借助路由控制表,在调查应该送达的主机或路由器之后再转发数据

在TCP模块中,首先要计算一下校验和,判断数据是否被破坏,然后在检查是否按照数据序号接收数据,最后检查端口号,确定具体的应用程序
数据接收完毕后,接收端要发送一个“确认回执”给发送端,如果这个回执信息未能到达发送端,那么发送端会认为接收端没有接收到数据而一直反复发送。
数据完整的接收到后,会发送给端口号识别的应用程序

接收端应用程序会直接处理接收发送端发送的数据,通过解析数据可获知邮件的收件人地址是乙的地址,如果主机上没有 乙的邮箱,接收端主机会返回发送端一个报错信息,如果恰好有这个邮箱,那么接收端主机和收件人乙都能收到这个电子邮件的正文“早上好”,邮件就会保存到本机的硬盘上,如果保存也能正常进行,那么接收端会发送“处理正常”的回执给发送端。反之一旦出现磁盘满、邮件未能成功保存的问题,就会发送“处理异常”给发送端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值