[Question] Thông điệp Http Này Là Thế Nào |
21/07/2007 14:46:42 (+0700) | #1 | 72776 |
|
Nokia1100
Member
|
0 |
|
|
Joined: 10/05/2007 20:14:08
Messages: 39
Location: Coltech
Offline
|
|
Em dùng Wireshark để bắt gói tin, và theo dõi thì thấy có những thông điệp HTTP rất lạ (nghĩa là ko giống khi duyệt web), ở phần info của Wireshark có ghi là Continuation or non-HTTP traffic, phần trong của thông điệp này chỉ có trường Data với nội dung như sau
Code:
0000 00 01 6c ce 2b 12 00 06 4f 40 68 0e 08 00 45 00 ..l.+...O@h...E.
0010 00 9f a1 2f 40 00 32 06 02 f8 d8 9b c1 93 0a 00 .../@.2.........
0020 00 03 00 50 04 1d 88 23 b8 28 ab 67 12 81 50 18 ...P...#.(.g..P.
0030 ff ff bb 38 00 00 59 4d 53 47 00 0f 00 00 00 63 ...8..YMSG.....c
0040 00 d4 00 00 00 01 8c 54 55 ca 31 c0 80 6d 61 6e .......TU.1..man
0050 62 61 69 62 61 6e 67 c0 80 34 c0 80 69 7a 75 61 baibang..4..izua
0060 6c 68 65 6c 6c c0 80 31 33 c0 80 31 c0 80 33 33 lhell..13..1..33
0070 37 c0 80 4c 4a 4f 45 79 6e 6b 79 66 6b 4b 4c 74 7..LJOEynkyfkKLt
0080 75 65 49 41 6e 66 67 54 49 31 38 70 6a 4f 45 34 ueIAnfgTI18pjOE4
0090 63 5f 78 34 77 57 53 35 6b 4c 47 42 59 4a 49 7a c_x4wWS5kLGBYJIz
00a0 68 4b 6a 42 78 49 72 52 57 76 51 c0 80 hKjBxIrRWvQ..
Em để ý thấy những thông điệp này đc gửi đi khi dùng Yahoo! Messenger sau khi update từ Y!M 8.1.0.412 lên 8.1.0.413. Mặc dù trước đó (phiên bản 8.1.0.412) thì rõ ràng là Y!M dùng Port 5050. Vậy có phải là Y!M đã chuyển từ dùng giao thức YMSG (port 5050) sang dùng giao thức HTTP (port 80) ko nhỉ (giờ tuyệt nhiên ko filter đc cái YMSG nào). Em nghĩ là tất cả các thông điệp HTTP phải có chung khuôn dạng là
Code:
START_LINE <CRLF>
MESSAGE_HEADER <CRLF>
<CRLF>
MESSAGE_BODY <CRLF>
Và có cách nào giải mã được đoạn ký tự loằng ngà loằng ngoằng kia ra dạng Text đc ko ạ |
|
|
|
|
[Question] Re: Thông điệp Http Này Là Thế Nào |
22/07/2007 00:31:55 (+0700) | #2 | 72841 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Đã là non-HTTP thì mắc gì dính dáng với port 80 ở đây?
Nếu chỉ sniff 1 packet và hỏi nó có nghĩa là gì thì.... thánh cũng không trả lời nổi. Ít nhất phải có một chuỗi, một xuất và phải nắm được giao thức đang dùng là cái gì. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: Thông điệp Http Này Là Thế Nào |
22/07/2007 02:59:50 (+0700) | #3 | 72895 |
|
Nokia1100
Member
|
0 |
|
|
Joined: 10/05/2007 20:14:08
Messages: 39
Location: Coltech
Offline
|
|
Vâng, em nhầm, em cứ nghĩ là cứ port 80 thì đc xử lí bởi HTTP server trên server. Hìhì, server có thể quy định cổng 80 là do process nào xử lý cũng đc nhỉ.
Cái gói TCP này source port là 2506 và Destination Port là 80. Có phải phần data kia đã được Y!M client mã hóa ko ạ, và có thể dùng công cụ nào để giải mã nó ra dạng text bình thường ạ |
|
|
|
|
[Question] Re: Thông điệp Http Này Là Thế Nào |
22/07/2007 06:56:38 (+0700) | #4 | 72944 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
Nokia1100 wrote:
Vâng, em nhầm, em cứ nghĩ là cứ port 80 thì đc xử lí bởi HTTP server trên server. Hìhì, server có thể quy định cổng 80 là do process nào xử lý cũng đc nhỉ.
Cái gói TCP này source port là 2506 và Destination Port là 80. Có phải phần data kia đã được Y!M client mã hóa ko ạ, và có thể dùng công cụ nào để giải mã nó ra dạng text bình thường ạ
Theo tôi packet trên ko phải được mã hoá mà chẳng qua đây là "ngôn ngữ" của protocol YM nói chuyện với nhau thôi, để hiểu được ngữ nghĩa của chúng thì bạn phải đọc thật kỹ RFC của các giao thức YM :wink: |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
22/07/2007 17:14:34 (+0700) | #5 | 73056 |
|
Nokia1100
Member
|
0 |
|
|
Joined: 10/05/2007 20:14:08
Messages: 39
Location: Coltech
Offline
|
|
Bọn IETF cũng đưa RFC cho protocol này ạ. Em tưởng nó là do Yahoo tự định nghĩa chứ
À, các bác ơi cho em hỏi là dùng Etheral có thể bắt đc cái gói tin đi trong mạng LAN từ máy tính của nhà hàng xóm đc ko ạ |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 06:51:31 (+0700) | #6 | 73185 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Theo tôi packet trên ko phải được mã hoá mà chẳng qua đây là "ngôn ngữ" của protocol YM nói chuyện với nhau thôi, để hiểu được ngữ nghĩa của chúng thì bạn phải đọc thật kỹ RFC của các giao thức YM
==> mã hexa lù lù thế kia, ngôn ngữ nào ở đây
|
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 07:20:12 (+0700) | #7 | 73189 |
|
enn3exlibs
Elite Member
|
0 |
|
|
Joined: 10/12/2006 16:54:02
Messages: 243
Location: bluesun
Offline
|
|
K4i wrote:
Theo tôi packet trên ko phải được mã hoá mà chẳng qua đây là "ngôn ngữ" của protocol YM nói chuyện với nhau thôi, để hiểu được ngữ nghĩa của chúng thì bạn phải đọc thật kỹ RFC của các giao thức YM
==> mã hexa lù lù thế kia, ngôn ngữ nào ở đây
ý K4i là sao vậy ?
|
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 07:22:35 (+0700) | #8 | 73191 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Ặc, ý gì đâu. nokia1100 đưa ra nội dung của một packet thì cái nội dung đó dĩ nhiên phải ở dưới dạng hexa chứ còn cái gì nữa mà phải bàn |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 07:37:27 (+0700) | #9 | 73197 |
|
enn3exlibs
Elite Member
|
0 |
|
|
Joined: 10/12/2006 16:54:02
Messages: 243
Location: bluesun
Offline
|
|
K4i wrote:
Ặc, ý gì đâu. nokia1100 đưa ra nội dung của một packet thì cái nội dung đó dĩ nhiên phải ở dưới dạng hexa chứ còn cái gì nữa mà phải bàn
thế thì không hiểu phần trích của bồ để làm gì?
data có mã hóa hay không cũng đều biểu diễn ở dạng hexa mà
|
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 11:59:57 (+0700) | #10 | 73261 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
K4i wrote:
Theo tôi packet trên ko phải được mã hoá mà chẳng qua đây là "ngôn ngữ" của protocol YM nói chuyện với nhau thôi, để hiểu được ngữ nghĩa của chúng thì bạn phải đọc thật kỹ RFC của các giao thức YM
==> mã hexa lù lù thế kia, ngôn ngữ nào ở đây
Bạn ko thấy 2 dấu trong ngoặc hay là giả vờ ko thấy vậy ? Ngôn ngữ ở đây chính là protocol (đừng nói với tôi protocol ko phải ngôn ngữ nhá :lol ). Mã hex lù lù thì sao ? Bộ có packet nào ko phải là mã hexa à ? Cho dù là SSL hay VPN hay SSH mã hoá hay có qua cả chục protocol khác thì sniff lên đều ra mã hexa thôi, nếu bạn tìm được cái packet nào sniff lên mà ko phải là mã hexa thì xin up lên đây, tôi xin bái bạn làm sư phụ
Lần sau tìm hiểu kỹ TCP/IP rồi hãy nói nhé |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 13:01:40 (+0700) | #11 | 73276 |
rcrackvn
Elite Member
|
0 |
|
|
Joined: 27/03/2007 02:04:05
Messages: 42
Offline
|
|
vietwow wrote:
Bạn ko thấy 2 dấu trong ngoặc hay là giả vờ ko thấy vậy ? Ngôn ngữ ở đây chính là protocol (đừng nói với tôi protocol ko phải ngôn ngữ nhá :lol ). Mã hex lù lù thì sao ? Bộ có packet nào ko phải là mã hexa à ? Cho dù là SSL hay VPN hay SSH mã hoá hay có qua cả chục protocol khác thì sniff lên đều ra mã hexa thôi, nếu bạn tìm được cái packet nào sniff lên mà ko phải là mã hexa thì xin up lên đây, tôi xin bái bạn làm sư phụ
Lần sau tìm hiểu kỹ TCP/IP rồi hãy nói nhé
bạn tìm hiểu tcp/ip kỹ chưa mà khuyên người ta ?
1. Theo ngữ cảnh của bạn, "ngôn ngữ" là gì ?
2. packet chẳng mắc mớ gì tới hex hay cái gì gì hết. packet PAYLOAD được hiển thị ở dạng hex thì khả dĩ (bởi vì packet không chỉ gồm nội dung, vậy những thứ liên quan tới header có được ethreal hiển thị dạng hex không ?, rõ ràng là không!). Khái niệm packet được define ở OSI Network layer, hex/bin/dec là cách application interpret cái view của mình tùy theo packet content. Ethereal display packet payload ở dạng hex, không có nghĩa là không có ai có quyền code cái packet sniffer hiển thị thông tin sniff được ở dạng bin, octal hay cái gì khác.
|
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 13:36:25 (+0700) | #12 | 73281 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
rcrackvn wrote:
bạn tìm hiểu tcp/ip kỹ chưa mà khuyên người ta ?
1. Theo ngữ cảnh của bạn, "ngôn ngữ" là gì ?
2. packet chẳng mắc mớ gì tới hex hay cái gì gì hết. packet PAYLOAD được hiển thị ở dạng hex thì khả dĩ (bởi vì packet không chỉ gồm nội dung, vậy những thứ liên quan tới header có được ethreal hiển thị dạng hex không ?, rõ ràng là không!). Khái niệm packet được define ở OSI Network layer, hex/bin/dec là cách application interpret cái view của mình tùy theo packet content. Ethereal display packet payload ở dạng hex, không có nghĩa là không có ai có quyền code cái packet sniffer hiển thị thông tin sniff được ở dạng bin, octal hay cái gì khác.
Vâng, dĩ nhiên ít nhất tôi đã tìm hiểu rồi rồi mới nói, bạn có thể đưa ra bất kỳ thắc mắc nào về TCP/IP tôi đều có thể bàn luận với bạn
Thứ nhất, Protocol là gì ? dịch ra TV là giao thức mạng, vậy giao thức mạng là gì ? Chẳng qua là 1 loại ngôn ngữ thôi. Người vn nói chuyện với nhau bằng tiếng Việt, người mỹ nói chuyện với nhau bằng English, còn các thiết bị mạng thì sao ? Chúng cũng cần 1 cách thức để giao tiếp với nhau, đó là protocol, vì thế tôi gọi đó là "ngôn ngữ" (trong ngoặc kép) thì thiết ngĩ ko có gì là sai cả
Toàn bộ packet đi trên đường dây mạng là tính hiệu điện, khi đến NIC nó được chuyển sang binary là số nhị phân (chuỗi số 0 & 1). Vì thế nói 1 cách chính xác toàn bộ nội dung của tất cả packet khi sniff được là binary (cái này ko tìn thì xài tcpdump ắt sẽ thấy liền). Còn hexa ở trên là do các chương tình sniffer & analyer Ethereal hiển thị. Như vậy thì việc hiển thị hexa hay decinmal hay ASCII là do chương trình sniff sử dụng quy định chứ ko phải là do "packet content" như bạn nói
Trên bài viết trên của tôi chả có ý ý nào nói packet "mắc mới" tới hexa cả, mà đa số packet được thị bằng hexa qua sniffer thôi. Trong bài viết của bạn K4i nói là "mã hexa lù lù thế kia, ngôn ngữ nào ở đây", việc mã hexa chẳng liên quan gì đến protocol, cho dù là protocol của 1 ai đó việc ra thì cũng được đóng gói thành binary truyền quan mạng và hiển thị ở dạng hexa thôi
Cái cuối cùng bạn nên chú ý là khi thảo luận về nguyên lý hoạt động người chỉ nói về mô hình TCP/IP, cái đó mới là cái network hoạt động thực sự, còn OSI chỉ là mô hình "chuẩn" đưa ra khi thiết kế mạng thôi |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 13:46:55 (+0700) | #13 | 73285 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
to nghienruou: hì hì, tớ biết là data nằm ở dưới dạng hexa rồi. Tớ quote đoạn trên vì ý của tớ là packet của http, ftp hay giao thức nào khác khi sniff được và hiển thị thì là mã hexa, chứ "ngôn ngữ" gì ở đây mà đọc RFC. Muốn biết giao thức truyền thông như thế nào thì cứ phải chuyển từ hexa ra kí tự rồi hãy nói chuyện ngôn ngữ . Với lại, nokia1100 hỏi cái gì: dịch nội dung trên ra cleartex cơ mà ==> mã hóa mã hiếc gì thì cũng từ hexa lên đã
to vietwow: đúng là tớ chả biết gì về TCP/IP cả, mong bạn chỉ dạy ). |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 13:55:14 (+0700) | #14 | 73287 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
K4i wrote:
to vietwow: đúng là tớ chả biết gì về TCP/IP cả, mong bạn chỉ dạy ).
Ặc. gì mà chỉ dạy ở đây, chúng ta đều là dân lên NET học hỏi, có gì khôg biết thì bàn luận cho rõ thôi, tôi chỉ là hơi bức xúc với giọng điệu của rcrackvn ) |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 14:08:15 (+0700) | #15 | 73290 |
rcrackvn
Elite Member
|
0 |
|
|
Joined: 27/03/2007 02:04:05
Messages: 42
Offline
|
|
1. Tui không rõ bạn nghĩ chữ ngôn ngữ như thế nào nên mới hỏi lại. Tui không make any statement rằng bạn không hiểu chữ ngôn ngữ. Protocol thiếu nhiều đặc tính của 1 ngôn ngữ nếu nói về khía cạnh linguistic, chính xác hơn nó được định nghĩa là tập hợp những "quy ước" về giao tiếp.
2. Ở khái niệm "đường dây mạng" KHÔNG tồn tại khái niệm packet. OSI make clear separation giữa các layer mới nhau, layer này hoàn toàn không biết và không cần thiết phải biết tới những gì định nghĩa ở layer khác. Khái niệm "đường dây mạng" của bạn nằm ở tầng mấy của OSI ? Khái niệm packet nằm ở tầng mấy của OSI ? Nên nói "packet đi trên đường dây mạng là tín hiệu điện" liệu có chính xác ? Nếu bạn đã không phân biệt rõ ở chỗ này, dĩ nhiên bạn sẽ không phân biệt rõ giữa cái gì khái niệm 1 packet và khái niệm 1 "view" của nó, bởi vì 2 khái niệm này nằm ở 2 tầng khác biệt nhau của OSI.
Do vậy, ý tui muốn phản bác với bạn nằm ở câu này trong bài post trên của bạn: "Bộ có packet nào ko phải là mã hexa à". Bởi vì ở đây, bạn cho rằng 1 packet (khái niệm ở Network layer) và cái nội dung in vào mắt mình (Application layer) làm một. Và do đó tui make 1 statement là "Hoàn toàn có thể code 1 sniffer để hiển thị NỘI DUNG của packet dưới dạng khác hex".
Và ý cuối cùng của bạn cũng có cái đáng để nói:
- Có vẻ bạn cho rằng TCP/IP là bộ network protocol duy nhất. Điều này bạn xem lại nhé, tui đưa thêm vài thứ cho bạn tham khảo: APPLETALK, DECNET, thậm chí là NETBEUI, tất cả đều là network protocol suite.
- OSI chứa TCP/IP, TCP/IP là 1 phần của OSI, nói cái này là "hoạt động thực sự", cái kia là "chuẩn" để tham khảo là sai, cả 2 đều là chuẩn.
edited: tui vừa post xong thì hình như bạn edit lại post của mình, nên tui quote tiếp phần này
vietwow wrote:
Còn hexa ở trên là do các chương tình sniffer & analyer Ethereal hiển thị. Như vậy thì việc hiển thị hexa hay decinmal hay ASCII là do chương trình sniff sử dụng quy định chứ ko phải là do "packet content" như bạn nói
- Phần tô đậm là bạn lặp lại ý của mình ở trên, vui lòng xem lại
- Vui lòng xem lại luôn là tui nói ở đâu trong bài post trước là "packet content là hex" ? Người nói ý đó là bạn, khi cho rằng "Bộ có packet nào ko phải là mã hexa à " và tui phản bác lại chính ý đó. |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 14:53:03 (+0700) | #16 | 73297 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
rcrackvn wrote:
1. Tui không rõ bạn nghĩ chữ ngôn ngữ như thế nào nên mới hỏi lại. Tui không make any statement rằng bạn không hiểu chữ ngôn ngữ. Protocol thiếu nhiều đặc tính của 1 ngôn ngữ nếu nói về khía cạnh linguistic, chính xác hơn nó được định nghĩa là tập hợp những "quy ước" về giao tiếp.
2. Ở khái niệm "đường dây mạng" KHÔNG tồn tại khái niệm packet. OSI make clear separation giữa các layer mới nhau, layer này hoàn toàn không biết và không cần thiết phải biết tới những gì định nghĩa ở layer khác. Khái niệm "đường dây mạng" của bạn nằm ở tầng mấy của OSI ? Khái niệm packet nằm ở tầng mấy của OSI ? Nên nói "packet đi trên đường dây mạng là tín hiệu điện" liệu có chính xác ? Nếu bạn đã không phân biệt rõ ở chỗ này, dĩ nhiên bạn sẽ không phân biệt rõ giữa cái gì khái niệm 1 packet và khái niệm 1 "view" của nó, bởi vì 2 khái niệm này nằm ở 2 tầng khác biệt nhau của OSI.
Do vậy, ý tui muốn phản bác với bạn nằm ở câu này trong bài post trên của bạn: "Bộ có packet nào ko phải là mã hexa à". Bởi vì ở đây, bạn cho rằng 1 packet (khái niệm ở Network layer) và cái nội dung in vào mắt mình (Application layer) làm một. Và do đó tui make 1 statement là "Hoàn toàn có thể code 1 sniffer để hiển thị NỘI DUNG của packet dưới dạng khác hex".
Và ý cuối cùng của bạn cũng có cái đáng để nói:
- Có vẻ bạn cho rằng TCP/IP là bộ network protocol duy nhất. Điều này bạn xem lại nhé, tui đưa thêm vài thứ cho bạn tham khảo: APPLETALK, DECNET, thậm chí là NETBEUI, tất cả đều là network protocol suite.
- OSI chứa TCP/IP, TCP/IP là 1 phần của OSI, nói cái này là "hoạt động thực sự", cái kia là "chuẩn" để tham khảo là sai, cả 2 đều là chuẩn.
edited: tui vừa post xong thì hình như bạn edit lại post của mình, nên tui quote tiếp phần này
vietwow wrote:
Còn hexa ở trên là do các chương tình sniffer & analyer Ethereal hiển thị. Như vậy thì việc hiển thị hexa hay decinmal hay ASCII là do chương trình sniff sử dụng quy định chứ ko phải là do "packet content" như bạn nói
- Phần tô đậm là bạn lặp lại ý của mình ở trên, vui lòng xem lại
- Vui lòng xem lại luôn là tui nói ở đâu trong bài post trước là "packet content là hex" ? Người nói ý đó là bạn, khi cho rằng "Bộ có packet nào ko phải là mã hexa à " và tui phản bác lại chính ý đó.
Đọc bài của bạn thì tôi đã đoán là trước kia bạn đã học CCNA hoặc giáo trình mạng cisco nên quá lặm mô hình OSI
Thứ 1 protocol nói là 1 tập hợp những qui định cũng đúng mà gọi là "ngôn ngữ" (nghĩa bóng) cũng chẳng sai. Giống như ngôn ngữ, tiếng anh của chữ "Xin chào" là hello, đây cũng chẳng qua là 1 qui định thôi
Thứ 2 bạn nói "layer này hoàn toàn không biết và không cần thiết phải biết tới những gì định nghĩa ở layer khác" là hoàn toàn sai, cái layer vẫn có 1 số cái phụ thuộc nhau. Cụ thể là dưa vào trường Ethernet type trong Ethernet header thì TCP/IP Stack mới biết header tiếp theo nó phải xử lý là gì (IP hay ARP/RARP ...), tương tự dựa vào trường Protocol trong IP header thì TCP/IP Stack mới biết header tiếp theo nó phải xử lý là gì (là ICMP hay UDP hay TCP), và cuối cùng dựa vào trường port trong TCP/UDP header thì TCP/IP Stack mới biết header tiếp theo nó phải xử lý là gì (là DNS hay HTTP ...). Tất cả chúng đều có 1 mắc xích liên quan đến nhau
thứ 3 khái niệm TCP/IP nằm trong OSI là hoàn toàn sai, 2 cái là 2 mô hình hoàn toàn riêng biệt, nó chỉ giống nhau ở 1 số điểm thôi, cái này đã có rất nhiều người lầm lẫn. Cả 2 đều là chuẩn nhưng OSI là chuẩn được tham khảo khi thiết kế thiết bị, mô hình mạng, còn TCP/IP mới là chuẩn được tham khảo để viết 1 chương trình, để mô tả network hoạt động như thế nào. Cái này nói miệng trên forum thì tôi ko có gì để cho bạn thấy rõ nhưng nếu bạn tham gia các maillist về networking của nước ngoài thì sẽ biết, nếu ko tin bạn có thể hỏi các "cao thủ" khác mà bạn quen và tin tưởng
Thứ 3 , các "đường dây mạng" mà tôi nói nó ko nằm trong OSI hay TCP/IP nào cả, mà chỉ đơn giản là 1 phần tronng đoạn tôi mô tả packet đi thế nào qua mạng
Thứ 4 đúng là ngoài TCP/IP còn rất nhiều giao thức khác nhưng nên nhớ 80% (thậm chỉ là 90%) network trên TG đều xài TCP/IP, các giao thức kia chỉ là hỗ trợ thêm. TCP/IP giống như English, mỗi nước trên TG đa số đều có ngôn ngữ riêng nhưng 90% trong số họ ai cũng biết English để giao tiếp với nhau. Vì thế khi bàn luận hầu như ai cũng đều nói về TCP/IP. |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 16:14:59 (+0700) | #17 | 73299 |
rcrackvn
Elite Member
|
0 |
|
|
Joined: 27/03/2007 02:04:05
Messages: 42
Offline
|
|
2. Bạn nhầm lẫn: 1 protocol có thể trải dài nhiều layer, nhưng 1 layer không thể hiểu những quy định của layer khác. ARP/RARP có thể có những specification nằm ở 2 layer, nhưng nếu nói vậy rồi cho rằng datalink layer hiểu về những thứ defined ở network layer là trật lất. Nói thẳng ra luôn, trong 1 OS, phần IP trong TCP/IP kernel stack làm gì ? một là logical addressing, 2 là packet routing. Trong những thứ đó, datalink hiểu gì ? Chẳng hiểu gì hết.
- Ví dụ của bạn về sự tồn tại của field 'Protocol' trong IP header không chứng minh được là Network layer HIỂU về những thứ xác định ở Transport layer, nó ở đó chỉ với mục đích là để TCP/IP stack biết đường mà forward cái datagram đó lên đúng cái protocol handler tương ứng. Việc interpret và process data không thuộc về chức năng của nó nữa, nên tui nói nó không hiểu về các định nghĩa của lớp trên là không sai.
- Riêng về ví dụ port của bạn, cũng nói luôn với bạn rằng trong chức năng của TCP/IP stack, TCP không biết/không cần biết những app nào sẽ handle cái data này, những gì nó làm khi nhân được data là tách header ra, notify kernel là data available for reading trong cái socket receive buffer của cái socket descriptor nào đang associate với port đó, ngay bản thân việc read cái data từ cái socket buffer cũng chẳng còn thuộc về phần chức năng của TCP nữa, mà thuộc về IO và virtual file subsystem, chứ đừng nói tới việc TCP biết app nào đã request để open cái descriptor đó, và expect data kiểu gì. Bạn đừng gom luôn chức năng nhiều kernel subsytems lại với nhau và cho rằng đó là chức năng riêng của TCP chứ. Bạn sai khi cho rằng TCP/IP stack xử lý cái header "tiếp theo" sau TCP header. Nó chẳng xử lý gì cả vì chẳng biết gì để xử lý.
3. Tui đồng ý ở điểm này, sở dĩ có sự tranh luận ở bài trên vì tui nghĩ bạn đang refer tới 2 layer thuộc OSI model. my bad ! btw, có lẽ bạn không cần phải mở mang cho tui về các mailling list, tui frequent những maillist như vậy từ lâu lắm rồi.
4. Những giao thức vừa kể không phải là hỗ trợ thêm, mà chúng predate OSI, chúng không còn được sử dụng nhiều vì thiếu những đặc điểm của OSI, đặc điểm quan trọng nhất có lẽ là không phân biệt rõ ràng giới hạn chức năng của 1 layer, dẫn đến khó khăn cho 3rd-party vendor khi develop 1 product để interoperate với 1 product trước đó. Nếu bạn vẫn cho rằng OSI không make clear separation giữa các layer, chứng tỏ bạn vẫn chưa nắm được nguyên nhân ra đời của OSI. Bạn nghiên cứu về networking bao lâu để nói như vậy ?
1. Còn riêng về việc bạn muốn biết tui học networking ở đâu thì xin trả lời sơ sơ, tui self-trained, chả có cisco ciskiet nào cả, và cũng self-employed luôn. Cũng nhân tiện xin bạn rút lại những lời cho rằng dân học cisco thì lặm OSI, bởi vì theo tui biết, cisco là biggest vendor về networking hardwares, và nó nếu cisco không hỗ trợ nhiều networking model thì chắc cũng chẳng ai hỗ trợ nhiều cả. Đừng nên claim cái gì mà mình không biết, kẻo dân học cisco chính gốc lại vào gây chuyện đấy. |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 21:40:32 (+0700) | #18 | 73313 |
|
Nokia1100
Member
|
0 |
|
|
Joined: 10/05/2007 20:14:08
Messages: 39
Location: Coltech
Offline
|
|
Ưm,thế bác nào biết thuật toán mã hóa của Y!M ko vậy
Các bác tranh luận lạc hết cả rồi,hìhì. OSI là mô hình tham khảo do ISO đưa ra,TCP/IP có những nét tương đồng với OSI, nhưng TCP/IP đâu phải là một phần của OSI
Các tầng trong mô hình TCP/IP cũng ko cần hiểu ý nghĩa của dữ liệu tầng trên nó,nhiệm vụ của nó là thêm các header rồi gửi xuống cho tầng phía dưới nó
Như các bác nói ở trên đó,tiến trình ở tầng ứng dụng gửi dữ liệu xuống tầng giao vận bằng lệnh gửi thông qua socket,lệnh này bao gồm cả IP và port của máy đích. Tầng giao vận chỉ cần biết đoạn này,còn luồng byte phía sau thì nó ko quan tâm. Nó thêm Header vào rồi lại gửi xuống phía dưới mà. |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
23/07/2007 23:10:56 (+0700) | #19 | 73336 |
|
enn3exlibs
Elite Member
|
0 |
|
|
Joined: 10/12/2006 16:54:02
Messages: 243
Location: bluesun
Offline
|
|
vietwow wrote:
Thứ 2 bạn nói "layer này hoàn toàn không biết và không cần thiết phải biết tới những gì định nghĩa ở layer khác" là hoàn toàn sai, cái layer vẫn có 1 số cái phụ thuộc nhau. Cụ thể là dưa vào trường Ethernet type trong Ethernet header thì TCP/IP Stack mới biết header tiếp theo nó phải xử lý là gì (IP hay ARP/RARP ...), tương tự dựa vào trường Protocol trong IP header thì TCP/IP Stack mới biết header tiếp theo nó phải xử lý là gì (là ICMP hay UDP hay TCP), và cuối cùng dựa vào trường port trong TCP/UDP header thì TCP/IP Stack mới biết header tiếp theo nó phải xử lý là gì (là DNS hay HTTP ...). Tất cả chúng đều có 1 mắc xích liên quan đến nhau
"layer này hoàn toàn không biết và không cần thiết phải biết tới những gì định nghĩa ở layer khác" --> điều này là đúng và đây là mục đích của việc phân tầng trong các mô hình mạng,
theo như 1 ví dụ của bồ: việc xử lý field Protocol vẫn thuộc module tại layer Internet và sẽ không liên quan(phụ thuộc) gì nữa sau khi packet được chuyển lên các layer trên, giống như việc người phát thư không thể nói liên quan đến người nhận thư vì anh ta biết địa chỉ của bức thư để gởi cho người nhận.
|
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
24/07/2007 00:03:52 (+0700) | #20 | 73355 |
rcrackvn
Elite Member
|
0 |
|
|
Joined: 27/03/2007 02:04:05
Messages: 42
Offline
|
|
>> OP: về post đầu tiên của bạn
- bạn try to dissect ymsg message nhưng lại không sử dụng ymsg dissector, ethereal report như vậy vì nó sử dụng http dissector để mổ xẻ ymsg traffic.
- bạn cần tìm kiếm thêm thông tin về ymsg protocol để có thể hiểu được nó
Có lẽ bạn cần check thêm 2 thứ sau đây:
- search ethereal-dev mailinglist tìm xem ymsg dissector là thứ gì
- đọc thêm cái này http://www.venkydude.com/articles/yahoo.htm
chúc bạn vui vẻ. |
|
|
|
|
[Question] Thông điệp Http Này Là Thế Nào |
24/07/2007 06:59:59 (+0700) | #21 | 73466 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
rcrackvn wrote:
2. Bạn nhầm lẫn: 1 protocol có thể trải dài nhiều layer, nhưng 1 layer không thể hiểu những quy định của layer khác. ARP/RARP có thể có những specification nằm ở 2 layer, nhưng nếu nói vậy rồi cho rằng datalink layer hiểu về những thứ defined ở network layer là trật lất. Nói thẳng ra luôn, trong 1 OS, phần IP trong TCP/IP kernel stack làm gì ? một là logical addressing, 2 là packet routing. Trong những thứ đó, datalink hiểu gì ? Chẳng hiểu gì hết.
- Ví dụ của bạn về sự tồn tại của field 'Protocol' trong IP header không chứng minh được là Network layer HIỂU về những thứ xác định ở Transport layer, nó ở đó chỉ với mục đích là để TCP/IP stack biết đường mà forward cái datagram đó lên đúng cái protocol handler tương ứng. Việc interpret và process data không thuộc về chức năng của nó nữa, nên tui nói nó không hiểu về các định nghĩa của lớp trên là không sai.
- Riêng về ví dụ port của bạn, cũng nói luôn với bạn rằng trong chức năng của TCP/IP stack, TCP không biết/không cần biết những app nào sẽ handle cái data này, những gì nó làm khi nhân được data là tách header ra, notify kernel là data available for reading trong cái socket receive buffer của cái socket descriptor nào đang associate với port đó, ngay bản thân việc read cái data từ cái socket buffer cũng chẳng còn thuộc về phần chức năng của TCP nữa, mà thuộc về IO và virtual file subsystem, chứ đừng nói tới việc TCP biết app nào đã request để open cái descriptor đó, và expect data kiểu gì. Bạn đừng gom luôn chức năng nhiều kernel subsytems lại với nhau và cho rằng đó là chức năng riêng của TCP chứ. Bạn sai khi cho rằng TCP/IP stack xử lý cái header "tiếp theo" sau TCP header. Nó chẳng xử lý gì cả vì chẳng biết gì để xử lý.
3. Tui đồng ý ở điểm này, sở dĩ có sự tranh luận ở bài trên vì tui nghĩ bạn đang refer tới 2 layer thuộc OSI model. my bad ! btw, có lẽ bạn không cần phải mở mang cho tui về các mailling list, tui frequent những maillist như vậy từ lâu lắm rồi.
4. Những giao thức vừa kể không phải là hỗ trợ thêm, mà chúng predate OSI, chúng không còn được sử dụng nhiều vì thiếu những đặc điểm của OSI, đặc điểm quan trọng nhất có lẽ là không phân biệt rõ ràng giới hạn chức năng của 1 layer, dẫn đến khó khăn cho 3rd-party vendor khi develop 1 product để interoperate với 1 product trước đó. Nếu bạn vẫn cho rằng OSI không make clear separation giữa các layer, chứng tỏ bạn vẫn chưa nắm được nguyên nhân ra đời của OSI. Bạn nghiên cứu về networking bao lâu để nói như vậy ?
1. Còn riêng về việc bạn muốn biết tui học networking ở đâu thì xin trả lời sơ sơ, tui self-trained, chả có cisco ciskiet nào cả, và cũng self-employed luôn. Cũng nhân tiện xin bạn rút lại những lời cho rằng dân học cisco thì lặm OSI, bởi vì theo tui biết, cisco là biggest vendor về networking hardwares, và nó nếu cisco không hỗ trợ nhiều networking model thì chắc cũng chẳng ai hỗ trợ nhiều cả. Đừng nên claim cái gì mà mình không biết, kẻo dân học cisco chính gốc lại vào gây chuyện đấy.
Hi
Thứ 1, việc 1 layer không thể hiểu những quy định của layer khác, tôi ko cãi điều này nhưng bạn bảo "layer này hoàn toàn không biết và không cần thiết phải biết tới những gì định nghĩa ở layer khác". tức bạn khẳng định cho dù ko có gì ở lớp dưới thì lớp trên vẫn có thể xử lý, việc này hoàn toàn sai, như tôi đã nói tôi khẳng định 100% như đã nói ở trên là nếu TCP/IP ko dựa vào trường Protocol, ehternet type hay port thì nó ko tài nào xử lý được gói tin nữa. Ko tin chứ gì ? Bạn hãy sử dụng hping để tạo ra 1 gói tcp nhưng với trường protocol ID là khác 7 thì bạn sẽ biết gói tin bạn có được xử lý hay ko biết lý, điều này tôi đã thử trên thực tế rất rất nhiều lần bằng cách custom từng trường một trong các header rồi. Ở đây đang xét đến việc TCP/IP Stack xử lý 1 packet như thế nào nên 1 packet sẽ được xử lý từ dưới lên (Data link -> Network -> Transport), còn quá trình ngược lại là quá trình encapsulation ko kể ở đây, do đó chuyện tầng data link ko cần biết 1 chút gì về IP là đúng rồi, nhưng nên nhớ Khi xử lý 1 gói tin, TCP/IP Stack sẽ xử lý từ Ethernet header rồi mới đến ARP header/IP Header rồi mới đến TCP/UDP header... chứ chẳng có thiết bị nào xử lý IP header (nằm ở network) đến ARP header (nằm ở Data link), do đó ví dụ bạn đưa ra (Data link ko cần hiểu IP) tuy đúng nhưng vô nghĩa
Bạn bảo TCP/IP Stack chẳng xử lý gì cả vì chẳng biết gì để xử lý ? Nope, HTTP Protocol là gì ? Nó là giao thức nằm trong bộ TCP/IP ở tầng App, nó chính cái cái biêt cách xử lý như thế nào với 1 gói tin có Dst port là 80
Điều thứ 4, về chuyện mô hình OSI và TCP/IP thì đã có quá nhiều người tranh cãi, tôi với bạn tranh cãi lại cũng chẳng được gì, thiết nghĩ bạn nên search người tài liệu nổi tiếng trên mạng, hoặc lên http://www.sans.org, đọc sách Networking kinh điễn của Rchard Stven hay cuốn Phân tích mạng nổi tiếng khắp giới security của Stenven Nortcutt để xem khi họ dạy phân tích network, security ... hay bất cứ thứ gì, họ đề cập OSI hay TCP/IP là biết liền
Điều bạn nói tôi đã dự đoán trước, đã tranh luận thì dĩ nhiên là biết những gì mình đang nói, tôi bản thân là 1 người học network , sau đó cũng đã học Cisco để phục vụ thêm cho công việc nên tôi hiểu rõ nhiều người rất thích đem mô hình OSI ra, tôi ko nói tất cả chuyên gia cisco là "lặm OSI", đó là tại bạn suy diên ra thôi, cái tôi muốn nói là những người mới họ networking theo giáo trình Cisco thì hay "lặm OSI", lúc nào cũng đem OSI ra phân tích, tôi đã tiếp xúc với những người có bằng CCIE, và tôi biết họ được trang bị kiến thức networking thế nào, nếu bạn ko vừa lòng hay biết 1 chuyên gia cisco nào đó bức xúc thì cứ mời lên đây đàm đạo tiếp :lol |
|
|
|
|
[Question] Re: Thông điệp Http Này Là Thế Nào |
24/07/2007 12:28:40 (+0700) | #22 | 73520 |
rcrackvn
Elite Member
|
0 |
|
|
Joined: 27/03/2007 02:04:05
Messages: 42
Offline
|
|
chào bạn,
1. nói tiếp về số 1 ở trên. Tui vẫn cho câu phát biểu của mình không sai. Có thể rephrase lại nó như thế này: "1 layer không biết những thứ được xác định ở layer khác và function ở layer khác". Như tui đã nói ở trên, việc IP header có 1 field là Protocol chỉ giúp cho nó biết chính xác cái PROTOCOL HANDLER để tiếp tục forward những gì còn lại, sau khi nó đã làm xong nhiệm vụ là decapsulate cái ip header. Đó là ý của tui, còn tui nghĩ nếu bạn interpret ý của tui như bài vừa post thì bạn cần đọc lại bài trên của tui.
Mà nói thiệt, không cần refer tui tới 1 tool như hping, nếu muốn tui có khả năng viết 1 tool để craft 1 raw packet như hping. Còn việc protocol ID nào được kernel process, cũng nói với bạn luôn, khỏi test mất công: hầu hết kernel chỉ auto process normal packet có Protocol field value là 1 (ICMP), 2 (IGMP), 6 (TCP), và 17 (UDP) và drop mọi packet khác, trừ phi bạn obtain thẳng raw data từ datalink layer rồi tự process nó, xây dựng custom procol handler để process mấy cái datagram có Protocol field value khác. Đây là điều mà mấy route processor trong mỗi router làm để process routing packets.
Tui quote lại câu mà bạn cho là bạn hiểu đúng ý tui:
như tôi đã nói tôi khẳng định 100% như đã nói ở trên là nếu TCP/IP ko dựa vào trường Protocol, ehternet type hay port thì nó ko tài nào xử lý được gói tin nữa
Tui không hề tuyên bố như thế trong bất cứ post nào của tui trong thread này, bạn có thể dẫn chứng ra nếu tìm thấy. Tui nói là 1 layer chỉ làm đúng chức năng của nó, không cần biết chức năng của layer khác là như thế nào. Network layer sử dụng Protocol field để tiếp tục forward cái decapsulated payload sang cho đúng cái protocol handler, không có nghĩa là nó CÓ KHẢ NĂNG hiểu và làm được những gì cái protocol handler đó sẽ làm.
Bạn có lẽ nhầm lẫn ở chỗ này, việc bạn biết được số điện thoại của nhà mình không làm cho bạn biết được phương thức đánh số của nhà cung cấp (xin lỗi, poor example).
2. "Bạn bảo TCP/IP Stack chẳng xử lý gì cả vì chẳng biết gì để xử lý ? Nope, HTTP Protocol là gì ? Nó là giao thức nằm trong bộ TCP/IP ở tầng App, nó chính cái cái biêt cách xử lý như thế nào với 1 gói tin có Dst port là 80"
Câu này thì tui để mọi người đánh giá. Bạn đi từ sai lầm này đến sai lầm khác. HTTP có thể sử dụng TCP như là underlying transport protocol, nhưng chẳng có ai cấm việc bạn thay thế TCP/IP bằng IPX/SPX để carry HTTP traffic, HTTP KHÔNG THỂ nhìn thấy cái gì thực sự carry traffic của nó ở lớp dưới. Need proofs ? google thử xem có tồn tại IPX web server không thì biết.
Một điều nữa là việc "xử lý gói tin có DST port 80" không thuộc thẩm quyền của HTTP. HTTP quy ước là quy ước các quy tắc xử lý "nội dung" của gói tin, không phải xử lý TCP info liên quan tới cái gói tin đó. Nói thẳng ra: HTTP biết gì về SYN, ACK, FIN flag, port của gói tin ? Nó có cơ hội nhìn thấy đâu mà xử lý ? Xử lý ở đây là xử lý data nhận được từ kernel IO subsystem hoàn thành tác vụ của nó và notify kernel để copy data từ kernel-space lên user-space.
Bạn đọc hết cái HTTP rfc xem nó có chữ nào là chữ port không ?
http://www.w3.org/Protocols/rfc2616/rfc2616.html
Không tin nữa thì bạn kiếm quách 1 web server code mà nhìn cái core function của nó xem chỗ nào nó hiểu và xử lý Transport layer info. Thứ duy nhất có số 80 chắc chỉ là lúc nó declare server socket. Còn việc thực sự xử lý các network IO liên quan tới socket này không còn thuộc chức năng của web server nữa.
4. Tui cũng đã xác nhận là tui misread bạn vì bạn refer tới TCP/IP MODEL, tui lại hiểu là bạn refer tới TCP/IP layer thuộc về OSI MODEL. Hy vọng bạn cũng do some favor và đọc lại ý của tui. Việc bạn refer tui tới những tài liệu, website "nổi tiếng" thì tui cám ơn bạn, mặc dù thực sự không helpful lắm với tui vì tui đã đọc 3 cái đó từ đời tám hoánh nào rồi.
Liên quan tới Cisco, do bạn đề cập nó trước, và make 1 assumption là tui đã từng học CCNA nên lậm OSI. Sorry bạn, nhưng cá nhân tui, dù dốt, nhưng cũng đã có cơ hội thảo luận với không ít người tài giỏi khác, nhưng tui không quan tâm tới cái background của họ, tui cũng không bao giờ hỏi, hoặc giả định rằng kiến thức của họ từ cái nguồn nào ra. Việc bạn đã tiếp xúc với bao nhiêu người có CCIE tui cũng chẳng quan tâm, tui quan tâm duy nhất tới cái khía cạnh bạn đưa ra ở topic này, còn bạn học ở đâu để đưa ra thì tui mackeno. Mà nói thiệt với bạn nhé, tui chẳng cần phải nhờ tới 1 "chuyên gia" Cisco để thảo luận với bạn, nếu bạn cứ tiếp tục diễn đạt mức hiểu của bạn về networking như vậy.
Về thái độ thảo luận, hy vọng bạn có thể làm được điều này
- Nếu cho rằng tui đã nói cái gì, vui lòng quote chính xác lại, và diễn dịch lời nói của tui theo cách hiểu của bạn. Điều này giúp tui biết được tui và bạn không đồng ý ở điểm nào trong lời nói của tui, tui sẽ sửa nếu quan điểm của bạn đúng.
- Không nên cho rằng người nào tham gia thảo luận đều là "thắc mắc chỗ nào chứ nói".
- Không nên assume bất cứ điều gì về technical background của người ta.
- Không nên bảo người ta phải nhờ tới "chuyên gia" để tiếp tục thảo luận với mình, bạn hơi tự cao đấy.
Cuối cùng là tui refer bạn đọc về OS concept, về kernel subsystems, để xem bao nhiêu thứ được dùng trong khi implement OSI 7 layers, để biết tới lớp nào thì kernel perform context switch từ userspace sang kernelspace khi handle data to/from network. Bạn học OSI mà không hiểu lớp nào đang được phần nào của kernel handle thì cũng như học vẹt, chả tác dụng gì đâu.
Tui bắt đầu cảm thấy đủ với việc tiếp tục thảo luận trong topic này. |
|
|
|
|
[Question] Re: Thông điệp Http Này Là Thế Nào |
24/07/2007 18:15:32 (+0700) | #23 | 73546 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
rcrackvn wrote:
....HTTP có thể sử dụng TCP như là underlying transport protocol, nhưng chẳng có ai cấm việc bạn thay thế TCP/IP bằng IPX/SPX để carry HTTP traffic, HTTP KHÔNG THỂ nhìn thấy cái gì thực sự carry traffic của nó ở lớp dưới. Need proofs ? google thử xem có tồn tại IPX web server không thì biết.
Một điều nữa là việc "xử lý gói tin có DST port 80" không thuộc thẩm quyền của HTTP. HTTP quy ước là quy ước các quy tắc xử lý "nội dung" của gói tin, không phải xử lý TCP info liên quan tới cái gói tin đó. Nói thẳng ra: HTTP biết gì về SYN, ACK, FIN flag, port của gói tin ? Nó có cơ hội nhìn thấy đâu mà xử lý ? Xử lý ở đây là xử lý data nhận được từ kernel IO subsystem hoàn thành tác vụ của nó và notify kernel để copy data từ kernel-space lên user-space.
Đoạn này hoàn toàn chính xác. Các giao thức ở tầng ứng dụng (application layer) không cần biết và không cần care những gì bên dưới. Web service là một ví dụ điển hình.
Thử sniff một http session (bằng Ethereal chẳng hạn), tìm dòng nào có tên là HTTP (Hypertext Transfer Protocol) và xem thì sẽ thấy rõ. |
|
|
|
|
[Question] Re: Thông điệp Http Này Là Thế Nào |
25/07/2007 02:45:20 (+0700) | #24 | 73648 |
vietwow
Member
|
0 |
|
|
Joined: 28/06/2006 13:15:47
Messages: 90
Offline
|
|
rcrackvn wrote:
chào bạn,
1. nói tiếp về số 1 ở trên. Tui vẫn cho câu phát biểu của mình không sai. Có thể rephrase lại nó như thế này: "1 layer không biết những thứ được xác định ở layer khác và function ở layer khác". Như tui đã nói ở trên, việc IP header có 1 field là Protocol chỉ giúp cho nó biết chính xác cái PROTOCOL HANDLER để tiếp tục forward những gì còn lại, sau khi nó đã làm xong nhiệm vụ là decapsulate cái ip header. Đó là ý của tui, còn tui nghĩ nếu bạn interpret ý của tui như bài vừa post thì bạn cần đọc lại bài trên của tui.
Mà nói thiệt, không cần refer tui tới 1 tool như hping, nếu muốn tui có khả năng viết 1 tool để craft 1 raw packet như hping. Còn việc protocol ID nào được kernel process, cũng nói với bạn luôn, khỏi test mất công: hầu hết kernel chỉ auto process normal packet có Protocol field value là 1 (ICMP), 2 (IGMP), 6 (TCP), và 17 (UDP) và drop mọi packet khác, trừ phi bạn obtain thẳng raw data từ datalink layer rồi tự process nó, xây dựng custom procol handler để process mấy cái datagram có Protocol field value khác. Đây là điều mà mấy route processor trong mỗi router làm để process routing packets.
Tui quote lại câu mà bạn cho là bạn hiểu đúng ý tui:
như tôi đã nói tôi khẳng định 100% như đã nói ở trên là nếu TCP/IP ko dựa vào trường Protocol, ehternet type hay port thì nó ko tài nào xử lý được gói tin nữa
Tui không hề tuyên bố như thế trong bất cứ post nào của tui trong thread này, bạn có thể dẫn chứng ra nếu tìm thấy. Tui nói là 1 layer chỉ làm đúng chức năng của nó, không cần biết chức năng của layer khác là như thế nào. Network layer sử dụng Protocol field để tiếp tục forward cái decapsulated payload sang cho đúng cái protocol handler, không có nghĩa là nó CÓ KHẢ NĂNG hiểu và làm được những gì cái protocol handler đó sẽ làm.
Bạn có lẽ nhầm lẫn ở chỗ này, việc bạn biết được số điện thoại của nhà mình không làm cho bạn biết được phương thức đánh số của nhà cung cấp (xin lỗi, poor example).
2. "Bạn bảo TCP/IP Stack chẳng xử lý gì cả vì chẳng biết gì để xử lý ? Nope, HTTP Protocol là gì ? Nó là giao thức nằm trong bộ TCP/IP ở tầng App, nó chính cái cái biêt cách xử lý như thế nào với 1 gói tin có Dst port là 80"
Câu này thì tui để mọi người đánh giá. Bạn đi từ sai lầm này đến sai lầm khác. HTTP có thể sử dụng TCP như là underlying transport protocol, nhưng chẳng có ai cấm việc bạn thay thế TCP/IP bằng IPX/SPX để carry HTTP traffic, HTTP KHÔNG THỂ nhìn thấy cái gì thực sự carry traffic của nó ở lớp dưới. Need proofs ? google thử xem có tồn tại IPX web server không thì biết.
Một điều nữa là việc "xử lý gói tin có DST port 80" không thuộc thẩm quyền của HTTP. HTTP quy ước là quy ước các quy tắc xử lý "nội dung" của gói tin, không phải xử lý TCP info liên quan tới cái gói tin đó. Nói thẳng ra: HTTP biết gì về SYN, ACK, FIN flag, port của gói tin ? Nó có cơ hội nhìn thấy đâu mà xử lý ? Xử lý ở đây là xử lý data nhận được từ kernel IO subsystem hoàn thành tác vụ của nó và notify kernel để copy data từ kernel-space lên user-space.
Bạn đọc hết cái HTTP rfc xem nó có chữ nào là chữ port không ?
http://www.w3.org/Protocols/rfc2616/rfc2616.html
Không tin nữa thì bạn kiếm quách 1 web server code mà nhìn cái core function của nó xem chỗ nào nó hiểu và xử lý Transport layer info. Thứ duy nhất có số 80 chắc chỉ là lúc nó declare server socket. Còn việc thực sự xử lý các network IO liên quan tới socket này không còn thuộc chức năng của web server nữa.
4. Tui cũng đã xác nhận là tui misread bạn vì bạn refer tới TCP/IP MODEL, tui lại hiểu là bạn refer tới TCP/IP layer thuộc về OSI MODEL. Hy vọng bạn cũng do some favor và đọc lại ý của tui. Việc bạn refer tui tới những tài liệu, website "nổi tiếng" thì tui cám ơn bạn, mặc dù thực sự không helpful lắm với tui vì tui đã đọc 3 cái đó từ đời tám hoánh nào rồi.
Liên quan tới Cisco, do bạn đề cập nó trước, và make 1 assumption là tui đã từng học CCNA nên lậm OSI. Sorry bạn, nhưng cá nhân tui, dù dốt, nhưng cũng đã có cơ hội thảo luận với không ít người tài giỏi khác, nhưng tui không quan tâm tới cái background của họ, tui cũng không bao giờ hỏi, hoặc giả định rằng kiến thức của họ từ cái nguồn nào ra. Việc bạn đã tiếp xúc với bao nhiêu người có CCIE tui cũng chẳng quan tâm, tui quan tâm duy nhất tới cái khía cạnh bạn đưa ra ở topic này, còn bạn học ở đâu để đưa ra thì tui mackeno. Mà nói thiệt với bạn nhé, tui chẳng cần phải nhờ tới 1 "chuyên gia" Cisco để thảo luận với bạn, nếu bạn cứ tiếp tục diễn đạt mức hiểu của bạn về networking như vậy.
Về thái độ thảo luận, hy vọng bạn có thể làm được điều này
- Nếu cho rằng tui đã nói cái gì, vui lòng quote chính xác lại, và diễn dịch lời nói của tui theo cách hiểu của bạn. Điều này giúp tui biết được tui và bạn không đồng ý ở điểm nào trong lời nói của tui, tui sẽ sửa nếu quan điểm của bạn đúng.
- Không nên cho rằng người nào tham gia thảo luận đều là "thắc mắc chỗ nào chứ nói".
- Không nên assume bất cứ điều gì về technical background của người ta.
- Không nên bảo người ta phải nhờ tới "chuyên gia" để tiếp tục thảo luận với mình, bạn hơi tự cao đấy.
Cuối cùng là tui refer bạn đọc về OS concept, về kernel subsystems, để xem bao nhiêu thứ được dùng trong khi implement OSI 7 layers, để biết tới lớp nào thì kernel perform context switch từ userspace sang kernelspace khi handle data to/from network. Bạn học OSI mà không hiểu lớp nào đang được phần nào của kernel handle thì cũng như học vẹt, chả tác dụng gì đâu.
Tui bắt đầu cảm thấy đủ với việc tiếp tục thảo luận trong topic này.
Thứ nhất như bạn nói "hầu hết kernel chỉ auto process normal packet có Protocol field value là 1 (ICMP), 2 (IGMP), 6 (TCP), và 17 (UDP) và drop mọi packet khác". Cái này tôi ko ý kiến vì nó tùy vào kernel.
Thứ 2 về việc HTTP Protocol , tôi chẳng hề nói HTTP chỉ hoạt động với TCP mà ko với IPX hay các giao thức khác được, đó là do bạn tự nghĩ & "lái" câu chuyển sang hướng khác thôi. Sỡ dĩ tôi đưa ra những trường Protocol ID, port, Ethertype là cho bạn cũng ngư mọi người biết ít nhất là cũng tồn tại 1 sự liên kết giữa các tầng protocol từ dưới lên chứ ko như bạn nói là "layer này hoàn toàn không biết và không cần thiết phải biết tới những gì định nghĩa ở layer khác", nó chỉ hoàn toàn ko cần biết gì khi 1 packet được ứng dụng sinh và và encapsulation đi xuống data link thôi, do đó việc trong RFC search ko ra từ port là hợp lý thôi
Việc tôi đưa ra tài liệu và 1 số link là để minh họa những gì tôi nói là có thể chứ ko phải chỉ là "nói", còn đối với bạn hữu ích hay ko thì tôi cũng ko cần quan tâm
Đối với tôi bằng cấp chả là gì vì bản thân tôi tự học networking, khóa CCNA chỉ giúp tôi biết những câu lệnh Cisco trong quá trình làm việc thôi, việc tôi nói về CCIE ko phải là để kêu bạn "nhờ tới 1 "chuyên gia Cisco" để thảo luận với " mà do bạn nói "kẻo dân học cisco chính gốc lại vào gây chuyện đấy. " nên tôi chỉ khẳng định bạn có kêu "dân cisco chính gốc" vào thì cũng chả sao cả, vì cho dù là CCIE hay gì gì nữa thì cũng đi từ những protocol căn bản IP, TCP, UDP lên mà thôi. Bạn phát biểu, giờ bạn lại kêu tôi là người tự cao, pó tay :lol
Bạn có khả năng viết 1 ứng dụng craft gói tin hay biết toàn bộ về kernel hay ko tôi cũng ko cần quan tâm, cái tôi biết là những điều tôi nói ko phải là bịa ra và ít nhất tôi handle được nó. Có nhiều cái ko phải cá gì cũng biết sâu là được, trên bạn tôi biết khối người tham gia development kernel .. nhưng ko có nghĩa là họ handle được toàn bộ kiến thức của họ
Mà tôi nghĩ topnic này đã đi quá xa rồi, nếu bạn còn gì bức xúc thì cứ liên hệ tôi qua chat hay email để tiếp tục bàn luận, tránh biến topic này trở thành nơi cãi nhau
Thân |
|
|
|
|
|