Tải bản đầy đủ (.docx) (24 trang)

Tiểu Luận Phân Đoạn TCP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (383.36 KB, 24 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b><small>1.4. Thuật toán truyền dữ liệu của TCP...4</small></b>

<b><small>2. Cấu trúc của TCP Segments...5</small></b>

<b><small>2.5.Cơ chế hoạt động của TCP và TCP Segment trong việc truyền dữ liệu...13</small></b>

<b><small>2.5.1.Thiết lập kết nối của TCP...14</small></b>

<b><small>2.5.2.Sau khi kết nối được thiết lập...15</small></b>

<b><small>2.6.Điều khiển luồng trong TCP và vai trò của TCP segment trong điều khiển luồng...15</small></b>

<b><small>2.7.Vai trò của phân đoạn TCP trong điều khiển lỗi...17</small></b>

<b><small>2.8.Vai trò của TCP Segment trong giải phóng kết nối TCP...17</small></b>

<b><small>3.Kết luận và đánh giá...19</small></b>

<i><small>Đánh giá...19</small></i>

<i><small>Kết luận...19</small></i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b><small>Câu hỏi...20</small></b>

<b><small>Nguyễn Hoàng Lâm...20</small></b>

<b><small>Lê Bá Khánh Minh...21</small></b>

<b><small>Phạm Văn Quang...24</small></b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>1.Tổng quan về TCP1.1 Giới thiệu</b>

Trong cuộc cách mạng kỹ thuật mạng máy tính, giao thức TCP (Transmission Control Protocol) đóng vai trị quan trọng, và một trong những yếu tố quan trọng nhất của TCP là TCP Segment (Phân đoạn TCP). TCP Segment không chỉ là một khái niệm cơ bản, mà còn là nền tảng cho việc truyền dữ liệu đáng tin cậy trên mạng.

TCP Segment được giới thiệu chính thức vào năm 1981 trong tài liệu RFC 793, do Vinton Cerf và Robert Kahn, hai trong số những nhà khoa học máy tính hàng đầu thế giới, viết ra như một phần của nỗ lực phát triển giao thức TCP/IP. Từ khi ra đời, TCP segment đã trở thành một phần không thể thiếu của cơ sở hạ tầng Internet.

Lý do sinh ra TCP Segment là để cung cấp một phương tiện đáng tin cậy và hiệu quả cho việc truyền dữ liệu giữa các thiết bị trên mạng. TCP Segment được thiết kế để đảm bảo tính tồn vẹn và sắp xếp của dữ liệu trong quá trình truyền, cùng với các tính năng kiểm tra lỗi và xử lý lỗi nếu có. Điều này đảm bảo rằng các ứng dụng và dịch vụ trên mạng có thể hoạt động một cách ổn định và đáng tin cậy, mà không cần lo lắng về mất mát hoặc lỗi dữ liệu.

Trong lời giới thiệu này, chúng ta đã thấy rằng TCP Segment không chỉ là một khái niệm kỹ thuật mà cịn là một phần khơng thể thiếu của cơ sở hạ tầng Internet. Sự xuất hiện của nó đã đánh dấu một bước tiến quan trọng trong việc xây dựng mạng máy tính đáng tin cậy và hiệu quả.

<b>1.2 Định nghĩa</b>

<b>TCP (Transmission Control Protocol) là một giao thức mạng quan</b>

trọng được sử dụng trong việc truyền dữ liệu qua một mạng nào đó. Một giao thức trong phạm vi mạng là một tập hợp các quy tắc và trình tự kiểm sốt việc thực hiện truyền dữ liệu sao cho tất cả mọi người trên thế giới bất kể vị trí địa lý, bất kể ứng dụng, phần mềm họ đang sử dụng đều có thể thao tác theo cùng một phương thức giống nhau được gọi là TCP.

TCP hoạt động với giao thức Internet (IP) để chỉ định cách dữ liệu được trao đổi trực tuyến. IP chịu trách nhiệm gửi từng gói đến đích của nó, trong khi TCP đảm

<b>bảo rằng các byte được truyền theo thứ tự mà chúng được gửi mà không có lỗihoặc thiếu sót nào. Hai giao thức kết hợp với nhau được gọi là TCP/IP.</b>

TCP là tiêu chuẩn truyền thơng cho phép các chương trình ứng dụng và máy tính trao đổi tin nhắn qua Internet. Bởi vì tính tin cậy cao mà TCP được sử dụng bởi các ứng dụng như FTP, SSH, SMTP, HTTP,…

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>1.3 Các ứng dụng của TCP</b>

Dưới đây là những ứng dụng phổ biến của TCP:

<b>1. Truyền tải dữ liệu qua web (HTTP, HTTPS): Giao thức HTTP </b>

(Hypertext Transfer Protocol) và HTTPS (HTTP Secure) sử dụng TCP để truyền dữ liệu giữa máy khách và máy chủ trên internet. Các trang web, ứng dụng web và các dịch vụ trực tuyến khác dựa vào TCP để truyền dữ liệu.

<b>2. Email (SMTP, IMAP, POP3): Các giao thức email như SMTP </b>

(Simple Mail Transfer Protocol), IMAP (Internet Message Access Protocol), và POP3 (Post Office Protocol version 3) sử dụng TCP để truyền tải email giữa máy chủ email và máy khách.

<b>3. Truyền tải tệp tin và tải về (FTP): Giao thức FTP (File Transfer </b>

Protocol) sử dụng TCP để truyền tải tệp tin giữa máy chủ FTP và máy khách.

<b>4. Điều khiển từ xa (SSH, Telnet): Giao thức SSH (Secure Shell) và </b>

Telnet sử dụng TCP để thiết lập kết nối an tồn và khơng an tồn giữa máy khách và máy chủ, cho phép điều khiển từ xa và truy cập vào hệ thống.

<b>5. Chia sẻ tệp tin (SMB, Samba): Giao thức SMB (Server Message </b>

Block) và Samba sử dụng TCP để chia sẻ tệp tin và ngữ cảnh giữa máy tính trong một mạng máy tính

<b>6. Trị chơi trực tuyến: Nhiều trị chơi trực tuyến sử dụng TCP để thiết </b>

lập kết nối và truyền tải dữ liệu giữa máy chủ trò chơi và máy khách.

<b>7. Cơ sở dữ liệu (MySQL, PostgreSQL): Các hệ quản trị cơ sở dữ liệu </b>

như MySQL và PostgreSQL sử dụng TCP để truyền tải dữ liệu giữa máy chủ cơ sở dữ liệu và ứng dụng.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>8. VoIP (Voice over Internet Protocol): Một số dịch vụ VoIP sử dụng </b>

TCP để truyền tải âm thanh và video giữa các thiết bị.

<b>1.4. Thuật toán truyền dữ liệu của TCP</b>

Thuật toán truyền dữ liệu của TCP bao gồm một số phần quan trọng để đảm bảo truyền dữ liệu đáng tin cậy và hiệu quả giữa các thiết bị trên mạng. Dưới đây là một số điểm quan trọng về thuật toán truyền dữ liệu của TCP:

<b>1. Mơ hình cửa sổ trượt (Sliding Window): TCP sử dụng mơ hình cửa</b>

sổ trượt để quản lý việc truyền dữ liệu giữa người gửi và người nhận. Người gửi chỉ gửi một số lượng xác định các segment mà không cần đợi phản hồi từ người nhận. Số lượng segment này được điều chỉnh dựa trên kích thước của cửa sổ nhận được mà người nhận thông báo cho người gửi.

<b>2. Số thứ tự (Sequence Number): Mỗi TCP segment được gắn với một</b>

số thứ tự duy nhất. Số thứ tự này cho phép người nhận có thể xếp chồng các segment lại theo thứ tự đúng.

<b>3. Xác nhận (Acknowledgment): </b>Người nhận sẽ gửi lại một thông điệp xác nhận (ACK) cho người gửi để thông báo rằng các segment đã được nhận thành công. Người gửi sẽ biết được các segment nào cần được gửi lại nếu không nhận được ACK sau một khoảng thời gian nhất định.

<b>4. Tái truyền (Retransmission): Nếu người gửi không nhận được ACK</b>

sau một khoảng thời gian nhất định, nó sẽ cho rằng segment đã bị mất và sẽ gửi lại nó. Quá trình tái truyền này đảm bảo tính tồn vẹn của dữ liệu.

<b>5. Kiểm tra lỗi (Checksum): TCP sử dụng thuật tốn kiểm tra checksum</b>

để đảm bảo tính tồn vẹn của dữ liệu trên đường truyền. Người nhận sẽ kiểm tra checksum của dữ liệu nhận được và gửi lại thông báo lỗi nếu cần.

<b>6. Kiểm soát luồng (Flow Control): </b>TCP cung cấp cơ chế kiểm soát luồng để ngăn chặn người gửi gửi quá nhiều dữ liệu đến người nhận, đảm bảo rằng người nhận có thể xử lý dữ liệu một cách hiệu quả.

<b>2. Cấu trúc của TCP Segments2.1 . Định nghĩa </b>

TCP Segment là một đơn vị dữ liệu cơ bản trong giao thức TCP

(Transmission Control Protocol). Trong môi trường mạng, dữ liệu được chia thành các phần nhỏ hơn được gọi là segment trước khi được truyền đi từ một thiết bị đến thiết bị khác qua mạng. Mỗi TCP segment chứa một phần của dữ liệu cùng với các thông tin điều khiển và quản lý liên quan.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>2.2 . Phân loại</b>

Do là giao thức tin cậy nên cấu trúc gói tin của TCP rất phức tạp bao gồm các thành phần sau:

<b>1.Header TCP: Chứa các trường thông tin điều khiển như cổng nguồn và </b>

đích, số thứ tự, số cửa sổ, checksum, và các thông tin khác để quản lý truyền dữ liệu và kiểm soát lỗi.

<b>2.Dữ liệu Payload: Phần này chứa dữ liệu thực sự được truyền đi, có thể </b>

là văn bản, hình ảnh, hoặc bất kỳ loại dữ liệu nào khác mà ứng dụng đang gửi.

 Phần Header có chiều dài từ 20 byte đến 60 byte, Header có chiều dài 20 byte nếu nó khơng chứa Options và có chiều dài tối đa 60 byte nếu nó chứa Options

 Phần dữ liệu Payload theo sau có chiều dài là các byte cịn lại

TCP Segment được sử dụng để cung cấp truyền dữ liệu đáng tin cậy và có thứ tự giữa các thiết bị trên mạng. Nó đảm bảm rằng dữ liệu được truyền đi

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

một cách an tồn và hiệu quả, và kiểm sốt q trình truyền và nhận dữ liệu để đảm bảo tính tồn vẹn và đáng tin cậy của thông tin.

<b>2.3. Các trường và chức năng2.3.1. Source Port (Cổng nguồn)</b>

Trường 16 bit này xác định số cổng của chương trình ứng dụng gửi.Một số đặc điểm quan trọng của trường:

<b>1. Định danh ứng dụng nguồn: Source Port định danh cho ứng dụng hoặc</b>

dịch vụ trên máy gửi dữ liệu. Mỗi ứng dụng trên một máy tính sẽ sử dụng một cổng riêng biệt để gửi và nhận dữ liệu thông qua giao thức TCP.

<b>2. Dùng để xác định kết nối: </b>Khi một segment TCP được tạo ra, trường Source Port cùng với địa chỉ IP nguồn xác định một kết nối TCP duy nhất. Khi nhận được các segment từ nhiều nguồn, máy đích sử dụng cả hai giá trị này để xác định kết nối đích.

<b>3. Sử dụng trong q trình kết nối: Trong quá trình bắt đầu một kết nối</b>

TCP, trường Source Port thường được chọn ngẫu nhiên từ một phạm vi cổng khơng dùng. Q trình này đảm bảo tính duy nhất của các kết nối TCP và giúp tránh tình trạng xung đột về cổng.

<b>4. Quan trọng trong việc định tuyến và chuyển tiếp: </b>Source Port cũng được sử dụng để xác định cách định tuyến và chuyển tiếp dữ liệu trong mạng. Các thiết bị mạng như bộ định tuyến (router) và tường lửa (firewall) sử dụng thông tin này để xác định cách xử lý các gói tin TCP khi chúng di chuyển qua mạng.

<b>2.3.2. Destination Port (Cổng đích) </b>

<b>Trường 16 bit này xác định số cổng của chương trình ứng dụng nhận. Một số</b>

đặc điểm quan trọng của trường:

<b>1. Xác định ứng dụng đích: </b>Trường Destination Port xác định cổng của ứng dụng hoặc dịch vụ đích nhận dữ liệu. Mỗi ứng dụng hoặc dịch vụ trên một máy tính sẽ lắng nghe trên một cổng nhất định để nhận dữ liệu qua giao thức TCP.

<b>2. Phân biệt các dịch vụ và ứng dụng: TCP sử dụng trường</b>

Destination Port để phân biệt giữa các dịch vụ và ứng dụng khác nhau đang lắng nghe trên cùng một máy tính. Ví dụ, dịch vụ HTTP thường lắng nghe trên cổng 80, trong khi dịch vụ SSH thường lắng nghe trên cổng 22.

<b>3. Xác đinh đích của kết nối: Khi một segment TCP được gửi, trường</b>

Destination Port cùng với địa chỉ IP đích xác định một kết nối TCP duy nhất. Máy đích sử dụng cả hai giá trị này để xác định đích của dữ liệu được gửi.

<b>4. Quan trọng trong việc định tuyến và chuyển tiếp: Trường </b>

Destination Port được sử dụng để xác định cách định tuyến và

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

chuyển tiếp dữ liệu trong mạng. Thiết bị mạng như bộ định tuyến và tường lửa sử dụng thông tin này để xác định cách xử lý các gói tin TCP khi chúng di chuyển qua mạng.

<b>2.3.3. Sequence Number: </b>

Trường 32 bit này xác định số được gán cho byte dữ liệu đầu tiên chứa trong phân đoạn. Nếu cờ SYN bật thì nó là số thứ tự gói ban đầu và byte đầu tiên được gửi có số thứ tự này cộng thêm 1. Nếu khơng có cờ SYN thì

một giao thức giao vận luồng. Để đảm bảo tính kết nối, mỗi byte được gửi đi phải được đánh số. Số trình tự nói cho đích biết số hiệu byte đầu tiên trong phân đoạn. Trong giai đoạn thiết lập kết nối, mỗi phía sử dụng một bộ tạo số ngẫu nhiên để tạo một số trình tự khởi đầu (ISN), số này thường khác nhau trong mỗi hướng. Ví dụ, nếu số ISN là 2367 và gói thứ nhất mang 1000 byte dữ liệu, số trình tự là 2369 (2367 và 2368 được sử dụng để thiết lập kết nối); phân đoạn thứ hai mang 500 byte dữ liệu sẽ có số trình tự 3369 (2369 + 1000), v.v.

Một số đặc điểm quan trọng của trường:

<b>1. Đảm bảo tính tồn vẹn và thứ tự của dữ liệu: Số thứ tự được sử </b>

dụng để đảm bảo rằng các segment TCP được gửi và nhận theo đúng thứ tự. Mỗi segment có một số thứ tự riêng, cho phép máy nhận tái tạo dữ liệu theo đúng thứ tự ban đầu.

<b>2. Kiểm soát luồng dữ liệu: Số thứ tự cũng được sử dụng để kiểm soát</b>

luồng dữ liệu. Bằng cách gắn số thứ tự vào các byte của dữ liệu, TCP có thể xác định được bất kỳ byte nào đã được nhận và xác định các byte còn thiếu.

<b>3.Quản lý cửa sổ trượt (Sliding Window): Số thứ tự cũng được sử </b>

dụng để quản lý cửa sổ trượt, một cơ chế quan trọng trong TCP để điều chỉnh việc truyền dữ liệu. Số thứ tự cùng với các thông tin khác như cỡ cửa sổ còn lại (remaining window size) giúp điều chỉnh lưu lượng dữ liệu được gửi giữa máy gửi và máy nhận.

<b>4.Phục hồi lỗi và khơi phục kết nối: Số thứ tự cũng hữu ích trong </b>

việc phục hồi lỗi và khôi phục kết nối. Khi một segment bị mất hoặc bị lỗi, máy nhận có thể sử dụng các số thứ tự để yêu cầu gửi lại các dữ liệu bị mất hoặc bị hỏng.

<b>2.3.4. Acknowledgment Number: </b>

Trường 32 bit này xác định số hiệu byte mà trạm gửi phân đoạn đang chờ để nhận. Nếu nó đã nhận thành cơng byte số x, thì số xác nhận của nó là x + 1. Nếu cờ ACK bật thì giá trị của trường chính là số thứ tự gói tin tiếp theo mà bên nhận cần.Một số đặc điểm của trường

<b>1.Xác nhận dữ liệu đã nhận: Trường Acknowledgment Number được</b>

máy nhận sử dụng để thông báo cho máy gửi rằng các byte dữ liệu đã

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

được nhận thành công. Số xác nhận là số thứ tự của byte tiếp theo mà máy nhận mong đợi nhận được từ máy gửi.

<b>2.Quản lý luồng dữ liệu (Flow Control): Acknowledgment Number </b>

cũng được sử dụng để quản lý luồng dữ liệu giữa máy gửi và máy nhận. Nó cho phép máy nhận xác định được lượng dữ liệu mà nó có thể nhận mà không bị quá tải.

<b>3.Phục hồi lỗi và khôi phục kết nối: Số xác nhận cũng quan trọng </b>

trong việc phục hồi lỗi và khôi phục kết nối. Khi máy nhận nhận ra một segment bị mất hoặc bị lỗi, nó có thể sử dụng số xác nhận để yêu cầu máy gửi gửi lại các dữ liệu bị mất hoặc bị hỏng.

<b>4.Định vị trong luồng dữ liệu: Acknowledgment Number cũng được </b>

sử dụng để xác định vị trí của các segment trong luồng dữ liệu. Nó cho biết máy nhận đang mong đợi nhận các byte dữ liệu từ máy gửi.

<b>2.3.5. Data Offset: </b>

Trường "Data Offset" (Độ Lệch Dữ Liệu), cũng được biết đến như "Header Length" (Độ Dài Tiêu Đề) Trường có độ dài 4 bít quy định độ dài của phần header (tính theo đơn vị từ 32 bít). Phần header có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ (480 bit).

Một số đặc điểm của trường:

<b>1.Kích thước của tiêu đề TCP: Trường "Data Offset" chỉ định </b>

kích thước của tiêu đề TCP. Điều này cho phép máy nhận biết được nơi bắt đầu của dữ liệu trong segment TCP.

<b>2.Giới hạn kích thước của tiêu đề: Giá trị của trường "Data </b>

Offset" phải là một số nguyên dương, thường là từ 5 đến 15 (tương ứng với 20 đến 60 byte). Điều này bởi vì tiêu đề TCP cơ bản có kích thước tối thiểu là 20 byte, nhưng có thể được mở rộng thơng qua các tùy chọn.

<b>3.Đa dạng hóa kích thước tiêu đề: Trường "Data Offset" cũng </b>

cho phép TCP hỗ trợ các tùy chọn mở rộng. Các tùy chọn này có thể mở rộng kích thước của tiêu đề TCP, cho phép chức năng như lựa chọn mở rộng cửa sổ, timestamp, hoặc tính năng mở rộng khác.

<b>4.Quy ước tính độ dài của tiêu đề: Giá trị trong trường "Data </b>

Offset" được biểu diễn bằng số bộ từ 32-bit, vì vậy một giá trị của 5 sẽ biểu thị một độ dài tiêu đề là 20 byte.

<b>2.3.6. Reserved</b>

Trường 6 bit này được dung cho tương lai và có giá trị là 0. Một số đặc điểm của trường:

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>1. Dành cho mục đích tương lai: Trường "Reserved" được dành cho </b>

việc sử dụng trong tương lai khi có các mở rộng hoặc thay đổi trong giao thức TCP.

2. <b>Hiện tại được sử dụng để trống: Hiện tại, trường "Reserved" khơng</b>

có ý nghĩa hoặc chức năng cụ thể và có giá trị bằng 0 trong các segment TCP hiện đại.

3. <b>Duy trì sự tương thích ngược: Mặc dù trường "Reserved" khơng có </b>

ý nghĩa trong các phiên bản hiện tại của giao thức TCP, nhưng nó được duy trì để đảm bảo sự tương thích ngược với các phiên bản cũ hơn hoặc để đáp ứng với các yêu cầu của các tiêu chuẩn.

4. <b>Có thể sử dụng cho các mục đích mở rộng: Trong tương lai, các </b>

phiên bản mới của giao thức TCP có thể sử dụng trường "Reserved" để thêm các tính năng mới hoặc mở rộng chức năng của giao thức.

<b>2.3.7. Flags (hay Control bits)</b>

Được sử dụng để điều khiển và quản lý các trạng thái và tính năng của các segment TCP .Trường này xác định 6 bit điều khiển khác nhau. Một hoặc nhiểu bit này có thể được đặt tại cùng thời điểm. Sáu bit cờ lần lượt

3. <b>PSH (Hàm Push): Khi cờ này được đặt, toàn bộ dữ liệu </b>

trong bộ đệm (kể cả dữ liệu được lưu từ trước) sẽ được chuyển ngay lên cho chương trình ứng dụng. Cịn nếu cờ này không được đặt, TCP chờ đến khi thích hợp mới chuyển dữ liệu đi, nhằm tăng hiệu quả của hệ thống.

4. <b>RST (Reset): Đặt để yêu cầu kết nối TCP bị thiết lập lại </b>

Trường 16 bit này chỉ định số lượng byte mà máy nhận có thể nhận từ máy gửi tại một thời điểm cụ thể mà không cần phải gửi ACK (Acknowledgment) trở lại. Một số đặc điểm của trường:

1. <b>Quản lý luồng dữ liệu (Flow Control): </b>Trường Window Size được sử dụng để quản lý luồng dữ liệu giữa máy gửi và

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

máy nhận trong q trình truyền thơng TCP. Nó cho phép máy nhận điều chỉnh tốc độ nhận dữ liệu dựa trên khả năng xử lý của nó.

2. <b>Sự linh hoạt trong việc điều chỉnh tốc độ: Kích thước cửa</b>

sổ có thể thay đổi trong suốt quá trình truyền dữ liệu để phản ánh sự thay đổi về điều kiện mạng và khả năng xử lý của máy nhận.

3. <b>Sử dụng để tránh quá tải và lỗ hổng dữ liệu: Bằng cách</b>

điều chỉnh cỡ cửa sổ, TCP giúp tránh tình trạng quá tải máy nhận và lỗ hổng dữ liệu trong quá trình truyền dữ liệu. 4. <b>Thơng tin trong tiêu đề TCP: Trường Window Size được</b>

ghi trong tiêu đề của các segment TCP để thông báo cho máy gửi biết bao nhiêu dữ liệu có thể gửi mà khơng cần phải chờ đợi ACK từ máy nhận.

5. <b>Đơn vị tính là byte: Kích thước cửa sổ thường được biểu</b>

diễn bằng số byte và có giá trị tối đa là 65,535 byte.

<b> 2.3.9. Checksum </b>

Trường 16 bit này chứa mã kiểm tra lỗi (theo phương pháp CRC) cho toàn bộ phân đoạn (cả tiêu đề và dữ liệu).

Một số đặc điểm của trường:

1. <b>Kiểm tra tính tồn vẹn của dữ liệu: </b>Trường Checksum được sử dụng để đảm bảo rằng dữ liệu trong segment TCP không bị thay đổi trong quá trình truyền đi. Nó tính tốn một giá trị checksum dựa trên nội dung của segment và gắn nó vào tiêu đề để máy nhận có thể kiểm tra nó.

2. <b>Phát hiện lỗi truyền dẫn: Checksum cũng được sử dụng để</b>

phát hiện các lỗi trong quá trình truyền dẫn, bao gồm lỗi như mất dữ liệu, sự thay đổi dữ liệu hoặc lỗi đường truyền. 3. <b>Bảo vệ dữ liệu: Trong TCP, tính tồn vẹn của dữ liệu là rất</b>

quan trọng. Bằng cách sử dụng checksum, TCP đảm bảo rằng dữ liệu được truyền đi và nhận được là chính xác và khơng bị lỗi.

4. <b>Tính tốn Checksum: </b>Checksum được tính bằng cách sử dụng một thuật toán, thường là thuật toán băm (hashing algorithm) như Adler-32 hoặc CRC-32. Thuật toán này tạo ra một giá trị checksum duy nhất dựa trên nội dung của dữ liệu.

5. <b>Tính hiệu suất: Mặc dù checksum có thể tốn một số lượng</b>

lực lượng tính tốn, nhưng nó cung cấp một cơ chế hiệu quả để đảm bảo tính tồn vẹn của dữ liệu trong mạng.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b> 2.3.10. Urgent Pointer (Con trỏ cấp bách)</b>

<small> </small>Trường 16 bit này chỉ hợp lệ khi cờ URG được đặt. Nó xác định số phải cộng với số trình tự để lấy được số hiệu của byte khẩn cuối cùng trong phần dữ liệu (Urgen Data)

Một số đặc điểm của trường này:

1. <b>Dữ liệu cấp bách (Urgent data): Dữ liệu cấp bách là dữ liệu được</b>

xem là cần được xử lý ngay lập tức, thường được sử dụng trong các ứng dụng yêu cầu truyền tải dữ liệu cấp bách, như các ứng dụng trò chơi trực tuyến hoặc giao diện người dùng đồ họa. 2. <b>Chỉ định vị trí của dữ liệu cấp bách: Trường "Urgent Pointer" </b>

chỉ định vị trí của dữ liệu cấp bách trong segment TCP. Nếu trường này có giá trị khác 0, nó chỉ ra vị trí của byte cuối cùng của dữ liệu cấp bách trong dòng luồng dữ liệu.

3. <b>Xử lý dữ liệu cấp bách: Khi máy nhận nhận được dữ liệu cấp </b>

bách, nó sẽ truyền dữ liệu này cho ứng dụng và thơng báo vị trí của dữ liệu cấp bách tới ứng dụng thông qua con trỏ cấp bách.

4. <b>Sử dụng trong trường hợp khẩn cấp: Dữ liệu cấp bách thường </b>

được sử dụng trong các tình huống cần xử lý ngay lập tức, nhưng việc sử dụng nó cần phải được cân nhắc một cách cẩn thận để đảm bảo tính đáng tin cậy của truyền dữ liệu.

<b> 2.3.11. Options:</b>

<b> Trường có chiều dài tối đa 40 byte này chứa các thông tin tùy chọn,</b>

cho phép mở rộng chức năng của giao thức TCP thông qua các tùy chọn khác nhau.

1. <b>Mở rộng chức năng: Trường "Options" được sử dụng để cung cấp</b>

các chức năng mở rộng cho giao thức TCP mà không cần phải thay đổi định dạng của tiêu đề TCP.

2. <b>Các tùy chọn phổ biến: Một số tùy chọn phô biến bao gồm</b>

<i>- Maximum Segment Size (MSS): Xác định kích thước tối đa của </i>

mỗi segment TCP được chấp nhận.

<i>- Window Scaling: Cho phép mở rộng cỡ cửa sổ cửa sổ của TCP.- Timestamps: Cung capá thời gian dấu thời gian trên mỗi segment </i>

<i>- Selective Acknowledgment (SACK): Cho phép máy nhận báo cáo </i>

các đoạn dữ liệu đã nhận được.

<i>- No-Operation (NOP): Một tùy chọn không làm gì, được sử dụng </i>

cho mục đích đồng bộ hóa.

3. <b>Phân biệt giữa các tùy chọn: Các tùy chọn được phân biệt bằng</b>

cách sử dụng các byte đặc biệt trong trường "Kind" (Loại) của mỗi tùy chọn. Điều này cho phép máy nhận biết và xử lý các tùy chọn khác nhau trong segment TCP.

</div>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×