Tcp_Dịch vụ truyền tin cậy

 

LỜI GIỚI THIỆU 1

PHẦN I: Sơ lược về giao thức TCP/IP 2

I. Các lớp và giao thức TCP/IP 2

II. Máy chủ, router và các lớp giao thức 3

PHẦN II: Địa chỉ IP 4

I. IP_ Địa chỉ giao thức internet 4

II. Cơ chế đánh địa chỉ IP 4

1. Phân cấp địa chỉ IP 5

2. Các lớp của địa chỉ IP 5

3. Tính toán các lớp của một địa chỉ 6

4. Các lớp và các ký hiệu thập phân bằng chấm 8

5. Nơi quản lý các địa chỉ 9

III. Ví dụ về một cách đánh địa chỉ 9

IV .Địa chỉ IP đặc biệt 10

1. Địa chỉ mạng 10

2. Địa chỉ quảng bá trực tiếp 11

3. Địa chỉ quảng bá giới hạn 11

4. Địa chỉ của máy tính này 11

5. Địa chỉ lặp quay lại 12

6. Dạng địa chỉ quảng bá Berkeley 13

V. Router và các nguyên tắc đánh địa chỉ IP 13

PHẦN III: Đóng kết địa chỉ giao thức (ARP) 15

I.Giới thiệu chung 15

2. Địa chỉ giao thức và sự phân phát các gói tin 15

III.Kỹ thuật phân giải địa chỉ 16

IV. Giao thức phân giải địa chỉ 17

VI. Gửi đi một thông điệp ARP 18

VII. Xử lý thông điệp ARP đến 19

VII. Các lớp, phân giải địa chỉ, địa chỉ giao thức 20

PHẦN VI: IP datagram và datagram forwarding 21

I. IP Datagram 21

II. Truyền tiếp một IP Datagram 22

III. Địa chỉ IP và các dòng bảng định tuyến 23

IV. Trường mặt nạ và truyền tiếp datagram 23

V. Các địa chỉ của đích và của máy tiếp 24

VI. Truyền đi với nỗ lực hết mình (Best-effort Delivery) 24

VII . Định dạng header của IP datagram 25

PHẦN V: Sự đóng gói IP, phân đoạn và hợp lại. 27

I. Sự truyền đi các datagram và các frame 27

II. Sự đóng gói 27

III. Sự truyền tin qua liên mạng 28

IV. Nhận dạng một datagram 30

VI. Sự mất phân đoạn 30

PHẦN VI: Giao thức IP tương lai (IPv6) 31

I. Các đặc điểm của giao thức IPv6 31

II. Định dạng Datagram của Ipv6 32

Định dạng header cơ sở của Ipv6 32

II. Ipv6 làm việc với nhiều header như thế nào 34

III. Sự phân đoạn 35

PHẦN VII: Tcp_dịch vụ truyền tin cậy 38

Lời giới thiệu 38

I. Sự cần thiết truyền tin đáng tin cậy 38

II. Sự truyền lại và mất các gói tin 39

III. Sự truyền lại thích hợp 40

IV. So sánh giữa thời gian truyền lại 41

V. Bộ đệm, điều khiển luồng và cửa sổ 41

VI. Sự thống nhất 3 bên 42

VII. Điều khiển tắc nghẽn 43

VIII. Định dạng một đoạn TCP 43

 

 

doc44 trang | Chia sẻ: huong.duong | Lượt xem: 1629 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tcp_Dịch vụ truyền tin cậy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng; thông điệp trả lời có cả địa chỉ IP và địa chỉ phần cứng. V. Định dạng thông điệp ARP ARP có một trường có kích thước cố định vào đầu mỗi thông điệp ARP để chỉ ra kích thước của trường địa chỉ phần cứng. Ví dụ, khi ARP sử dụng với mạng Ethernet, địa chỉ phần cứng dài 6 byte vì địa chỉ Ethernet là 48 bit. ARP không bị giới hạn với địa chỉ IP hoặc địa chỉ phần cứng đưa ra – về mặt lý thuyết, giao thức có thể sử dụng gắn địa chỉ mức cao hơn với địa chỉ phần cứng. Trong thực tế bởi tính phổ biến của ARP nên nó ít khi được sử dụng: hầu hết sự thực hiện của ARP là gắn địa chỉ IP với địa chỉ Ethernet. Tóm lại: mặc dù định dạng thông điệp ARP là khá linh hoạt cho phép các địa chỉ IP và phần cứng bất kỳ. ARP luôn luôn sử dụng gắn kết địa chỉ IP 32 bit với địa chỉ Ethernet 48 bit. Hình 10 minh hoạ định dạng của thông điệp ARP với địa chỉ giao thức IP là 4 byte và địa chỉ phần cứng Ethernet là 6 byte. TARGET PADDR (tất cả 4 byte) TARGET HADDR (4 byte cuối) SENDER HADDR (4 byte đầu ) TARGET HADDR SENDER PADDR SENDER PADDR SEND HADDR (2 byte ) OPERATION HADDR LEN PADDRLEN Hardware address type Protocol address type 0 8 16 24 31 Hình 10 .Định dạng của một thông điệp ARP khi sử dụng địa chỉ giao thức internet gắn kết với địa chỉ phần cứng Ethernet Mỗi dòng của hình vẽ tương ứng với 32 bit của thông điệp ARP. Hai trường 16 bit đầu tiên chứa giá trị của kiểu địa chỉ phần cứng và địa chỉ giao thức. Ví dụ, trường HARDWARE ADDRESS TYPE có giá trị là 1 khi ARP là dùng với Ethernet và trường PROTOCOL ADDRESS TYPE có giá trị là 0x0800 khi ARP sử dụng với IP. Hai trường tiếp theo, HADDR LEN và PADDR LEN chỉ ra số byte của địa chỉ phần cứng và địa chỉ giao thức. Trường OPERATION chỉ ra liệu thông điệp này là yêu cầu (giá trị =1) hay trả lời (giá trị 2). Mỗi thông điệp ARP có chứa các trường cho sự gắn kết hai địa chỉ. Một gắn kết tương ứng với địa chỉ của máy gửi và gắn kết kia tương ứng với địa chỉ của máy nhận, mà trong ARP gọi là target. Khi thông điệp yêu cầu gửi đi, máy gửi không biết địa chỉ phần cứng của đích (đó là thông tin nó yêu cầu biết). Do đó, trường TARGET HADDR trong thông điệp yêu cầu có giá trị 0 bởi vì nội dung này không sử dụng. Trong thông điệp trả lời, gắn kết đích chỉ rõ cho máy tính ban đầu mà gửi yêu cầu. Do đó, thông tin đích trong trả lời không có mục đích gì - nó tồn tại từ phiên bản trước của giao thức. VI. Gửi đi một thông điệp ARP Khi một máy tính gửi đi một thông điệp đến máy tính khác, thông điệp đó được đặt trong một frame. Thông điệp ARP được xem như là một dữ liệu cần được truyền đi – phần cứng mạng không biết gì về định dạng của thông điệp và cũng không xem xét nội dung của các trường. Về mặt kỹ thuật, việc đặt thông điệp trong một frame để truyền đi gọi là đóng gói (encapsulation); ARP được đóng gói trực tiếp trong frame phần cứng. Hình sau minh hoạ khái niệm này. ARP MESSAGE CRC FRAME DATA AREA FRAME HEADER Hình11: minh hoạ một thông điệp ARP được đóng gói trong frame Ethernet. Toàn bộ thông điệp ARP được đặt trong vùng dữ liệu của frame; phần cứng mạng không dịch cũng như không thay đổi gì nội dung của thông điệp. VII. Xử lý thông điệp ARP đến Khi một thông điệp ARP đến, giao thức chỉ ra cho máy nhận phải thực hiện hai bước cơ bản. Bước thứ nhất, máy nhận lấy ra địa chỉ máy gửi và kiểm tra xem liệu gắn kết này đã có trong cache. Nếu như vậy, máy nhận sử dụng gắn kết trong thông điệp ARP để thay thế cho gắn kết đã lưu trữ trước. Cập nhật một gắn kết mới là việc làm tối ưu bởi nó rất có ích trong trường hợp địa chỉ phần cứng của máy gửi đã thay đổi. Bước thứ hai, máy nhận xem xét trường OPERATION của thông điệp để xác định thông điệp đó là yêu cầu hay trả lời. Nũu thông điệp là trả lời, máy nhận đã có một yêu cầu trước đó và đang chờ sự gắn kết. Nếu thông điệp là yêu cầu máy nhận so sánh trường TARGER PADDR với địa chỉ giao thức cục bộ. Nếu chúng giống nhau máy tính đó sẽ là đích của yêu cầu và phải gửi thông điệp trả lời. Để tạo ra thông điệp trả lời, máy tính bắt đầu từ thông điệp yêu cầu, chuyển đổi gắn kết của máy gửi và đích, chen thêm địa chỉ phần cứng vào trường SENDER HADDR, và chuyển giá trị trường OPERATION thành 2. ARP có sự tối ưu hơn: sau khi một máy tính trả lời thông điệp yêu cầu, máy tính đó sẽ lấy ra gắn kết của địa chỉ máy gửi và thêm vào cache của nó cho lần sử dụng sau. Để hiểu sự tối ưu này, cần thiết phải biết hai thực tế sau: Hỗu hết các giao tiếp giữa máy tính là thực hiện theo hai chiều – nếu một thông điệp được gửi từ máy này đến máy kia thì rất có khả năng rằng sự trả lời sẽ được gửi trở lại. Bởi vì mỗi gắn kết địa chỉ đỏi hỏi bộ nhớ, một máy tính không thể lưu trữ số lượng tuỳ ý gắn kết địa chỉ. Điều thứ nhất giải thích tại sao việc lấy gắn kết địa chỉ của máy gửi là tối ưu hiệu suất ARP. Nhớ lại rằng mỗi máy tính chỉ gửi một yêu cầu ARP đến một đích nhất định khi nó muốn gửi một gói tin. Do vậy, khi máy tính W gửi một yêu cầu ARP cho máy tính Y, W phải có thông điệp để chuyển đến Y. Rất có thể rằng mỗi khi một gói tin được truyển đi, một gói tin cũng sẽ được truyền trở lại từ Y đến W. Nếu Y không có gắn kết địa chỉ của W, Y sẽ cần phải gửi đi yêu cầu ARP và W lại phải trả lời. Thực hiện lấy gắn kết gửi đi từ W từ thông điệp yêu cầu giảm bớt được việc gửi yêu cầu ARP lần sau của Y. Điều thứ hai giải thích tại sao sự tối ưu chỉ thực hiện bởi máy tính là đích của thông điệp yêu cầu. Bởi vì tất cả các máy tính trên mạng đều nhận được thông điệp ARP, nên có thể là tất cả các máy tính đó đều lấy gắn kết địa chỉ của máy nhận và lưu trữ lại. Tuy nhiên, làm như vậy sẽ lãng phí thời gian CPU và bộ nhớ bởi không phải tất cả các cặp máy tính cần giao tiếp. Do vậy, ARP được tối ưu để thực hiện ghi trước gắn kết địa chỉ mà có thể cần thiết sau đó. VII. Các lớp, phân giải địa chỉ, địa chỉ giao thức Lớp thấp nhất của mô hình lớp TCP/IP tương ứng với phần cứng vật lý của mạng, và lớp tiếp theo tương ứng với phần mềm nối ghép mạng dùng để truyền và nhận các gói tin. Phân giải địa chỉ là ví dụ về chức năng thực hiện với lớp mạch nối ghép. Phần mềm phân giải địa chỉ ẩn đi mọi chi tiết của địa chỉ vật lý và cho phép phần mềm ở lớp cao hơn sử dụng các địa chỉ giao thức. Do vậy, có một ranh giới khái niệm quan trọng ẩn chứa giữa lớp mạch nối ghép và các lớp cao hơn: các ứng dụng cũng như là phần mềm giao thức lớp cao hơn được xây dựng chỉ sử dụng địa chỉ giao thức. Hình sau minh hoạ ranh giới địa chỉ này. Các ứng dụng Các địa chỉ giao thức được sử dụng Lớp cao hơn của phần mềm giao thức Giới hạn địa chỉ giao thức điểu khiển thiết bị phân giải địa chỉ Các địa chỉ phần cứng được sử dụng Phần cứng mạng Hình 12:minh hoạ phần mềm giao thức lớp trong một máy tính và ranh giới khải niệm giữa lớp nối ghếp mạng và các lớp cao hơn. Phần mềm trên ranh giới sử dụng địa chỉ giao thức ; phần mềm dưới ranh giới chuyển đổi mỗi địa chỉ giao thức thành địa chỉ vật lý tương ứng. Phần VI IP datagram và datagram forwarding I. IP Datagram Các giao thức TCP/IP dùng tên gọi IP Datagram để ám chỉ một gói tin liên mạng. IP Datagram bắt đầu với phần header và sau đó là phần dữ liệu. Hình sau minh hoạ định dạng một IP Datagram. header Vùng dữ liệu Hình 13 Định dạng chung của một IP Datagram với phần header và sau đó là vùng dữ liệu. Phần header có chứa các thông tin điều khiển nơi gửi và cách gửi đi IP Datagram. Khối lượng dữ liệu có trong một datagram là không cố định. Máy gửi tin chọn lựa lượng dữ liệu thích hợp cho từng mục đích cụ thể. Ví dụ, một ứng dụng truyền đi sự bấm phím qua mạng có thể đặt mỗi sự gõ phím trong một datagram, trong khi một ứng dụng truyền một file lớn có thể gửi đi một datagram lớn. Điều quan trọng là: Kích thước của một datagram được quyết định bởi ứng dụng mà gửi dữ liệu đi. Việc cho phép kích thước của các datagram thay đổi làm cho IP có thể thích nghi với các ứng dụng khác nhau. Trong phiên bản hiện tại của IP, một datagram có thể chứa ít là 1 byte dữ liệu hoặc nhiều nhất là 64Kb dữ liệu gồm cả phần header. Trong hầu hết các datagram, phần header nhỏ hơn nhiều so với phần dữ liệu. Để hiểu tại sao chúng ta cần thiết xem xét đến chi phí cho việc truyền dữ liệu. Giống như frame header dùng trong mạng vật lý, một datagram header biểu diễn toàn bộ – trong khi nó chiếm các byte header truyền tin, một mạng không thể truyền đi một dữ liệu của người sử dụng. Bởi vì kích thước của datagram header là cố định, nên gửi đi các datagram lớn kết quả là nhiều byte dữ liệu hơn được truyền đi trên một đơn vị thời gian (thông lượng lớn hơn). Tương tự như một frame header, một datagram header có chứa các thông tin để định tuyến datagram truyền qua liên mạng. Ví dụ, header có chứa địa chỉ của máy tính gửi datagram cũng như là địa chỉ của máy tính mà datagram gửi đến. Các địa chỉ trong trong datagram header khác với các địa chỉ sử dụng trong frame header – một datagram có chứa các địa chỉ IP, trong khi một frame có chứa địa chỉ phần cứng. Tóm lại: một gói tin gửi qua mạng TCP/IP gọi là IP Datagram. Mỗi datagram gồm có hai phần là header và phần dữ liệu. Địa chỉ nguồn và đích trong datagram là các địa chỉ IP. II. Truyền tiếp một IP Datagram Chúng ta đã nói rằng các datagram truyền đi qua liên mạng theo một đường dẫn bắt đầu từ máy nguồn qua các router và đến máy đích. Mỗi router dọc theo đường đi nhận được datagram đó, lấy ra địa chỉ đích từ header, và sử dụng địa chỉ đích để quyết định máy tiếp nào để gửi datagram đó đến. Router sau đó sẽ chuyển tiếp datagram đến máy tiếp đó, có thể là máy tính đích hoặc router khác. Để tạo ra việc lựa chọn máy tiếp một cách hiệu quả và dễ dàng cho con người hiểu được sự tính toán, mỗi router IP lưu giữ thông tin trong một bảng định tuyến. Một bảng định tuyến phải được khởi tạo khi router khởi động, và phải được cập nhật nếu như cấu hình mạng thay đổi hoặc phần cứng bị trục trặc. Bảng định tuyến có các dòng và mỗi dòng gồm có đích và máy tiếp dùng để đến được đích. Hình 14 chỉ ra nội dung của bảng định tuyến của một trong 3 router được sử dụng để liên kết 4 mạng trong một liên mạng nhỏ. R1 R2 R3 Net 4 Net 3 Net 2 Net 1 (a) Đích Máy tiếp Net 1 R1 Net 2 Truyền trực tiếp Net 3 Truyền trực tiếp Net 4 R3 (b) Hình 14(a) ví dụ liên mạng có 3 router nối kết 4 mạng vật lý, (b) bảng định tuyến của router R2. Mỗi dòng của bảng liệt kê mạng đích và máy tiếp theo một đường dẫn để đến mạng đó. Như trên hình vẽ ta thấy, router r2 nối kết trực tiếp với các mạng Net 2 và Net 3. Do đó, R2 có thể truyền một datagram đến bất kỳ máy tính đích này nối với hai mạng đó. Khi một datagram muốn truyền đến mạng 4, R2 phải truyền datagram đó đến router R3. Mỗi đích liệt kê trong bảng định tuyến là một mạng, không phải là một máy trạm. Sự phân biệt này là quang trọng bởi vì một liên mạng có thể có nhiều gấp 1000 lần máy trạm có trong các mạng này. Do vậy, sử dụng các mạng là các đích trong bảng định tuyến góup cho kích thước của chúng nhỏ hơn. Tóm lại: Bởi vì mỗi đích trong bảng định tuyến tương ứng với 1 mạng, số dòng trong bảng tỷ lệ với số mạng trong một liên mạng. III. Địa chỉ IP và các dòng bảng định tuyến Trong thực tế, một bảng định tuyến IP thường phức tạp. Thứ nhất, trường đích trong mỗi dòng có chứa phần đầu mạng của mạng đích. Thứ hai, một trường thêm vào trong mỗi dòng có chứa mặt nạ địa chỉ (address mask) để chỉ ra số bit của đích tương ứng với phần đầu mạng. Thứ ba, một địa chỉ Ip sử dụng trong trường máy tiếp để biểu diễn mỗi router. Hình sau minh hoạ một bảng định tuyến. 128.1.0.9 40.0.0.8 30.0.0.7 128.1.0.0 40.0.0.0 192.4.10.0 30.0.0.0 192.4.10.9 128.1.0.8 40.0.0.7 (a) Đích Mặt nạ Máy tiếp 30.0.0.0 255.0.0.0 40.0.0.7 40.0.0.0 255.0.0.0 Truyền trực tiếp 128.1.0.0 255.255.0.0 Truyền trực tiếp 192.4.10.0 255.255.255.0 128.1.0.9 (b) Hình 15(a) liên mạng có 4 mạng và 3 router và có các địa chỉ IP thiết lập cho các nối ghép router,15 (b) bảng định tuyến của router trung tâm. Mỗi dòng trong bảng liệt kê các đích, mặt nạ, và máy tiếp sử dụng để tới đích. Hai mạng dâu tiên trong hình vẽ có địa chỉ phần đầu thuộc lớp A, mạng thứ 3 thuộc lớp B và mạng thứ 4 thuộc lớp C. Mỗi router được thiết lập hai đại chỉ IP , mỗi địa chỉ thuộc một nối ghép. Ví dụ, router mà kết nối mạng 30.0.0.0 với mạng 40.0.0.0 có hai địa chỉ là 30.0.0.7 và 40.0.0.7. Mặc dù địa chỉ phần sau là giống nhau cho cả hai nối ghép của router, nhưng IP cũng không đòi hỏi phải cần thiết như vậy – quảng trị mạng có thể tự do thiết lập giá trị địa chỉ khác nhau cho mỗi nối ghép. IV. Trường mặt nạ và truyền tiếp datagram Quá trình sử dụng bảng định tuyến để chọn lựa máy tiếp cho mỗi datagram được gọi là sự định tuyến (routing) hoặc sự truyền tiếp (forwding). Trường mặt nạ (Mask) trong mỗi dòng bảng định tuyến sử dụng để lấy ra địa chỉ phần mạng trong quá trình tìm kiếm. Để hiểu mặt nạ được sử dụng như thế nào, tưởng tượng rằng khi phần mềm định tuyến được đưa đến một datagram để truyền tiếp. Cũng giả sử rằng datagram đó cũng có địa chỉ IP đích là D. Phần mềm định tuyến phải tìm một dòng trong bảng để tìm ra máy tiếp cho D. Để làm điều này, phần mềm xem xét mỗi dòng trong bảng bằng việc sử dụng mặt nạ trong mỗi dòng để tìm ra phần đầu địa chỉ D và so sánh kết quả với trường đích trong mỗi dòng. Nếu hai kết quả bằng nhau, datagram sẽ được truyền tiếp đến máy tiếp trong dòng đó. Mặt nạ bit giúp cho việc lấy ra phần đầu địa chỉ dễ dàng – phần mềm sẽ thực hiện phép logic and giữa địa chỉ đích D của datagram và giá trị mặt nạ. Do vậy sự tính toán để xem xét dòng thứ IP Datagram trong bảng có thể được diễn tả như sau: If ((Mask[i] & D) == Destination[i]) forward to NextHop[i]; Trong ví dụ trên, giả sử rằng datagram cần chuyển đến địa chỉ 192.4.10.3 và nó đang ở router có bảng định tuyến trong hình 16.3. Hơn nữa giả sử phần mềm tìm kiếm trong bảng tuần tự. Dòng đầu không thoả mãn bởi 255.0.0.0 & 192.4.10.3 không bằng 30.0.0.0. Sau khi kiểm tra không thoả mãn dòng 2 và 3, cuối cùng phần mềm định tuyến sẽ chọn được máy tiếp là 128.1.0.9 bởi vì 255.255.255 & 192.4.10.3 == 192.4.10.0. V. Các địa chỉ của đích và của máy tiếp Có mối liên hệ gì giữa địa chỉ đích trong header của datagram và địa chỉ của máy tiếp mà datagram được chuyển tới? Trường DESTINATION IP ADDRESS trong datagram có chứa địa chỉ của đích cuối cùng. Khi một router nhận một datagram, router lấy ra địa chỉ đích D và dùng nó để tính toán địa chỉ của router tiếp theo mà datagram cần được gửi đến là N. Mặc dù datagram được gửi trực tiếp đến N, header trong datagram vẫn chứa địa chỉ đích D. Nói cách khác: Địa chỉ đích trong datagram header luôn là địa chỉ đích cuối cùng. Khi một router truyền tiếp một datagram đến router khác, địa chỉ của máy tiếp không xuất hiện trong header của datagram. Mặc dù tất cả các định tuyến đều được tính toán sử dụng địa chỉ IP. Saukhi tính địa chỉ của máy tiếp N, phần mềm IP sử dụng địa chỉ gắn kết đã nói trong phần trước để chuyển đổi N sang địa chỉ phần cứng tương ứng để truyền đi. Trong tiếp theo, chúng ta sẽ học về cách datagram được truyền qua mạng vật lý. VI. Truyền đi với nỗ lực hết mình (Best-effort Delivery) Cùng với việc đưa ra định dạng của một datagram cho liên mạng, giao thức liên mạng cũng đưa ra ngữ nghĩa của sự truyền thông, và dùng thuật ngữ nỗ lực hết sức (best-effort) để chỉ một dịch vụ mà nó đưa ra. Một cách trực quan các chuẩn chỉ ra mặc dù IP nỗ lực hết sức để truyền đi mõi datagram, Ip không đảm bảo rằng nó sẽ quản lý được hết các sự cố như là: Sự trùng lặp datagram Sự truyền bị trễ hoặc sai thứ tự Sự sai lệch dữ liệu Sự mất các datagram Cần có các lớp phần mềm giao thức khác để quản lý các sự cố này. Dường như có vẻ hơi lạ khi cho rằng Ip có thể bị xảy ra những lỗi này. Tuy nhiên, có mộtl ý do quan trọng: mỗi lớp của phần mềm giao thức có trách nhiệm trong một khía cạnh truyền thông nhất định., và IP không thể quản lý hết các lỗi này. Hơn nữa, bởi vì các mạng vật lý có thể gây ra các lỗi như vậy, nên phần mềm mà dùng IP phải có trách nhiệm giải quyết các sự cố đó. VII . Định dạng header của IP datagram Hình sau minh hoạ các trường của một IP datagram header, bao gồm trường SOURCE IP ADDRESS chứa địa chỉ Internet của máy gửi, và DESTINATION IP ADDRESS chứa địa chỉ internet của máy nhận, và trường TYPE chỉ ra kiểu dữ liệu. Hình 16. Cấu trúc gói IP VERS H.LEN SERVICE TYPE TOTAL LENGTH FLAGS FRAGMENT OFFSET TIME TO LIVE TYPE HEADER CHECKSUM DESTINATION IP ADDRESS IP OPTIONS (may br omitted) PADDING SOURCE IP ADDRESS BEGIN NING OF DATA Các trường của Ip datagram header. Cả địa chỉ nguồn và đích là địa chỉ internet. Mỗi trường của IP datagram header có kích thước cố định. Datagram có 4 bit đầu tiên là phiên bản của giao thức (phiên bản hiện tại là 4) và 4 bit chiều dài của header để chỉ ra số 32 bit trong phần header. Trường SERVICE TYPE có chứa giá trị để chỉ ra datagram truyền qua mạng với độ trễ nhỏ nhất hay là với thông lượng lớn nhất; một router biết nhiều định tuyến để đến đích và dùng giá trị này để chọn lựa các định tuyến. Trường TOTAL LENGTH là giá trị nguyên 16 bit để chỉ ra tổng số byte của datagram gồm cả phần data và header Trường TIME TO LIVE để ngăn không cho datagram truyền vô tận trong mạng khi nó rơi vào đường vòng lặp; các đường dẫn đó có thể xuất hiện khi phần mềm bị hoạt động sai hoặc khi việc cấu hình nhầm định tuyến. Máy gửi khởi tạo giá trị TIME TO LIVE là một giá trị số nguyên từ 1 đến 255. Mỗi router nhận được datagram sẽ giảm giá trị của trường này đi 1. Nếu bộ đếm tới 0, datagram sẽ bị huỷ bỏ và thông báo lỗi sẽ được gửi đến máy nguồn. Trường HEADER CHECKSUM kiểm tra các bit của header có bị thay đổi khi truyền. Máy gửi tính toán tổng số 1 trong tất cả các giá trị 16 bit trong header bao gồm cả trường checksum, và sau đó lưu nó vào trong trường này. Máy nhận cũng thực hiện tính toán tương tự và thực hiện so sánh với giá trị trong trường này. Để cho kích thước của datagram nhỏ, IP đưa ra một lựa chọn có thể có. Khi datagram IP không có lựa chọn, trường H. LEN có giá trị là 5 và header kết thúc sau trường DESTINATION ADDRESS. Bởi vì chiều dài của header được xác định bằng bội số của 32 bit, nếu chọn lựa không kết thúc đúng giá trị là 32 bit, PADDING chứa các bit 0 thêm vào header để đảm bảo là bội của 32 bit. Phần V Sự đóng gói IP, phân đoạn và hợp lại. I. Sự truyền đi các datagram và các frame Khi một máy trạm hoặc router xử lý một datagram, phần mềm IP trước tiên lựa chọn máy tiếp mà datagram phải truyền tới N và sau đó truyền datagram đó qua mạng vật lý đến N. Nhưng không may là phần cứng mạng không hiểu được định dạng của các datagram và địa chỉ Internet. Do vậy, mỗi công nghệ phần cứng đưa ra một định dạng frame và một cơ chế địa chỉ riêng; phần cứng chỉ chấp nhận và truyền đi cac gói tin mà gắn liền với định dạng frame cụ thể và sử dụng cơ chế địa chỉ phần cứng tương ứng. Hơn nữa,bởi vì một liên mạng gồm có nhiều mạng vật lý không đồng bộ nên định dạng của khung tin truyền qua mạng này khác so với định dạng của frame truyền qua mạng trước đó. II. Sự đóng gói Một datagram có thể được truyền qua một mạng vật lý như thế nào mặc dù nó không hiểu được định dạng của datagram đó? Câu trả lời nằm ở kỹ thuật gọi là đóng gói (encapsulation). Khi một IP Datagram được đóng gói trong một frame, toàn bộ datagram đó được đặt trong phần dữ liệu của frame. Phần cứng mạng coi các frame mà có chứa datagram giống hệt như các frame khác. Thực tế, phần cứng không kiểm tra hoặc thay đổi gì nội dùng của phần dữ liệu của frame. Hình sau minh hoạ khái niệm. IP header IP Data Area FRAME DATA FRAME HEADER Hình 17 Hình 17.minh hoạ một IP Datagram được đóng gói trong một frame phần cứng. Toàn bộ datagram nằm trong phần dữ liệu của frame. Làm thế nào để máy nhận biết được liệu vùng dữ liệu của frame đến là một IP Datagram hay là dữ liệu khác? Máy nhận và máy gửi phải thống nhất một giá trị dùng trong trường kiểu frame. Khi nó đặt một datagram trong một frame, máy gửi thiết lập trường kiểu của frame một giá trị đặc biệt dành riêng cho IP. Khi một frame đến mà có giá trị đặc biệt trong trường kiểu, máy nhận biết rằng vùng dữ liệu có chứa một IP Datagram. Một frame mà mang một IP Datagram phải có địa chỉ đích như bình thường. Do đó, cùng với việc đặt một datagram vào trong cùng dữ liệu của frame, sự đóng gói cũng đòi hỏi máy gửi phải cung cấp địa chỉ vật lý của máy tiếp mà datagram cần gửi tới. Để tính ra địa chỉ thích hợp, phần mềm trong máy tính gửi phải thực hiện gắn kết địa chỉ . Sự gắn kết này để chuyển đổi địa chỉ IP của máu tiếp thành địa chỉ vật lý tương ứng mà sau đó dùng chúng làm địa chỉ đích trong frame header. Tóm lại: một datagram được đóng gói trong một frame để truyền đi qua một mạng vật lý. Địa chỉ đích trong frame đó là địa chỉ của máy tiếp mà datagram cần gửi tới; địa chỉ đó nhận được bằng cách chuyển đổi địa chỉ IP của máy tiếp thành địa chỉ vật lý tương ứng. III. Sự truyền tin qua liên mạng Sự đóng gói áp dụng cho việc truyền tin tại một thời điểm. Sua khi máy gửi chọn được máy tiếp, máy gửi đóng gói datagram trong một frame và truyền nó đến máy tiếp qua mạng. Khi frame đến máy tiếp, phần mềm nhận chuyển lại IP Datagram và huỷ bỏ frame. Nếu datagram cần phải truyền tiếp đến mạng khác, một frame mới lại được tạo ra. Hình sau minh hoạ cách mà một datagram được đóng gói mà mở gói khi được truyền từ nguồn đến đích qua 3 mạng và 2 router. Mỗi mạng có thể có một công nghệ phần cứng khác nhau do vậy mà định dạng frame cũng khác nhau. Máy nguồn Datagram Header 1 Datagram Net 1 Router 1 Datagram Header 2 Datagram Net 2 Router 2 Datagram Net 3 Header 3 Datagram Máy đích Datagram Hình 18 Một IP Datagram xuất hiện từng bước trong quá trình được truyền qua liên mạng. Mỗi khi nó truyền qua mạng vật lý nó được đóng gói vào một frame thích hợp của mạng đó. Như trên hình vẽ, máy trạm và router lưu trữ một datagram trong bộ nhớ mà không có phần header thêm vào. Khi datagram truyền qua mạng vật lý, datagram được đóng gói trong một frame thích hợp với mạng đó. Kích thước của frame header xuất hiện trước datagram phụ thuộc vào công nghệ của mạng. Ví dụ, nếu mạng 1 là Ethernet, header của frame 1 là Ethernet header. Tương tự, nếu mạng 2 là mạng vòng FDDI, header của frame 2 là FDDI header. Một quan sát quan trọng đó là các header frame không bị chồng lên nhau trong quá trình truyền một datagram. Trước khi một datagram được truyền qua mạng nhất định, datagram đó được đóng gói, thường là việc gắn thêm header vào đầu. Khi frame đến máy tiếp, datagram được lấy ra khỏi frame trước khi nó được định tuyến và đóng gói vào frame chuyển đi. Do vậy, khi datagram đến đích cuối cùng, frame mang datagram bị huỷ bỏ và datagram lại xuất hiện trở lại đúng với kích thước của nó khi được gửi đi. Tóm lại: khi một datagram nằm trong một frame mạng đến, máy nhận lấy ra datagram đó từ phần dữ liệu của frame và huỷ bỏ frame header. IV. Sự hợp lại Quá trình tạo lại datagram gốc từ các phân đoạn gọi là sự tái hợp. Bởi vì mỗi phân đoạn bắt đầu với phần header giống với của datagram gốc, nên tất cả các phân đoạn có dùng một địa chỉ đích. Hơn nữa, phân đoạn mà chứa phần dữ liệu cuối cùng sẽ có một bit thêm vào được thiết lập trong header. Do vậy, máy nhận thực hiện việc tái hợp lại có thể biết được liệu các phân đoạn được truyền đến thành công hay không. Một điều thú vị là giao thức liên mạng xác định rằng địa chỉ cuối cùng của máy trạm trong mọi phân đoạn đều giống nhau. Ví dụ, xem xét liên mạng trong hình 21 minh hoạ. R1 Net 2 (MTU =1000) Net 1 (MTU =1500) H1 R2 H2 Net 3 (MTU =1500) Hình 21. Một ví dụ của liên mạng trong đó các máy trạm có thể tạo ra các datagram mà đòi hỏi sự phân mảnh. Mỗi khi một datagram được phân mảnh, các phân mảnh đó đều được truyền tiếp đến đích cuối cùng, và tái hợp chúng lại. Trong hình vẽ, máy trạm H1 gửi đi một datagram 1500 byte đến máy trạm H2, router R1 sẽ chia datagram thanh hai phân đoạn, mỗi cái sẽ được truyền tiếp đến R2. Router R2 không tái hợp csac phân đoạn mà nó sẽ dùng địa chỉ đích của mỗi phân đoạn để truyền tiếp chúng. Máy trạm cuối cùng, H2 tập hợp các phân đoạn và tái hợp chúng lại để tạo ra datagram gốc. Việc yêu cầu địa chỉ đích cuối để tái hợp các phân đoạn có hai ưu điểm chính. Thứ nhất, nó giảm được lượng tin trạng thái trong mỗi router. Khi truyền tiếp một datagram, một router không cần biết liệu datagram đó là một phân mảnh hay không. Thứ hai, nó cho phép định tuyến thay đổi linh hoạt. Nếu một router ngay lập tức tái hợp các phân đoạn thì tất cả các phân đoạn phải đến router đó. Nhờ việc không tái hợp khi đến tận đích cuối cùng, giao thức liên mạng IP cho phép tự do truyền đi các phân đoạn của một datagram theo các định tuyến khác nhau. V. Nhận dạng một datagram Nhớ lại rằng IP không đảm bảo việc truyền đi. Do vậy, các phân đoạn có thể bị mất hoặc đến sai thứ tự. Hơn nữa, nếu một nguồn gửi đi nhiều datagram đến cùng một đích, các phân đoạn của các datagram có thể đến theo thứ tự khác nhau. Vậy làm thế nào mà giao thức IP có thể tái hợp được các phân đoạn đến sai thứ tự? Mỗi máy gửi đều thiết lập một giá trị số nhận dạng duy nhất trong trường IDENTIFICATION của mỗi datagram đi. Khi một rout

Các file đính kèm theo tài liệu này:

  • docP0113.doc