前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >协议:TCP/IP之用户数据的传递过程及协议头部信息

协议:TCP/IP之用户数据的传递过程及协议头部信息

作者头像
灰子学技术
发布2020-08-22 18:50:16
1.5K0
发布2020-08-22 18:50:16
举报
文章被收录于专栏:灰子学技术
1.网络协议的分层

由底层到上层,分别是:l链路层,网络层,运输层和应用层。

这里以FTP协议为例来看下客户端和服务器端,在协议层面是如何交互的。

在局域网内,链路层基本上是相同的,以太网为例,如下图所示,对应的协议栈需要采用对应的协议来交互数据。

图片发自简书App

在不同的局域网,链路层往往不同,假设一个是以太网,一个是令牌环网,那么在IP层对应的路由协议上面需要同时支持这两种网络,在路由器的支持下,两种网络可以相互适配,以便达到相互通讯的地步。

在IP层往上,就已经屏蔽了这部分差别,所以在运输层和应用层,与局域网内部通讯是一致的。

图片发自简书App

2.网络协议的封装和分用

在研究数据的封装和分用之前,让我们先看下对应的层次都有哪些网络协议,如下图所示:

图片发自简书App

数据要从一端发往另外一端,涉及到的第一个问题,便是如何将数据打包,这种打包的标准时需要事先商量好的,策略是每一层都添加一个对应的协议层头部,往下传递。

应用层在发送数据的时候,首先需要将对应的用户数据,在应用层打包,这样就会在应用层协议层面,加个对应的应用层首部,构成“应用层首部+用户数据”的一整个数据 = 应用数据。

应用层数据往下传递到TCP层,TCP会将这些数据再加一个报文头部,变成“TCP首部+应用层数据” = TCP数据,并传递给IP层。

IP层接到数据之后,会添加个IP首部,变成“IP首部+TCP数据” = IP数据,并传递给链路层。

假设链路层是以太网,于是链路层数据便成为“”以太网首部+IP数据+以太网尾部”=以太网数据。

图片发自简书App

对于接收端来说,与发送端正好是相反的,对应的协议层次,会把该层的数据头部剥掉,并按照规范解析出数据,传递给上一层,一直到对应的应用程序为止。

例如:IP层,会根据IP头部的数据位,来知道运输层是UDP还是TCP,并决定将IP数据是传给UDP还是TCP协议来继续处理。

图片发自简书App

3.IP层的头部数据

IP头部,有20位字节组成,其中IP数据的长度是U16,最大值是65535,U16的首部校验和,U8的生存时间,U8的协议(这个用来记录 运输层是何种协议,UDP还是TCP)。U32的源端IP地址和U32的目的端IP地址。

图片发自简书App

IPv6的数据头部如下所述, 其中源地址和目的地址,都是16个字节的大小。

图片来自网络,侵权告知,会及时删除

4.UDP头部

UDP头部+UDP数据,共同构成了UDP数据,被封装在IP 数据之中,作为IP的数据内容,其中UDP的头部只有8个字节的大小。

图片发自简书App

UDP头部内容详细如下所示:U16的源端口和目的端口,该字段的用意是用来区分同一台机器上面的使用相同IP地址的,不同的应用程序。

U16的UDP数据长度,其实IP的数据长度是U16,所以UDP这一层的数据长度应该是:IP的数据长度-8字节的UDP头部长度。

U16的UDP检验和,这个UDP是可选的。

图片发自简书App

5.TCP头部

TCP数据由:TCP首部+TCP数据 共同构成,TCP数据。会被封装到IP数据中,其中TCP首部由20个字节构成,如下图所示:

图片发自简书App

TCP的首部,详细内容如下所示:

U16的源端口和目的端口,用于区分相同IP地址下面的不同应用程序。U32的序列号和确认序号,用来实现TCP的可靠性传输,是TCP可靠性传输重要的一个环节,通过REQ+ACK的方式来完成。关于该序号,是根据时间的关系随机生成的一个序号,递增的产生方式。

标识位SYN和ACK,用于三次握手。FIN用于四次挥手。RST表示复位连接。PSH表示需要尽可能快的将数据送往接收进程。

U16的窗口大小,用于控制TCP的流量传输速率。U16的校验和,这个是必须要存在的,保证TCP的可靠性的一部分。

图片发自简书App

备注:该资料的整理主要来自于TCP/IP详解卷一,更像是一个读书笔记。



本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 灰子学技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.网络协议的分层
  • 2.网络协议的封装和分用
  • 3.IP层的头部数据
  • 4.UDP头部
  • 5.TCP头部
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档