Trong gói tin tcp (tcp segment), nếu giá trị “sequence number” là 100, điều đó có nghĩa là gì?

phutran :: Forum Mạng Máy Tính

  SV_itc Wed May 26, 2010 10:49 am

Chào các bạn.
Tầng transport trong TCP/IP có hai giao thức là UDP và TCP. TCP là giao thức truyền tin cậy do có cơ chế three-way handshake. Trong gói tin TCP có hai trường ACK và seq number. Các bạn có thể giải thích mục đích của hai trường này?


SV_itc
Tổng số bài gửi : 7
Join date : 26/05/2010

  buiminhhoang Mon May 31, 2010 10:34 am

MỤC ĐÍCH CỦA TRƯỜNG SEQUENCE NUMBER TRONG QUÁ TRÌNH BẮT TAY 3 BƯỚC: nhằm làm cho attacker không thể sử dụng lại các dữ liệu đã chặn được, với ý đồ bất hợp pháp. Dùng Sequence numbers còn giúp bảo vệ chống việc chặn và đánh cắp dữ liệu, sau đó dùng những thông tin lấy được để truy cập hợp pháp vào một ngày nào đó.


MỤC ĐÍCH CỦA TRƯỜNG ACK TRONG QUÁ TRÌNH BẮT TAY 3 BƯỚCpacket này được gởi với mục đích duy nhất báo cho máy chủ biết rằng client đã nhận được SYN/ACK packet và lúc này connection đã được thiết lập và dữ liệu sẽ bắt đầu lưu thông tự do giữa connection


buiminhhoang
Tổng số bài gửi : 8
Join date : 29/05/2010

  trankimhuy_cva Tue Jun 01, 2010 7:35 pm

Một trong những mục đích của việc sử dụng không gian địa chỉ dạng thanh kẹo là việc cho phép dùng các số thứ tự đã được sử dụng, trong đó, -k<0

xin thay chỉ dạy thêm


trankimhuy_cva
Tổng số bài gửi : 7
Join date : 29/05/2010

  Sponsored content

 Similar topics

phutran :: Forum Mạng Máy Tính

Permissions in this forum:

Bạn không có quyền trả lời bài viết

hình 4.2 : q trình đóng gói UDP Hoạt động :Đây là một giao thức hoạt động theo phương thức không liên kết . Tức là khi một ứng dụng trên host nguồn muốn gửi dữ liệu đến host đích mà sử dụng giao thứcUDP thì nó chỉ việc gửi dữ liệu đi mà khơng cần biết dữ liệu đó có tới được host đích hay khơng .UDP chỉ được sử dụng với các ứng dụng không yêu cầu độ tin cậy cao hoặc đòi hỏi tính thời gian thực như : TFTP , BOOTP , Multimedia intenet vedeo , VoIP ….

1.4 Gói TCP:

Sequence number : đơn vị tính là octect , nó cho biết vị trí của byte đầu tiên trong trường data trong luồng dữ liệu truyền đi . Trường này có giá trị từ 0 đến1 232−. Khi mới bắt đầu kết nối sequence number chứa đựng giá trị đầu tiên của nó , giá trịnày do host nguồn chọn và thường khơng có giá trị cố định . Khi gói dữ liệu đầu tiên được gửi đi nó có giá trị bằng giá trị đầu cộng thêm 1 .Tổng quát trường sequence number có thể được tính như sau :Trang 351 1− −n nnAcknowledgement number : trường này cho biết gói tin mà nơi gửi muốn thơng báo cho nơi nhận biết là nó đang đợi phía nhận gửi cho nó gói tin có số sequencenumber có giá trị bằng với giá trị của Acknowledgement number, khi nhận được thông báo này nơi nhận xác định được rằng các gới tin mà nó gửi đến đầu kia trướcđó đã đến đích an tồn . Hlen : cho biết độ dài của phần TCP header, nhờ vào trường này mà đầu thu biếtđược trường Option có được xử dụng hay không . Reserved : trường này hiện chưa được sử dụng .Flag bit : trường này có 6 bít cờ , mỗi bít được sử dụng vào các mục đích khác nhau , nó gồm các bít sau :URG : cho biết trường Urgent pointer có hiệu lực hay khơng ACK : cho biết ACK number có được sử dụng hay khôngPHS : 1 _ đưa thẳng lên lớp trên không cần kiểm tra .0 _ kiểm tra trước khi đưa lên lớp trên . RST : yêu cầu thiết lập lại kết nối .SYN : thiết lập lại số trình tự . FIN : kết thúc truyền tải .Window : cho biết độ lớn của của host nguồn Checksum : dùng để kiểm tra lỗi của của gói TCP , việc kiểm tra lỗi do đầu nhậnthực hiện . Việc tính tốn do phía gở đảm nhận . TCP sử dụng mã CRC để kiểm tra lỗi .Khi tính tốn trường Header checksum người ta thêm vào gói UDP một phần đầu giả, nội dung của phần đầu giả này giống như nội dung của phần đầu giả của UDP :Urgent pointer : đây là trường con trỏ khần cấp, nó có các chức năng như :Trang 36liệu thường trong TCP phần dữ liệu khẩn cấp được đặt trước . Option: trường này là túy chọn , nó có cấu trúc giống như trường Option cùa IP :Type : cho biết loại thông điệp option Length : cho biết độ dài của trường optionOptiondata : chứa nội dung của trường optionCác loại thông điệp option : Type numberlength means- Kết thúc của option list1 -Không sử dụng 24 Cho biết kích thước tối đa của 1 phân đoạn3 3Thông báo về sự thay đổi của cửa sổ 42 Shack permit5 Xshack 810 Timestamp2. Bảo Mật Với Lọc Gói: 2.1. Khái Quát Về Lọc Gói:

Bài viết này sẽ đi sâu vào Sequence Number và Acknowledgement Number. Sự tồn tại của chúng có liên quan đến 1 thực tế rằng Internet và hầu hết các mạng nói chung đều là mạng chuyển mạch gói và bởi vì chúng ta gần như luôn nhận và gửi dữ liệu có kích thước lớn hơn so với MTU [đơn vị truyền dẫn tối đa] là 1500 trên hầu hết các mạng ngày nay.

Bạn đang xem: Sequence Number Là Gì

Chúng ta sẽ giải thích những con số này tăng bằng cách nào và chúng có ý nghĩa gì, làm thế nào để các hệ điều hành khác nhau có thể xử lý chúng bằng những cách khác nhau và cuối cùng, vì sao những con số này có thể trở thành mối nguy hiểm an ninh cho những người yêu cầu 1 mạng lưới vững mạnh và an toàn.Các trường Sequence Number và Acknowledgement Number là 2 trong số những đặc điểm giúp chúng ta phân loại được TCP là 1 giao thức hướng kết nối. Như vậy, khi dữ liệu được gửi thông qua 1 kết nối TCP, các trường đó sẽ giúp các máy chủ từ xa theo dõi kết nối và đảm bảo rằng không gói tin nào bị mất trên đường đến đích.TCP sử dụng thông báo nhận [ACK], khoảng thời gian time out, và việc truyền lại để đảm bảo không có gói tin bị lỗi, dữ liệu của người dùng đến đúng theo thứ tự. Khi hết thời gian time out mà không nhận được ACK thì dữ liệu sẽ được gửi lại bắt đầu từ byte ngay phía sau byte đã nhận được ACK.Một điểm đáng chú ý nữa là trên thực tế Sequence Number được tạo ra theo những cách khác nhau trên mỗi 1 hệ điều hành. Sử dụng các thuật toán đặc biệt, 1 hệ điều hành sẽ tạo ra những con số này, là những số được sử dụng để đánh dấu các gói tin được gửi hoặc nhận được. Và từ 2 trường Seq và Ack là 32 bit, chúng ta có tổng cộng 2^32 = 4.294.967.296 số khác nhau có thể được sinh ra.Khi 2 máy cần truyền dữ liệu bằng cách sử dụng giao thức vận chuyển TCP thì 1 kết nối mới được thiết lập. Điều này liên quan đến máy đầu tiên yêu cầu kết nối, nó sẽ sinh ra 1 số gọi là Initial Sequence Number [ISN], nó cơ bản là Sequence Number đầu tiên trong trường Sequence mà chúng ta đang bàn luận đến. ISN luôn là vấn đề trong bảo mật TCP, và có vẻ như các hacker ưa thích sử dụng nó để tấn công các kết nối TCP [TCP hijacking].Việc chiếm quyền điều khiển kết nối TCP là rất đơn giản đối với những hacker có kinh nghiệm. Vấn đề nằm ở cách ISN được sinh ra.Mỗi hệ điều hành sử dụng thuật toán riêng của mình để tạo ra ISN cho các kết nối mới. Vậy các hacker cần tìm ra hay nói đúng hơn là phải biết được hệ điều hành nào sử dụng thuật toán nào để tạo ra ISN và dự đoán số thứ tự tiếp theo của ISN, rồi đặt nó vào 1 gói tin và gửi đi. Nếu tấn công thành công, bên nhận sẽ nghĩ rằng gói tin kia là hợp lệ từ máy kết nối lúc ban đầu.

Đồng thời, kẻ tấn công sẽ thực hiện 1 cuộc tấn công flood attack đến máy bắt đầu kết nối TCP, giữ cho nó luôn bận rộn và nó sẽ không gửi 1 gói tin nào nữa đến máy mà nó đã cố gắng kết nối trước đó.

Như đã mô tả, các hacker phải tìm ra thuật toán ISN bằng cách lấy mẫu các số ISN trong tất cả các kết nối mới mà máy A sử dụng để kết nối đến Server. Một khi việc đó hoàn thành, hacker biết được thuật toán và họ sẵn sàng bắt đầu cuộc tấn công.

Thời gian rất quan trọng đối với hacker. Hacker gửi gói tin giả mạo đầu tiên đến Internet Banking Server trong khi cùng lúc bắt đầu làm ngập lụt Host A để tiêu thụ băng thông và tài nguyên của Host A. Bằng cách đấy, Host A không có khả năng xử lý dữ liệu mà nó nhận được và sẽ không gửi bất kỳ một gói tin nào cho Internet Banking Server.Các gói tin giả mạo gửi đến Internet Banking Server sẽ chứa Header hợp lệ, điều đó có nghĩa là nó như được gửi đến từ địa chỉ IP của Host A và gửi đến chính xác cổng mà Internet Banking Server đang lắng nghe.Đã có nhiều tài liệu được công bố về các thuật toán mà các hệ điều hành sử dụng để tạo ra ISN và đừng ngạc nhiên là thuật toán mà Windows đang sử dụng là thuật toán dễ đoán nhất.

Ví dụ dưới đây sẽ giúp bạn hiểu được làm thế nào 2 trường Sequence và ACK được sử dụng để theo dõi các gói tin của 1 kết nối.

Xem thêm: Tiểu Cường Châu Tinh Trì – Tặng Ad # Tiểu Cường Là Gì

Trước khi tiếp tục, chúng ta nên hiểu về cờ ACK và cờ SYN. Không nên nhầm lẫn với Sequence Number và Acknowledgement Number, chúng là các trường khác nhau trong TCP Header. Hình sau sẽ giúp các bạn hiểu điều đó:

Bạn có thể thấy 2 trường Sequence Number và Acknowledgement Number, tiếp theo đó là các cờ TCP. Các cờ TCP sẽ được đi sâu hơn trong bài viết khác, nhưng vì chúng ta làm việc với chúng để kiểm tra cách thức làm việc của Seq Number và Ack Number nên sẽ cần lưu ý đến các cờ TCP.
Hình tiếp theo sẽ cho chúng ta thấy quá trình thiết lập 1 kết nối đến Web Server – ở hình là Gateway Server. Ba gói tin đầu tiên là 1 phần của quá trình bắt tay 3 bước của giao thức TCP trước khi bất kỳ dữ liệu nào được truyền giữa 2 máy.

Bước 1: Host A muốn tải 1 trang web từ Gateway Server. Một yêu cầu kết nối mới được thiết lập và Host A gửi yêu cầu đó cho Gateway Server. Gói tin có cờ SYN được bật và bao gồm ISN được sinh ra bởi hệ điều hành của Host A, đó là 1293906975. Khi Host A là máy bắt đầu 1 kết nối và chưa nhận được trả lời từ Gateway Server thì Ack Number được đặt bằng 0.Trong hình, Host A muốn nói với Gateway Server là: “Tôi muốn bắt đầu kết nối với bạn, ISN của tôi là 1293906975”.Bước 2: Gateway Server nhận được yêu cầu từ Host A và tạo ra gói tin chứa ISN của chính mình, đó là 3455719727, và Seq Number tiếp theo mà Server mong chờ từ Host A đó là 1293906976. Hơn nữa Server bật cờ SYN và cờ ACK, Ack Number của gói tin trước và thông báo cho Host A biết Seq Number của mình.Trong hình, Gateway Server muốn nói với Host A rằng: “Tôi vừa nhận được Sequence Number của bạn và chờ đợi gói tin tiếp theo của bạn với Sequence Number là 1293906976, Sequence Number của tôi là 3455719727”.Bước 3: Host A nhận được trả lời từ Gateway Server và biết được Sequence Number của Gateway Server. Nó tạo ra 1 gói tin khác hoàn thành kết nối. Gói tin này có cờ ACK được bật và chứa Sequence Number tiếp theo sau Sequence Number mà trước đó Gateway Server đã sử dụng, đó là 3455719728.Trong hình, Host A muốn nói với Gateway Server là: “Tôi đã nhận được gói tin vừa rồi của bạn, Sequence Number của gói tin là 1293906976, đó đúng là Sequence Number mà tôi mong đợi. Tôi sẽ đợi gói tin tiếp theo mà bạn gửi cho tôi có Sequence Number là 3455719728”.Bây giờ, 1 máy nào đó có thể mong đợi các gói tin từ Gateway Server. Bạn hãy nhớ rằng Host A là máy bắt đầu kết nối bởi vì nó muốn tải về 1 trang web từ Gateway Server. Quá trình bắt tay 3 bước TCP hoàn thành, 1 kết nối ảo được tạo ra giữa Host A và Gateway Server, và Gateway Server sẵn sàng lắng nghe các yêu cầu từ Host A. Bây giờ là thời gian để Host A yêu cầu trang web mà nó mong muốn, tiếp theo chúng ta tới bước 4.Bước 4: Trong bước này, Host A tạo ra 1 gói tin với 1 vài dữ liệu được gửi tới cho Gateway Server. Dữ liệu nói với Gateway Server trang web nó muốn tải về.Chú ý rằng Sequence Number của TCP Segment ở dòng thứ 4 giống với dòng thứ 3 bởi vì ACK không chiếm không gian của Sequence Number.

Vì vậy hãy nhớ rằng bất kỳ gói tin nào được tạo ra chỉ đơn thuần là gói tin ACK [gói tin có cờ ACK được bật và không chứa dữ liệu] đến các gói tin đã nhận trước đó thì Sequence Number không bao giờ tăng lên.

Xem thêm: Cốt Truyện Dark Souls – Dark Souls Toàn Tập Hiệp Sĩ Bão Táp

Chú ý: Sequence Number và Acknowledgement Number có vai trò rất quan trọng trong quá trình truyền dữ liệu giữa 2 máy. Bởi vì Segment hay Packer trong IP datagram có thể bị mất hoặc không theo thứ tự. Do đó, máy nhận sử dụng Sequence Number để sắp xếp lại các Segment, thu thập các phân mảnh dữ liệu rồi tái cấu trúc lại chính xác những gì đã được gửi đi.

Chuyên mục: Mẹo Hay

Video liên quan