日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络 - UDP/TCP、IP、MAC报文协议格式

發布時間:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络 - UDP/TCP、IP、MAC报文协议格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、計算機網絡

計算機網絡體系結構:

現在多是參考(c)五層協議。

每層比較常見的協議:

層常見的協議
應用層DNS、FTP、TELNET、HTTP、SMTP、POP3、DHCP、SNMP
運輸層TCP、UDP? ? ?
網絡層IPv4、IPv6、ICMP、ICMPv6、ARP、MPLS
數據鏈路層(MAC)CSMA/CD、PPP
物理層以太網、調制解調器、電力線通信(PLC)、光纖、同軸電纜、雙絞線

2、數據鏈路層(MAC層)

?以太網V2的MAC幀格式:

MAC幀頭部結構體定義:

// u_char: 1字節,8位 // u_short: 2字節,16位 // u_int: 4字節,32位// 以太網幀數據頭部 - 固定 14 個字節 typedef struct ethernet_header {u_char dest_mac[6]; // 目的地址(MAC地址)u_char src_mac[6]; // 源地址(MAC地址)u_short type;// 類型字段,用來標志上一層使用的協議,以便把MAC幀數據交給上一層的這個協議(IP:0x0800; ) }ETHERNET_HEADER;

3、網絡層

?IP數據包的格式:

?首部長度的單位為32位字(4 bytes),所以需要 *4?計算有多少個字節長度。

總長度的單位為字節。

IP數據包頭部結構體定義:

// 網絡層 IP數據包 首部 - 固定 20 個字節 typedef struct ip_header {u_char ver_ihl;// 版本(4 bits)+首部長度(4 bits), 首部長度單位是32位字,所以需要 *4 計算有多少個字節u_char tos;// 區分服務(Type of Service, 8 bits)u_short tlen;// 總長(Total Length, 16 bits),=首部長度+數據長度,最大為65535字節(2^16-1)u_short identify;// 標識(Identify, 16 bits),IP軟件在存儲器中維持的一個計數器,每產生一個數據包,計數器就加1(不是序號)u_short flags_fo;// 標志位(Flags 3 bits)+段偏移量(Fragment offset 13 bits)u_char ttl;// 存活時間(Time to Live, 8 bits)u_char proto;// 協議(Protocol, 8 bits),指出此數據報攜帶的數據是何種協議,以便目的主機IP層知道應將數據交由哪個協議進行處理u_short crc;// 首部校驗和(Header checkSum, 16 bits)u_long src_addr;// 源地址(Source Address, 32 bits)u_long des_addr;// 目的地址(Destination Address, 32 bits)//u_int op_pad; // 選項與填充(Option * Padding, 32 bits) }IP_HEADER;

4、傳輸層

傳輸層主要有UDP協議以及TCP協議。

4.1 UDP協議

UDP時面向報文的:

UDP用戶數據的首部格式:

長度:UDP用戶數據報的長度(首部 + 數據部分),單位為字節。?

UDP數據包頭部結構體定義:

// 傳輸層 UDP數據包 首部 - 固定首部 8 個字節 typedef struct udp_header {u_short src_port; // 源端口(Source Port, 16 bits)u_short des_port; // 目的端口(Destination Port, 16 bits)u_short len; // UDP數據包長度(Datagram Length, UDP用戶數據包的長度,單位為字節)u_short crc; // 校驗和(CheckSum, 16 bits) }UDP_HEADER;

4.2 TCP協議

TCP報文段的首部格式:

需要注意的是,“數據偏移”實際上就是TCP報文首部的長度,單位為 32位字(4 bytes)?

TCP數據包頭部結構體定義:

// 傳輸層 TCP數據包 首部 - 固定首部 20 個字節 typedef struct tcp_header {u_short src_port;// 源端口(2 bytes = 16 bits)u_short des_port;// 目的端口(2 bytes = 16 bits)u_int seq_num;// 序號(4 bytes = 32 bits)u_int ack_num;// 確認號(4 bytes = 32 bits)u_short hl_resv;// 首部長度(4 bits)+保留(6 bits)+ URG + ACK + PSH + RST + SYN + FIN(各 1 bit)u_short wind;// 窗口(2 bytes = 16 bits)u_short check_sum;// 校驗和(2 bytes = 16 bits)u_short ur_point;// 緊急指針(2 bytes = 16 bits)//u_int op_pad; // 選項與填充(Option * Padding, 32 bits) }TCP_HEADER;

總結

以上是生活随笔為你收集整理的计算机网络 - UDP/TCP、IP、MAC报文协议格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。