{"id":1967,"date":"2017-03-23T20:53:28","date_gmt":"2017-03-23T12:53:28","guid":{"rendered":"http:\/\/cn.hostease.com\/xueyuan\/?p=1967"},"modified":"2017-03-23T20:53:28","modified_gmt":"2017-03-23T12:53:28","slug":"ip%e5%a4%b4%ef%bc%8ctcp%e5%a4%b4%ef%bc%8cudp%e5%a4%b4%ef%bc%8cmac%e5%b8%a7%e5%a4%b4%e5%ae%9a%e4%b9%89","status":"publish","type":"post","link":"https:\/\/cn.hostease.com\/xueyuan\/jishu\/qianduan\/ip%e5%a4%b4%ef%bc%8ctcp%e5%a4%b4%ef%bc%8cudp%e5%a4%b4%ef%bc%8cmac%e5%b8%a7%e5%a4%b4%e5%ae%9a%e4%b9%89\/","title":{"rendered":"IP\u5934\uff0cTCP\u5934\uff0cUDP\u5934\uff0cMAC\u5e27\u5934\u5b9a\u4e49"},"content":{"rendered":"<p><strong>\u4e00\u3001MAC\u5e27\u5934\u5b9a\u4e49<\/strong><\/p>\n<p>\/*\u6570\u636e\u5e27\u5b9a\u4e49\uff0c\u593414\u4e2a\u5b57\u8282\uff0c\u5c3e4\u4e2a\u5b57\u8282*\/<br \/>\ntypedef struct _MAC_FRAME_HEADER<br \/>\n{<br \/>\nchar m_cDstMacAddress[6];\u00a0\u00a0\u00a0\u00a0\/\/\u76ee\u7684mac\u5730\u5740<br \/>\nchar m_cSrcMacAddress[6];\u00a0\u00a0\u00a0\u00a0\/\/\u6e90mac\u5730\u5740<br \/>\nshort m_cType;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\/\/\u4e0a\u4e00\u5c42\u534f\u8bae\u7c7b\u578b\uff0c\u59820x0800\u4ee3\u8868\u4e0a\u4e00\u5c42\u662fIP\u534f\u8bae\uff0c0x0806\u4e3aarp<br \/>\n}__attribute__((packed))MAC_FRAME_HEADER,*PMAC_FRAME_HEADER;<\/p>\n<p>&nbsp;<\/p>\n<p>typedef struct _MAC_FRAME_TAIL<br \/>\n{<br \/>\nunsigned int m_sCheckSum;\u00a0\u00a0\u00a0\u00a0\/\/\u6570\u636e\u5e27\u5c3e\u6821\u9a8c\u548c<br \/>\n}__attribute__((packed))MAC_FRAME_TAIL, *PMAC_FRAME_TAIL;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u4e8c\u3001IP\u5934\u7ed3\u6784\u7684\u5b9a\u4e49<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\/*IP\u5934\u5b9a\u4e49\uff0c\u517120\u4e2a\u5b57\u8282*\/<br \/>\ntypedef struct _IP_HEADER<br \/>\n{<br \/>\nchar m_cVersionAndHeaderLen;\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\/\/\u7248\u672c\u4fe1\u606f(\u524d4\u4f4d)\uff0c\u5934\u957f\u5ea6(\u540e4\u4f4d)<br \/>\nchar m_cTypeOfService;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000 \/\/ \u670d\u52a1\u7c7b\u578b8\u4f4d<br \/>\nshort m_sTotalLenOfPacket;\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\/\/\u6570\u636e\u5305\u957f\u5ea6<br \/>\nshort m_sPacketID;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\u3000\u3000 \/\/\u6570\u636e\u5305\u6807\u8bc6<br \/>\nshort m_sSliceinfo;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u00a0 \/\/\u5206\u7247\u4f7f\u7528<br \/>\nchar m_cTTL;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\/\/\u5b58\u6d3b\u65f6\u95f4<br \/>\nchar m_cTypeOfProtocol;\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000 \/\/\u534f\u8bae\u7c7b\u578b<br \/>\nshort m_sCheckSum;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\u3000 \/\/\u6821\u9a8c\u548c<br \/>\nunsigned int m_uiSourIp;\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\/\/\u6e90ip<br \/>\nunsigned int m_uiDestIp;\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\/\/\u76ee\u7684ip<br \/>\n} __attribute__((packed))IP_HEADER, *PIP_HEADER ;<\/p>\n<p><strong>\u4e09\u3001tcp\u5934\u7ed3\u6784\u5b9a\u4e49<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\/*TCP\u5934\u5b9a\u4e49\uff0c\u517120\u4e2a\u5b57\u8282*\/<br \/>\ntypedef struct _TCP_HEADER<br \/>\n{<br \/>\nshort m_sSourPort;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\u3000\/\/ \u6e90\u7aef\u53e3\u53f716bit<br \/>\nshort m_sDestPort;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\u3000\u00a0\/\/ \u76ee\u7684\u7aef\u53e3\u53f716bit<br \/>\nunsigned int m_uiSequNum;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\/\/ \u5e8f\u5217\u53f732bit<br \/>\nunsigned int m_uiAcknowledgeNum;\u00a0\u00a0\/\/ \u786e\u8ba4\u53f732bit<br \/>\nshort m_sHeaderLenAndFlag;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\/\/ \u524d4\u4f4d\uff1aTCP\u5934\u957f\u5ea6\uff1b\u4e2d6\u4f4d\uff1a\u4fdd\u7559\uff1b\u540e6\u4f4d\uff1a\u6807\u5fd7\u4f4d<br \/>\nshort m_sWindowSize;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000\/\/ \u7a97\u53e3\u5927\u5c0f16bit<br \/>\nshort m_sCheckSum;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\u3000 \/\/ \u68c0\u9a8c\u548c16bit<br \/>\nshort m_surgentPointer;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000 \/\/ \u7d27\u6025\u6570\u636e\u504f\u79fb\u91cf16bit<br \/>\n}__attribute__((packed))TCP_HEADER, *PTCP_HEADER;<br \/>\n\/*TCP\u5934\u4e2d\u7684\u9009\u9879\u5b9a\u4e49<\/p>\n<p>kind(8bit)+Length(8bit\uff0c\u6574\u4e2a\u9009\u9879\u7684\u957f\u5ea6\uff0c\u5305\u542b\u524d\u4e24\u90e8\u5206)+\u5185\u5bb9(\u5982\u679c\u6709\u7684\u8bdd)<\/p>\n<p>KIND = 1\u8868\u793a \u65e0\u64cd\u4f5cNOP\uff0c\u65e0\u540e\u9762\u7684\u90e8\u5206<\/p>\n<p>2\u8868\u793a maximum segment\u00a0\u00a0 \u540e\u9762\u7684LENGTH\u5c31\u662fmaximum segment\u9009\u9879\u7684\u957f\u5ea6\uff08\u4ee5byte\u4e3a\u5355\u4f4d\uff0c1+1+\u5185\u5bb9\u90e8\u5206\u957f\u5ea6\uff09<\/p>\n<p>3\u8868\u793a windows scale\u00a0\u00a0\u00a0\u00a0 \u540e\u9762\u7684LENGTH\u5c31\u662f windows scale\u9009\u9879\u7684\u957f\u5ea6\uff08\u4ee5byte\u4e3a\u5355\u4f4d\uff0c1+1+\u5185\u5bb9\u90e8\u5206\u957f\u5ea6\uff09<\/p>\n<p>4\u8868\u793a SACK permitted\u00a0\u00a0\u00a0 LENGTH\u4e3a2\uff0c\u6ca1\u6709\u5185\u5bb9\u90e8\u5206<\/p>\n<p>5\u8868\u793a\u8fd9\u662f\u4e00\u4e2aSACK\u5305\u00a0\u00a0\u00a0\u00a0 LENGTH\u4e3a2\uff0c\u6ca1\u6709\u5185\u5bb9\u90e8\u5206<\/p>\n<p>8\u8868\u793a\u65f6\u95f4\u6233\uff0cLENGTH\u4e3a10\uff0c\u542b8\u4e2a\u5b57\u8282\u7684\u65f6\u95f4\u6233<br \/>\n*\/<\/p>\n<p>typedef struct _TCP_OPTIONS<br \/>\n{<br \/>\nchar m_ckind;<br \/>\nchar m_cLength;<br \/>\nchar m_cContext[32];<br \/>\n}__attribute__((packed))TCP_OPTIONS, *PTCP_OPTIONS;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u56db\u3001UDP\u5934\u7ed3\u6784\u7684\u5b9a\u4e49<\/strong><\/p>\n<p>\/*UDP\u5934\u5b9a\u4e49\uff0c\u51718\u4e2a\u5b57\u8282*\/<\/p>\n<p>typedef struct _UDP_HEADER<br \/>\n{<br \/>\nunsigned short m_usSourPort;\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\/\/ \u6e90\u7aef\u53e3\u53f716bit<br \/>\nunsigned short m_usDestPort;\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\/\/ \u76ee\u7684\u7aef\u53e3\u53f716bit<br \/>\nunsigned short m_usLength;\u00a0\u00a0\u00a0\u00a0\u3000\u3000\u3000\u3000\/\/ \u6570\u636e\u5305\u957f\u5ea616bit<br \/>\nunsigned short m_usCheckSum;\u00a0\u00a0\u00a0\u00a0\u3000\u3000\/\/ \u6821\u9a8c\u548c16bit<br \/>\n}__attribute__((packed))UDP_HEADER, *PUDP_HEADER;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001MAC\u5e27\u5934\u5b9a\u4e49 \/*\u6570\u636e\u5e27\u5b9a\u4e49\uff0c\u593414\u4e2a\u5b57\u8282\uff0c\u5c3e4\u4e2a\u5b57\u8282*\/ typedef struct _MAC_FR &#8230; <a title=\"IP\u5934\uff0cTCP\u5934\uff0cUDP\u5934\uff0cMAC\u5e27\u5934\u5b9a\u4e49\" class=\"read-more\" href=\"https:\/\/cn.hostease.com\/xueyuan\/jishu\/qianduan\/ip%e5%a4%b4%ef%bc%8ctcp%e5%a4%b4%ef%bc%8cudp%e5%a4%b4%ef%bc%8cmac%e5%b8%a7%e5%a4%b4%e5%ae%9a%e4%b9%89\/\" aria-label=\"\u9605\u8bfb IP\u5934\uff0cTCP\u5934\uff0cUDP\u5934\uff0cMAC\u5e27\u5934\u5b9a\u4e49\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[8,11],"tags":[],"class_list":["post-1967","post","type-post","status-publish","format-standard","hentry","category-qianduan","category-chengxujiaoben"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/1967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/comments?post=1967"}],"version-history":[{"count":1,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/1967\/revisions"}],"predecessor-version":[{"id":1968,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/1967\/revisions\/1968"}],"wp:attachment":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/media?parent=1967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/categories?post=1967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/tags?post=1967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}