Trong hệ thống mạng, dữ liệu được đóng gói thành các frame vì vậy khóaluận này tập trung xử lý các Ethernet frame, IPv4 packet, và UDP datagram, đồng thời phân tích các trường thông tin
Trang 1ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUAT MAY TÍNH
LÊ HOANG VAN - 20522143 NGUYEN THANH TUNG - 20522131
KHOA LUAN TOT NGHIEP
HIỆN THUC MOT HE THONG SOC TÍCH HOP LOI IP
EHTHERNET 1GBPS HO TRO GIAO THUC ICMP
TREN FPGA
INTEGRATION OF AN ETHERNET IP CORE WITH 1GBPS
SUPPORTING PROTOCOL INTO A SYSTEM ON CHIP
IMPLEMENTED ON FPGA
CU NHAN KY THUAT MAY TINH
GIANG VIEN HUONG DAN
ThS PHAM THANH HUNG
TS TRAN PHUOC XUAN
TP HO CHÍ MINH, 2024
Trang 2LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến thầy hướng dẫn — ThS.Phạm Thanh Hùng và TS Trần Phước Xuân, các thầy đã tận tình trong quá trìnhlàm khóa luận, cung cấp các trang thiết bị, cũng như dành nhiều thời gian chỉnh sửa,góp ý giúp em có thé hoàn thành khóa luận một cách tốt dep
Bên cạnh đó, em cũng xin gửi lời cảm ơn đến Thầy/Cô và bạn bè khoa Kỹ
thuật máy tính nói riêng và trường Dai học Công nghệ Thông tin — Dai học quốc giaThành phó Hồ Chí Minh nói chung đã tận tình giảng dạy, truyền đạt các kiến thức
vô cùng bé ích, cùng đồng hành và hỗ trợ trong suốt quá trình học tập tại trường Daihọc Công nghệ Thông tin Những kiến thức và kinh nghiệm quý báu đó là tài sản vôgiá đối với quãng đường tương lai của em
Trong suốt quá trình thực hiện đề tài khóa luận, em không thể tránh khỏinhững khó khăn và sai sót do một số giới hạn liên quan đến chuyên ngành chuyênsâu Vì thế, mong các quý Thay/Cé và các bạn sẽ thông cam, và có thé đóng góp ýkiến dé dé tài khóa luận này được phát triển và hoàn thiện hơn trong tương lai
Một lần nữa em xin chân thành cảm ơn
TP Hồ Chí Minh, ngày 25 tháng 05 năm 2024
Sinh viên thực hiện
Lê Hoàng Văn
Nguyễn Thanh Tùng
Trang 3MỤC LỤC
Chương I GIỚI THIỆU 2-2 2£+2£+SE+EEEEE£EEEEEEEEEEEEEEEEEEerkerrkrree 2
1.1 LY do chọn đề tài -¿-5¿- 55c 2S 22xSEE2E12221221122112711211 221211 cEerre 2
1.2 Mục tiêu và phương pháp thực hiện - 5 c5 3+ £++sEeeeseerrss 2
mm lo Ö 2
1.2.2 Phương pháp thực hiỆn -.- G5 5 3283 ESEeEeeererrerrsereree 3
Chương 2 TONG QUAN VE ETHERNET -c:-55ccccccxvvrerrrrrrrrrrrree 4
2.1 Mô hình OSD oc cccccecsseseseseseenesesesesesesnssesesesesescsnensseseseseseeneneneseseees 4
2.1.1 Tầng 1: Tang vat lý (Plysical Layer) c.ccescsscssssseeseesseseeseeseeseeseeseeseeees 52.1.2 Tầng 2: Tang liên kết dữ liệu (Data Link Layer) - 52.1.3 Tầng 3: Tầng mang (Network LaY€T) 2 2 2+c2+cz+£+zEczxzxecree 52.1.4 Tầng 4: Tang giao vận (Transport Layer) -s:©s+sscs++cscze- 52.1.5 Tang 5: Tang phiên (Session Layer) 2 2©s2+s2+sz+x+zxezxzxecxee 62.1.6 Tầng 6: Tầng trình diễn (Presentation Layer) -: -s+-: 62.1.7 Tầng 7: Tang ứng dụng (Application Layer) -:- sec: 6
"N00 009 6 2.3 Dinh dang 261 tine cee - 7
2.4 Mac address Oooo 8 2.5 Media Independent Interface LÍOÌ, 2s +tSt£t+E£xexeEeEEtEvexexexerrrrrerxrrrree 9
Trang 4Chương 3 GIAO THUC SỬ DỤNG TRONG LOI IP ETHERNET L7
3.1 UDP [Ï, 222221221 21122122121122122121121121121121111211.11 1c ty 17
3.1.1 Cách thức hoạt động của IDFP 5 3c 13+ *ssEseesrserseeeere 17
3.1.2 Cau trúc UDP header 2 ©5¿++<+EE£EE2EEEEEEEEEEEEerkrrrrrrkrree 18
3.2 IPv4 LồÏ, 2.221 2122221 2121127 22112112T111.1111211.11 1.1.1 cre 18
3.2.1 _ Cách biểu diễn địa chỉ + ©5¿+ceEkcEEEEEEEEEEEEEEEEECrrrrrrree 193.2.2 Cấu trúc IPv4 header :- +: 5¿+2++cxeEE2EEEEEEESExerkrrreerkrree 19
3.3 na 3 22
3.3.1 Cách thức hoạt động của ARP - -SĂc + ssieirsrrrereee 22
3.3.2 Cau trúc gói ARP -c.SEt 2 E2 1211221111111, 23
3.5.2 ICMPdata S2- 2c 2t E22 2211211211211 1121k cre.29
4.1 Cấu trúc module ICMP ccsssessesssessesssessessessuessessesssessessusssecsessusssessessseesess 31
4.1.1 ICMP rx/ICMP _tx 5cc 2c E2 E2 E12 cEErrrrree 31
4.1.2 ICMP checksum cccccccccccccccssssssssssssssssecceccccccceccseeeeeaeaaaaaaaens 31
4.2 Cau trúc lõi IP Ethernet c.ccccccscccssesseessessessssssesssssessecssssessessesssessesseessess 32
4.2.1 MAÁC Ă 2221221222222 12112121112 errree 36 4.2.2 Eth axis rx/Eth_ aXIS_ EX -.ccnn HH nnn ng 1x keg 39
Trang 5“` 39
"ha 40
¬' ` 41
Chương 5 KIEM TRA THIET KE TREN PHAN MEM MO PHONG /19)8)5863)000712775 42
PON DPR '.%= Đi:ÂẦẦ)Ầ^ố)Ả 42
"1 9; 42
“~ 9 .Ả 45
5.2 Eth_axis_rx/Eth aXIS_ẨX Ă.Ặ Ăn ng ng rư47 5.2.1 Eth aXIS TX QQ DO nnnnnkkkkv vế47 5.22 Eth axIs bẤW⁄2⁄ xấcc 48
53.3 ARP 2 6 57 e e Ễ VĂĂ-.-SAS Sen seeeserse49 ¬=.nG '.:(á: Œ (/ ` ` ẽ 49
5.3.2 ARHBE mmm mmm / eeSS 50 5.3.3 ARP _ Cache n ee eeeeeesseesecccccccccccccccccccscsssssssessssseeeececcececcecceeeeeeaaaaaaaanens 51 `.“ c 53
".' 56
"h=' 56
5.4.2 T ẦÂ^LÂẨỐ 60 "9Ð 61
>0 —— 61
5.3.2 UDP (X HH TH TH HH HH ng 64 5.5.3 UDP checksum CC EE E3 E9 1111k kkkkv ve 65 5.6 ICMP 67
Trang 6Chương 6 XÂY DỰNG HE THONG SOC ccccsscsscssesssessessesssseseesssessesseeseesees 73
6.1 Luỗồng dit iGu coececececcecccsccsessessessessessessessesscssessessesscssessssuessessesssssssesseeseeaee 73
6.2 Ethernet 1G/2.5G PCS/PMA or SGMII IP LogiCORETM -. 73
6.3 Xây dựng hệ thống trên phần mềm Vivado - 2-2 s+ss+sz+cz+s+2 746.4 Phan tích hệ thống :- + ++S+SEE+EEEEEEEEEEEEEEEEEEEEEEEEEkrrkrrkrree 75
6.4.1 Dinh thời hệ thống :- 2+ E+SE+EE+EEEEEEEEEErrrrrrrreres 75
Chương 7 KIÊM TRA THIET KE TREN BOARD ¿¿©sz55s+2 79
TA Board VirtexX 7 (VC707) 0 4 79
7.1.1 V707 Board Block Diagram - - + sssxskseeeersersrseeske 79
7.1.2 Chan kết nối của Ethernet với PHY Device -¿ 2-c5cc5+ 80
7.2 Thiết lập cho quá trình kiỂm tra - + ©+©+++++x++zx++rxrsrxrrrxee 83
7.2.1 Cấu hình mạng trên PC 2 ++++E++EE+EE+EE2EEEEEEEEEEEErrrrrrei 837.2.2 Phần mềm hỗ trợ quá trình kiểm tra -2¿ 2s sz+sz+z++z+z 847.3 Kết quả kiểm tra -:- 2+ St EEE1EE1811211211211711211 2111.110 85
7.3.1 ICMP & AXI4-LI(e LH HH it 86
Trang 77.3.2 UDP & AXI4-LI(€ 1S S HH ngư 88
7.3.3 Gửi dữ liệu trong tệp sang IP Ethernet ¿<< <-<<<<<++ 92
Chương 8 KẾT LUẬN ¿52 E2S2+EE2EEEEEEEEEEEEEErkrrrrrrrrree 94
8.2 So sánh với khóa luận tTƯỚC + c1 1123222111111 11115851112 94
8.3 Hướng phát triỀn - ¿- 2SEEE+EE+EEEEE2EEEE12E121121171121111 111.1 ce 95
Trang 8Cấu trúc kênh truyền chung AXT4 LÍTÌ, 2 2 s+Ss+S£2EE+EE+E£+E£2E£zEzEzzxez 13
Các tín hiệu của AXI4-ÌLIfe - -Ăc SE 2211113112231 1 111511 eree 14
Cấu trúc UDP header :-©2+22++t22EYYt2EEEvttEkvrrrrtrrrrrrrrrrrrre 18Biểu diễn dia Chic eeccssesessssescessseeeessneecssnsecessnseeesnneecesnseeessneeesnneeessnneeee 19Cấu trúc IPv4 header esecssssscssssessesseeeessnsecessneeesnneseesnneeessnneeesneteensneeee 20
Cách hoạt động của ARP prOtOCỌ - 5 S2 *S* + E+vEEeexeereeeseerserrs 22
Cấu trúc gĩi tin ARP - - ©2221 EEEEEE9E12E1EE121121122121111211 111.1 xe 23Kiến trúc của giao thức Ethernet - ¿5s s+S++E++E+EeEzErrrrrrerree 25
Cấu trúc khung giao thức Ethernet - 2 2 2 s2 s+z++x++xzzzxszse2 26
Cấu trúc ICMP header +: 255+++t#SEEktttEEkxrrtrkkrrrtrkkrrrrrtrrrrre 29
Máy trạng thái ICMP_checksum s5 5 + + *sE+seeeeerseeeeeee 32
Sơ đồ cau trúc IP Ethernet -¿- 2: 2+++++2x++£++£x+zEerxerxezrxerxez 33
Sơ đồ module UDP_complete :- 2 s¿s+++2+++£x++£x++zx+zrxe+zxs 34
Cấu trúc module MAC - : ©22¿22+vt2££xvttEExvvrerrtrrsrtrrrirrrrrrrrre 36
Quá trình xử lí Ethernet frame - 55222213 *+2 ++evE+esessssexrs 37
Quá trình truyền tải Ethernet frame - 2-2 2 s+++£++s++zzzzzzse2 39
Cấu trúc module ARP -22¿++++ttEEkkEEEEkrrtErrrirrrirriie 40
Quá trình tinh checksum của ÏÍÏP <5 + 3+ E+*vEeseerseseerseeeere 41
MAC _rx thành cơng phân tích gĩi tin (Ï) «+5 s<++s£++s++eex++ 42 MAC _rx thành cơng phân tích gĩi tin (2) ¿- 5+ ++x*++v£see+seeseess 42
MAC rx nhận được tín hiệu gĩi tin lỗi từ nguồn dữ liệu 44
MAC tx đĩng gĩi thành cơng gĩi tin (Ï) - «+ ++<s*++secsseeeseeres 45 MAC tx đĩng gĩi thành cơng gĩi tin (2) - - - 55c sk*++sksseeseeeesee 45
Trang 9Hình 5.8 MAC tx kích thước dit liệu gửi đi bé hơn kích thước tối thiểu (1) 46 Hình 5.9 MAC tx kích thước dữ liệu gửi đi bé hơn kích thước tối thiểu (2) 46
Hình 5.10 Eth_axis_rx thành công phân tích gói tin - 5< ++£+scxseeese 47
Hình 5.11 Eth_axis_rx gói tin DỊ TÚt ØỌII 5 + Series 48
Hình 5.12 Eth axis tx đóng gói thành công gói tin - - 5-55 s++ss++s+sxsss 48
Hình 5.13 ARP_rx thành công phân tích gói fin - -«s + «+ +++ve+seeessees 49
Hình 5.14 ARP_rx gói tin bị cắt ngắn 2¿©22¿©2+c2ESEEESEESEEEEkrerkrrrrerrvee 49
Hình 5.15 ARP_rx header không hợp lỆ - - ¿+ 3+ * + ++vEEeeereeeeseeereesee 50 Hình 5.16 ARP_rx header không hop lỆ - 6 2s 3E *Eskrseeserseesee 51 Hình 5.17 ARP_ cache ghi và đọc bộ NG eee eeccescesececeeseeeceeeeeseeeeeseeneeeseeaeens 51
Hình 5.19 ARP_cache xóa bộ nhớ - ¿+ c6 2221111221111 E155 11511512 52 Hình 5.20 ARP nhận và gửi gói tin ARP (Í) - c5 ScSSxS+EskskEsirerrsrrserreree 53 Hình 5.21 ARP nhận va gửi gói tin ARP (2) oo eee eee eeceeecceseeeseeceeeeseeeeaeeeeeeeeseeeees 53
Hinh 5.22 ARP Truy xuất địa chi MAC chưa được lưu trong bộ nhớ và time out 54
Hình 5.23 ARP time OUK - s26 0 1x19 11219 ng nh nh nh nh 54 Hình 5.24 ARP IP broadcast - - <6 111 ng Hết 55 Hình 5.25 Tính kích thước gói tin theo dữ liệu fes( -5 55+ <++<<++se>+sss2 56 Hình 5.26 IP_rx thành công phân tích gói tin (1) -. «+ «+ +s£++ve+sexseesss 56
Hình 5.27 IP_rx thành công phân tích gói tin (2) -«+++<x++se+seeessees 56
Hình 5.28 IP_rx lỗi chiều đài gói tin (1) - 2-2-2 ©++2x++£x++zx++rxesrxrsrxerrxee 57Hình 5.29 IP_rx lỗi chiều đài gói tin (2) :-2¿©+¿©++2x++£x++zx++zxezrxrzrxerrxee 57
Hình 5.30 IP_rx lỗi không đủ header (1) - ¿2-5 25s 2 2+2 £££+E+Ez£kzE+zzzxzxers 58 Hình 5.31 IP_rx lỗi không đủ header (2) - + - 2 2s +++E+££E+EeEzkererxzxrreree 58
Hình 5.32 IP_rx header không hợp lỆ (1) << + + + £++vE+eeeeeeeeeeresrs 58 Hình 5.33 IP_rx header không hop lệ (2) - ¿2+2 +++£+£+EseEeereereerrrreres 59 Hình 5.34 IP_rx checksum không hop 16 (1) - - ¿+ + +++*+x+vxeereereereereeres 59
Hình 5.35 IP_rx checksum không hợp lỆ (2) - ¿55-52 *++sx+veseeseeersesss 59 Hình 5.36 IP_tx đóng gói thành công gói tin (1) . 55+ +<s*++se++eexeeeessess 60
Trang 10Hình 5.37 IP_tx đĩng gĩi thành cơng gĩi tin (2) - ¿6 St sskEsersersersrse 60
Hình 5.38 IP_tx lỗi chiều dài gĩi tin (1) -¿-+ ++22++2++zx++x+zrxerxezrxerxee 61
Hình 5.39 IP_tx lỗi chiều dài gĩi tin (2) - 2: 2¿©<+++x+EE+Ex+Eeerxerxerrxerxee 61
Hình 5.40 UDP_rx thành cơng phân tích gĩi tin (Ï) - «+ ««++ss++sex+se++ 62 Hình 5.41 UDP_rx thành cơng phân tích gĩi tin (2) - «+ ««+++s++sexssex+ 62
Hình 5.42 UDP_rx lỗi chiều đài gĩi tin (1) .¿2- 5¿©5+22++2x++x+zrxerxeerxerxee 63
Hình 5.43 UDP_rx lỗi chiều đài gĩi tin (2) - 2-2-2 ©+++££2£++£EzEzExerxezrxerxee 63
Hình 5.44 UDP_rx header khơng hợp 16 ((Í) - - s5 + 5+ £++se++seeeeseeereesss 64 Hình 5.45 UDP_rx header khơng hop lỆ (2) - 5 +55 s + *+*vExseeseeseseresers 64 Hình 5.46 UDP_tx đĩng gĩi thành cơng gĩi tin (Ï) - 5555 + + ++s+sex+eesss 65 Hình 5.47 UDP_tx đĩng gĩi thành cơng gĩi tin (2) 5 csxssseseeseesese 65 Hình 5.48 UDP_checksum thành cơng tính checksum (Ï) ««++-««<++s+ 66 Hình 5.49 UDP_ checksum thành cơng tính checksum (2) -««++ «<++++ 66 Hình 5.50 ICMP_rx phân tach ICMP packet (1) - - «<< <++<ex+seexeeereeess 67
Hình 5.51 ICMP_rx phân tach ICMP packet (2) . -«++<s<++sc+seeseseresees 67
Hình 5.52 ICMP_tx đĩng gĩi IMCP packet (1) cece eeeeseesseeeeseeeeeseeeseeeeeeeeseens 68
Hình 5.53 ICMP_ tx đĩng gĩi IMCP packet (2) - - 5 55 + *+k+vkvseesserseesse 68 Hình 5.54 ICMP_checksum tinh checksum va length (1) -s«>+s«<+ 69 Hình 5.55 ICMP_checksum tinh checksum va length (2) «++-««>+< «+2 69 Hình 5.56 ICMP nhận packet ec ceecccesecesceesseeeseeeseeceaeeeseeceaeeeaeeesaeeeaeeseaeseaeeeaes 70 Hình 5.57 ICMP gửi packet - - G2 1 HH ng TH ng 70
Hình 5.58 FPGA nhận và gửi UDP pacKage - 5+ + 1S ngư 71 Hình 5.59 FPGA nhận ICMP pacKaØ© - .- 5 + v0 v.v ng nệt 71 Hình 5.60 FPGA gửi ICMP package - G5 HH ng rệt 72
Hình 6.1 Sơ đồ luồng dit liệu -2- 2-52 252 SE+SE+EE+EEEEEEEEEEEEEEEEEEEEErrrrrerrree 73Hình 6.2 Sơ đồ kết nối chân của IP Ethernet với PHY thơng qua PCS/PMA 73Hình 6.3 Hệ thống xây dựng trên phần mềm Vivado -: -¿¿©sz55s+¿ 75Hình 6.4 Tĩm tắt định thời thiết kẾ -.¿ -¿+++tevExvvettrxrrttrrtrrrrrtrrrrtrkee 75Hình 6.5 Constrain cho clock của khối PHY Device - ¿52 2+2 +e+s+s+E+zszzs 77
Trang 11Hình 6.6 Tổng hop clock trong hệ thống đã xây dựng - 2-2 25+: 77
Hình 6.7 Tài nguyên sử dụng cua IP Ethernet trên board VC707 77
Hình 6.8 Tài nguyên sử dung của SoC trên board VC707 -«<+-«<++<s++ 78
Hình 7.1 VC707 Board Block Diagram Í?Ì, - ¿+ +s +8 St SEeEeEeEeEexexexexrxrrrxrxrs 79
Hình 7.2 Các kết nối Ethernet, từ FPGA đến thiết bi PHY !l c -¿ 80 Hình 7.3 Thiết bị 88E1111 được sử dụng trong ứng dụng cáp đồng 81
Hình 7.4 Các chức năng của 88E1111 (datasheet) - -5S<cscccs+ceseeeee 82
Hình 7.5 Cấu hình IPv4 trên PC 2 +¿©£+2E+EE++EE£EE+EEEEEEEEEEEkerkerkrrrkerkree 84Hình 7.6 Thông tin cấu hình mạng với tốc độ đường truyền 1 Gbps 84Hình 7.7 Kết nối tới UDP port 12344 ¿ +: ©2+©++2E++£E++EE++EE++Exezrxrzrxrrrxee 85
Hình 7.8 Cau hình mặc định của IP Ethernet - ¿s2 +s+s+E+E+EeEEEzEzEzEzzezerezs 86
Hình 7.9 Thực hiện lệnh ping trên PC - 5 <5 + 31+ E++vEEsseesseeeesees 86 Hình 7.10 Gói ICMP request va reply quan sát trên Wireshark - 87
Hình 7.11 Cấu hình địa chi IP mới cho IP Ethernet - s- - + s2 +se£++x+zezxzxezs 87
Hình 7.12 Ping đến địa chỉ cũ và MOi e.cecceccescescssessesssssessessessessessessesesstsseseseesees 88
Hình 7.13 Dữ liệu gói tin UDP gửi và nhận trên PC - 5 «+55 «<++s+++ +2 88 Hình 7.14 Nhận gói tin UDP từ PC 2G G1121 911931 9111 1 1 ng ng ngư 89
Hình 7.15 Gửi gói tin UDP đến PC - 2 2 ©2¿+E£EE+EE+EEtEEzEEerkerkrrreerrree 89
Hình 7.16 Gửi va nhận gói tin UDP dài ó5 +33 E*vE+sEEsevseesserseesse 90
Hình 7.17 Gói tin UDP bắt được trên Wireshark - ¿22+ +s+E+EvEEE+EzEzEsxsrerrs 91
Hình 7.18 IP Ethernet không nhận dữ liệu khi không đúng dia chi IP 91 Hình 7.19 IP Ethernet nhận dữ liệu khi đúng địa chi IP - - 5-5 << <<+<<sx 92 Hình 7.20 Thực thi đoạn code Python - c5 c1 1E ESESirsesrrrsressre 92
Hình 7.21 Hiển thị dữ liệu trong tệp đã nhận được - 5+ + s++s+ssersssss 93
Hình 7.22 Gói tin UDP bắt được trên Wireshark s- - + vEx+x+EvE+xererxsxers 93
Trang 12DANH MỤC BANG
Bảng 2-1 Một số giao thức trong mô hình OSÌ ¿22 ©+22++x++x+zcxzze 7Bang 2-2 Các biến thé và thông $6 2-2-5252 E+EE2EE2EE2EE2E2EE2E12E22E22Ee ke, 10Bang 2-3 Các tin hiệu truyền của GMIDo0 eeceecccsessessessessessessessessessessesseseseseaseas lãi
Bảng 2-4 Các tín hiệu nhận của GMIIÍ, c5 SE E9 VESkSerirseeeerrereree 11
Bang 2-5 Các tín hiệu của AXI4-Stream oo eee - «cà 1kg ng tr 15
Bảng 8-1 So sánh với khóa luận trước ÍfÌ, -¿- + + St +++++x+xexeEeEeztzvzxrxexerersrs 94
Trang 13DANH MỤC TU VIET TAT
IP Intellectual property
FPGA Field-programmable gate array
IEEE Institute of Electrical and Electronics Engineers
CSMA/CD Carrier-sense multiple access with collision detection
FCS Frame check sequence
ARP Address Resolution Protocol
Ipv4 Internet Protocol version 4
UDP User Datagram Protocol
ICMP Internet Control Message Protocol
MAC Medium access control
TCP Transmission Control Protocol
DHCP Dynamic Host Configuration Protocol
GMII Gigabit media-independent interface
PHY Physical layer
CRC Cyclic redundancy check
SDF Start frame delimiter
ICMP Internet Control Message Protocol
PCS Physical coding sublayer
PMA Physical Medium Attachment
SoC System-on-Chip
MIG Memory Interface Generator
Trang 14TOM TAT KHÓA LUẬN
Khóa luận này tập trung tìm hiểu và hiện thực IP Ethernet 1Gbit/s.
Trong hệ thống mạng, dữ liệu được đóng gói thành các frame vì vậy khóaluận này tập trung xử lý các Ethernet frame, IPv4 packet, và UDP datagram,
đồng thời phân tích các trường thông tin tương ứng với từng đơn vị dữ liệu đóng gói Ngoài ra, em cũng đã tích hợp IP này vào hệ thống SoC và sử dụng
lõi xử lí để cấu hình và điều khiển.
Mặc dù IP Ethernet không phải là khái niệm mới và đã trở nên phổ biến, nhưng nhu cầu tích hợp IP kích thước nhỏ gọn vào hệ thống SoC van rat quan trọng do tài nguyên phần cứng có hạn Vì lý do này, em đã chọn hiện thực IP Ethernet 1Gbit/s cùng với giao thức truyền dữ liệu UDP dé đơn giản
hóa quá trình thực hiện.
Kết quả đánh giá dựa trên: tốc độ, khả năng kết nối với PC, và tài nguyên sử dụng Thông qua thử nghiệm trên FPGA, IP Ethernet hỗ trợ đầy đủ
các chức năng theo mục tiêu đặt ra với tốc độ 1Gbit/s.
Bên cạnh đó, khóa luận này còn mở rộng thêm hiện thực giao thức
ICMP trên phần cứng để giúp tăng cường khả năng kiểm tra và chân đoán mạng Việc hiện thực ICMP trên phần cứng không chỉ giúp tối ưu hóa hiệu
năng ma còn giảm tải cho CPU, nâng cao khả năng của hệ thông.
Trang 15Chương 1 GIỚI THIỆU
1.1 Lý do chọn đề tài
Thời điểm hiện tại, lĩnh vực mang máy tính và giao thức IP đang tiếp tục pháttriển và cải tiến Hiện thực lõi IP Ethernet core có thể hình thành nền móng chonghiên cứu và cải tiến kế tiếp trong lĩnh vực này Chúng tôi có thể đóng góp trongviệc nâng cao hiệu suất, bảo mật, định tuyến và các phương diện khác của mạng IP
Ethernet.
Hiện thực lõi IP Ethernet core đòi hỏi kiến thức vững và thực hành về mạng máy tính, Ethernet và IP Khóa luận này sẽ giúp nắm rõ hơn về cách hoạt động của
mạng và giao thức quan trọng như IP và những khó khăn trong việc triển khai hệ
thống mạng phức tạp Ngoài ra, việc hiện thực lõi IP Ethernet core trong đồ án sẽ
giúp chúng tôi vận dụng kiến thức và kỹ năng của mình vào công việc thực tiễn, từ
đó sẽ có được trải nghiệm quá trình thiết kế, hiện thực, và kiểm thử một hệ thống
mạng, từ đó phát triển khả năng khắc phục vấn đề và xử lý các lỗi trong môi trườngthực tế
1.2 Mục tiêu và phương pháp thực hiện
1.2.1 Mục tiêu
Nắm vững kiến thức về cách hoạt động của giao thức IP Ethernet, bao gồmquá trình truyền thông giữa các thiết bi, cau trúc gói tin, định tuyến và quản ly địa
chỉ.
Hiện thực một hệ thống SOC tích hợp lõi IP Ethernet 1Gbps hỗ trợ giao
thức ICMP trên FPGA.
Cấu hình được dia chỉ cho lõi Ethernet
Triển khai hệ thống trên board Virtex 7
Trang 161.2.2 Phương pháp thực hiện
Dé hiện thực được IP Ethernet 1 Gbit/s trên FPGA trước hết cần phải đảm
bảo các tang cũng như câu trúc thiệt kê một frame của một gói tin theo tiêu chuân
giao thức chung IEEE 802.3 đồng thời cũng phải tìm hiểu một số các giao thức
cũng như các thức cũng như thuật toán:
Cấu trúc Ethernet frame, IPv4, ARP frame
Các quy trình vận hành ở từng tang của Ethernet
Gigabit media-independent interface (GMIID Ethernet có tốc độ là 1000Mbit/s hoạt động với tần số 125 Mhz
Giao thức bus truyền AXI stream
Sử dụng các công cụ như Vivado, Modelsim dé thực hiện kiểm tra các
module đồng thời sửa các lỗi đã tồn đọng
Tìm hiểu về FPGA Xilinx Virtex VC707
Trang 17Chuong 2 TONG QUAN VE ETHERNET
2.1 Mô hình OSI “!
Mô hình OSI (Open Systems Interconnection) được hiểu là mô hình kết nối
các hệ thống mở OSI áp dụng phương pháp phân tang trong việc thiết kế hệ thốngkết nối và giao thức truyền thông giữa các máy tính Mô hình OSI được xây dựng
để giúp các hệ máy đa dạng từ các nhà cung cấp khác nhau có thể tương thích với
nhau.
Mô hình OSI được xác định trong tiêu chuẩn số 7498-1 Mô hình này cho
bởi AL
Hình 2.1 Mô hình OSI
Mô hình chia thành hai lớp: lớp trên (Responsibility of the host) va lớp dưới
(Responsibility of the network):
e_ Lớp trên tập trung xử lí các van đề liên quan đến ứng dụng và được thực
hiện thông qua phần mềm va là lớp tương tác trực tiếp với người dùng,
Trang 18nơi mà cả người dùng và lớp ứng dụng đều tương tác với các ứng dụngphần mềm.
e©_ Lớp dưới tập trung vào việc vận chuyên dữ liệu Lớp liên kết dit liệu và
lớp vật lý hoạt động thông qua qua cả phần cứng và phần mềm Lớp vật
lý là lớp dưới cùng trong mô hình OSI và gần với phương tiện vật lý nhất,
đảm nhận việc đặt thông tin lên phương tiện vật lý.
2.1.1 Tang 1: Tầng vat lý (Plysical Layer)
Tang vật lý là tang cơ ban nhất, xác định các chức năng và thu tục liên
quan đến điện, cơ khí và quang học dé xây dựng, bảo trì và ngắt kết nối vật lý
giữa các hệ thống mạng Các chức năng của tầng này gồm có việc thiết lập hoặcngắt kết nối điện, chia sẻ tài nguyên truyền thông giữa nhiều người dùng, và điềuchế hoặc biến đồi dữ liệu số thành các tín hiệu tương ứng
2.1.2 Tang 2: Tầng liên kết dữ liệu (Data Link Layer)
Tang liên kết dữ liệu có nhiệm vụ thiết lập, duy trì và hủy bỏ các liên kết
dữ liệu, cũng như quản lí lỗi và dong dữ liệu Tang này cung cấp các phương tiện
và quy trình dé truyền dữ liệu giữa các thực thé mạng, đồng thời xác định và khắcphục lỗi xảy ra ở tang vật lý Các giao thức điên hình tại tang này bao gồm
Ethernet, HDLC, ADCCP va Aloha.
2.1.3 Tang 3: Tang mang (Network Layer)
Tang mang chịu trách nhiệm đưa ra các tinh năng và quy trình dé truyền
đữ liệu từ nguồn đến đích qua một hoặc nhiều mạng, đồng thời giữ được chất
lượng dịch vụ từ tầng giao vận Tầng này quyết định lộ trình cho các gói tin và
kiểm soát tắc nghẽn khi có nhiều gói tin được chuyền qua cùng một lộ trình
2.1.4 Tầng 4: Tầng giao vận (Transport Layer)
Tang giao vận cung cap dich vụ truyén dữ liệu giữa các thiệt bi dau cuôi,
đồng thời đảm bảo độ tin cậy của kết nối Tầng này phân chia các gói tin lớn
Trang 19thành các gói tin nhỏ, đánh dấu thứ tự, theo dõi và truyền lại các gói tin bị thất
lạc Đây là tầng cuối cùng đảm bảo an toàn trong quá trình truyền dit liệu
2.1.5 Tang 5: Tầng phiên (Session Layer)
Tầng phiên quản lý các phiên hội thoại giữa các máy tính, cho phép thiếtlập, duy trì, đồng bộ hóa và hủy bỏ phiên truyền thông Tầng này sử dụng thẻ bàiToken để truyền dir liệu, đồng bộ hóa và hỗ trợ các chế độ hoạt động song công,
bán song công và đơn công Tầng phiên cũng đặt ra các quy trình xác định điểm
hoàn thành dé giúp phục hồi liên lạc nhanh chóng khi gặp sự có
2.1.6 Tang 6: Tầng trình diễn (Presentation Layer)
Tầng trình diễn xử lý các vấn đề liên quan đến cú pháp và nội dung trongquá trình truyền thông tin Nó chuyên hóa dữ liệu từ tầng ứng dụng sang định
dạng thống nhất và ngược lại, thực hiện việc chuyên đổi dữ liệu, nén để giảm
lượng dữ liệu truyền trên mạng, cũng như mã hóa và giải mã để đảm bảo bảo mật.2.1.7 Tầng 7: Tang ứng dung (Application Layer)
Tang ứng dụng là tang gần nhất với người dùng, xác định giao diện giữa
người dùng và hệ thống OSI Tầng này cung cấp các cách thức đề người dùng
tiếp cận thông tin và dữ liệu trên mạng qua các phần mềm ứng dụng Một số giaothức tiêu biểu ở tang này bao gồm HTTP, Telnet va FTP
2.2 Mô hình TCP/IP
Mô hình OSI mà chúng ta vừa xem xét chỉ là một mô hình tham chiếu logic
Nó được tạo ra nhằm mục đích mô tả các chức năng của hệ thống truyền thông bằngcách chia quy trình giao tiếp thành các thành phần nhỏ hơn
TCP / IP được thiết kế và phát triển bởi Bộ Quốc phòng (DoD) vào nhữngnăm 1960 và dựa trên các giao thức tiêu chuẩn Nó là viết tắt của TransmissionControl Protocol / Internet Protocol Mô hình TCP/IP là phiên bản ngắn gọn của môhình OSI Nó chứa bốn lớp: Application, transport, Internet, Link Không giống như
bảy lớp trong mô hình OSI.
Trang 20Các giao thức ở từng tang được nêu ra trong bảng 2-1.
Bảng 2-1 Một số giao thức trong mô hình OST
OSI model TCP/IP Player Protocol
model number
Application | Application 7 DHCP, SEP2, DNP3, HTTP, IEC
61850, ICCP, CIM, OpenADR, GOOSE
Presentation 6 Compression an encryption protocol
Session 5 NFS, SQL, SMB, RPC, SCP, SDP, P2P
Transport Transport 4 TCP, UDP
Network Internet 3 IPv4/IPv6, IGMP, ICMP
Data link Link 2 ARP, Ethernet
Physical 1 RS 232, UDP cables (CAT 5,6), DSL,
Optic fiber
Trong phạm vi khóa luận nay chi sử dung một số giao thứ: UDP, IPv4, ARP
và Ethernet.
2.3 Dinh dạng gói tin
Trong đồ án này có 3 dạng gói tin được sử dụng:
e Gói tin ARP dùng dé tìm địa chi MAC từ địa chỉ IP đích bang cách gửi các
gói request và reply cau trúc như hình 2.2(c)
e Gói tin UDP dữ liệu từ tang application (dữ liệu người dùng) được đóng
gói bởi giao thức ở từng tầng, sau khi tầng bên trên đóng gói thì sẽ trởthành đữ liệu của tầng bên dưới cho đến khi đến tầng cuối cùng sẽ đượctruyền đi như hình 2.2(a)
Trang 21e Gói tin ICMP có định dạng tương tự với gói UDP, nhưng dữ liệu của
ICMP không được sử dụng bởi tầng application vì nó chủ yếu được dùng
trong chân đoán và quản lý mạng ở tầng mạng (network layer)
a) UDP package
|
| ICMP header | ICMP data |
xị
IP header | IP data | | ARP request or reply
Frame header Frame data | FCS [Frame rate Frame data FcS
b) ICMP package c) ARP package
Hình 2.2 Định dạng các gói tin
2.4 Mac address Ì
MAC (Media Access Control) là một thành phan trong lớp điều khiến truy cậpphương tiện, cung cấp các cơ chế định địa chỉ và kiểm soát truy cập kênh, hỗ trợ các
máy tính truyền và nhận dữ liệu với nhau Thành phần này nằm trong mô hình OSI,
một mô hình nền tảng về các quy trình truyền thông Tầng liên kết dữ liệu
(Datalink) trong mô hình OSI được chia thành hai tang con: tang MAC và tang
LLC.
Chức năng của tang MAC là cung cấp các tiến trình định địa chỉ và kiểm soát
khả năng truy cập kênh Tầng MAC trong tầng liên kết dữ liệu giúp việc truyền dữ
liệu giữa tang LLC và tang vật lý trong mô hình OSI diễn ra dễ dàng Thêm vào đó,
Trang 22MAC cũng cho phép nhiều trạm kết nối tới cùng một môi trường vật lý và cùng chia
Sẻ môi trường này.
Địa chỉ MAC là một chuỗi số 48-bit được nhà sản xuất nhúng vào phần cứng
của card mạng và được coi như địa chỉ vật lý của thiết bị mạng, tương tự như việccần biết địa chỉ của một ngôi nhà để có thé đến được ngôi nhà đó
Địa chỉ MAC thường bao gồm ba loại chính: Unicast, Broadcast và Multicast
e Unicast: Dia chi Unicast MAC được sử dụng dé gửi dữ liệu từ một máy
nguồn đến một máy đích cụ thé Dia chỉ này chỉ định một card mang duynhất Nếu bit ít quan trọng nhất (LSB) của octet đầu tiên trong địa chỉ đượcđặt là 0, thì địa chỉ MAC này sẽ chỉ được gửi đến một card mạng cụ thể
e Broadcast: Cho phép gửi khung Ethernet tới tất cả các máy tính trong
mang và có giá trị FF-FF-FF-FF-FF-FF, và các khung với địa chỉ nay sé
được gửi đến tất cả các máy tính trong mạng LAN
e_ Multicast: Cho phép gửi dữ liệu tới một nhóm các thiết bị Trong địa chỉ
Multicast lớp 2 (Ethernet), LSB của octet đầu tiên của địa chỉ được đặt là
1 IEEE cấp các địa chỉ trong dải 01-80-C2-xx-xx-xx (từ 00-00-00 đến
và kết nối các loại PY khác nhau với MAC Tach biệt với phương tiện có nghĩa làcác loại thiết bị PHY khác nhau dé liên kết với nhiều loại phương tiện (tức là cặpxoắn, cáp quang, v.v.) có thể sử dụng mà không cần tái thiết kế hoặc thay thếphần cứng MAC Do đó, bất kỳ MAC nào cũng có thể được áp dụng với mọi loạiPHY, tách biệt với phương tiện truyền tín hiệu mạng
Trang 23MII có thé được sử dụng dé kết nối MAC với PHY bên ngoài bang đầu nối
có thể cắm với chip PHY trên cùng một PCB Trên PC, đầu nối CNR Loại B
mang tín hiệu MII.
Dữ liệu mạng trên giao diện được đóng khung bằng chuẩn IEEE Ethernet
Như vậy, nó bao gồm phần mở đầu, dấu phân cách khung bắt đầu, Ethernet
frame, dữ liệu đành riêng cho giao thức và kiểm tra dự phòng theo chu kỳ (CRC).
MII ban đầu sử dụng các bit 4 bit để truyền dữ liệu mạng theo mỗi hướng (4 bittruyền dữ liệu, 4 bit dữ liệu nhận) Dữ liệu có tốc độ 25 MHz dé đạt được thônglượng 100 Mbit/s Thiết kế MII ban đầu đã được mở rộng dé hỗ trợ giảm tín hiệu
và tăng tốc độ Các biến thể được nêu trong bảng 2-2
Bang 2-2 Các biến thê và thông số
Tên Max clock Tốc độ Bits / clokc
sycle Media-independent interface (MII) 25MHz 100Mbps 4 bits
Reduced media-independent interface 50MHz 100Mbps 2 bits
Trang 242.5.2 Gigabit media-independent interface
Do đồ án thiết kế một IP Ethernet chuẩn 1 Gbit/s nên ta chon giao diện
GMII dé triển khai
Gigabit media-independent interface (GMII) là giao diện giữa thiết bị điềukhiển truy cập trung bình (MAC) và lớp vật lý (PHY) Giao diện hoạt động ở tốc
độ lên tới 1000 Mbit/s, được triển khai bằng giao diện dữ liệu có tốc độ 125 MHzvới các đường dẫn dữ liệu tám bit riêng biệt để nhận và truyền và tương thíchngược với đặc tả MII và có thể hoạt động trên tốc độ dự phòng 10 hoặc 100
Mbit/s.
Giao diện GMII lần dau tiên được định nghĩa cho 1000BASE-X trongIEEE 802.3z-1998 như điều khoản 35, và sau đó được tích hợp vào IEEE 802.3-
2000 trở đi.
Bang 2-3 Các tín hiệu truyền cua GMII
Tên tín hiệu Mô tả
GTXCLK Tín hiệu Clock cho gigabit TX (125Mhz)
TXCLK Tin hiệu Clock
TXD (8 bits) Dữ liệu truyền
TXEN Tín hiệu cho phép truyền
TXER Tín hiệu lỗi (sử dụng dé dé có ý làm hỏng gói dữ liệu)
Bảng 2-4 Các tín hiệu nhận của GMII
Tên tín hiệu Mô tả
RXCLK Tín hiệu Clock nhận đữ liệu
RXD (8 bits) Dữ liệu nhận
11
Trang 25RXDV Xác nhận dữ liệu hợp lệ
TXEN Tín hiệu kích hoạt
RXER Tín hiệu báo dữ liệu lỗi
2.6 Giao thức AXI
2.6.1 Tổng quan
Advanced eXtensible Interface (AXI) là một giao thức bus truyén thongtrên chip được phát triển bởi ARM Nó là một phan của thông số kỹ thuật
Advanced Microcontroller Bus Architecture 3 (AXI3) va 4 (AXI14).
AXI đã được giới thiệu vào năm 2003 với đặc điểm kỹ thuật AMBA43
Năm 2010, một phiên bản mới của AMBA, AMBA4, đã xác định giao thức AXI4, AXI4-Lite và AXI4-Stream.
Có ba dạng:
e AXI4: Được thiết kế cho các yêu cầu ánh xạ bộ nhớ với hiệu năng vượt
trội.
e AXI4-Lite: Dành cho giao tiếp ánh xạ bộ nhớ với hiệu suất truyền dit
liệu thấp và câu trúc dễ tiếp cận
e AXI4-Stream: Được sử dụng trong việc truyền dữ liệu với tốc độ cao
2.6.2 AXI4-Lite
AXI hoạt động dựa trên năm kênh độc lập "Độc lập" ở đây có nghĩa là
mỗi kênh có chức năng cụ thể, và sự hoàn thành nhiệm vụ của mỗi kênh không
phụ thuộc vào các kênh khác, nhưng không có nghĩa là các kênh hoàn toàn không
liên quan đên nhau.
e Kênh địa chỉ đọc (Read Address Channel): truyền thông tin dia chỉ và
điêu khiên của một giao dich đọc từ master đên slave.
12
Trang 26e Kênh dữ liệu đọc (Read Data Channel): truyền dữ liệu đọc và thông tin
phản hồi của một giao dich đọc từ slave đến master.
e Kénh địa chỉ ghi (Write Address Channel): truyền thông tin dia chỉ và
điều khiển của một giao dịch ghi từ master đến slave
e Kênh dữ liệu ghi (Write Data Channel): truyền dữ liệu ghi từ master
đến slave
e Kênh phản hồi ghi (Write Response Channel): truyền thông tin phản
hồi của một giao dịch ghi từ slave đến master
Read address channel Address
and
control
Read data channel
Read Read Read Read
data data data data
~—— x“—— <+— “—
Master Slave
interface Write address channel interface
Address and
Write
data
Write data
Hình 2.3 Cau trúc kênh truyền chung AX14 111
Tương ứng với môi kênh sẽ có các tín hiệu khác nhau đê điêu khiên.
13
Trang 27Writeaddress Writedata Writeresponse Readaddress Readdata Global
channel channel channel channel channel
ACLK AWVALID WVALID BVALID ARVALID RVALID
ARESETn AWREADY WREADY BREADY ARREADY RREADY
= AWADDR WDATA BRESP ARADDR RDATA
- AWPROT WSTRB - ARPROT RRESP
Hình 2.4 Các tín hiệu cua AXI4-Lite
ACLK: tín hiệu clock của hệ thống, được sử dụng dé đồng bộ hóa tất cả
các hoạt động trong giao diện AXI4-lite.
ARESETn: tín hiệu reset giao thức.
AWVALID, ARVALID, WVALID: Tín hiệu này chỉ ra rằng địa chỉ ghi/đọc(Write/Read address), dữ liệu (Write data) là hợp lệ và có sẵn dé được chấp nhận
boi slave.
BVALID, RVALID: Tin hiệu này chỉ ra rang dữ liệu phản hồi (Write
Response), dữ liệu đọc (Read data) là hợp lệ và có săn dé được chấp nhận bởi
master.
AWREADY, WREADY, ARREADY: Tin hiéu nay chi ra rang thiét bi slave
đã sẵn sang dé tiếp nhận dữ liệu và điều khiển ghi từ master.
BREADY, RREADY: Tín hiệu này chỉ ra rang master đã sẵn sàng dé chấp
nhận dữ liệu và điêu hành từ slave.
AWADDR: Dia chỉ ghi (Address Write) do master phát ra dé chỉ định vi trí
nơi dữ liệu sẽ được ghi vào bởi slave.
WDATA: Dữ liệu (Write Data) được master phát ra để được ghi vào bởi
thiết bị slave
BRESP: Phản hồi (Response) từ thiết bị slave đến master đề chỉ ra trạng
thái của giao dịch ghi.
14
Trang 28ARADDR: Địa chỉ đọc (Address Read) được master phát ra dé chỉ định vị
trí nơi dir liệu sẽ được đọc từ bởi slave.
RDATA: Dữ liệu (Read Data) từ thiết bị slave đến master Đây là dữ liệu
được yêu câu bởi master.
AWPROT: Tín hiệu này chỉ ra rằng tín hiệu chính có địa chỉ cần ghi hợp lệ
và thông tin điều hành
WSTRB: Tín hiệu sử dụng dé chỉ định các byte lanes nào trong dữ liệu ghi
là hợp lệ Nó có độ dài phù hợp với kích thước dir liệu và sẽ có một bit cho mỗi
byte trong dữ liệu
ARPROT: Tín hiệu này chỉ ra rằng tín hiệu chính có địa chỉ cần đọc hợp lệ
và thông tin điều hành
RRESP: tín hiệu chỉ ra trạng thái đọc (Read Response), các trạng thái
thường là thành công (OKAY) hoặc lỗi (ERROR).
2.6.3 AXI4-Stream
AXI4-Stream (Advanced eXtensible Interface 4-Stream) là một trong
những giao thức trong họ giao thức AXI4 được phát triển bởi ARM, đóng vai trò
là giao diện chuẩn để kết nói các thành phan trong hệ thống trao đổi dữ liệu
AXI4-Stream được thiết kế nhằm tối ưu hóa việc truyền dữ liệu có hiệu suất caogiữa các thành phần mà không cần phải quản lý địa chỉ bộ nhớ, giúp đơn giản hóaviệc giao tiếp trong các ứng dụng xử lý dữ liệu liên tục
Bang 2-5 Các tín hiệu cua AXI4-Stream
Signal Source Description
ACLK Clock Tin hiéu đồng hồ toàn hệ thông và sử dụng cạnh
source lên của ACLK.
ARESETn Reset Tín hiệu đặc biệt đặt lại toàn hệ thông ARESETn
source được kích hoạt khi ở mức thấp (ACTIVE-LOW)
15
Trang 29TVALID Master Chỉ định răng master đang gửi một truyền đữ liệu
hợp lệ Một truyền dữ liệu diễn ra khi cả TVALID
và TREADY đều được kích hoạt
TREADY Slave Chi định rang slave có thé chấp nhận truyền dit
liệu trong chu ky hiện tai.
TDATA[(8n-1):0] Master Dữ liệu chính được sử dụng dé cung cấp dt liệu
đang truyền qua giao diện Độ rộng của dữ liệu là
một số nguyên byte
TSTRB[(n-1):0] Master Điều khiến byte cho biết liệu nội dung cua byte
kèm theo của TDATA có được xử lý như một byte di liệu hay một byte vi trí.
TKEEP[(n-1):0] Master Điều khiển byte cho biết liệu nội dung của byte
kèm theo của TDATA có được xử lý như một
phan của luồng dữ liệu hay không Cac byte kèmtheo mà có điều khiển byte TKEEP bị tắt là byterỗng và có thê được loại bỏ khỏi luồng dữ liệu
TLAST Master Chi ra ranh giới của một gói tin.
khác nhau.
TDEST[(d-1):0] Master Cung cấp thông tin định tuyến cho luồng dữ liệu
TUSER[(u-1):0] Master Thông tin bên ngoài được định nghĩa bởi người
dùng có thé được truyền cùng với luồng đữ liệu
16
Trang 30Chương 3 GIAO THỨC SỬ DỤNG TRONG LOI IP ETHERNET
3.1 UDP 4!
UDP, viết tắt của User Datagram Protocol, là một giao thức quan trọng trong bộ
giao thức TCP/IP Với UDP, các ứng dụng mạng có thé gửi các gói dữ liệu nhỏ, gọi
là datagram, tới các máy tính khác.
Khác với TCP, UDP không đảm bảo sự tin cậy và thứ tự trong việc truyền dữ
liệu Các gói tin có thê đến sai thứ tự hoặc bị mất mà không có thông báo nào Tuynhiên, UDP có tốc độ nhanh hơn và hiệu quả hơn cho các ứng dụng yêu cầu dữ liệunhỏ và thời gian thực Vì không duy trì trạng thái, UDP rất hữu ích cho việc xử lý
các truy vân nhỏ với sô lượng lớn.
UDP hoạt động theo cơ chế tối giản của mô hình giao tiếp không kết nối (còngọi là chế độ CL - Communicationless), trong đó dữ liệu được gửi từ thiết bị nàyđến thiết bị khác mà không cần xác nhận xem thiết bị đã sẵn sàng hay không, khácvới mô hình bắt tay của các giao thức kết nối
3.1.1 Cách thức hoạt động của UDP
UDP sử dung IP dé lay datagram từ máy tính này sang máy tính khác
Hoạt động bằng cách đóng gói dữ liệu và thông tin header của riêng mình vào
gói Dữ liệu này bao gồm các port nguồn và đích dé giao tiếp, độ dài gói và thuậttoán kiểm tra checksum Sau khi các gói UDP được gói gọn trong gói IP, chúng
sẽ gửi đên các điêm đích được chỉ định.
Giao thức dùng một mô hình truyền đơn giản không bao gồm các cuộc đốithoại bắt tay (handshaking dialogues) dé cung cấp độ tin cậy, sắp đặt hoặc tính
toàn vẹn dữ liệu Do đó, dịch vụ của UDP không đáng tin cậy Các gói tin có khả
năng bị mât, dữ liệu có thé thêm bản sao hoặc bị mat mát mà không có cảnh báo.
Mặc dù phương pháp truyền dữ liệu của UDP không đảm bao rằng dữ liệu
được gửi sẽ đến đích, nhưng nó có chi phí thấp và phổ biến cho các dịch vụ, ứng
dung chap nhận việc mat mát vé dữ liệu.
17
Trang 313.1.2 Cấu trúc UDP header
Header của UDP bao gồm bốn trường: source port, destination port, length
Hình 3.1 Cầu trúc UDP header
Source port: Có kích thước 16 bit, trường nay xác định địa chỉ cổng củamáy gửi và nơi nhận phản hồi nếu cần Nếu không sử dụng, giá trị của trường này
là 0; nêu có sử dụng, giá tri sẽ là 1.
Destination port: Cũng có kích thước 16 bit, trường này xác định cổng của
máy nhận.
Length: Chiêm 16 bit, trường này chỉ ra tổng độ dài của UDP header và dữ
liệu chứa trong gói UDP UDP header có độ dài tối thiểu là 8 byte Trong lý
thuyết, độ dài tối đa của một gói datagram là 65.535 byte (gồm 8 byte header và65.527 byte dữ liệu) Đối với giao thức IPv4, giới hạn độ dài là 65.507 byte(65.535 byte dit liệu — 8 byte header UDP — 20 byte header IP) Đối với giao thức
IPv6, giới han là 65.535 byte.
Checksum: Trường nay được sử dung để kiểm tra lỗi của header và dữliệu Mặc dù trường này không bắt buộc trong IPv4, nhưng là bắt buộc trongIPv6 Nếu không sử dung, giá trị của trường này sẽ là 0
Trang 323.2.1 Cách biểu diễn địa chỉ
Địa chi IP 32 bit được chia thành 4 nhóm, mỗi nhóm 8 bit (gọi là một
octet), và các nhóm này được phân cách bởi dấu chấm, theo định dạng phân nhóm
(dotted format) Để dễ sử dụng, các octet thường được chuyền thành giá trị thập
phân.
Dạng biéu diễn Giá trị Chuyén đỗi từ biéu diễn thập phan
Octet được biểu diễn ở dạng thập phân | 192.8 2.235 NIA
Hệ cơ số 16 8xC99082EB Gia trị của chuỗi 32 bits được chuyễn sang hệ cơ số 16
Hệ cơ số 10 3221226219 Giá trị của chuỗi 32 bits được chuyễn sang hệ cơ số 10
Hệ cơ số 8 830999881353 Giá trị của chuỗi 32 bits được chuyễn sang hệ cơ số 8
Hình 3.2 Biêu dién địa chỉ
Hau hết các định dạng này được các trình duyệt chấp nhận Trong địnhdạng phân nhóm, mỗi nhóm có thê được biểu diễn bằng các hệ cơ số khác (ví dụ:192.0x00.0005.128) mà không làm thay đôi giá trị thực của địa chỉ Một dạng
hiếm gặp khác là biểu diễn địa chỉ dưới dạng mã ASCII, được sử dụng trong một
số chương trình phần mềm dé gan cho các trường địa chỉ nguồn và địa chi dich
3.2.2 Cấu trúc IPv4 header
Header của IPv4 bao gồm 12 trường bắt buộc, với tổng chiều dài là 20byte Cấu trúc của IPv4 header như hình 3.3
19
Trang 3303 4-7 8-15 16-18 18-31
Version Type of Service Total Length
Time to Live Protocol Header Checksum
Source IP Address
Destination IP Address
IP Options Padding
DATA
Hình 3.3 Cầu trúc IPv4 header
Version: Phiên ban IP với IPv4 có mã là 0100 Nếu không khớp với phiênbản trên thiết bị nhận, thiết bị nhận sẽ bỏ qua gói tin này Dựa vào số phiên bản,Router có thê xác định phần còn lại của IP Datagram
IP Header Length (IHL): Chiều dài của header, mỗi đơn vi là một word,mỗi word là 4 bytes Trường IHL có 4 bit, do đó có thé biểu thị tối da 16 từ (16 x
4 byte = 64 byte), dẫn đến chiều dài tối đa của header là 64 byte Thông thường,chiều dài header là 20 byte, bao gồm tất cả các thông tin của header
Type Of Services (TOS): Cách xử lý gói dữ liệu, bao gồm mức độ ưu tiên
và yêu cầu về độ trễ Trường này thường được sử dụng để quản lý chất lượng
dịch vụ mạng.
Total Length: Tông chiều dài của IP Datagram, tính bằng byte, bao gồm cả
dữ liệu và header Với 16 bit, giá trị tối đa có thể là 2^16 = 65.536 byte = 64 Kb,
do đó chiều dài tối đa của một IP Datagram là 64 Kb
Identification: Cung cấp một mã số cho mỗi IP Datagram, giúp thiết binhận có thể ghép các mảnh của một IP Datagram lại với nhau Các mảnh thuộccùng một IP Datagram sẽ có mã số xác định giống nhau
Flag:
e Bit 0: Không được sử dung.
20
Trang 34e Bit 1: Cho biết liệu gói dữ liệu có bị phân mảnh hay không.
e Bit 2: Nếu gói bi phân mảnh, bit này sẽ chi ra liệu mảnh hiện tại có
phải là mảnh cuối cùng hay không Cũng bao gồm 6 cờ: URG (Urgent
Pointer), ACK (Acknowledgement), PSH (Push Function), RST (Reset
Connection), SYN (Synchronize Sequence Numbers), FIN (Finish
Sending Data).
Fragment Offset: Chi định vị tri của các mảnh trong IP Datagram gốc,giúp thiết bị nhận ghép các mảnh lại thành IP Datagram hoàn chỉnh
Time To Live (TTL): Số lượng bước nhảy (hops) mà gói tin có thể đi qua
trước khi bị loại bỏ TTL giảm di 1 mỗi khi gói tin đi qua một router Khi TTL
đạt 0, gói tin sẽ bị loại bỏ để ngăn chặn việc lặp vòng vô hạn trên mạng
Protocol: Giao thức của tầng trên (tầng Transport) sẽ nhận phần dữ liệusau khi xử lý IP Datagram ở lớp Network hoàn tất, hoặc giao thức của lớp trêngửi segment xuống lớp Network dé đóng gói thành IP Datagram Mỗi giao thức
có một mã riêng (ví du: TCP - 06, UDP - 17, ICMP - 01).
Header CheckSum: Giúp router phát hiện lỗi bit trong quá trình nhận IP
Datagram, dam bảo IP header là đúng.
Source IP Address: Địa chỉ của thiết bị gửi IP Datagram
Destination IP Address: Địa chỉ IP của thiết bị nhận IP Datagram
IP Option: Time Stamp (thời điểm đã đi qua router), Security (xác địnhliệu router có cho phép gói dữ liệu không; nếu không, gói sẽ bị hủy), Record
Router (lưu danh sách địa chỉ IP của các router mà gói dữ liệu phải đi qua),
Source Route (chỉ định các router mà gói dữ liệu phải đi qua, không cần bảng
định tuyến tại mỗi router).
Padding: IP header phải luôn được đảm bảo là bội số của 32 bit do đó các
sô 0 sẽ được thêm vào.
21
Trang 353.3 ARP IS
ARP (Address Resolution Protocol) là phương thức giải mã địa chỉ động giữa
địa chỉ lớp mạng và địa chỉ lớp datalink Quá trình này diễn ra khi một thiết bị IPtrong mạng gửi một gói tin local broadcast đến toàn mạng, yêu cầu các thiết bị khác
gửi lại địa chỉ MAC của mình.
ARP thuộc lớp 2 (Data Link Layer).
3.3.1 Cách thức hoạt động của ARP
Hình 3.4 Cách hoạt động cua ARP protocol
Bước 1: Thiết bị gỬI sẽ kiểm tra trong bộ nhớ (cache) của mình Nếu cógiá trị ánh xạ địa chỉ MAC/IP tương ứng thì sẽ sang bước thứ 5, còn nếu không sẽ
tiếp tục bước thứ 2
Bước 2: Thiết bị gửi sẽ gửi một gói tin ARP request khắp hệ thống mạng(địa chỉ MAC quảng bá ff:ff:ff:ff:ff:ff) để yêu cầu dia chỉ MAC với địa chỉ IP của
thiết bị cần biết MAC
Bước 3: Khi nhận được gói tin ARP request, các thiết bị trong mạng sẽkiểm tra trường Target Protocol Address dé xử lý
22
Trang 36e Khong đúng TPA thì sẽ không nhận.
e IP đúng với IP trong TPA sẽ gửi trả gói tin ARP Reply với địa chi
MAC của thiết bị Đồng thời cập nhật giá trị ánh xạ địa chỉ MAC/IPvào bộ nhớ (cache) của mình dé thuận tiện cho những lần xử lí sau
Bước 4: Thiết bị nguồn nhận được gói tin ARP reply và xử lý dé lay địa
chi MAC.
Bước 5: Thiết bi nguồn cập nhật giá trị ánh xạ địa chi MAC/IP vào bộ nhớ(cache) của mình dé lần sau không cần gửi gói tin ARP request
3.3.2 Cấu trúc gói ARP
Một gói tin ARP có kích thước là 28 bytes và được đóng gói trong
Ethernet frame II vì vậy trong mô hình OSI, ARP là giao thức lớp 3 có cấu trúc
như hình 3.5.
Ethernet Frame Format (ARP Packet)
<+— Ethernet II header ———»
| co 8 1
Hardware type (2 bytes) Protocol type (2 bytes)
Operation code (2 bytes)
Source hardware address(6 bytes)*
Source protocol address(4 bytes)”
Target hardware address(6 bytes)*
Target protocol address(4bytes)*
Hình 3.5 Cau trúc gói tin ARP
Hardware type: Loai phan cung cần được biết (vi du: Ethernet có giá tri 1)
Protocol type: Loại giao thức lớp cao hon (layer 3) ma máy gửi sử dụng (vi du: giao thức dành cho IP có giá tri 0x0800).
23
Trang 37Hardware address length: Độ dài của địa chỉ phần cứng (tính băng byte).
Đối với địa chỉ MAC, giá trị này là 6
Protocol address length: Độ dài của địa chỉ logic được sử dung ở lớp trên
(layer 3) Với IPv4, giá trị này là 4 byte.
Operation code: Loại gói tin ARP mà máy gửi gửi đi Các giá trị phd biếnbao gồm:
e Gói tin ARP request - 1.
e Gói tin ARP rely - 2.
e Gói tin RARP request - 3.
e Gói tin RARP reply - 4.
Source hardware address (SHA): Dia chi MAC cua may gui.
Trong gói tin ARP request: trường này xác định dia chi MAC của máy gửiyêu cầu
Trong gói tin ARP reply: trường này xác định địa chỉ MAC của máy mà
máy gửi yêu cầu đang tìm
Source protocol address (SPA): ĐỊa chỉ IP của máy gửi.
Target hardware address (THA): Dia chỉ MAC của máy nhận mà máy gửi
đang tìm.
e Trong gói tin ARP request: Trường này chưa được xác định (giá tri là:
00:00:00:00:00:00).
e Trong gói tin ARP reply: Trường này chứa địa chỉ MAC của máy đã
gửi bản tin ARP request
Target protocol address (PTA): Dia chỉ IP máy gửi (máy dang tìm).
3.4 Ethernet "7!
Ethernet là công nghệ LAN thông dung và được sử dung từ lâu, vì thé nó được
áp dụng rộng rãi trong các mạng LAN, bao gồm văn phòng, nhà ở, nơi công cộng,
24
Trang 38doanh nghiệp và trường đại học Ethernet được ưa chuộng nhờ vào khả năng cung
cấp tốc độ cao trên khoảng cách xa thông qua cáp quang
Giao thức Ethernet sử dụng bus tuyến tính hoặc cấu trúc liên kết sao là nềntang của tiêu chuẩn IEEE 802.3 Lý do chính dé sử dụng Ethernet rộng rãi là đơn
giản để hiểu, duy trì, thực hiện, cung cấp tính linh hoạt và cho phép triển khai mạng
ít chi phí hơn.
3.4.1 Kiến trúc giao thức Ethernet
Giao thức Ethernet hoạt động ở hai lớp đầu tiên, tương ứng với lớp Vật lý
và lớp Liên kết dữ liệu Thực tế, Ethernet phân chia lớp Liên kết dữ liệu thành hai
lớp con riêng biệt: lớp Kiểm soát liên kết logic và lớp Kiểm soát truy cập phương
tiện.
Logical Link Control (LLC)
Medium Access Control (MAC)
Standard Ethernet Fast Ethernet Gigabit Ethernet
10Base5 100BaseTX 1000BaseT
Physical Layer IBase2 100BaseT4 1000Ba seLX
10BaseT 100B aseFX 10BaseFX
Hình 3.6 Kiến trúc của giao thức Ethernet Lớp vật lý trong mạng tập trung vào yêu tố phần cứng như bộ lặp, cáp và
thẻ giao diện mạng (NIC) Ví dụ, một mạng Ethernet như 100BaseTX hoặc
10BaseT cho biết loại cáp có thé được sử dụng, chiều đài của cáp và cấu trúc liênkết tối ưu
25
Trang 39Lớp liên kết dữ liệu trong các hệ thống mạng chủ yếu xử lý việc truyền gói
dữ liệu giữa các nút khác nhau Ethernet áp dụng phương pháp CSMA/CD(Carrier Sense Multiple Access with Collision Detection), trong đó tất cả các máy
tính đều kiểm tra cáp trước khi bắt đầu truyền dữ liệu qua mạng
Hai lớp đầu tiên quản lý cấu trúc mạng vật lý, cho phép các thiết bị truyền
dữ liệu từ thiết bi này đến thiết bị khác Ethernet là giao thức phổ biến nhất cho cảlớp Vật lý và lớp Liên kết dữ liệu và hiện được tiêu chuẩn hóa theo IEEE 802.3
Tốc độ truyền thực tế của giao thức Ethernet có thể được đo bằng Mbps(hàng triệu bit cho mỗi giây), Các phiên bản tốc độ của Ethernet có sẵn trong ba
loại khác nhau 10 Mbps (Standard Ethernet); 100 Mbps (Fast Ethernet) và 1000
Mbps (Gigabit Ethernet) Mặc dù tốc độ tối đa có thê đạt được trong điều kiện lý
tưởng, thực tế, tốc độ truyền qua mạng Ethernet thường không đạt được mức cao
e Mẫu đầu tiên của khung Giao thức Ethernet là 7 bytes Lời mở đầu,
trong đó phương án 0 và | trong khung này chỉ ra sự bắt đầu của khung
và cho phép người gửi và người nhận thiết lập đồng bộ hóa cấp bit Lúcdau, một Lời mở đầu trong khung trên đã được giới thiệu dé cho phépmắt một vai bit vì độ trễ tín hiệu
e Tuy nhiên, Ethernet dựa trên tốc độ cao hiện tại không yêu cầu Lời mở
đầu dé bảo vệ các bit khung Lời mở đầu chỉ định bộ thu mà khung đó
26
Trang 40đang đến và cho phép người nhận khóa luồng dữ liệu trước khi khungchính hãng bắt đầu.
Start of Frame Delimiter:
e Bắt đầu dấu phan cách khung (SFD) là trường 1 Byte với các giá tri
10101011 cho biết rằng các bit sắp tới là đầu khung, là địa chỉ của đích
Sự bắt đầu của dau phân cách khung được thiết kế chủ yếu dé chia mẫucủa bit thành phần mở đầu và bắt đầu một khung
e Đôi khi, sự bắt đầu của dấu phân cách khung được coi là phần chính
của lời mở đầu Do đó, điều này giải thích tại sao Lời nói đầu đượcbiểu diễn dưới dang 8 Bytes ở một số vị trí SFD cung cấp tín hiệu chocác trạm rằng đây là thời điểm cuối cùng đề thực hiện đồng bộ hóa
Destination MAC Address: Trường Dia chi Dich là một trường 6 bytes
trong khung Ethernet 6 trén Dia chi trong khung va dia chi MAC cua thiét bi
được so sánh Nếu cả hai dia chi được khớp, thì thiết bi chi cần cho phép khung
Dia chi MAC này là uni-cast, multi-cast hoặc broadcast.
Source MAC Address: Địa chỉ nguồn là một trường 6 bytes, chứa địa chiMAC của thiết bị gửi Khi địa chỉ nguồn là một địa chỉ đơn (Unicast), bit ít quan
trọng nhất (LSB) của byte đầu tiên sẽ luôn bằng 0
EtherType: Trường này dài 2 bytes chỉ loại giao thức được sử dụng Trong
khóa luận này chủ yếu 2 loại là 0x0800 (IPv4) và 0x0806 (ARP)
Data: Trường dữ liệu là vị trí ma đữ liệu thực tế có thé được thêm vào va
nó còn được gọi là Payload Ở đây, cả dit liệu và IP header sẽ được chèn vào nếu
IP được sử dụng qua Ethernet Vì vậy, dữ liệu lớn nhất có thé là 1500 bytes Nếu
độ dài dit liệu dưới độ dài tối thiểu 46 bytes, thì có thé bao gồm các số không đệm
dé đạt đến độ dài tối thiểu có thé đạt được
FSC: là mẫu cuối cùng với 4 bytes, chứa mã băm 32-bit được tinh từ các
trường Dia chỉ nguồn, Dia chỉ đích, và Loại giao thức Ethernet Nếu tổng kiểm tra
27