Nghi thức gói dữ liệu người dùng
Trang 1Chơng 11
Nghi thức gói dữ liệu ngời dùng (UDP )
Bộ nghi thức TCP/IP chỉ rõ rằng hai nghi thức cho lớp chuyên trở: UDP và TCP Chúng ta trớc hết tiếp tục tập trung UDP, đơn giản hơn hai, trớc khi bình luận về TCP trong chơng 12 Hình 11.1 trình mối quan hệ UDP cho những nghi thức khác và những lớp TCP/IP protocol : những lời nói dối UDP giữa lớp ứng dụng và lớp IP và, tơng tự TCP, những sự phục vụ nh trung gian giữa những chơng trình ứng dụng và những thao tác mạng.
Vị trí hình 11.1 UDP trong TCP/IP protocol
Một nghi thức lớp chuyên trở thông thờng có vài trách nhiệm Một sẽ tạo ra một truyền thông từ quá trình tới quá trình (một quá trình là một ứng dụng đợc chạy lập trình); UDP sử dụng chuyển những số để hoàn thành điều này Trách nhiệm khác sẽ cung cấp những cơ chế điều khiển ở mức chuyên trở UDP làm cho nhiệm vụ này ở một chính cực tiểu mức Không có cơ chế điều khiển luồng và không có acknowledgment cho những gói nhận đợc UDP, tuy nhiên,
cung cấp điều khiển lỗi tới phạm vi nào đó Nếu UDP phát hiện ra một lỗi trong gói nhận đợc, nó yên lặng thả nó.
Lớp chuyên trở cũng cung cấp một cơ chế kết nối cho những quá trình Những quá trình phải có thể gửi những dòng dữ liệu cho lớp chuyên trở Nó là trách nhiệm lớp chuyên trở ở nhà ga gửi để làm kết nối với receiver, chặt dòng vào trong những đơn vị có thể chở đi,
number chúng, và gửi cho chúng một bởi một Đó là trách nhiệm mà lớp chuyên trở ở kết thúc nhận đợc để đợi cho đến khi tất cả khác nhau những đơn vị thuộc về tới cùng quá trình có đến, kiểm tra và đi qua mà là lỗi tự do, và chuyển giao chúng tới nhận đợc xử lý nh một dòng Sau khi toàn bộ dòng đã đợc gửi, lớp chuyên trở đóng kết nối UDP không làm bất kỳ (cái) nào (của) ở trên Nó có thể chỉ nhận một bộ phận dữ liệu của những quá trình và chuyển giao nó, unreliably, tới cái máy thu Bộ phận dữ liệu phải (thì) đủ nhỏ để trùng hợp một gói UDP.
Nếu UDP là bất lực nh vậy, tại sao một quá trình muốn sử dụng nó? Với những sự bất lợi đến là vài lợi thế UDP là một nghi thức rất đơn giản sử dụng một tối thiểu (của) ở trên đầu Nếu một quá trình muốn gửi một thông báo nhỏ và không chăm sóc nhiều về tiền nợ, CNTT lại có thể ngời dùng UDP Việc gửi thông báo nhỏ sử dụng UDP cầm (lấy) nhiều ít sự tơng tác giữa ngời gửi và cái máy thu hơn sử dụng TCP.
==========o0o==========o0o===========o0o==========o0o=========== 11.1 truyền thông từ quá trình tới quá trình
Trớc hết chúng ta khảo sát UDP, chúng ta phải trớc hết hiểu truyền thông và truyền thông từ quá trình tới quá trình từ chủ nhà tới chủ nhà và sự khác nhau giữa chúng.
IP (thì) có trách nhiệm với truyền thông ở (tại) mức máy tính (truyền thông từ chủ nhà tới chủ nhà) Nh một nghi thức lớp mạng, IP có thể chuyển giao thông báo chỉ tới máy tính nơi đến Tuy nhiên đây là một sự giao hàng không đầy đủ, thông báo vẫn cần còn cần trao cho quá trình đúng (Cái) này là nơi một nghi thức lớp chuyên trở nh UDP bắt (ngấm) qua UDP (thì) có trách nhiệm với sự giao hàng (của) thông báo tới quá trình thích hợp.
Hình 11.2 cho thấy những miền (của) những miền (của) IP và UDP.
Trang 2Chuyển những số
Mặc dầu có một ít cách để đạt đợc truyền thông từ quá trình tới quá trình, (cái) chung nhất một xuyên qua máy dịch vụ khách hàng paradigm Một quá trình trên (về) chủ nhà địa phơng, đợc gọi một khách hàng, cần những dịch vụ từ một quá trình thông thờng trên (về) chủ nhà từ xa, gọi một ngời phục vụ.
Cả hai quá trình (khách hàng và ngời phục vụ) có cùng tên Cho ví dụ, có ngày và thời gian từ một máy từ xa, chúng ta cần một quá trình khách hàng daytime, chạy trên (về) chủ nhà địa phơng và một quá trình ngời phục vụ daytime chạy trên (về) một máy từ xa Tuy nhiên, những hệ điều hành hỗ trợ cả nhiều ngời dùng lẫn những môi trờng đa chơng trình Nhng một máy tính từ xa có thể chạy vài chơng trình ngời phục vụ cùng lúc, chỉ cần trong khi vài máy tính địa phơng có thể chạy một hoặc hơn khách hàng lập trình cùng lúc, cho truyền thông chúng ta phải định nghĩa.
- Chủ nhà địa phơng - Quá trình địa phơng - Chủ nhà từ xa - Quá trình từ xa
Chủ nhà địa phơng và chủ nhà từ xa đợc định nghĩa sử dụng những địa chỉ IP Để định nghĩa những quá trình, chúng ta cần những ngời điều tra lý lịch (thứ) hai gọi là những số cảng Trong TCP/IP protocol, những số cảng là những số nguyên giữa 0 và 65,535.
Chơng trình khách hàng tự định nghĩa với một số cảng, đợc chọn nhẫu nhiên bởi phần mềm UDP chạy trên (về) chủ nhà khách hàng Đây là chóng tàn chuyển ghi số.
Quá trình ngời phục vụ phải cũng tự định nghĩa với một số cảng Số cảng này, tuy nhiên, không thể (thì) đợc chọn ngẫu nhiên Nếu máy tính ở (tại) vị trí ngời phục vụ chạy một quá trình ngời phục vụ và gắn một ngẫu nhiên số nh số cảng, quá trình ở (tại) vị trí khách hàng mà muốn truy cập ngời phục vụ đó và sử dụng những dịch vụ (của) nó sẽ không biết số cảng Tất nhiên, một giải pháp sẽ gửi một gói đặc biệt và đòi hỏi số cảng (của) một ng ời phục vụ đặc biệt, nhng (cái) này yêu cầu ở trên đầu hơn TCP/IP đã quyết định sử dụng phổ thông chuyển ghi số cho những ngời phục vụ: những (điều) đó là những số đợc gọi nổi tiếng chuyển Có vài ngoại lệ tới quy tắc này: cho ví dụ, có những khách hàng mà là những số đợc gán nổi tiếng chuyển Chúng ta sẽ nói về về sau này khi chúng ta thăm dò máy dịch vụ khách hàng paradigm, trong chơng 15 Mỗi quá trình khách hàng biết rằng nổi tiếng chuyển số (của) quá trình ngời phục vụ tơng ứng Cho ví dụ, trong khi quá trình khách hàng
daytime, đợc bàn luận về ở trên, có thể sử dụng một chóng tàn tạm thời cảng ghi số 52.000 tới bản thân idenufy, daytime, (mà) quá trình ngời phục vụ phải sử dụng (mà) nổi tiếng (lâu dài) chuyển ghi số 13 Hình 11.3 cho thấy khái niệm này.
Nó cần phải rõ ràng bởi bây giờ IP mà những số địa chỉ và cảng chơi những vai trò khác nhau trong việc lựa chọn nơi đến chung cuộc (của) dữ liệu Địa chỉ IP nơi đến định nghĩa chủ nhà giữa những chủ nhà khác nhau trên thế giới Sau khi chủ nhà đã đợc lựa chọn, số cảng định nghĩa một trong những quá trình trên (về) chủ nhà đặc biệt này (nhìn thấy hình 11.4)
Những phạm vi IANA
IANA có chia cắt những cảng (mà) những số vào trong ba rung chuông: nổi tiếng,
registered, và động (hoặc riêng t) nh hình 11.5 đợc đa vào
- Nổi tiếng chuyển Những cảng hạn chế từ 0 đến 1,023 gán và điểu khiển bởi IANA Những (điều) đố là nổi tiếng chuyển.
- Đợc đăng ký chuyển Những cảng hạn chế từ 1,024 đến 49,151 không gán hoặc sự l-ờng gạt - hát tiếp nhau bởi IANA Chúng có thể chỉ đợc đăng ký với IANA để ngăn ngừa sự sao lại.
- Động chuyển Những cảng hạn chế từ 49,152 đến 65,535 (thì) không kiểm soát mà cũng không đợc đăng ký Chúng có thể đợc sử dụng bởi bất kỳ quá trình nào Những (điều) đó là chóng tàn chuyển.
Trang 3Những phạm vi đợc sử dụng bởi những hệ thống khác
Chú ý rằng những hệ điều hành khác có thể sử dụng rung chuông (kẻ) khác hơn IANA có cho nổi tiếng và chóng tàn chuyển Cho ví dụ, BSD Unix có những ba rung chuông: Phục vụ, lại chóng tàn và nonprivileged.
Nổi tiếng chuyển cho UDP
Bảng (mà) 11.1 cho thấy nổi tiếng đó chuyển những số đợc sử dụng bởi UDP, vài số cảng có thể (thì) đợc sử dụng gần cả UDP lẫn TCP Chúng ta sẽ bàn luận về chúng khi chúng ta nói về TCP trong chơng 12.
Những địa chỉ lỗ
Nh chúng ta nhìn thấy UDP cần hai ngời điều tra lý lịch, địa chỉ IP và số cảng, ở (tại) mỗi kết thúc để làm một kết nối Sự kết hợp (của) một địa chỉ IP và một số cảng (thì) đợc gọi một lỗ địa chỉ định nghĩa quá trình khách hàng đúng duy nhất nh địa chỉ lỗ ngời phục vụ định nghĩa a quá trình ngời phục vụ duy nhất (nhìn thấy hình 11.6).
Để sử dụng những dịch vụ (của) UDP, chúng ta cần một cặp (của) những địa chỉ lỗ: địa chỉ lỗ khách hàng và địa chỉ lỗ ngời phục vụ Đầu mục IP chứa đựng những địa chỉ IP: đầu mục UDP chứa đựng chứa đựng những số cảng.
11.2 ngời dùng DATAGRM
Những gói UDP, gọi ngời dùng là những gói dữ liệu, có một đầu mục kích thớc cố định (của) 8 bytes Hình 11.7 cho thấy khuôn dạng (của) một gói dữ liệu ngời dùng.
Những lịch vực nh sau:
- Nguồn chuyển ghi số (Cái) này là số cảng sử dụng bởi quá trình chạy trên (về) chủ nhà nguồn Đó là 16 bit dài (lâu), những phơng tiện nào mà sỗ cảng có thể hạn chế từ 0 đến 65,535 Nếu chủ nhà nguồn là khách hàng (một khách hàng gửi một yêu cầu), số cảng, trong đa số các trờng hợp, là một aphemeral, chuyển số đợc đòi hỏi bởi quá trình và đợc chọn bởi phần mềm UDP chạy trên (về) chủ nhà nguồn Nếu chủ nhà nguồn là ngời phục vụ (một ngời phục vụ gửi một sự đáp lại) Số cảng, trong đa số các trờng hợp, là một nổi tiếng chuyển ghi số.
- Nơi đến chuyển ghi số Là cảng ghi số chủ nhà đợc sử dụng bởi quá trình chạy trên (về) nơi đến Nó cũng là 16 bit dài (lâu) Nếu chủ nhà nơi đến là ngời phục vụ (một khách hàng gửi một yêu cầu), số cảng, trong đa số các trờng hợp, là một nổi tiếng trong ghi số Nếu chủ nhà nơi đến là khách hàng (một ngời phục vụ gửi một sự đáp lại), số cảng, trong đa số các trờng hợp, là một aphemeral chuyển ghi số Trong trờng hợp này, những sự sao chép ngời phục vụ (mà) aphemeral chuyển ghi số nó nhận trong gói yêu cầu thời gian thực.
- Length (Cái) này là một lĩnh vực 16 bit mà định nghĩa toàn bộ Length (của) gói dữ liệu ngời dùng, dữ liệu dấu cộng đầu mục 16 bit có thể định nghĩa a toàn bộ
Length aphemeral (của) 0 tới 65,535 bytes Làm sao đỉnh -e, cực tiểu
Length là 8 bytes, mà chỉ báo gói dữ liệu ngời dùng aphemeral với đầu mục duy nhất và không có dữ liệu nào Bởi vậy, Length (của) dữ liệu có thể giữa 0 và 65,507 (65,535 - 20 - 8) bytes (20 bytes cho đầu mục IP và 8 bytes cho đầu mục
Lĩnh vực Length trong một gói dữ liệu ngời dùng UDP thật sự (thì) không phải là cần thiết Một dữ liệu - đậu xanh ngời dùng đợc đóng gói trong một gói dữ liệu IP Có lĩnh vực khác trong gói dữ liệu IP mà định nghĩa tolal length Có lĩnh vực khác trong gói dữ liệu IP mà định nghĩa Length (của) đầu mục Nếu nh vậy chúng ta trừ giá trị (của) lĩnh vực (thứ) hai từ trớc hết, chúng ta co thể suy diễn Length (của) gói dữ liệu UDP mà đợc đóng gói trong một gói dữ liệu IP.
Trang 4Tuy nhiên, những ngời thiết kế (của) nghi thức UDP cảm thấy đó là nhiều officient hơn mà cho nơi đến UDP để tính toán Length (của) dữ liệu từ thông tin cung cấp trong gói dữ liệu ngời dùng UDP hơn là hỏi IP phần mềm để cung cấp điều này bên trong cho - gói dữ liệu th UDP layer, nó đã đợc thả đầu mục IP.
- Tổng kiểm tra Lĩnh vực này đợc sử dụng để phát hiện ra những lỗi qua toàn bộ gói dữ liệu ngời dùng (dữ liệu dấu cộng đầu mục) Tổng kiểm tra đợc bàn luận về trong mục (khu vực) tiếp theo.
==========o0o==========o0o===========o0o==========o0o=========== 11.3 tổng kiểm tra
Chúng ta có đã tallked về khái niệm (của) tổng kiểm tra và cách mà nó đợc tính toán trong chơng 7 Chúng ta đã cũng cho thấy làm sao để tính toán tổng kiểm tra cho IP và gói ICMP Chúng ta bây giờ cho thấy làm sao (cái) này đợc làm cho UDP.
Sụ tính toán tổng kiểm tra UDP (thì) khác với cái cho IP và ICMP ậ đây tổng kiểm tra gồm ba mục (khu vực): Một pseudoheader, đầu mục UDP, và dữ liệu com - E từ lớp ứng dụng.
pseudoheader là bộ phận của đầu mục (của) gói IP trong đó gói dữ liệu ngời dùng sẽ là en kết túi với vài lĩnh vực làm đầy những năm 0 (nhìn thấy hình 11.8)
Nếu (mà) tổng kiểm tra không bao gồm pseudoheader, một gói dữ liệu ngời dùng có thể đến âm thanh và an toàn Tuy nhiên, nếu đầu mục IP bị h hỏng, nó có thể (thì) phân phát tới chủ nhà sai.
Hình 11.8
Lĩnh vực nghi thức nh bổ sung để bảo đảm rằng gói (thì) dài (lâu) tới UDP, và không phải tới TCP Chúng ta sẽ nhìn thấy về sau cái đó nếu một quá trình có thể ngời dùng hoặc UDP hoặc TCP, nơi đến chuyển ghi số có thể là cũng nh thế Giá trị (của) lĩnh vực nghi thức cho UDP là 17 Nếu giá trị này là thay đổi trong thời gian sự truyền, sự tính toán tổng kiểm tra ở (tại) cái máy thu sẽ hiện ra nó và UDP thả gói Nó (thì) cha đợc chuyển giao tới nghi thức sai.
Ghi chú những sụ giống nhau giữa những lĩnh vực pseudoheader và 12 bytes cuối cùng (của) đầu mục IP.
Sự tính toán tổng kiểm tra ở (tại) ngời gửi
Ngời gửi đi theo tám bớc này tới sự tính toán tổng kiểm tra: 1 Thêm pseudoheader vào gói dữ liệu ngời dùng UDP 2 Làm đầy lĩnh vực tổng kiểm tra với những zêrô.
3 Chia cắt những toàn bộ mẫu vào trong 16 bit (2 - bytes) phát biểu.
4 Nếu là toàn bộ số (của) bytes không chỉ, thêm 1 bytes (của) sự lót (tất cả những năm 0) Sự lót chỉ cho mục đích (của) việc tính toán tổng kiểm tra và sẽ đợc vứt bỏ sau – những sự trông nom.
5 Thêm tất cả các mục (khu vực) 16 bit sử dụng một số học bổ sung ngời phục vụ 6 Bổ sung kết quả (thay đổi tất cả những năm 0 tới những năm 1 và tất cả những năm
1 tới những năm 0), mà là một sỗ 16 bit, và chèn nó trong lĩnh vực tổng kiểm tra 7 Thả pseudoheader và bất kỳ sự lót đợc thêm vào.
8 Chuyển giao gói dữ liệu ngời dùng UDP tới phần mềm IP cho sự bọc trong nang Ghi chú cái đó (của) những hàng trong pseudoheader không làm cho bất kỳ
diffirence nào trong tổng kiểm tra là calcultion Đồng thời, việc thêm những năm 0 không thay đổi kết quả Cho điều này reason, phần mềm mà tính toán rằng tổng kiểm tra có thể dễ dàng thêm toàn bộ đầu mục IP (20 bytes) vào gói dữ liệu UDP, đợc đặt bytes đầu
Trang 5tiên tới zêrô, đợc đặt lĩnh vực TTL tới zêrô, thay thế tổng kiểm tra IP UDP Length, và tính toán tổng kiểm tra Kết quá cũng là nh thế.
Sự tính toán tổng kiểm tra ở (tại) cái máy thu
Cái máy thu đi theo sáu bớc này để tính toán tổng kiểm tra: 1 Thêm pseudoheader gói dữ liệu ngời dùng UDP 2 Thêm sự lót nếu đợc cần.
3 Chia cắt những toàn bộ mẫu vào trong những mục (khu vực) 16 bit 4 Thêm tất cả các mục (khu vực) 16 bit sử dụng số học bổ sung (của) ai đó 5 Bổ sung kết quả.
6 Nếu kết quả là tất cả những năm 0, thả cho pseudoheader và bất kỳ sự lót và sự chấp nhận đợc thêm vào gói dữ liệu ngời dùng Nếu kết quả là bất kỳ điều gì khác, vứt gói dữ liệu ngời dùng.
Một ví dụ
Hình 11.9 cho thấy sự tính toán tổng kiểm tra cho một gói dữ liệu ngời dùng rất nhỏ với chỉ 7 bytes (của) dữ liệu Vì số (của) bytes (của) dữ liệu od, sự lót đợc thêm cho sự tính toán tổng kiểm tra pseudoheader này cũng nh sụ lót sẽ đợc thả khi gói dữ liệu ngời dùng (thì) phân phát tới IP.
Sự tín toán tổng kiểm tra hình 11.9 (của) một gói dữ liệu ngời dùng UDP đơn giản Để chọn sử dụng của tổng kiểm tra
Sự tính toán của tổng kiểm tra và sự bao gồm (của) nó trong gói dữ liệu ng ời dùng
aphemeral (thì) để chọn Nếu là tổng kiểm tra không calculted, lĩnh vực đợc làm đầy những năm 0 Một có thể hỏi, khi phần mềm UDP trên (về) máy tính nơi đến nhận gói dữ liệu ngời dùng aphemeral với giá trị tổng kiểm tra aphemeral (của) - zêrô, làm sao nó có thể xác định phải chăng tổng kiểm tra (thì) cha đợc sử dụng hoặc nó đợc sử dụng và kết quả tình cờ là tất cả những năm 0? Câu trả lời (thì) rất đơn giản Nếu soure làm
calculted tổng kiểm tra và kết quả tình cờ là tất cả những năm 0, nó phải là
compiemented Để nhắn (thì) không phải là tất cả những năm 0, nhng tất cả những năm 1, mà là zêrô ngợc đợc xem xét trong một số học compiemented ngời phục vụ.
11.4 thao tác UDP
Những khái niệm UDP users chung tới lớp chuyên trở, ở đó những khái niệm sẽ là
discussec ở đây briefily, và sau đó mở rộng trong chỗ nứt tiếp theo trên (về) nghi thức TCP.
Những dịch vụ không kết nối
Nh đợc đề cập trớc đó, UDP cung cấp một dịch vụ không kết nối (Cái) này có nghĩ rằng mỗi gói dữ liệu ngời dùng nhắn bởi UDP là một gói dữ liệu độc lập Không có mối quan hệ giữa những gói dữ liệu ngời dùng khác nhau thậm chí nếu chúng đang đến từ cùng nguồn xử lý và đi đến cùng chơng trình nơi đến Những gói dữ liệu ngời dùng (thì) cha đợc ghi số Đồng thời, không có sự thành lập kết nối và không có điểm cuối kết nối nào nh nó có (mà) trờng hợp cho TCP This có nghĩa mà mỗi gói dữ liệu có thể đi du lịch trên (về) một đờng dẫn khác nhau.
Một trong những sự phân nhánh (của) việc (thì) không kết nối là quá trình mà sử dụng UDP không thể gửi một dòng (của) dữ liệu cho UDP và chờ đợi UDP để chặt chúng vào trong những gói dữ liệu ngời dùng liên quan khác nhau Thay vào đó mỗi yêu cầu phải (thì) đủ nhỏ để phù hợp với vào trong một ngời dùng datagraMultimedia Chỉ những quá trình đó gửi ngắn những thông báo cần phải sử dụng UDP.
Điều khiển luồng và lỗi.
UDP là một thủ tục vận chuyển rất đơn giản, không đáng tin cậy, ở đó là không có điều khiển luồng nào, và từ đây không có cơ chế cửa sổ nào Sự tràn tháng năm máy thu với những thông báo đầu vào.
Trang 6Không có cơ chế điều khiển lỗi trong UDP ngoại trừ tổng kiểm tra (Cái) này có nghĩa rằng ngời gửi không biết phải chăng một thông báo đã đợc mất hoặc sao lại Khi cái máy thu phát hiện ra một lỗi xuyên qua tổng kiểm tra, gói dữ liệu ngời dùng (thì) yên lặng đợc vứt bỏ.
Sự thiếu điều khiển điều khiển và lỗi luồng có nghĩa rằng quá trình sử dụng UDP cần phải cung cấp cho những (điều) đó những mechann.
Sự bọc trong nang và thuật cắt trái thận
Để gửi một thông báo từ một xử lý tới (kẻ) khác, nghi thức UDP đóng gói và những thông báo deccapsulates (nhìn hình 11.10)
Sự bọc trong nang
Khi một quá trình có một thông báo để gửi xuyên qua UDP, nó đi qua sự xoa bóp cho UDP cùng với một cặp (của) dữ liệu, UDP nhận dữ liệu và thêm đầu mục UDP UDP rồi đi qua gói dữ liệu ngời dùng cho IP với những địa chỉ lỗ IP thêm đầu mục (của) chính mình, sử dụng giá trị 17 trong lĩnh vực nghi thức UDP Gói dữ liệu IP (thì) rồi đợc đi qua cho lớp nối dữ liệu Lớp nối dữ liệu nhận gói dữ liệu IP, thêm đầu mục (của) chính mình (và có lẽ một ngời lần theo dấu vết), và CNTT những chuyển qua tới lớp vật lý Lớp vật lý mã hoá những mẫu vào trong những tín hiệu điện hoặc quang học và gửi nó cho máy từ xa.