+ -
当前位置:首页 → 问答吧 → UDP 伪首部 校验和

UDP 伪首部 校验和

时间:2010-08-25

来源:互联网

今天重新读了一下TCP/IP详解,对UDP伪首部不是很理解。在发送端计算校验和也包括伪首部吗,如果包括的话,这个时候数据还没有进入IP层,UDP伪首部的原IP是如何得到的哪?不是数据进入IP层才将选择的IP地址放入数据包头部吗?

作者: xht8015   发布时间: 2010-08-25



QUOTE:
今天重新读了一下TCP/IP详解,对UDP伪首部不是很理解。在发送端计算校验和也包括伪首部吗


是包含的。



QUOTE:
如果包括的话,这个时候数据还没有进入IP层,UDP伪首部的原IP是如何得到的哪?


你既然都需要发送UDP的数据包了,还不知道IP地址? 你建立一个 UDP 的socket时,需要填写scoket的哪些字段呢?




QUOTE:
不是数据进入IP层才将选择的IP地址放入数据包头部吗?  


你说的这个应该是 skb->data 在不同的层指向不同缓冲位置的问题吧。

作者: Godbach   发布时间: 2010-08-25

目的IP地址肯定是知道的,但是源IP(发送端)是如何知道的哪?不是进入IP层,通过路由模块选择一个IP地址吗?

作者: xht8015   发布时间: 2010-08-25



QUOTE:
目的IP地址肯定是知道的,但是源IP(发送端)是如何知道的哪?不是进入IP层,通过路由模块选择一个IP地址吗 ...
xht8015 发表于 2010-08-25 11:19


查路由之前肯定需要知道目的IP啊。
请问LZ,你写一个UDP socket程序的时候,在调用发送消息的函数时,要把那些参数给指定了?

作者: Godbach   发布时间: 2010-08-25

目的IP,目的端口,源端口和源IP可以让内核去选择。

作者: xht8015   发布时间: 2010-08-25

你的意思是说UDP在把数据传到IP层时源IP地址已经是确定好了?

作者: xht8015   发布时间: 2010-08-25

你在应用层不就已经指定了目的IP和端口了吗

作者: Godbach   发布时间: 2010-08-25

版主,我知道指定目的IP和端口了,但是我要说的是源IP是如何确定的?

1.jpg (21.8 KB)

下载次数:0

2010-08-25 11:47

作者: xht8015   发布时间: 2010-08-25

了解一下socket对应的内核态实现。

作者: Godbach   发布时间: 2010-08-25