Đề tài: Giao thức UDP và ARP
lượt xem 95
download
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...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Đề tài: Giao thức UDP và ARP
- NHÓM 2_KHMT1-K4_UDP & ARP MỤC LỤC MỤC LỤC....................................................................................................................................1 LỜI NÓI ĐẦU..............................................................................................................................2 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. ..........................................................................2 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.................................2 GIAO THỨC UDP VÀ ARP.........................................................................................................3 A.Tìm hiểu về giao thức UDP..................................................................................................3 1.Tầng giao thức..................................................................................................................3 2.Nguyên lý làm việc............................................................................................................3 3.Cấu trúc đơn vị dữ liệu ....................................................................................................6 4.Ưu và nhược điểm của giao thức UDP............................................................................7 5.Những vấn đề cần giải quyết...........................................................................................8 6.Ví dụ minh họa giao thức UDP.......................................................................................10 B.Tìm hiểu về giao thức ARP................................................................................................10 1.Tầng giao thức................................................................................................................10 2.Nguyên lý làm việc..........................................................................................................11 3.Cấu trúc đơn vị dữ liệu...................................................................................................14 4.Những vấn đề cần giải quyết.........................................................................................14 5.ARP Caching...................................................................................................................17 6.Proxy ARP.......................................................................................................................18 I-PHÂN TÍCH CÁC GÓI TIN DÙNG WIRESHARK....................................................................21 KẾT LUẬN.................................................................................................................................22 TÀI LIỆU THAM KHẢO..............................................................................................................23 1 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 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. 2 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP GIAO THỨC UDP VÀ ARP A. Tìm hiểu về giao thức UDP 1. 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. 2. Nguyên lý làm việc a. Một số thuật ngữ 3 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 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. 4 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 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 ữ 5 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 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 3. 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. 6 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP • 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. 4. Ưu và nhược điểm của giao thức UDP a. Ư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: 7 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP b. 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. 5. Những vấn đề cần giải quyết a. 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ế. 8 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 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. b. 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 9 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP đượ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. 6. 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 B. Tìm hiểu về giao thức ARP 1. 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- 10 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 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. 2. Nguyên lý làm việc a. Nguyên tắc làm việc của ARP trong mạng LAN Khi 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. 11 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP b. Nguyên tắc hoạt động của ARP trong 1 hệ thống mạng Hoạ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 : 12 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & 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 13 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 3. 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. • 4. 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 14 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 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. c. 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. 15 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP d. 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 bảng ARP cache của nó hay không. Nếu có thì cập nhật lại địa chỉ MAC tương ứng nếu thấy có thay đổi và đặt cờ Merge-flag = true. - Kiểm tra xem địa chỉ logic của nó có trùng với địa chỉ logic đích mà gói tin gửi đến hay không. Nếu có và cờ Merge là false, nó sẽ cập nhật vào bảng ARP cache của mình. Nếu không, gói tin ARP request sẽ bị hủy. - Kiểm tra opcode: nếu opcode là request thì gửi lại bản tin ARP theo dạng unicast thông báo cho máy yêu cầu biết được địa chỉ MAC của mình. - Thiết bị yêu cầu, sau khi nhận được bản tin ARP reply, sẽ cập nhật lại bảng ARP cache của mình và chuyển frame đến đích theo địa chỉ MAC nhận được. Trong trường hợp không có một bản tin reply nào đến có nghĩa là thiết bị mà nó muốn trao đổi không nằm cùng mạng LAN với nó, nếu trong mạng có cấu hình proxy ARP (thiết bị dùng để trả lời các ARP request) thì proxy ARP này sẽ có nhiệm vụ gửi bản tin ARP phúc đáp với địa chỉ MAC của nó như thể là phúc đáp của máy đích. Khi đó gói tin lớp 2 sẽ được đóng gói với địa chỉ MAC là địa chỉ MAC của proxy ARP và mọi thông tin sẽ được gửi đến proxy ARP này. Nếu không tồn tại proxy ARP trong mạng; gói tin sẽ bị huỷ và thông báo lỗi lên lớp trên. 16 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP 5. ARP Caching ARP là một giao thức phân giải địa chỉ động. Quá trình gửi gói tin Request và Reply sẽ tiêu tốn băng thông mạng. Chính vì vậy càng hạn chế tối đa việc gửi gói tin Request và Reply sẽ càng góp phần làm tăng khả năng họat động của mạng.Từ đó sinh ra nhu cầu của ARP Caching Static and Dynamic ARP Cache Entries ARP Cache có dạng giống như một bảng tương ứng giữa địa chỉ hardware và địa chỉ IP. Có hai cách đưa các thành phần tương ứng vào bảng ARP : • Static ARP Cache Entries: Đây là cách mà các thành phần tương ứng trong bảng ARP được đưa vào lần lượt bởi người quản trị. Công việc được tiến hành một cách thủ công • Dynamic ARP Cache Entries: Đây là quá trình mà các thành phần địa chỉ hardware/IP được đưa vào ARP cache một cách hoàn toàn tự động bằng phần mềm sau khi đã hoàn tất quá trình phân giải địa chỉ. Chúng được lưu trong cache trong một khoảng thời gian và sau đó sẽ được xóa đi Dynamic Cache được sử dụng rộng rãi hơn vì tất cả các quá trình diễn ra tự động và không cần đến sự tương tác của người quản trị. Tuy nhiên static cache vẫn có phạm vi ứng dụng nhất định của nó. Đó là trường hợp mà các workstation nên có static ARP entry đến router và file server nằm trong mạng. Điều này sẽ hạn chế việc gửi các gói tin để thực hiện quá trình phân giải địa chỉ. Tuy nhiên ngoài hạn chế của việc phải nhập bằng tay, static cache còn thêm hạn chế nữa là khi địa chỉ IP của các thiết bị trong mạng thay đổi thì sẽ dẫn đến việc phải thay đổi ARP cache Quá trình xóa thông tin trong cache Ta xét trường hợp bảng cache của một thiết bị A, trong đó có chứa thông tin về thiết bị B trong mạng. Nếu các thông tin trong cache được lưu mãi mãi, sẽ có một số vấn đề như sau xảy ra : • Địa chỉ phần cứng thiết vị đựoc thay đổi : Đây là trường hợp khi thiết bị B được thay đổi card mạng hay thiết bị giao tiếp, làm thay đổi địa chỉ 17 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP MAC của thiết bị. Điều này làm cho các thông tin trong cache của A không còn đúng nữa • Địa chỉ IP của thiết bị được thay đổi : Người quản trị hay nhà cung cấp thay đổi địa chỉ IP của B, cũng làm cho thông tin trong cache của A bị sai lệch • Thiết bị được rút ra khỏi mạng : Khi B được rút ra khỏi mạng nhưng A không được biết, và gây lãng phí về tài nguyên của A để lưu thông tin không cần thiết và tốn thời gian để tìm kiếm. Để tránh được những vấn đề này, các thông tin trong dynamic cache sẽ được tự động xóa sau một khoảng thời gian nhất định. Quá trình này được thực hiện một cách hoàn toàn tự động khi sử dụng ARP với khoảng thời gian thường là 10 hoặc 20 phút. Sau một khoảng thời gian nhất định được lưu trong cache , thông tin sẽ được xóa đi. Lần sử dụng sau, thông tin sẽ được update trở lại 6. Proxy ARP ARP được thiết kế cho các thiết bị nằm trong nội mạng, có tính chất local. Tuy nhiên nếu hai thiết bị A và B bị chia cắt bởi 1 router thì chúng sẽ được coi như là không local với nhau nữa. Khi A muốn gửi thông tin đến B, A sẽ không gửi trực tiếp được đến B theo địa chỉ lớp hai, mà phải gửi qua router và được coi là cách nhau 2 hop ở lớp ba. Vì sao cần phải có Proxy ARP ? Khác với các trường hợp thông thường, nhiều trường hợp hai thiết bị A và B nằm trên 2 segment vật lý khác nhau nhưng được kết nối qua một router và cùng nằm trong một mạng IP hay một IP subnet. Lúc này A và B sẽ coi nhau có quan hệ local. Giả sử ta có tình huống A muốn gửi thông tin cho B. A nghĩ B trong cùng nội mạng và tìm trong bảng ARP cache. A không lưu địa chỉ MAC của B và bắt đầu tiến hành quá trình phân giải địa chỉ. A broadcast gói ARP request trong nội mạng để tìm địa chỉ MAC của B. Sẽ có vấn đề xảy ra : B không cùng nằm trong mạng và sẽ không nhận được gói tin broadcast cũng 18 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP như router kết nối sẽ không forward gói broadcasr từ A qua B ( router không truyền các gói broadcast ở lớp datalink ). Vì vậy B không bao giờ nhận được request từ A cũng như A sẽ không bao giờ có được địa chỉ MAC của B Hoạt động của Proxy ARP: Giải pháp cho tình huống này được gọi là ARP proxying hay Proxy ARP. Trong công nghệ này, router nằm giữa 2 mạng local sẽ được cấu hình để đáp ứng các gói tin broadcast gửi từ A thay cho B. Router sẽ không gửi cho A địa chỉ MAC của B, vì dù thế nào A và B cũng nằm trên hai mạng khác nhau và không thể gửi trực tiếp đến nhau được. Thay vào đó router sẽ gửi cho A các địa chỉ MAC cảu chính router. A sau đó sẽ gửi thông các gói tin cho router, và router sẽ forward sang cho B. Quá trình cũng hoàn toàn diễn ra tương tự khi B muốn gửi thông tin cho A, hay cho bất cứ thiết bị nào mà đích đến của gói tin là một thiết bị ở một mạng khác. Trong ví dụ, một router kết nối hai mạng LAN cùng trong một mạng IP hoặc subnet với nhau. Router sẽ không truyền các gói tin ARP broadcast nhưng được cấu hình để hoạt động như một ARP proxy. Hai thiết bị A và D có nhu cầu gửi các gói tin IP cho nhau, chính vì vậy chúng broadcast các gói ARP request. Router sẽ đáp ứng lại các gói tin request từ A như thể là D ( router không truyền gói request đến D ). Tương tự, router cũng sẽ dùng địa chỉ của mình để gửi trả các gói tin từ D gửi cho A. Ưu điểm và nhược điểm của Proxying Ưu điểm dễ nhận thấy của Proxy ARP là các router hoạt động nhưng các thiết bị không hề cảm nhận được sự hoạt động của nó. Các hoạt động gửi nhận giữa hai thiết bị thuộc hai LAN khác nhau vẫn diễn ra bình thường Tuy nhiên nó vẫn có những mặt trái và những điểm hạn chế của mình : • Thứ nhất, nó làm tăng độ phức tạp của mạng • Thứ hai, nếu nhiều hơn một router kết nối tới hai LAN cùng nằm trong một mạng IP, nhiều vấn đề có thể phát sinh 19 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
- NHÓM 2_KHMT1-K4_UDP & ARP • Thứ ba, công nghệ này cũng tạo nên những mối nguy cơ tiềm ẩn về an ninh và bảo mật, khi các router được cấu hình proxy, tạo nguy cơ về giả mạo địa chỉ. Do vậy, giải pháp tốt nhất là thiết kế lại topo mạng để chỉ một router kết nối tới hai LAN nằm trong một mạng IP. 20 BTL KỸ THUẬT TRUYỀN SỐ LIỆU
CÓ THỂ BẠN MUỐN DOWNLOAD
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn