计算机网络中各种报文、HEADER的读法
计算机里到处都是格式,规范。比如《操作系统真象还原》里提到的“魔数”
直接出现的一个数字,只要其意义不明确,感觉很诡异,就称之为魔数。
拿elf文件头举例
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
这个Magic后面的一长串就是魔数,elf解析器(通常是程序加载器)用它来校验文件的类型是否是elf。
另一个例子是MBR的最后两个字节内容。主引导记录(MBR)最后的两个字节的内容是0x55,0xaa,这表明这个扇区里面有可加载的程序,BIOS就用它来检验该扇区是否可引导。
1
https://www.gigamon.com/content/dam/resource-library/english/guide---cookbook/gu-bpf-reference-guide-gigamon-insight.pdf
包括:
Berkeley Packet Filter语法
TCP HEADER – RFC 793
UDP HEADER – RFC 768
ICMP HEADER – RFC 792
IPv4 HEADER – RFC 791
IPv6 HEADER – RFC 2460
2
DNS(RFC 1035)报文结构
https://www2.cs.duke.edu/courses/fall16/compsci356/DNS/DNS-primer.pdf
COMPSCI 356: Computer Network Architecture这门课挺难的
3 RFC文档法
找到对应的RFC号(可能会有一大堆,找到关键的那些),然后去提供RFC文档的网站去查。
阅读RFC文档来了解报文报头,这一方法的缺点是:RFC文档介绍性的文字有点多,很难读。
可以按照这个url格式去ietf里查。
https://tools.ietf.org/pdf/rfc1035.pdf
https://tools.ietf.org/html/rfc1035
https://tools.ietf.org/rfc/rfc1035.txt
觉得看这些RFC文档还不够过瘾的可以去下面这个网站
http://www.cnpaf.net/class/rfcall/