当前位置: 技术问答>linux和unix
链路层数据帧问题
来源: 互联网 发布时间:2016-05-05
本文导语: 我想问一下,链路层数据帧是不是仅仅是网络层数据包加个帧头和FCS,其中的数据段编码方式有没有变,从网络中传输过来的数据,在网络层是GB2312的编码方式,但我从链路层截获的数据帧的数据段编码方式好像不是...
我想问一下,链路层数据帧是不是仅仅是网络层数据包加个帧头和FCS,其中的数据段编码方式有没有变,从网络中传输过来的数据,在网络层是GB2312的编码方式,但我从链路层截获的数据帧的数据段编码方式好像不是GB2312的,想请问大虾链路层数据帧编码方式,如何把网路层的GB2312的编码转换成链路层帧的编码方式,谢谢!!!!!!!!!!!!!!
|
TCP/UDP, IP, 链路层是不会对你发送数据再做编码的,你在应用程序里面发送的什么编码,接收到的就是什么编码!
不过要注意一点的就是本机字节序和网络字节序的转换!
good luck!
不过要注意一点的就是本机字节序和网络字节序的转换!
good luck!
|
网络协议任何一层都不会去修改其有效载荷的
比如tcp不会修改你发送的tcp数据 而ip不会修改ip数据包括tcp/udp头的数据
如果发生改变那么是说明你2台机器的字节序不同
或者是你在发送接受的时候作了什么不应该作的
比如tcp不会修改你发送的tcp数据 而ip不会修改ip数据包括tcp/udp头的数据
如果发生改变那么是说明你2台机器的字节序不同
或者是你在发送接受的时候作了什么不应该作的
|
网络通讯时,通讯协议中的内容不采用GB2312编码,这是完全两个概念。
所有数据包分为链路层数据头+网络层数据头+传输层数据头+payload(这里面包含了各种应用层数据头。。。)
其中每一个头中的成员的字节顺序是网络字节顺序,在操作时根据自己的需要改变一下变成主机顺序。
所有数据包分为链路层数据头+网络层数据头+传输层数据头+payload(这里面包含了各种应用层数据头。。。)
其中每一个头中的成员的字节顺序是网络字节顺序,在操作时根据自己的需要改变一下变成主机顺序。
|
链路层只是给IP层(以IP协议为例)的数据包加上帧头帧尾,如果IP包过大,超过了链路层帧的大小,那么就把一个IP包分成多个帧处理,上层的数据对于连路层来说是绝对透明的,只做字节切割。其实这些东西我也就是重复书上的东西而已,你只要认真去看书,肯定都会有。楼上的"链路层关键字匹配"我听着很新鲜,第一次听人这么说哦。
整个网络协议分层设计的原则之一就是唯一下层的处理原语不会去关心上层协议的载荷。我觉得你的思路就不对,貌似别人都没从这个角度去考虑过。
|
TCP/IP详解 + sniffer 可以解决你的问题。。。