今日谈:数据报能否直接交给IP层而不经过UDP、TCP与UDP的首部格式

举报
Regan Yue 发表于 2021/12/25 16:00:24 2021/12/25
【摘要】 今日谈:数据报能否直接交给IP层而不经过UDP、TCP与UDP的首部格式一、数据报能否直接交给IP层而不经过UDP?有哪些东西是UDP能够提供而IP不能够提供的?不能够直接将数据报交给IP层,因为UDP层把应用层传来的数据(比如源端口、目的端口这些信息)进行了封装才给IP层的,而IP层是没有源端口、目的端口这些信息的。如果直接给IP层,就会导致数据包无法交给指定的进程。IP首部能够帮助我们寻...

今日谈:数据报能否直接交给IP层而不经过UDP、TCP与UDP的首部格式

一、数据报能否直接交给IP层而不经过UDP?有哪些东西是UDP能够提供而IP不能够提供的?

不能够直接将数据报交给IP层,因为UDP层把应用层传来的数据(比如源端口、目的端口这些信息)进行了封装才给IP层的,而IP层是没有源端口、目的端口这些信息的。如果直接给IP层,就会导致数据包无法交给指定的进程。

IP首部能够帮助我们寻找目的主机和进行报头检错,而要寻找目的进程,我们就只能通过UDP首部来获取目的端口。另外UDP提供复用与分用功能,还能够对数据部分进行差错检测。

二、TCP与UDP的首部格式

我们需要重点关注其有哪些字段及其长度。

UDP

UDP报文的首部字段非常简单,它由四个字段构成,每个字段占2个字节。

分别是源端口、目的端口、长度、检验和。

其中,源端口是源端口号、目的端口是目的端口号,长度就是UDP用户数据报的长度了咯,检验码放置的是差错检验码。

这里注意在计算检验和的时候,UDP与IP计算差错检验和有些不同,UDP是把首部和数据部分放在一起计算检验和,并且计算检验和时还需要加上12个字节的伪首部。

伪首部由第一个字段源IP地址、第二个字段目的IP地址、第五个字段UDP用户数据报的长度,第三个字段是全0,第四个字段是协议字段的值17.

TCP

TCP的字段就比较多了,而且其长度是不固定的,不过其最小长度是20字节。

其固定字段有:源端口、目的端口、序号、确认号、数据偏移、保留、紧急URG、确认ACK、推送PSH、复位RST、同步SYN、终止FIN、窗口、检验和、紧急指针和选项、填充。

下面介绍几个比较重要的字段。

源端口和目的端口分别占2个字节。

序号占4个字节,确认号占4个字节。

数据偏移:占4位,它其实就是首部的长度。其单位是4字节,因为其最大可是15,所以TCP首部的最大长度是60字节。

保留:占6位。

接下来是6个标志位,都占1位:

紧急URG:置1用于告诉接收方此报文段有紧急数据。与后面的紧急指针配合使用。紧急指针占2个字节,用于告诉本报文段的紧急数据有多少字节。

确认ACK:为1时确认号才有效。为0则无效。

推送PSH:此字段置1时,可以将数据马上发送出去,不需要积累。

复位RST:此位置1时,表明TCP连接出现严重差错,需要重新建立连接。

同步SYN:

SYN=1,ACK=0表明这是请求连接报文。

SYN=1,ACK=1表明这是对方同意建立连接的连接接受报文。

终止FIN:此位置1,表示数据发送完毕,释放连接。

窗口:占两字节。窗口字段反应了接收方的接收缓存空间大小。

检验和:占2字节。和UDP一样,把首部和数据部分放在一起计算检验和,并且计算检验和时还需要加上12个字节的伪首部。伪首部由第一个字段源IP地址、第二个字段目的IP地址、第五个字段TCP用户数据报的长度,第三个字段是全0,第四个字段是6.

选项:长度可变。其最大报文段长度MSS的长度为数据字段的长度。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。