Tầng giao vận của mô hình Internet (TCP/IP
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
Môn:
Mạng nâng cao
Đề tài Tầng giao vận của mô hình Internet (TCP/IP)
Giáo viên hướng dẫn:
NGUYỀN DUY TÂN
Sinh viên thực hiện:
LUYỆN THỊ LAN HƯƠNG
LÊ THỊ KHÁNH CHI
Lớp:
TK6LC(1)
HƯNG Y ÊN - 12/04/2009
Trang 2Giao thức TCP/IP
Transmission Control Protocol/Internet Protocol (TCP/IP) là bộ giao thứcchuẩn cho phép truyền thông kể cả môi trờng khác nhau Ngoài ra TCP/IP là bộgiao thức mạng cho phép truy cập tài nguyên trên Internet TCP/IP trở thành chuẩngiao thức trên mạng Internet
1 Lịch sử phát triển mạng Internet và TCP/IP
Tháng 6/1968 một cơ quan của Bộ Quốc phòng Mỹ là cục các dự án nghiêncứu tiên tiến (Advance Research Project Agency-ARPA) đã xây dựng dự án trungtâm nghiên cứu lớn trong toàn liên bang mở đầu là 4 viện nghiên cứu Stanford, đạihọc Califorlia ở Los Angles, đại học California ở Santa Barbara và đại học Utah.Mục tiêu của bộ quốc phòng Mỹ là từ các trạm ban đầu này là có thể mở rộng racác trung tâm nghiên cứu liên quan đến lĩnh vực quân sự, hình thành một mạngmáy tính có độ tin cậy cao phù hợp với các hoạt động của bộ quốc phòng và anninh Giải pháp ban đầu đợc chọn là của Bolt Beranek và Newman (BBN) Lúc đócha có mạng LAN, WAN và các PC nh ngày nay Giải pháp của BBN bao gồm cácnút mạng (đợc gọi là IMP-Interface message processor) là tổ hợp các phần cứng vàphần mềm cài đặt lên máy tính Mini Mùa thu năm 1969 bốn trạm đầu tiên đợc kếtnối thành công đánh dấu sự ra đời của mạng ARPANET tiền thân của mạngInternet ngày nay Giao thức truyền thông trong mạng ARPANET lúc đó là NPC(Network control protocol) Đếngiữa năm 1970 họ giao thức TCP/IP đợc Vint Cerf(đại học Stanford) và Robert Kahn (BBN) phát triển Ban đầu cùng tồn tại với NPC
và đến năm 1983 thì hoàn toàn thay thế NPC trong ARPANET
ARPANET nhanh chóng mở rộng thêm các nút mới và trở thành một mạngquốc gia Trong thời gian đó, các nhà nghiên cứu ở trung tâm nghiên cứu Palo Alto(Palo Alto resarch center-PARC) của hãng Xerox đã phát triển một trong các côngnghệ sớm nhất phổ biến nhất của mạng cục bộ là Ethernet TCP/IP đợc tích hợp và
hệ điều hành Unix và sử dụng chuẩn Ethernet để nối các trạm làm việc với nhau
Đến khi xuất hiện các máy tính cá nhân thì TCP/IP lại đợc tích hợp vào PC chophép máy tính chạy DOC có thể truy cập các trạm chạy Unix và cử thế TCP/IPngày càng đợc sử dụng nhiều trong cả các mạng diện rộng lẫn mạng cục bộ
2 Các giao thức lớp Internet (protocol-IP)
Internet protocol (IP), là tên gọi giao thức lớp Internet định nghĩa các phơngtiện giao phát unreliable, connectionless, và thờng đợc biết với các tên tắt là IP Tr-
Trang 3ớc nhất, giao thức IP định nghĩa những đơn vị của việc truyền dữ liệu đợc dùng quamột mạng TCP/IP Internet Vì vậy, nó xác định chính xác khuôn dạng của tất cả dữliệu khi nó đợc chuyển qua một mạng TCP/IP Internet Thứ hai, phần mềm IP thựchiện chức năng chọn đờng để chọn ra đờng để gửi dữ liệu qua Thứ ba, để thêm vàotính chính xác để đặc tả kỹ thuật của khuôn dạng dữ liệu và chọn đờng thông th-ờng, IP gồm có cả một tập các luật biểu hiện cho ý tởng của hệ thống giao phát góitin unreliable Các luật chỉ rõ việc làm thế nào để các host và các Routers xử lí cácgói tin làm thế nào và khi nào các thông báo lỗi sẽ đợc phát đi, và các điều kiện choviệc huỷ gói tin IP là phần chủ yếu của thiết kế nên một mạng TCP/IP Internet đôikhi còn đợc gọi là một mạng dựa trên kỹ thuật IP (IP-bansed technology)
3 Internet Datagram
Có rất nhiều sự tơng tác giữa một mạng vật lý và một TCP/IP Internet Trênmột mạng vật lý, đơn vị truyền là frame cái chứa một header và dữ liệu, phầnheader mang nhiều thông tin địa chỉ nguồn đích Internet gọi những đơn vị truyềncơ sở của nó là Internet Datagram (IP Datagram) hay đơn giản là Datagram
Nh một khung mạng vật lý, một Datagram đợc chia thành vùng header vàvùng dữ liệu Phần header cũng tơng tự frame, nó chứa địa chỉ nguồn địa chỉ đích
và một trờng type dùng định danh nội dung của Datagram Sự khác nhau headercủa Datagram chứa địa chỉ IP còn header của frame chứa địa chỉ vật lý Hình saumô tả dạng tổng quát của một Datagram
a) Khuôn dạng Datagram
Bởi vì quá trình xử lí Datagram là do phần mềm nên nội dung và khuôn dạngkhông bị phụ thuộc bởi phần cứng Ví dụ bốn bit trờng đầu tiên (VERS) chứaVERSION của giao thức IP đợc sử dụng để tạo Datagram Trờng này đợc sử dụng
để thẩm tra rằng bên gửi bên nhận và bất kỳ Router nào trong số giữa chúng đồng ý
VERS HLEN Kiểu dịch vụ Tổng độ dài
Identification FLAGS FRAGMENT OFFSET
TIME TO LIVE PROTOCOL HEADER CHECKSUM
Source IP Address
Destination IP Address
IF OPTION (IF ANY)
DATA PADDING
Trang 4
về khuôn dạng của Datagram Tất cả mọi phần mềm IP đợc yêu cầu để kiểm tra ờng VERSION trớc khi xử lí một Datagram để đảm bảo nó phù hợp với khuôn dạng
tr-mà các phần mềm trông đợi Nừu chuẩn thay đổi, các máy sẽ loại bỏ các Datagramcùng với các VERSION giao thức khác với phiên bản của chúng, ngăn cản chúnghiểu sai nội dung Datagram theo các format quá cũ (Tới thời điểm 1995 VERSIONcủa IP là 4 đờng) trờng độ dài header có một độ dài cố định trừ trờng IP OPTION
và các trờng PADDING tơng ứng Header thông thờng nhất không chứa các lựachọn (option) và padding, giá trị 20 octets và có một trờng độ dài header bằng 5
Trờng TOTAL LENGTH đa ra độ dài của IP Datagram đợc đo bởi octets,gồm các octets của phần header và dữ liệu Kích thớc của vùng dữ liệu có thể tínhtoán bằng việc trừ đi chiều dài của header (HILEN) từ giá trị của TOTALLENGTH Bởi vì trờng TOTAL LENGTH là 16 bits nên giá trị tối đa của gói tin IP
là 216 hay 65535 octets Trong hầu hết các ứng dụng, điều này khônh phải là mộthạn chế nghiêm trọng Nó có thể trở nên quan trọng hơn tơng lai nếu các mạng cótốc độ cao hơn có thể mang các gói dữ liệu lớn hơn so với 65535 octets
65535 octets Dù sao giới hạn đó có thể đợc thay đổi ở VERSION của giao thức saunày
Những giới hạn về kích thớc Datagram nảy sinh từ thực tế Chúng ta biếtrằng, khi các Datagram chuyển từ máy này sang máy khác, chúng ta phải luôn vậnchuyển bằng mạng vật lý bên dới Để thực hiện việc vận chuyển trong Internet mộtcách hiệu quả, giữa chúng ta phải bảo đảm rằng mỗi Datagram qua mạng trong mộtframe vật lý riêng biệt
Datagram Datagram Data Area Header
FRAME FRAME DATA AREA
Header
Trang 5Hình1 : Bọc gói tin trong IP một frame.
Mạng vật lý coi toàn bộ Datagram gồm cả header nh là dữ liệu.
ý nghĩa về việc mang một Datagram trong một frame mạng đợc gọi là
“encapsulation” Đối với mạng bên dới, một Datagram giống nh bất kỳ messagesnào khác đợc gửi từ một máy này tới máy khác Phần cứng không nhận ra khuôndạng Datagram, cũng không hiểu đợc địa chỉ IP đích Vì vậy, hình sau mô tả khimột máy gửi một IP Datagram tới một máy khác, toàn bộ Datagram đợc đặt vàophần dữ liệu của frame mạng
Sự lựa chọn có thể là hiển nhiên: Quan điểm thiết kế Internet là để ẩn đi các kỹthuật mạng bên dới và làm cho việc giao tiếp thuận tiện với ngời dùng Vì vậy, thaythế việc thiết kế các Datagram tôn trọng triệt để những dàng buộc của mạng vật lýthì phần mềm TCP/IP chọn một kích thớc Datagram khởi đầu tiện lợi và giúp phân
Trang 6chia các Datagram lớn ra các phần nhỏ khi Datagram cần đi qua một mạng cóMTU nhỏ Các phần nhỏ của Datagram chia gọi là phân mảnh (fragment), và quátrình phân chia đợc gọi là quá trình phân mảnh (fragmention).
Hình () minh hoạ quá trình phân chia thờng đợc xảy ra tại một Router nào đódọc theo con đờng Datagram đi từ nguồn tới đích Router nhận một Datagram từmạng với một MTU lớn và phải gửi nó qua một mạng có MTU nhỏ hơn kích thớccủa Datagram Trong hình vẽ cả Host gắn trực tiếp tới các Ethernet có MTU là
1500 octets Vì vậy cả 2 Host có thể phát và gửi tới kích thớc 1500 octets Nhngcon đờng giữa chúng là một mạng với MTU bằng 620 Nừu Host A gửi cho Host Bmột Datagram lớn hơn 620 octets, Router R1 sẽ phân mảnh Datagram đó Tơng tự,nếu B gửi một Datagram lớn hơn 620 tới A, R2 sẽ phân mảnh chúng
Hình (a) Một Datagram 1400 octets và (b) 3 mảnh cho mạng có MTU bằng
620 Header 1 và 2 có thêm bit thiết lập phân mảnh Các offset là các số octets tính theo hệ 10 chúng ta phải chia đợc cho 8 để lấy giá trị đã cất giữ trong frament header
Kích cỡ mảnh đợc chọn sao cho mỗi mảnh có thể đợc chuyển qua mạng bên dới một frame đơn Hơn nữa, do IP đa ra offset của dữ liệu là bội số của 8 octets, nên kích thớc của mảnh phân đợc gọi là bội số của 8 Dĩ nhiên, việc chọn bội số 8
là số gần với MTU của mạng nhất thờng không chia Datagram thành các phần kích
cỡ baừng nhau; phần cuối cùng thờng ngắn hơn các phần khác Các mảnh phải đợc lắp ráp lại để tạo ra một bản sao đầy đủ của Datagram ban đầu trớc khi nó có thể
Trang 7Giao thức IP protocol không giới hạn kích thớc dới cho Datagram, hay là
đảm bảo rằng các Datagram lớn hơn sẽ đợc giao phát mà không cần phân mảnh Nguồn có thể chọn bất kỳ kích thớc Datagram mà nó cho là thích hợp; việc phân mảnh và ráp lại diễn ra một cách tự động, mà không cần nguồn có hành động gì
Đặc tả kỹ thuật IP chỉ rõ rằng các Routers phải chấp nhận các Datagram phải có kích cỡ bằng các MTU lớn nhất của các Datagram phải có kích cỡ của các mạng chúng gắn nối tới Hơn nữa, một Router phải luôn luôn xử lí các Datagram lên tới
576 octets (các host cũng đợc yêu cầu chấp nhận, và có tái lắp ghép khi cần, các Datagram với ít nhất là 576 octets)
Việc phân mảnh một Datagram có nghĩa là phân chia nó thành một số phần mảnh nhỏ hơn Và đó là phần có cùng một khuôn dạng nh Datagram ban đầu Hình() minh hoạ điều này
Mỗi mảnh chứa một Datagram header, nó lặp lại hầu hết thông tin của
Datagram header ban đầu (trừ một bit trong trờng FLAGS để chỉ ra rằng nó là một mảnh) đợc theo sau bởi nhiều dữ liệu nh nó có thể đợc mang trong mảnh trong khi dữ liệu chiều dài nhỏ hơn MTU của mạng mà nó phải đi qua
d) Tái lắp ghép các mảnh
Một Datagram sẽ đợc lắp ghép sau khi đi qua một mạng, hay là các mảnh sẽ
đợc mang tới Host cuối cùng trớc khi lắp ghép? Trong một TCP/IP Internet khi một Datagram đã đợc phân mảnh thì các mảnh sẽ đi tới đích nh thể tới những Datagram riêng biệt tới cùng một đích cuối là nơi chúng đợc lắp ghép lại Việc duy trì cho tất cả các mảnh cùng tới một đích cuối có hai bất lợi Thứ nhất bởi vì các Datagram không đợc lắp ghép lại ngay lập tức khi chuyển qua một mạng có MTD nhỏ, nên các mảnh nhỏ phải đợc mang từ nơi phân mảnh tới đích cuối cùng Việc lắp ghép lại các Datagram tại đích cuối cùng có thể dẫn tới sự không hiệu quả, dù
là một số trong các mạng vật lý đã gặp sau việc phân mảnh có MTD lớn hơn, trong khi chỉ các phân mảnh nhỏ đi qua nó Thứ hai, nếu bất kỳ mảnh nào bị mất,
Datagram không thể lắp ghép lại đợc Máy nhận khởi tạo một bộ timer lắp ghép khi
nó nhận đợc một mảnh khởi đầu Nừu timer hết hiệu lực trớc khi tất cả các mảnh tới thì máy đang nhận sẽ huỷ các gói mà không xử lí Vì vậy mà khả năng các Datagram bị mất sẽ tăng khi việc phân mảnh xảy ra, bởi vì khi một mảnh bị mất sẽ tăng khi việc phân mảnh bị mất thì coi nh cả Datagram bị mất
Trang 8BÍt chÍp mĩt sỉ bÍt lîi phô, viÖc thùc hiÖn l¾p r¸p t¹i ®Ých cuỉi cïng vĨn ho¹t ®ĩng tỉt Nê cho phÐp mìi ph©n m¶nh ®îc ®Þnh tuyÕn ®ĩc lỊp, vµ kh«ng ®ßi hâi c¸c Router trung gian lu gi÷ chóng hoƯc l¾p ghÐp chóng.
e) §iÒu khiÓn viÖc ph©n m¶nh
Ba tríng trong phÌn Header cña Datagram lµ Identification, Flags vµ
Fragment offset ®iÒu khiÓn viÖc ph©n m¶nh vµ l¾p r¸p Datagram Tríng
Identification chøa mĩt sỉ nguyªn duy nhÍt, ®Þnh danh Datagram Nhí l¹i r»ng khi mĩt Router ph©n m¶nh mĩt Datagram th× nê coppy phÌn lín c¸c tríng trong
Header cña Datagram ban ®Ìu vµo mìi m¶nh Tríng Identification còng ph¶i ®îc coppy Môc ®Ých tríc tiªn lµ ®Ó cho ®Ých biÕt m¶nh ®Õn nµo lµ cña Datagram nµo Khi mĩt m¶nh ®Õn, ®Ých dïng tríng Identification ®Ó cïng víi ®Þa chØ nguơn ®Ó x¸c
®Þnh Datagram C¸c m¸y tÝnh göi Datagram ph¶i t¹o ra mĩt gi¸ trÞ duy nhÍt cho mìi Datagram Mĩt kü thuỊt ®îc sö dông bịi mĩt phÌn mÒm IP gi÷ mĩt bĩ ®Õm toµn côc (global counter) trong bĩ nhí, t¨ng nê mìi lÌn mĩt Datagram míi ®îc t¹o
ra, vµ g¸n kÕt qu¶ nh lµ tríng Identification cña Datagram
Nhí l¹i r»ng mìi m¶nh cê cïng khu«n d¹ng nh khu«n d¹ng cña Datagramlóc cha ph©n m¶nh §ỉi víi mìi m¶nh, tríng Fragment offset x¸c ®Þnh ®ĩ lÖchtrong (offset) Datagram ban ®Ìu cña d÷ liÖu ®ang ®îc mang b»ng c¸c m¶nh, ®îc ®ob»ng c¸c khỉi 8 octets b¾t ®Ìu tõ offset 0 cho tíi m¶nh cê offset cao nhÍt C¸cm¶nh kh«ng cÌn ph¶i ®óng trỊt tù vµ kh«ng cê giao tiÕp gi÷a c¸c Router ®· ph©nm¶nh Datagram vµ ®Ých ®ang l¾p r¸p chóng
Hai bit thÍp cña tríng Flags ®iÒu khiÓn viÖc ph©n m¶nh Th«ng thíng phÌnmÒm øng dông sö dông TCP/IP kh«ng cÌn quan t©m tíi viÖc ph©n m¶nh bịi v× c¶viÖc ph©n m¶nh vµ l¾p r¸p l¹i c¸c m¶nh ®Òu lµ c¸c thñ tôc tù ho¹t ®ĩng t¹i mĩt møcthÍp trong hÖ ®iÒu hµnh mµ ngíi dïng kh«ng thÓ thÍy ®îc Dï sao th× viÖc kiÓm tral¹i phÌn mÒm Internet hoƯc gì rỉi c¸c vÍn ®Ò vỊn hµnh th× cê thÓ kiÓm tra kÝch thíccña Datagram th× rÍt quan trông cho viÖc ph©n m¶nh x¶y ra Bit ®iÒu khiÓn hì trîtrong nh÷ng tríng hîp kiÓm tra nh vỊy b»ng c¸ch x¸c ®Þnh rđ lµ Datagram cê thÓ bÞph©n m¶nh hay kh«ng Nê ®îc gôi lµ bit kh«ng ph©n m¶nh bịi v× viÖc thiÕt lỊp nêlªn gi¸ trÞ 1 x¸c ®Þnh r»ng Datagram sÏ kh«ng bÞ ph©n m¶nh Mĩt øng dông cê thÓchôn ®Ó kh«ng cho phÐp ph©n m¶nh trong tríng hîp khi toµn bĩ Datagram míi cểng dông
Trang 9Ví dụ xét một quá trình khởi động từ xa của một máy tính: Nó bắt đầu thihành một chơng trình nhỏ từ ROM, chơng này sử dụng Internet để yêu cầu thủ tụckhởi tạo và máy kia gửi lại phần mềm mà nó yêu cầu Trờng hợp này máy cần hoặc
là toàn bộ phần mềm hoặc là không, nên Datagram của nó sẽ phải có bit “donotfragment” đợc thiết lập 1 Bất cứ khi nào một Router cần phân mảnh một Datagram
có bit “donot fragment” mang giá trị một, thì Router đó sẽ huỷ Datagram và gửimột thông báo lỗi trở lại nguồn
Bit thấp trong trờng Flags xác định là mảnh chứa dữ liệu từ vị trí giữa của góitin ban đầu hay từ vị trí cuối Nó đợc gọi là bit “more fragment” Để biết tại saomột bit nh vậy, hãy xem xet việc phân mảnh IP tại đích cố gắng lắp ráp lại mộtDatagram Nó sẽ nhận đợc các mảnh không đúng trình tự và cần thiết khi nào nó đãnhận đợc tất cả các mảnh của Datagram Khi một mảnh đến, trờng Total Length đểbiết nó đã nhận đợc toàn bộ các mảnh hay cha Bít “more fragment” đã quyết địnhvấn đề này dễ dàng: Một khi đích nhận đợc một fragment với bit “more fragment”
là 0, nó biết rằng mảnh mang dữ liệu này từ phần cuối của Datagram ban đầu Từtrờng fragment offset và Total Length, nó có thể đa ra đợc tính chiều dài củaDatagram ban đầu Bằng việc kiểm tra fragment offset và Total Length của tất cảcác mảnh nó nhận đợc thì bên nhận có thể biết rằng các mảnh nó có chứa tất cả dữliệu cần để lắp ráp lại toàn bộ Datagram hay là không
f) Time to live (TTL)
Trờng Time to live xác định thời gian Datagram đợc phép tồn tại trong hệthống Internet, nó đợc tính bằng giây í tởng thì đơn giản nhng nó rất quan trọng:Bất cứ khi một máy đa vào trong mạng một Datagram thì nó đặt một thời gian tối
đa để tồn tại trong mạng cho Datagram đó Các Router và các Host xử lí cácDatagram phải giảm giá trị của trờng Time to live mỗi lần gửi qua và xoá bỏDatagram khi thời gian của Datagram hết hiệu lực
Việc ớc lợng thời gian chính xác là khó khăn bởi vì các Router thờng khôngbiết thời gian quá độ của mạng vật lý Một số luật đơn giản hoá quá trình xử lí vàlàm cho việc xử lí các Datagram dễ dàng mà không cần đồng hồ đồng bộ Trớc hết,mỗi Router dọc đờng từ nguồn tới đích đợc yêu cầu giảm giá trị trờng Time to live
đi một đơn vị khi nó xử lí phần Header của Datagram Thêm nữa, để xử lí trờng hợpcác Router quá tải, mỗi Router báo cáo thời gian cục bộ khi Datagram đến và giảmTime to live đi một giá trị bằng số giây Datagram trong Router chờ dịch vụ xử lí
Trang 10Bất cứ khi nào trờng Time to live đạt tới giá trị 0, thì Router sẽ huỷ Datagram
đó và gửi thông báo lỗi về nguồn í tởng của việc duy trì một bộ timer cho cácDatagram rất là hữu dụng bởi vì nó đảm bảo rằng các Datagram không thể quanhquẩn trong Internet mãi mãi, ngay cả khi bạn chọn đờng bị lỗi và các Router địnhtuyến cho các Datagram trong một vòng lặp
h) Các trờng khác của Header trong Datagram
Trờng protocol tơng tự trờng Type trong Frame của mạng vật lý Giá trị trongtrờng protocol xác định giao thức mức cao nào đợc sử dụng để tạo ra message đang
đợc mang trong vùng Data của một Datagram Về bản chất, giá trị của protocol xác
định khuôn dạng của vùng Data Việc ánh xạ giữa một giao thức cao và một giá trịnguyên đang đợc dùng trong trơng protocol phải đợc quản lý để đảm bảo sự phùhợp trong Internet
Trờng Header Cheksum đảm bảo cho tính nguyên vẹn của giá trị Header IPCheksum đợc tạo ra bắng việc coi Header nh là một số nguyên gồm 16 bit liên tục
bổ xung chúng cùng với việc sử dụng số bù một và rồi lấy phần bù kết quả Vì mục
đích tính toán Cheksum trờng Header đợc giả sử là chứa giá trị 0
Điều quan trọng để nhớ là Cheksum chỉ áp dụng trong IP Header chứ khôngphải cho phần Data Việc phân chia Cheksum cho các Header và cho phần Data cómột số thuận lợi nhng cũng gây một số bất lợi Bởi vì Header thờng chiếm ít octetshơn phần Data nên việc có một tổng kiểm tra riêng làm giảm thời gian xử lí tại cácRouter Chúng chỉ cần tính toán Cheksum của Header Sự tách biệt cũng cho phépcác giao thức mức cao hơn chọn Cheksum cho bản thân chúng để tính toán vớiphần Data Điểm bất lợi nhất là việc các giao thức lớp cao hơn bị buộc phải bổxung các Cheksum của chúng nếu không có thể phải chịu rủi ro có lỗi ở phần Data
mà không phát hiện đợc
Trờng source ip address và destination ip address chứa địa chỉ IP 32 bit củabên gửi và bên nhận Mặc dù Datagram có thể đợc định tuyến qua nhiều Routertrung gian nhng trờng địa chỉ nguồn và địa chỉ đích không bao giờ thay đổi
Trờng DATA là vùng dữ liệu của Datagram, độ dài của trờng phụ thuộc vàonhững gì đang đợc gửi trong Datagram
Trờng IP OPTIONS sẽ đợc thảo luận sau Trờng PADDING phụ thuộc vàotuỳ chọn nào đợc chọn Nó đại diện cho các bit chứa giá trị 0, cái có thể cần để
đảm bảo cho HEADER của Datagram mở rộng tới giá trị là bội số của 32 bit
4 Giao thức ICMP (Internet Control Message)