[Question] thắc mắc về udp checksum |
20/07/2007 21:15:31 (+0700) | #1 | 72537 |
|
vikjava
Elite Member
|
0 |
|
|
Joined: 28/06/2004 02:32:38
Messages: 926
Location: NQN
Offline
|
|
Chào mấy anh đây là loạt bài spam về tcp/ip của em . Hi vọng anh em giúp đỡ, hướng dẫn ra khỏi vùng u minh thượng.
1. Trong định dạng của UDP có udp checksum . Cái này cung cấp cách duy nhất để đảm bảo dữ liệu nhận được nguyên vẹn. Để tính checksum phần mềm ghi giá trị zero vào vùng checksum rồi tích lũy tổng 16 bit phần bù của một của toàn bộ đối tượng bao gồm phần đầu giả ,phần đầu udp và dữ liệu người dùng .
+ cầu trúc phần đầu giả lại có ip của nguồn và đích . lớp thứ 4 mà làm sao có ip trong này nhỉ ???
+ Phần tô đỏ không hiểu nó nói gì hết trơn .
+ udp và ip hình như không có sự phân biệt rõ ràng về lớp trong mô hình tcp/ip ???
|
|
|
|
|
[Question] thắc mắc về udp checksum |
20/07/2007 22:21:49 (+0700) | #2 | 72558 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
vikjava wrote:
Chào mấy anh đây là loạt bài spam về tcp/ip của em . Hi vọng anh em giúp đỡ, hướng dẫn ra khỏi vùng u minh thượng.
1. Trong định dạng của UDP có udp checksum . Cái này cung cấp cách duy nhất để đảm bảo dữ liệu nhận được nguyên vẹn. Để tính checksum phần mềm ghi giá trị zero vào vùng checksum rồi tích lũy tổng 16 bit phần bù của một của toàn bộ đối tượng bao gồm phần đầu giả ,phần đầu udp và dữ liệu người dùng .
+ cầu trúc phần đầu giả lại có ip của nguồn và đích . lớp thứ 4 mà làm sao có ip trong này nhỉ ???
+ Phần tô đỏ không hiểu nó nói gì hết trơn .
+ udp và ip hình như không có sự phân biệt rõ ràng về lớp trong mô hình tcp/ip ???
Cái đoạn màu đỏ ở đâu ra vậy? Lớp nào thứ 4 nằm ở trong câu hỏi của em vậy?
Thế nào là "lớp" trong tinh thần em đang thắc mắc? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: thắc mắc về udp checksum |
23/07/2007 21:23:49 (+0700) | #3 | 73312 |
|
vikjava
Elite Member
|
0 |
|
|
Joined: 28/06/2004 02:32:38
Messages: 926
Location: NQN
Offline
|
|
sáng đi làm nhẩy vô topic này liền hihihi. Cuối tuần em có post trả lời mấy câu hỏi của anh conmale, nhưng có lẽ do trời mưa mạng viettel bị truc trặc nên không thấy.
@ conmale : cái đoạn màu đỏ là em đọc và hiểu từ cuốn tcp/ip Mặc dù cũng có một ít kiến thức về mạng nhưng đọc cuốn này nhiều chỗ còn mơ hồ quá . Một cục xương khó gậm anh ah . -))
Em thắc mắc là giao thức tcp và udp ở lớp thứ 4 ( transport) , Và ip thì ở lớp thứ 3 (internet) trong mô hình tcp/ip . Khi dữ liệu đi xuống từ application tới transport thì chưa có dính dáng gì tới ip vậy tại sao trong cơ chế checksum của udp và tcp lại có dính tới phần ip . em không hiểu ở chổ này anh ah. ip này nó lấy ở đâu và dùng cơ chế gì ....Có vẻ nó không rõ ràng giữa lớp 3 và lớp 4 ở chỗ này.
Ah một vấn đề nữa, đôi khi đọc sách nói A thì mình nghĩ nó là A , cũng không biết thắc mắc gì . Mọi người có góp ý giùm về vấn đề này. |
|
|
|
|
[Question] Re: thắc mắc về udp checksum |
24/07/2007 10:23:12 (+0700) | #4 | 73495 |
|
beo_beo37
Member
|
0 |
|
|
Joined: 08/06/2007 14:04:27
Messages: 550
Location: 255.255.255.255
Offline
|
|
|
|
[Question] thắc mắc về udp checksum |
24/07/2007 10:57:52 (+0700) | #5 | 73505 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
Chào vikjava,
Các lớp của TCP/IP suite, hoặc của OIS model đếm ngược từ dưới lên, không phải từ trên xuống. Sử dụng TCP/IP suite, lớp data link là layer 1, network là layer 2, transport là layer 3
Chú ý, UDP có check sum, và IP cũng có check sum riêng. Bạn kiểm tra lại xem đoạn đó là cách tính check sum cho UDP hay IP. Ở tầng transport, bạn không có cách gì động đến IP address hết.
khoai |
|
|
|
|
[Question] Re: thắc mắc về udp checksum |
24/07/2007 20:37:45 (+0700) | #6 | 73557 |
|
vikjava
Elite Member
|
0 |
|
|
Joined: 28/06/2004 02:32:38
Messages: 926
Location: NQN
Offline
|
|
@mr.khoai : người gởi cũng đếm ngựoc ah Cái vụ này lạ ah nha . Khi một gói tin được gởi thì ở phía người gởi nó đi từ application xuống và người nhận thì mơi đi từ dưới lên chứ . Udp tính checksum nó đã động đến ip nguồn va đích rùi mà anh.
@beo_beo37 : trong mô hình tcp\ip. Phần checksum nó có dính tới ip .
Theo cảm nhận của riêng em hình như mô hình tcp\ip giữa lớp 3 và lớp 4 có một sự giao thoa với nhau . Từ " giao thoa " không biết có chính xác không
. Vì thế nói đến tcp\ip người ta dùng là bộ giao thức . |
|
|
|
|
[Question] thắc mắc về udp checksum |
24/07/2007 23:13:54 (+0700) | #7 | 73600 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
Người gửi hay người nhận gì thì layer đầu tiên (layer 1) đều là Data link cả (dùng TCP/IP suite).
UDP check sum "động" đến IP nguồn và đích là do UDP tự động xây dựng một UDP pseudo-header, bao gồm source IP addr, des. IP. addr, udp len, và protocol field. upd sẽ tính checksum dựa vào pseudo-header này, và udp header + udp data.
khoai |
|
|
|
|
[Question] Re: thắc mắc về udp checksum |
24/07/2007 23:47:07 (+0700) | #8 | 73618 |
|
vikjava
Elite Member
|
0 |
|
|
Joined: 28/06/2004 02:32:38
Messages: 926
Location: NQN
Offline
|
|
ở đây mình xét theo khia cạnh luồng dữ liệu ra vào mà khoai . Thui thì tự chấp nhận "UDP tự động xây dựng một UDP pseudo-header" --- cơ chế làm việc của nó là thế. |
|
|
|
|
[Question] Re: thắc mắc về udp checksum |
25/07/2007 09:21:38 (+0700) | #9 | 73723 |
|
beo_beo37
Member
|
0 |
|
|
Joined: 08/06/2007 14:04:27
Messages: 550
Location: 255.255.255.255
Offline
|
|
Hi Vikjava
Để bạn đỡ phải
Thui thì tự chấp nhận "UDP tự động xây dựng một UDP pseudo-header" --- cơ chế làm việc của nó là thế
Cho mình giải thích thêm thế này nhé:
Mô hình OSI
Layer7:Application
Layer6resentation
Layer5:Session
Layer4:Transport
Layer3:Network
Layer2ata Link
Layer1hysical
Ví dụ:
Nếu PC1 gửi Data đến PC2
Nó sẽ đi thế này:
+Trên PC1 Data từ Layer7->6, 5, 4 ,3 , 2, Layer1 (encapsulates) 1 thằng đóng gói
+Trên PC2 Data đi từ Layer1 ->Layer7(disencapsulates) 1 thằng mở gói
Cái mà bạn chưa hiểu là làm sao khi Data đẩy từ lớp 4 xuống lớp 3 thì lớp 4 phải có gì liên quan đến IP của lớp 3 chứ gì?
Mình dám khẳng định là chẳng có sự liên quan gì đến IP ở lớp 4 này
Vì:
+IP ko phải sinh ra để cung cấp dịch vụ truyền dữ liệu bảo đảm từ mạng này sang mạng kia
+IP chỉ có nhiệm vụ: tiếp vận dữ liệu nó ko quan tâm việc gói tin có tới được đích hay ko.
Mình ví thế này: IP được ví như 1 lá thư, 1 lá thư thì có địa chỉ đích
UDP hoặc TCP ví như các xe ô tô, máy bay, tầu hỏa....dùng để vận chuyển thư đi
Vậy khi lá thư được gói và gửi đi thì được đưa lên các phương tiện kia, việc đến được đích hay ko lúc này phụ thuộc vào phương tiện. Nếu trên quá trình gửi đi mà chẳng may ô tô , máy bay bị nổ thì coi như lá thư đó mất. Nhưng người gửi lá thư sau 1 thời gian ko nhận được thư hồi âm, thì lại viết 1 bức khác và bức này đến được đích. Lúc này người nhận thư viết lại cho người gửi 1 bức thư là đã nhận được thư và........gì gì đó
Nhưng sự thiết lập qua lại ở đây chính là phương tiện vận chuyển
Thằng phương tiện(ô tô, máy bay...) ở đây nó chỉ biết lấy thư Bưu điện và gửi đi từ chỗ này sang chỗ khác ví như gủi thư từ bưu điện Hà Nội vào bưu điện TPHCM, còn việc nhân viên bưu điện mở thư ra và đọc địa chỉ gửi tiếp đi thì ko còn là nhiệm vụ của phương tiện nữa rồi.
Bạn lại hỏi : thư đến được bưu điện thì cũng phải có người đưa thư đó đến đich chứ. Dĩ nhiên là có nhân viên và nhân viên lại đi xe máy, xe đạp.....nhưng UDP và TCP chỉ đóng vai trò là phương tiện, thì phương tiện ở đây lại là xe máy xe đạp.
Nói tóm lại UDP và TCP nó chỉ là phương tiện thôi
Nếu có bước nhẩy từ nguồn đến đích thì mỗi bước nhẩy đó là 1 hoạt động độc lập với nhau, nó ko hề có sự phối hợp, ko có khái niệm gì về việc bước nhẩy đó cụ thể như thế nào.
Phù......gõ mỏi cả tay, nghĩ đau cả đầu. Hì hì
Mong giúp được bạn
Nếu có sai ở đâu xin được chỉ giáo để còn biết cái sai của mình
Thân
|
|
|
|
|
[Question] Re: thắc mắc về udp checksum |
25/07/2007 15:56:53 (+0700) | #10 | 73795 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
vikjava wrote:
ở đây mình xét theo khia cạnh luồng dữ liệu ra vào mà khoai . Thui thì tự chấp nhận "UDP tự động xây dựng một UDP pseudo-header" --- cơ chế làm việc của nó là thế.
Khà khà, sao lại phải tự "chấp nhận" thế! Có gì không hiểu thì mình phải mò cho ra chứ )
Thứ nhất, khoai không hiểu đoạn "khía cạnh luồng dữ liệu ra vào" của bạn có ý gì.
Máy muốn gửi một gói udp ra ngoài thì trước hay sau gì cũng phải build IP headers cả. Do đó, ở tầng transport, kernel hoàn toàn có khả năng build một udp pseudo-header để tính checksum cho udp. Các field trong pseudo-header này có thể được sử dụng tiếp ở tầng IP để tạo một IP header hoàn chỉnh.
Do thuật toán tính checksum, cụ thể là của udp, nên nếu bạn pad thêm các bit 0 thì sẽ không làm thay đổi giá trị checksum được tính. Dựa vào yếu tố này, thường thì IP header được build luôn tại các hàm udp output. Các field không sử dụng được initialize là 0, và sẽ không ảnh hưởng đến quá trình tính udp checksum.
Sau khi udp output làm hết nhiệm vụ của nó, nó pass cái memory buffer này xuống cho ip output xử tiếp. Và tại đây, các giá trị của các fields mới được thiết lập cụ thể.
Vì sao phải có cái pseudo-header? Lý do là để bên nhận đảm bảo gói udp này gửi đúng cho nó. Bạn nên nhớ IP checksum chỉ kiểm tra IP header, không kiểm tra cái IP payload. Do đó, tcp và udp phải có thêm checksum, và checksum này phải bao gồm source và dest. IP addr để kiểm tra chính xác hơn.
khoai |
|
|
|
|
[Question] Re: thắc mắc về udp checksum |
26/07/2007 02:41:25 (+0700) | #11 | 73882 |
|
vikjava
Elite Member
|
0 |
|
|
Joined: 28/06/2004 02:32:38
Messages: 926
Location: NQN
Offline
|
|
khì khì cảm ơn khoai đã bổ sung vài chỗ còn thiếu về udp checksum. Tiện thể cho hỏi về sự khác nhau cơ bản về cach thức hoạt động giữa mô hình tcp/ip và osi.
sắp tới mình sẽ hỏi về tcp hi vọng khoai và các bạn tham gia giúp mình. cảm ơn rất nhiều ) |
|
|
|
|
[Question] Re: thắc mắc về udp checksum |
26/07/2007 19:36:23 (+0700) | #12 | 74013 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
vikjava wrote:
Tiện thể cho hỏi về sự khác nhau cơ bản về cach thức hoạt động giữa mô hình tcp/ip và osi.
Hai cái mô hình tcp/ip và osi đều chỉ mang tính tham khảo mà thôi. Cá nhân khoai nhận thấy mô hình tcp/ip thực tiễn và đơn giản hơn mô hình của osi. Lý do:
1. Mô hình TCP/IP nhấn mạnh đến network stack. Các lớp session, presentation, application đều nhét chung vào layer cao nhất là application. Việc phân nhỏ applications ra thì cũng hợp lý. Nhưng trong hiện tại, "tầng" applications có thể được chia ra rất nhiều phần, không chỉ session, presentation, và applications. Hơn nữa, ba layer này thường được xử lý chung với nhau, tách ra chỉ làm rối thêm mà thôi.
2. OSI có thêm tầng physical layer. Tầng này rất ít khi được quan tâm, và nếu có, cũng thường gắn rất chặt với data link layer. Do đó, tóm chung vào Data Link layer theo kiểu TCP/IP có vẽ hợp lý hơn
Ngoài 2 điểm trên, khoai không nhận thấy OSI model và TCP/IP suite có gì khác biệt. Có lẽ, một cái là tiêu chuẩn, một cái chỉ là de facto standard.
vikjava wrote:
sắp tới mình sẽ hỏi về tcp hi vọng khoai và các bạn tham gia giúp mình. cảm ơn rất nhiều
TCP thì "nhức đầu" hơn UDP nhiều.
khoai |
|
|
|
|
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|