哪位大哥能给我解释一下十六进制格式的UDP首部?

weicf01 2004-01-02 12:32:54
很多地方都有这道题,不过我不知道具体怎么做,我知道UDP首部格式,
但是不知道哪些十六进制数对应哪个首部字段值,希望兄弟们给我详细讲讲,
谢谢!

下面是打印出的十六进制格式的UDP首部
06 32 00 0D 00 1C E2 17
a.源端口是什么?
b.目的地址是什么?
c.用户数据报的总长度是多少?
e.数据的总长度是多少?
d.该分组是从客户发给服务器还是反过来?
f.客户进程是什么?
...全文
1586 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoxianfeng 2004-01-05
  • 打赏
  • 举报
回复
supp->ip_head.tcp.th_sport = htons(supp->src_port);
supp->ip_head.tcp.th_dport = htons(supp->dst_port);
supp->ip_head.tcp.th_seq = htonl(supp->sequ);
supp->sequ += 1;
supp->ip_head.tcp.th_ack = 0;
supp->ip_head.tcp.th_off = 5;
supp->ip_head.tcp.th_x2 = 0;
supp->ip_head.tcp.th_flags = 0x02;
supp->ip_head.tcp.th_urp = 0;
supp->ip_head.tcp.th_win = htons(7512);
supp->ip_head.tcp.th_sum = 0;
supp->ip_head.tcp.th_sum = tcp_check1((char*)&(supp->ip_head.tcp), sizeof(struct tcphdr) , supp->ip_head.ip.saddr, supp->ip_head.ip.daddr);

#ifdef __FAVOR_BSD
struct udphdr {
u_int16_t uh_sport; /* source port */
u_int16_t uh_dport; /* destination port */
u_int16_t uh_ulen; /* udp length */
u_int16_t uh_sum; /* udp checksum */
};
#else

struct udphdr {
u_int16_t source;
u_int16_t dest;
u_int16_t len;
u_int16_t check;
};
#endif

#define SOL_UDP 17 /* sockopt level for UDP */
udp的以此类推



nkwesley 2004-01-05
  • 打赏
  • 举报
回复
同意楼上
tgame 2004-01-04
  • 打赏
  • 举报
回复
直接接收的数据是网络字节顺序的,跟windows下的主机字节顺序是不一样的
lbskeleton 2004-01-03
  • 打赏
  • 举报
回复
UDP_HEADER
______________________________________________________
0______________________16___________________________31
___发送端口号(16bit)____|____接收端口号(16bit)_____|
_______包的长度_________|_________检查和_____________|

其他的上面的老兄都说了!
rea1 2004-01-02
  • 打赏
  • 举报
回复
UDP标准http://www.freesoft.org/CIE/RFC/768/

源端口是0X0632 = 1586
目的端口是0X000D = 14
总长度是是0X001C = 29 BYTES
tianxiangyuan 2004-01-02
  • 打赏
  • 举报
回复
在讲解TCP/IP协议的三卷书中,有详细的说明。也可以参考Linux中的网络协议代码。

4,387

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧