Kỹ thuật truyền số liệu là một mảng kiến thức không thể thiếu đối với sinh viên ngành điện tử viễn thông và công nghệ thông tin. Đây là nền tảng nghiên cứu chuyên sau trong chuyên ngành này. Mặc dù mạng đậm giải pháp cho dịch vụ số liệu, nhưng kỹ thuật truyền số liệu ngày nay lại là xuất phát điểm cho đa dịch vụ một xu thế tất yếu trong mạng viễn thông và mạng máy tính hiện đại. Chúng ta đều biết rằng không có kiến thức cơ sở vững vàng sẽ không có phát triển ứng dụng vì vậy bài tập lớn này sẽ trình bày những kiến thức cơ bản nhất và thiết thực nhất. Do phạm vi đề tài là “Giao thức UDP và ARP” nên nhóm chúng em chỉ trình bày một phần nhỏ trong ngành truyền dữ liệu.
22 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 3514 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Bài tập lớn kỹ thuật truyền số liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
LỜI NÓI ĐẦU
Kỹ thuật truyền số liệu là một mảng kiến thức không thể thiếu đối với sinh viên ngành điện tử viễn thông và công nghệ thông tin. Đây là nền tảng nghiên cứu chuyên sau trong chuyên ngành này. Mặc dù mạng đậm giải pháp cho dịch vụ số liệu, nhưng kỹ thuật truyền số liệu ngày nay lại là xuất phát điểm cho đa dịch vụ một xu thế tất yếu trong mạng viễn thông và mạng máy tính hiện đại. Chúng ta đều biết rằng không có kiến thức cơ sở vững vàng sẽ không có phát triển ứng dụng vì vậy bài tập lớn này sẽ trình bày những kiến thức cơ bản nhất và thiết thực nhất. Do phạm vi đề tài là “Giao thức UDP và ARP” nên nhóm chúng em chỉ trình bày một phần nhỏ trong ngành truyền dữ liệu.
Với sự hướng dẫn tận tình của thầy giáo Th.S Đoàn Văn Trung, cộng với kiến thức đã học được của môn Mạng máy tính, Kỹ thuật truyền số liệu chúng em đã hoàn thành bài tập lớn này đúng thời gian quy định. Nhưng do còn hạn chế về mặt kiến thức và thực hành trực tiếp trên các hệ thống thật nên bài tập lớn này không thể tránh khỏi những sai sót. Rất mong những ý kiến đóng góp của thầy giáo đề bài tập lớn này hoàn thiện hơn.GIAO THỨC UDP VÀ ARP
Tìm hiểu về giao thức UDP
Tầng giao thức
TCP/IP là một họ các giao thức được gọi là họ giao thức IP, bao gồm bốn tầng. Cần nhớ rằng TCP/IP không phải là một giao thức mà thực sự là một họ các giao thức, và bao gồm các giao thức mức thấp khác như IP, TCP, và UDP. UDP nằm ở tầng giao vận, phía trên giao thức IP. Tầng giao vận cung cấp khả năng truyền tin giữa các mạng thông qua các gateway. Nó sử dụng các địa chỉ IP để gửi các gói tin trên Internet hoặc trên mạng thông qua các trình điều khiển thiết bị khác nhau. TCP và UDP là một phần của họ giao thức TCP/IP; mỗi giao thức có những ưu và nhược điểm riêng của nó. Giao thức UDP là giao thức đơn giản, phi liên kết và cung cấp dịch vụ trên tầng giao vận với tốc độ nhanh. Nó hỗ trợ liên kết một-nhiều và thường được sử dụng thường xuyên trong liên kết một-nhiều bằng cách sử dụng các datagram multicast và unicast. Giao thức IP là giao thức cơ bản của Internet. TCP và UDP đều là hai giao thức tầng giao thức vận trên cơ sở của giao thức IP. Hình dưới đây chỉ ra cách ánh xạ mô hình OSI ánh xạ vào kiến trúc TCP/IP và họ giao thức TCP/IP.
Nguyên lý làm việc
a. Một số thuật ngữ
Trước khi kiểm tra xem giao thức UDP hoạt động như thế nào, chúng ta cần làm quen với một số thuật ngữ. Trong phần dưới đây, chúng ta sẽ định nghĩa một số thuật ngữ cơ bản có liên quan đến giao thức UDP.
Packet
Trong truyền số liệu, một packet là một dãy các số nhị phân, biểu diễn dữ liệu và các tín hiệu điều khiển, các gói tin này được chuyển đi và chuyển tới tới host. Trong gói tin, thông tin được sắp xếp theo một khuôn dạng cụ thể.
Datagram
Một datagram là một gói tin độc lập, tự chứa, mang đầy đủ dữ liệu để định tuyến từnguồn tới đích mà không cần thông tin thêm. MTU. MTU là viết tắt của Maximum Transmission Unit. MTU là một đặc trưng của tầng lien kết mô tả số byte dữ liệu tối đa có thể truyền trong một gói tin. Mặt khác, MTU là gói dữ liệu lớn nhất mà môi trường mạng cho trước có thể truyền. Ví dụ, Ethernet có MTU cố định là 1500 byte. Trong UDP, nếu kích thước của một datagram lớn hơn MTU, IP sẽ thực hiện phân đoạn, chia datagram thành các phần nhỏ hơn (các đoạn), vì vậy mỗi đoạn nhỏ có kích thước nhỏ hơn MTU.
Port
UDP sử dụng các cổng để ánh xạ dữ liệu đến vào một tiến trình cụ thể đang chạy trên một máy tính. UDP định đường đi cho packet tại vị trí xác định bằng cách sử dụng số hiệucổng được xác định trong header của datagram. Các cổng được biểu diễn bởi các số 16-bit,vì thế các cổng nằm trong dải từ 0 đến 65535. Các cổng cũng được xem như là các điểm cuối của các liên kết logic, và được chia thành ba loại sau:
o Các cổng phổ biến: Từ 0 đến 1023
o Các cổng đã đăng ký: 1024 đến 49151
o Các cổng động/dành riêng 49152 đến 65535
Chú ý rằng các cổng UDP có thể nhận nhiều hơn một thông điệp ở một thời điểm.
Trong một số trường hợp, các dịch vụ TCP và UDP có thể sử dụng cùng một số hiệu cổng như 7 (Echo) hoặc trên cổng 23 (Telnet).
UDP có các cổng thông dụng sau:
TTL (Time To Live)
Giá trị TTL cho phép chúng ta thiết lập một giới hạn trên của các router mà một datagram có thể đi qua. Giá trị TTL ngăn ngừa các gói tin khỏi bị kẹt trong các vòng lặp định tuyến vô hạn. TTL được khởi tạo bởi phía gửi và giá trị được giảm đi bởi mỗi router quản lý datagram. Khi TTL bằng 0, datagram bị loại bỏ.
Multicasting
Multicasting là phương pháp dựa trên chuẩn có tính chất mở để phân phối các thông tin giống nhau đến nhiều người dùng. Multicasting là một đặc trưng chính của giao thức UDP.
Multicasting cho phép chúng ta truyền tin theo kiểu một nhiều, ví dụ gửi tin hoặc thư điện tử tới nhiều người nhận, đài phát thanh trên Internet, hoặc các chương trình demo trực tuyến.
b. Nguyên lý hoạt động
UDP truyền dữ liệu (datagram) giữa 2 thiết bị mạng (2 máy) thông qua các cổng ứng dụng. Các thông số về địa chỉ máy gửi và máy nhận (Soure address và Destination address) được xác nhận ở phần header của IP Datagram. Từ thông số về Destination Port cho biết máy nhận sẽ nhận dữ liệu qua cổng nào, nếu như ứng dụng bên trong không mở cổng tương ứng thì việc nhận không thể thực hiện được. Trong quá trình chuyền nhận UDP chỉ cung cấp một cơ chuyền lại khi có lỗi, trường checksum sử dụng thuật toán để đảm bảo data gửi sang bên kia không bị xuyên tạc. Khi máy nhận nhận được dữ liệu nó sẽ tính lại checksum mới và s2 với checksum nhận được, nếu có sự sai khác yêu cầu thông tin gửi lại
Cấu trúc đơn vị dữ liệu
Giao thức UDP là một giao thức “không liên kết” được sử dụng thay thế trên IP theo yêu cầu của các ứng dụng. Khác với TCP, UDP không có các chức năng thiết lập và giải phóng liên kết. Nó cũng không cung cấp các cơ chế báo nhận, không sắp xếp tuần tự các đơn vị dữ liệu đến và có thể dẫn tới tình trạng dữ liệu bị mất hoặc trùng mà không hề có thông báo lỗi cho người gửi. Tóm lại nó cung cấp các dịch vụ giao vận không tin cậy như trong TCP. Do ít chức năng phức tạp nên UDP có xu thế hoạt động nhanh hơn TCP. Nó thường được dùng cho các ứng dụng không đòi hỏi độ tin cậy cao trong giao vận.
Cấu trúc của một đơn vị dữ liệu UDP như sau:
Trong đó:
Soure Port (16 bit): Trường này xác định cổng của trạm gửi và có ý nghĩa nếu muốn nhận thông tin phản hồi từ người nhận. Nếu không dùng đến thì đặt nó bằng 0.
Destination Port (16 bit): Trường xác nhận cổng của trạm nhận thông tin. Trường này là bắt buộc.
Length (16 bit): Xác định chiều dài của toàn bộ datagram: phần header và dữ liệu. Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu, chỉ có header.
Checksum (16 bit): Trường Checksum 16 bit dùng cho việc kiểm tra lỗi của phần header và dữ liệu.
Ưu và nhược điểm của giao thức UDP
Ưu điểm
Không cần thiết lập liên kết: UDP là giao thức phi liên kết, vì thế không cần phải thiết lập liên kết. Vì UDP không sử dụng các tín hiệu handshaking, nên có thể tránh được thời gian trễ. Đó chính là lý do tại sao DNS thường sử dụng giao thức UDP hơn là TCP-DNS sẽ chậm hơn rất nhiều khi dùng TCP.
Tốc độ: UDP nhanh hơn so với TCP. Bởi vì điều này, nhiều ứng dụng thường được cài đặt trên giao thức UDP hơn so với giao thức TCP.
Hỗ trợ hình trạng (Topology): UDP hỗ trợ các liên kết 1-1, 1-n, ngược lại TCP chỉ hỗ trợ liên kết 1-1.
Kích thước header: UDP chỉ có 8 byte header cho mỗi đoạn, ngược lại TCP cần các header 20 byte, vì vậy sử dụng băng thông ít hơn.
Bảng dưới đây tổng kết những sự kác nhau giữa hai giao thức TCP và UDP:
Nhược điểm
So với giao thức TCP, UDP có những nhược điểm sau:
Thiếu các tín hiệu bắt tay: Trước khi gửi một đoạn, UDP không gửi các tín hiệu bắt tay giữa bên gửi và bên nhận. Vì thế phía gửi không có cách nào để biết datagram đã đến đích hay chưa. Do vậy, UDP không đảm bảo việc dữ liệu đã đến đích hay chưa..
Sử dụng các phiên: Để TCP là hướng liên kết, các phiên được duy trì giữa các host. TCP sử dụng các chỉ số phiên (session ID) để duy trì các liên kết giữa hai host. UDP không hỗ trợ bất kỳ phiên nào do bản chất phi liên kết của nó.
Độ tin cậy: UDP không đảm bảo rằng chỉ có một bản sao dữ liệu tới đích. Để gửi dữ liệu tới các hệ thống cuối, UDP phân chia dữ liệu thành các đoạn nhỏ. UDP không đảm bảo rằng các đoạn này sẽ đến đích đúng thứ tự như chúng đã được tạo ra ở nguồn. Ngược lại, TCP sử dụng các số thứ tự cùng với số hiệu cổng và các gói tin xác thực thường xuyên, điều này đảm bảo rằng các gói tin đến đích đúng thứ tự mà nó đã được tạo ra.
Bảo mật: TCP có tính bảo mật cao hơn UDP. Trong nhiều tổ chức, firewall và router cấm các gói tin UDP, điều này là vì các hacker thường sử dụng các cổng UDP.
Kiểm soát luồng. UDP không có kiểm soát luồng; kết quả là, một ứng dụng UDP được thiết kế tồi có thể làm giảm băng thông của mạng.
Những vấn đề cần giải quyết
Nhận các gói tin
Trước khi một ứng dụng có thể đọc các gói tin UDP được gửi bởi các máy ở xa, nó phải gán một socket với một cổng UDP bằng cách sử dụng DatagramSocket, và tạo ra một DatagramPacket sẽ đóng vai trò như là một bộ chứa cho dữ liệu của gói tin UDP. Hình vẽ dưới đây chỉ ra mối quan hệ giữa một gói tin UDP với các lớp Java khác nhau được sử dụng để xử lý nó và các ứng dụng thực tế.
Khi một ứng dụng muốn đọc các gói tin UDP, nó gọi phương thức DatagramSocket.receive(), phương thức này sao chép gói tin UDP vào một DatagramPacket xác định. Xử lý nội dung nói tin và tiến trình lặp lại khi cần
Khi xử lý gói tin ứng dụng phải làm việc trực tiếp với một mảng byte. Tuy nhiên nếu ứng dụng là đọc văn bản thì ta có thể sử dụng các lớp từ gói vào ra để chuyển đổi giữa mảng byte và luồng stream và reader. Bằng cách gắn kết luồng nhập ByteArrayInputStream với nội dung của một datagram và sau đó kết nối với một kiểu luồng khác, khi đó bạn có thể truy xuất tới nội dung của gói UDP một cách dễ dàng. Rất nhiều người lập trình thích dung các luồng vào ra I/O để xử lý dữ liệu, bằng cách sử dụng luồng DataInputStream hoặc BufferedReader để truy xuất tới nội dung của các mảng byte.
Gửi các gói tin
Lớp DatagramSocket cũng được sử dụng để gửi các gói tin. Khi gửi gói tin, ứng dụng phải tạo ra một DatagramPacket, thiết lập địa chỉ và thông tin cổng, và ghi dữ liệu cần truyền vào mảng byte. Nếu muốn gửi thông tin phúc đáp thì ta cũng đã biết địa chỉ và số hiệu cổng của gói tin nhận được. Mỗi khi gói tin sẵn sàng để gửi, ta sử dụng phương thức send() của lớp DatagramSocket để gửi gói tin đi.
Ví dụ minh họa giao thức UDP
Để minh họa các gói tin UDP được gửi và nhận như thế nào, chúng ta sẽ viết, biên
dịch và chạy ứng dụng sau.
Viết chương trình theo mô hình Client/Server để:
Client thực hiện các thao tác sau đây:
- Client gửi một xâu ký tự do người dùng nhập từ bàn phím cho server
- Client nhận thông tin phản hồi trở lại từ Server và hiển thị thông tin đó trên màn hình.
Server thực hiện các thao tác sau:
- Server nhận xâu ký tự do client gửi tới và in lên màn hình
- Server biến đổi xâu ký tự thành chữ hoa và gửi trở lại cho Client
Tìm hiểu về giao thức ARP
Tầng giao thức
Mạng LAN nhỏ hoạt động dựa trên hai lớp một và hai trong mô hình OSI ( lớp physical và datalink). Nhưng các giao thức liên mạng ( internet-work ) lại dựa trên địa chỉ lớp ba (lớp network). Việc phân giải địa chỉ giữa lớp datalink và lớp network nhằm giúp cho việc truyền dữ liệu được liên tục qua mạng.Có hai phương pháp phân giải địa chỉ là : map trực tiếp và phân giải động. Việc map trực tiếp gặp nhiều khó khăn do địa chỉ MAC (lớp datalink) là địa chỉ 48 bit trong khi địa chỉ IP là 32 bit. Bên cạnh đó các nhà phát triển muốn tạo ra một cơ chế linh hoạt trong sử dụng. Chính vì vậy họ phát triển ARP ( Address Resolution Protocol ). Giao thức này được định nghĩa trong RFC 826
- ARP là phương thức phân giải địa chỉ động giữa địa chỉ lớp network và địa chỉ lớp datalink. Quá trình thực hiện bằng cách: một thiết bị IP trong mạng gửi một gói tin broadcast đến toàn mạng yêu cầu thiết bị khác gửi trả lại địa chỉ phần cứng ( địa chỉ lớp datalink ) của mình.- Ban đầu ARP chỉ được sử dụng trong mạng Ethernet để phân giải địa chỉ IP và địa chỉ MAC. Nhưng ngày nay ARP đã được ứng dụng rộng rãi và dùng trong các công nghệ khác dựa trên lớp hai.
Nguyên lý làm việc
a. Nguyên tắc làm việc của ARP trong mạng LANKhi một thiết bị mạng muốn biết địa chỉ MAC của một thiết bị mạng nào đó mà nó đã biết địa chỉ ở tầng network (IP, IPX…) nó sẽ gửi một ARP request bao gồm địa chỉ MAC address của nó và địa chỉ IP của thiết bị mà nó cần biết MAC address trên toàn bộ một miền broadcast. Mỗi một thiết bị nhận được request này sẽ so sánh địa chỉ IP trong request với địa chỉ tầng network của mình. Nếu trùng địa chỉ thì thiết bị đó phải gửi ngược lại cho thiết bị gửi ARP request một gói tin (trong đó có chứa địa chỉ MAC của mình). Trong một hệ thống mạng đơn giản, ví dụ như PC A muốn gửi gói tin đến PC B và nó chỉ biết được địa chỉ IP của PC B. Khi đó PC A sẽ phải gửi một ARP broadcast cho toàn mạng để hỏi xem "địa chỉ MAC của PC có địa chỉ IP này là gì ?" Khi PC B nhận được broadcast này, nó sẽ so sánh địa chỉ IP trong gói tin này với địa chỉ IP của nó. Nhận thấy địa chỉ đó là địa chỉ của mình, PC B sẽ gửi lại một gói tin cho PC A trong đó có chứa địa chỉ MAC của B. Sau đó PC A mới bắt đầu truyền gói tin cho B.
b. Nguyên tắc hoạt động của ARP trong 1 hệ thống mạngHoạt động của ARP trong một môi trường phức tạp hơn đó là hai hệ thống mạng gắn với nhau thông qua một Router C. Máy A thuộc mạng A muốn gửi gói tin đến máy B thuộc mạng B. Do các broadcast không thể truyền qua Router nên khi đó máy A sẽ xem Router C như một cầu nối hay một trung gian (Agent) để truyền dữ liệu. Trước đó, máy A sẽ biết được địa chỉ IP của Router C (địa chỉ Gateway) và biết được rằng để truyền gói tin tới B phải đi qua C. Tất cả các thông tin như vậy sẽ được chứa trong một bảng gọi là bảng định tuyến (routing table). Bảng định tuyến theo cơ chế này được lưu giữ trong mỗi máy. Bảng định tuyến chứa thông tin về các Gateway để truy cập vào một hệ thống mạng nào đó. Ví dụ trong trường hợp trên trong bảng sẽ chỉ ra rằng để đi tới LAN B phải qua port X của Router C. Bảng định tuyến sẽ có chứa địa chỉ IP của port X. Quá trình truyền dữ liệu theo từng bước sau :
Máy A gửi một ARP request (broadcast) để tìm địa chỉ MAC của port X.
Router C trả lời, cung cấp cho máy A địa chỉ MAC của port X.
Máy A truyền gói tin đến port X của Router.
Router nhận được gói tin từ máy A, chuyển gói tin ra port Y của Router. Trong gói tin có chứa địa chỉ IP của máy B. Router sẽ gửi ARP request để tìm địa chỉ MAC của máy B.
Máy B sẽ trả lời cho Router biết địa chỉ MAC của mình. Sau khi nhận được địa chỉ MAC của máy B, Router C gửi gói tin của A đến B.
Trên thực tế ngoài dạng bảng định tuyến này người ta còn dùng phương pháp proxyARP, trong đó có một thiết bị đảm nhận nhiệm vụ phân giải địa chỉ cho tất cả các thiết bị khác.Theo đó các máy trạm không cần giữ bảng định tuyến nữa Router C sẽ có nhiệm vụ thực hiện, trả lời tất cả các ARP request của tất cả các máy .
Các bước hoạt động của ARP :
- Source Device Checks Cache : Trong bước này, thiết bị sẽ kiểm tra cache ( bộ đệm ) của mình. Nếu đã có địa chỉ IP đích tương ứng với MAC nào đó rồi thì lập tức chuyển lên bước 9
- Source Device Generates ARP Request Message : Bắt đầu khởi tạo gói tin ARP Request với các trường địa chỉ như trên
- Source Device Broadcasts ARP Request Message : Thiết bị nguồn quảng bá gói tin ARP Request trên toàn mạng
- Local Devices Process ARP Request Message : Các thiết bị trong mạng đều nhận được gói tin ARP Request. Gói tin được xử lý bằng cách các thiết bị đều nhìn vào trường địa chỉ Target Protocol Address. Nếu trùng với địa chỉ của mình thì tiếp tục xử lý, nếu không thì hủy gói tin
- Destination Device Generates ARP Reply Message : Thiết bị với IP trùng với IP trong trường Target Protocol Address sẽ bắt đầu quá trình khởi tạo gói tin ARP Reply bằng cách lấy các trường Sender Hardware Address và Sender Protocol Address trong gói tin ARP nhận được đưa vào làm Target trong gói tin gửi đi. Đồng thời thiết bị sẽ lấy địa chỉ datalink của mình để đưa vào trường Sender Hardware Address
- Destination Device Updates ARP Cache : Thiết bị đích ( thiết bị khởi tạo gói tin ARP Reply ) đồng thời cập nhật bảng ánh xạ địa chỉ IP và MAC của thiết bị nguồn vào bảng ARP cache của mình để giảm bớt thời gian xử lý cho các lần sau
- Destination Device Sends ARP Reply Message : Thiết bị đích bắt đầu gửi gói tin Reply đã được khởi tạo đến thiết bị nguồn. Gói tin reply là gói tin gửi unicast
- Source Device Processes ARP Reply Message : Thiết bị nguồn nhận được gói tin reply và xử lý bằng cách lưu trường Sender Hardware Address trong gói reply như địa chỉ phần cứng của thiết bị đích
- Source Device Updates ARP Cache : Thiết bị nguồn update vào ARP cache của mình giá trị tương ứng giữa địa chỉ network và địa chỉ datalink của thiết bị đích. Lần sau sẽ không còn cần tới request
Cấu trúc đơn vị dữ liệu
Cấu trúc của 1 bản tin ARP bao gồm các trường:
Trong đó:
Hardware type và Protocol type quy định kiểu của phần cứng và của protocol được dùng ở lớp network
Opcode: cho biết bản tin ARP là yêu cầu (=1) hoặc phúc đáp (=2)
HW addr length: dộ dài của địa chỉ vật lý
Protocol addr length: độ dài của địa chỉ logic
4 trường còn lại là địa chỉ vật lý và địa chỉ logic của nguồn và đích.
Những vấn đề cần giải quyết
Mỗi ánh xạ IP-MAC trong ARP cache đều chỉ tồn tại trong một khoảng thời gian cố định (trừ các ánh xạ đã được đặt tĩnh). Việc đề ra khoảng thời gian này là cần thiết khi một host nào đó:
a. Di dời khỏi mạng hoặc kết nối của host vào mạng bị hỏng
b. Địa chỉ logic của host được gán lại cho một địa chỉ vật lí mới.Khi đó bảng ARP cache của host có thể bị xoá trắng, tuy nhiên ánh xạ địa chỉ MAC-địa chỉ logic của nó vẫn còn tồn tại trong các bảng ARP cache của các máy khác. Điều này có thể dẫn đến trường hợp gói tin vẫn truyền đi được nhưng không đến được đích.
Biện pháp khắc phục trong trường hợp thứ nhất có thể là:
- Khi thiết lập kết nối bị hỏng, module Address Resolution cần phải được thông báo để loại bỏ ánh xạ ra khỏi bảng ARP cache của nó hoặc đặt một khoảng thời gian timeout cho mỗi kết nối giữa hai máy. Mỗi khi một máy nhận được bất kì một gói tin nào đó từ máy kia, nó sẽ gia hạn thời gian timeout cho ánh xạ và sau khoảng thời gian timeout mà nó vẫn không nhận được bản tin nào từ máy kia, ánh xạ giữa địa chỉ MAC-địa chỉ logic của máy kia sẽ bị loại bỏ khỏi bảng ARP cache của nó.
- Sử dụng một module xử lí thời gian timeout. Sau một khoảng thời gian nào đó, module này sẽ thực hiện việc loại bỏ ánh xạ ra khỏi bảng ARP cache. Tuy nhiên, trước khi tiến hành việc loại bỏ, module sẽ gửi đi một bản tin ARP request đến host cần phải loại bỏ. Nếu sau một khoảng thời gian rất ngắn mà nó không nhận được bản tin ARP reply từ host đó, nó sẽ tiến hành loại bỏ ánh xạ ra khỏi bảng.
Biện pháp khắc phục trong trường hợp thứ hai: khi nhận được một bản tin ARP, host sẽ kiểm tra xem địa chỉ vật lí nguồn đã tồn tại trong bảng ARP cache của nó chưa, nếu đã tồn tại rồi thì nó sẽ ghi đè địa chỉ mới này lên.
Qúa trình gửi 1 bản tin ARP
Khi một gói tin được gửi từ lớp mạng xuống, module Address Resolution ở lớp dưới cần phải chuyển đổi thành địa chỉ vật lí 48 bit. Khi đó module này sẽ kiểm tra trong bảng ánh xạ của nó gọi là ARP cache để tìm xem có một cặp ánh xạ giữa địa chỉ logic đích với một địa chỉ vật lí nào đó hay không. Nếu tìm được một ánh xạ như vậy, module sẽ trả về địa chỉ vật lí và địa chỉ này sẽ được dùng để chuyển đến đúng đích. Nếu không có ánh xạ như vậy, nó sẽ gửi đi bản tin ARP có địa chỉ vật lí đích là địa chỉ broadcast và Opcode=1. Bản tin này sẽ được gửi đến tất cả các thiết bị có trong mạng.
Ví dụ: một máy có địa chỉ IP là 192.168.1.1 muốn gửi đi bản tin ARP để tìm địa chỉ vật lí của máy có địa chỉ IP 192.168.1.2 thì bản tin ARP request sẽ có cấu trúc.
Quá trình nhận 1 bản tin ARP
Khi một host trên mạng nhận được bản tin yêu cầu ARP, nó sẽ xử lí như sau:
- Kiểm tra xem có cùng HW type, Protocol type không. Nếu có, nó sẽ kiểm tra xem có tồn tại trong