1. Trang chủ
  2. » Luận Văn - Báo Cáo

Các thủ tục lớp giao vận internet và TCP, UDP cho mạng không dây

85 1,7K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 85
Dung lượng 1,63 MB

Nội dung

TCP phân chia dòng byte này thành các đoạn có kích thước thích hợp thường được quyết định dựa theo kích thước của đơn vị truyền dẫn tối đa MTU của tầng liên kết dữ liệu của mạng mà máy t

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

-*** -

NGUYỄN QUỲNH SƠN

CÁC THỦ TỤC LỚP GIAO VẬN INTERNET VÀ TCP, UDP

CHO MẠNG KHÔNG DÂY

LUẬN VĂN THẠC SĨ

Hà Nội, 2011

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

-*** -

NGUYỄN QUỲNH SƠN

CÁC THỦ TỤC LỚP GIAO VẬN INTERNET VÀ TCP, UDP

CHO MẠNG KHÔNG DÂY

Ngành: Công nghệ Điện tử Viễn thông Chuyên Ngành: Kỹ thuật Điện tử

Mã số: 60 52 70

LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS.TS VƯƠNG ĐẠO VY

Hà Nội - 2011

Trang 3

Mục lục

MỞ ĐẦU 1

LỜI CAM ĐOAN 3

Chương 1: Tổng quan giao thức TCP và UDP 7

1 Giao thức TCP là gì 7

2 Cấu trúc gói tin TCP 8

3 Hoạt động của giao thức TCP 11

3.1 Thiết lập kết nối 11

3.2 Truyền dữ liệu 12

3.3 Kết thúc kết nối 16

4 Bộ giao thức TCP/IP 16

4.1 Tầng ứng dụng 19

4.2 Tầng giao vận 20

4.3 Tầng mạng 20

4.4 Tầng liên kết 20

5 Cửa sổ trượt 21

5.1 Giới thiệu về cửa sổ trượt 21

5.2 Cách hoạt động của cửa sổ trượt 25

5.3 Kích thước của cửa sổ trượt 26

5.4 Ví dụ TCP và kích thước cửa sổ 28

6 Các thuật toán trong TCP 32

6.1 Thuật toán Slow-Start 32

6.2 Thuật toán tránh nghẽn mạng 33

6.3 Thuật toán truyền lại và phục hồi nhanh 34

7 TCP trong giao thức Snoop 36

Trang 4

7.1 Snoop Data 36

7.2 Snoop ACK() 38

8 UDP là gì 40

9 Cấu trúc trong gói UDP 40

10 Tổng kết chương 1 42

Chương 2: Mạng không dây và ứng dụng TCP trong mạng không dây 43

1 Mạng không dây 43

1.1 ưu điểm của mạng không dây 43

1.2 Hoạt động của mạng không dây 44

1.3 Các mô hình mạng không dây cơ bản 45

1.4 Cự ly truyền sóng và tốc độ truyền sóng 46

1.5 Các chuẩn mạng không dây 47

1.6 Các kiểu kiến trúc cơ bản của mạng không dây 49

1.7 Một số cơ chế sử dụng khi trao đổi thông tin trong mạng không dây 51

2 ứng dụng TCP trong mạng cảm biến không dây 52

2.1 Lưu trữ các phân đoạn TCP phân tán (DTC) 54

2.1.1 Tổng quan 54

2.1.2 Cơ chế hoạt động của bộ nhớ đệm trong DTC 55

2.1.3 Ví dụ hoạt động 56

2.2 TCP Hỗ trợ cho các nút cảm biến (TSS) 57

2.2.1 Tổng quan 57

2.2.2 TCP hỗ trợ mạng cảm biến (TSS) 58

2.2.3 Ví dụ hoạt động 61

2.3 So sánh với DTC 63

3 Tổng kết chương 2 64

Trang 5

Chương 3: PHƯƠNG PHÁP SỬ DỤNG PHẦN MỀM ĐỂ ĐO TỐC ĐỘ DỮ LIỆU

CAMERA TRUYỀN BẰNG GIAO THỨC TCP VÀ UDP 65

1 Giới thiệu phần mềm đo 65

1.1 Lựa chọn phần mềm 65

1.2 Tổng quan về phần mềm BitMeterII 68

1.3 Hướng dẫn cài đặt phần mềm BitMeterII 70

2 Thí nghiệm sử dụng phần mềm đo tốc độ truyền hình ảnh Camera qua giao thức TCP và UDP với môi trường không dây 72

2.1 Mô hình kết nối………72

2.2 Miêu tả thiết bị……….72

2.3 Cấu hình thiết bị……… 73

2.4 Thí nghiệm đo tốc độ truyền dữ liệu thông qua giao thức TCP với môi trường không dây……… 75

2.5 Thí nghiệm đo tốc độ truyền dữ liệu thông qua giao thức UDP với môi trường không dây……….79

3 Tổng kết chương 3 81

KẾT LUẬN VÀ KHUYẾN NGHỊ 84

TÀI LIỆU THAM KHẢO 86

Trang 6

Chương 1: TỔNG QUAN GIAO THỨC

TCP VÀ UDP

1 Giao thức TCP là gì

Giao thức TCP (Transmission Control Protocol - "Giao thức điều khiển truyền

vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua

đó chúng có thể trao đổi dữ liệu hoặc các gói tin Giao thức này đảm bảo chuyển giao

dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ

TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các ứng dụng kết quả, trong đó có WWW, thư điện tử và mạng bảo mật

Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa giao thức IP bên dưới và một ứng dụng bên trên Các ứng dụng thường cần các kết nối đáng tin cậy kiểu đường ống để liên lạc với nhau, trong khi đó, giao thức IP không cung cấp những dòng kiểu

đó, mà chỉ cung cấp dịch vụ chuyển gói tin không đáng tin cậy TCP làm nhiệm vụ của tầng giao vận trong mô hình OSI đơn giản của các mạng máy tính

Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua mạng TCP phân chia dòng byte này thành các đoạn có kích thước thích hợp (thường được quyết định dựa theo kích thước của đơn vị truyền dẫn tối đa (MTU) của tầng liên kết dữ liệu của mạng mà máy tính đang nằm trong đó) Sau đó, TCP chuyển các gói tin thu được tới giao thức IP để gửi nó qua một liên mạng tới mô đun TCP tại máy tính đích TCP kiểm tra để đảm bảo không có gói tin nào bị thất lạc bằng cách gán cho mỗi gói tin một "số thứ tự" Số thứ tự này còn được sử dụng để đảm bảo dữ liệu được trao cho ứng dụng đích theo đúng thứ tự Mô đun TCP tại đầu kia gửi lại "tin báo nhận" cho

các gói tin đã nhận được thành công; một "đồng hồ" tại nơi gửi sẽ báo “quá định mức

thời gian” nếu không nhận được tin báo nhận trong khoảng thời gian bằng một chu kỳ

Trang 7

(RTT), và dữ liệu (được coi là bị thất lạc) sẽ được gửi lại TCP sử dụng giá trị kiểm tra

để xem có byte nào bị hỏng trong quá trình truyền hay không; giá trị này được tính toán cho mỗi khối dữ liệu tại nơi gửi trước khi nó được gửi, và được kiểm tra tại nơi nhận

2 Cấu trúc gói tin TCP

Một gói tin TCP bao gồm 2 phần (Trích tài liệu tham khảo số 1 chương TCP/IP)

 Tiêu đề (header)

 dữ liệu

Phần tiêu đề (header) có 11 trường trong đó 10 trường bắt buộc Trường thứ 11 là tùy chọn có tên là: options ( tuỳ chọn)

Source port ( cổng nguồn)

Số hiệu của cổng tại máy tính gửi

96 Data Offset Reserved Flags Window

128 Check sum Urgent Pointer

160 Options (optional)

160/1 2+ Data ( dữ liệu)

Trang 8

Số hiệu của cổng tại máy tính nhận

Sequence number ( Số trình tự)

Trường này có 2 nhiệm vụ 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ì đây là số thứ tự của byte đầu tiên

Acknowledgement number ( Số trình tự tiếp theo)

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

Data offset

Trường có độ dài 4 bít qui định độ dài của phần tiêu đề (tính theo đơn vị từ

32 bít) Phần tiêu đề có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ (480 bít)

Reserved

Dành cho tương lai và có giá trị là 0

Flags (hay Control bits)

Trang 9

Checksum (trường kiểm tra)

16 bít kiểm tra cho cả phần tiêu đề ( header) và dữ liệu Phương pháp sử dụng được mô tả trong RFC 793:

16 bít của trường kiểm tra là bổ sung của tổng tất cả các từ 16 bít trong gói tin Trong trường hợp số octet (khối 8 bít) của tiêu đề và dữ liệu là lẻ thì octet cuối được bổ sung với các bít 0 Các bít này không được truyền Khi tính tổng, giá trị của trường kiểm tra được thay thế bằng 0,

Nói một cách khác, tất cả các từ 16 bít được cộng với nhau Kết quả thu được sau khi đảo giá trị từng bít được điền vào trường kiểm tra Về mặt thuật toán, quá trình này giống với IPv4

Điểm khác nhau chỉ ở chỗ dữ liệu dùng để tính tổng kiểm tra Dưới đây là một tiêu

0 Source address (Địa chi nguồn)

2 Destination address (địa chỉ đích)

64 Zeros Protocol TCP length

96 Source Port (cổng nguồn) Destination Port (Cổng đích)

128 Sequence Number (Số trình tự)

160 Acknowledgement Number

19

Data Offset Reserved Flags Window

225 Checksum Urgent Poi ter

257 Options (optional)

Trang 10

Các địa chỉ nguồn và đích là các địa chỉ IPv4 Giá trị của trường protocol (giao thức) là 6 (giá trị dành cho TCP, xem thêm: Danh sách số hiệu giao thức IPv4) Giá trị của trường “TCP length field” là độ dài của toàn bộ phần tiêu đề và dữ liệu của gói TCP

- Urgent pointer

Nếu cờ URG bật thì giá trị trường này chính là số từ 16 bít mà số thứ tự gói tin

(sequence number) cần dịch trái

3 Hoạt động của giao thức TCP

Không như giao thức UDP - giao thức có thể lập tức gửi gói tin mà không cần thiết lập kết nối, TCP đòi hỏi thiết lập kết nối trước khi bắt đầu gửi dữ liệu và kết thúc kết nối khi việc gửi dữ liệu hoàn tất Cụ thể, các kết nối TCP có ba pha:

1 thiết lập kết nối

2 truyền dữ liệu

3 kết thúc kết nối

3.1 Thiết lập kết nối

Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước (3-way

handshake) Trước khi máy trạm thử kết nối với một máy chủ, máy chủ phải đăng ký

một cổng và mở cổng đó cho các kết nối: đây được gọi là mở bị động Một khi mở bị động đã được thiết lập thì một client có thể bắt đầu mở chủ động Để thiết lập một kết nối, quy trình bắt tay 3 bước xảy ra như sau:

Trang 11

1 Mở chủ động được thực hiện bằng cách gửi một SYN cho máy chủ

2 Máy chủ trả lời bằng một SYN-ACK

3 Cuối cùng, máy trạm gửi một ACK lại cho máy chủ

Đến đây, cả máy trạm và máy chủ đều đã nhận được một tin báo nhận về kết nối

3.2 Truyền dữ liệu

Một số đặc điểm cơ bản của TCP để phân biệt với UDP:

 Truyền dữ liệu không lỗi (do có cơ chế sửa lỗi/truyền lại)

 Truyền các gói dữ liệu theo đúng thứ tự

 Truyền lại các gói dữ liệu mất trên đường truyền

 Loại bỏ các gói dữ liệu trùng lặp

 Cơ chế hạn chế tắc nghẽn đường truyền

Ở hai bước đầu tiên trong ba bước bắt tay, hai máy tính trao đổi một số thứ tự gói ban đầu Số này có thể chọn một cách ngẫu nhiên Số thứ tự này được dùng để đánh dấu các khối dữ liệu gửi từ mỗi máy tính Sau mỗi byte được truyền đi, số này lại được tăng lên Nhờ vậy ta có thể sắp xếp lại chúng khi tới máy tính kia bất kể các gói tới nơi theo thứ tự thế nào

Trên lý thuyết, mỗi byte gửi đi đều có một số thứ tự và khi nhận được thì máy tính nhận gửi lại tin báo nhận (ACK) Trong thực tế thì chỉ có byte dữ liệu đầu tiên được gán số thứ tự trong trường số thứ tự của gói tin và bên nhận sẽ gửi tin báo nhận bằng cách gửi số thứ tự của byte đang chờ

Ví dụ: Máy tính A gửi 4 byte với số thứ tự ban đầu là 100 (theo lý thuyết thì 4 byte

sẽ có thứ tự là 100, 101, 102, 103) thì bên nhận sẽ gửi tin báo nhận có nội dung là 104

vì đó là thứ tự của byte tiếp theo nó cần Bằng cách gửi tin báo nhận là 104, bên nhận

đã ngầm thông báo rằng nó đã nhận được các byte 100, 101, 102 và 103 Trong trường hợp 2 byte cuối bị lỗi thì bên nhận sẽ gửi tin báo nhận với nội dung là 102 vì 2 byte

100 và 101 đã được nhận thành công

Giả sử ta có 10.000 byte được gửi đi trong 10 gói tin 1.000 byte và có 1 gói tin bị mất trên đường truyền Nếu gói bị mất là gói đầu tiên thì bên gửi sẽ phải gửi lại toàn

Trang 12

bộ 10 gói vì không có cách nào để bên nhận thông báo nó đã nhận được 9 gói kia Vấn

đề này được giải quyết trong giao thức SCTP (Stream Control Transmission Protocol

- "Giao thức điều khiển truyền vận dòng") với việc bổ sung báo nhận chọn lọc

Số thứ tự và tin báo nhận giải quyết được các vấn đề về lặp gói tin, truyền lại những gói bị hỏng/mất và các gói tin đến sai thứ tự Để phục vụ mục đích kiểm tra, các gói tin có trường giá trị tổng kiểm

Với trình độ hiện tại, kỹ thuật kiểm tra tổng trong TCP không đủ mạnh Các tầng liên kết dữ liệu với xác suất lỗi bit cao có thể cần được bổ sung các khả năng phát hiện lỗi tốt hơn Nếu như TCP được thiết kế vào thời điểm hiện tại, nhiều khả năng nó sẽ

bao gồm trường kiểm tra độ dư tuần hoàn (cyclic redundancy check - CRC) với độ dài

32 bit Điểm yếu này một phần được bù đắp bằng CRC hay những kỹ thuật khác tại tầng thứ 2 (trong mô hình 7 lớp OSI) ở bên dưới cả TCP và IP như trong các giao thức điểm-điểm (PPP) hoặc Ethernet Tuy nhiên điều này cũng không có nghĩa là trường kiểm tra tổng của TCP là không cần thiết: thống kê cho thấy các sai sót do cả phần cứng và phần mềm gây ra giữa các điểm áp dụng kỹ thuật kiểm tra CRC là khá phổ biến và kỹ thuật kiểm tra tổng có khả năng phát hiện phần lớn các lỗi (đơn giản) này Điểm cuối cùng là khả năng hạn chế tắc nghẽn

Tin báo nhận (hoặc không có tin báo nhận) là tín hiệu về tình trạng đường truyền giữa 2 máy tính Từ đó, hai bên có thể thay đổi tốc độ truyền nhận dữ liệu phù hợp với điều kiện Vấn đề này thường được đề cập là điều khiển lưu lượng, kiểm soát tắc nghẽn TCP sử dụng một số cơ chế nhằm đạt được hiệu suất cao và ngăn ngừa khả năng nghẽn mạng Các cơ chế này bao gồm: cửa sổ trượt, thuật toán slow-start, thuật toán tránh nghẽn mạng, thuật toán truyền lại và phục hồi nhanh, Hiện nay, vấn đề cải tiến TCP trong môi truyền truyền dẫn tốc độ cao đang là một hướng nghiên cứu được quan tâm

Kích thước của cửa sổ là chiều dài (byte) của khối dữ liệu có thể lưu trong bộ đệm của bên nhận Bên gửi chỉ có thể gửi tối đa lượng thông tin chứa trong cửa sổ này trước khi nhận được tin báo nhận

Trang 13

Để tận dụng khả năng truyền dẫn của mạng thì cửa sổ dùng trong TCP cần được tăng lên Trường điều khiển kích thước cửa sổ của gói TCP có độ dài là 2 byte và do

đó kích thước tối đa của cửa sổ là 65.535 byte

Do trường điều khiển không thể thay đổi nên người ta sử dụng một hệ số dãn nào

đó Hệ số này được định nghĩa trong tài liệu RFC 1323 có thể sử dụng để tăng kích thước tối đa của cửa sổ từ 65.535 byte lên tới 1 gigabyte Tăng kích thước cửa sổ lớn hơn nữa cũng cần thiết trong đường hầm của TCP

Việc tăng kích thước cửa sổ chỉ được dùng trong giao thức bắt tay 3 pha Giá trị của trường co dãn cửa sổ thể hiện số bit cần được dịch trái đối với trường kích thước cửa sổ Hệ số dãn có thể thay đổi từ 0 (không dãn) tới 14 (dãn tối đa)

3.3 Kết thúc kết nối

Để kết thúc kết nối hai bên sử dụng quá trình bắt tay 4 bước và chiều của kết nối kết thúc độc lập với nhau Khi một bên muốn kết thúc, nó gửi đi một gói tin FIN và bên kia gửi lại tin báo nhận ACK Vì vậy, một quá trình kết thúc tiêu biểu sẽ có 2 cặp gói tin trao đổi

Một kết nối có thể tồn tại ở dạng "nửa mở": một bên đã kết thúc gửi dữ liệu nên chỉ nhận thông tin, bên kia vẫn tiếp tục gửi

4 Bộ giao thức TCP/IP

Hình 1.1: Mô hình TCP/IP

Trang 14

Bộ giao thức IP dùng sự đóng gói dữ liệu hòng trìu tượng hóa (thu nhỏ lại quan niệm cho dễ hiểu) các giao thức và các dịch vụ Nói một cách chung chung, giao thức

ở tầng cao hơn dùng giao thức ở tầng thấp hơn để đạt được mục đích của mình Chồng giao thức Internet gần giống như các tầng trong mô hình của Bộ quốc phòng Mỹ:

Các giao thức định tuyến như BGP và RIP, vì một số lý do, chạy trên TCP và UDP - theo thứ tự từng cặp: BGP dùng TCP, RIP dùng UDP - còn có thể được coi là một phần của tầng ứng dụng hoặc tầng mạng

3

Tầng

giao

vận

TCP, UDP, DCCP, SCTP, IL, RUDP, …

Các giao thức định tuyến như OSPF (tuyến ngắn nhất được chọn đầu tiên), chạy trên IP, cũng có thể được coi là một phần của tầng giao vận, hoặc tầng mạng ICMP (Internet control message protocol|

- tạm dịch là Giao thức điều khiển thông điệp Internet) và IGMP (Internet group management protocol - tạm dịch là Giao thức quản

lý nhóm Internet) chạy trên IP, có thể được coi là một phần của tầng mạng

2 Tầng

mạng IP (IPv4, IPv6)

ARP (Address Resolution Protocol| - tạm dịch là Giao thức tìm địa chỉ) và RARP (Reverse Address Resolution Protocol - tạm dịch là Giao thức tìm địa chỉ ngược lại) hoạt động ở bên dưới IP nhưng ở

Trang 15

trên tầng liên kết (link layer), vậy có thể nói là nó nằm ở khoảng trung gian giữa hai tầng

Cách nhìn các tầng cấp theo quan niệm: hoặc là cung cấp dịch vụ, hoặc là sử dụng dịch vụ, là một phương pháp trìu tượng hóa để cô lập các giao thức của tầng trên, tránh quan tâm đến thực chất của vấn đề, như việc truyền tải từng bit qua Ethernet chẳng hạn, và phát hiện xung đột (collision detection), trong khi những tầng dưới không cần phải biết đến chi tiết của mỗi một chương trình ứng dụng và giao thức của

sự toàn vẹn của dữ liệu, và đảm bảo sự phân phát dữ liệu tới đích (bằng cách truyền tải lại gói dữ liệu, cho đến khi nơi nhận nhận được gói dữ liệu)

Trang 16

Hình 1.2: Mô hình phân lớp giao thức TCP/IP

Sau đây là miêu tả từng tầng trong bộ giao thức TCP/IP:

Do chồng TCP/IP không có tầng nào nằm giữa ứng dụng và các tầng giao vận, tầng ứng dụng trong bộ TCP/IP phải bao gồm các giao thức hoạt động như các giao thức tại tầng trình diễn và tầng phiên của mô hình OSI Việc này thường được thực hiện qua các thư viện lập trình

Dữ liệu thực để gửi qua mạng được truyền cho tầng ứng dụng, nơi nó được đóng gói theo giao thức tầng ứng dụng Từ đó, dữ liệu được truyền xuống giao thức tầng thấp tại tầng giao vận

Hai giao thức tầng thấp thông dụng nhất là TCP và UDP Mỗi ứng dụng sử dụng dịch vụ của một trong hai giao thức trên đều cần có cổng Hầu hết các ứng dụng thông dụng có các cổng đặc biệt được cấp sẵn cho các chương trình phục vụ HTTP - Giao thức truyền siêu văn bản dùng cổng 80; FTP - Giao thức truyền tệp dùng cổng 21, v.v ) trong khi các trình khách sử dụng các cổng tạm thời

Trang 17

Các thiết bị định tuyến và thiết bị chuyển mạch không sử dụng tầng này nhưng các ứng dụng điều chỉnh thông lượng thì có dùng

4.2 Tầng giao vận

Trách nhiệm của tầng giao vận là kết hợp các khả năng truyền thông điệp trực tiếp không phụ thuộc vào mạng bên dưới, kèm theo kiểm soát lỗi, phân mảnh và điều khiển lưu lượng Việc truyền thông điệp trực tiếp hay kết nối các ứng dụng tại tầng giao vận có thể được phân loại như sau:

+ định hướng kết nối (connection-oriented), ví dụ TCP + phi kết nối (connectionless), ví dụ UDP

Tầng giao vận có thể được xem như một cơ chế vận chuyển thông thường, nghĩa là trách nhiệm của một phương tiện vận tải là đảm bảo rằng hàng hóa/hành khách của nó đến đích an toàn và đầy đủ

Tầng giao vận cung cấp dịch vụ kết nối các ứng dụng với nhau thông qua việc sử dụng các cổng TCP và UDP Do IP chỉ cung cấp dịch vụ phát chuyển nỗ lực tối đa, tầng giao vận là tầng đâu tiên giải quyết vấn đề độ tin cậy

Ví dụ, TCP là một giao thức định hướng kết nối Nó giải quyết nhiều vấn đề độ tin cậy để cung cấp một dòng byte đáng tin cậy:

+ Dữ liệu đến đích đúng thứ tự + Sửa lỗi dữ liệu ở mức độ tối thiểu + Dữ liệu trùng lặp bị loại bỏ

+ Các gói tin bị thất lại/loại bỏ được gửi lại + Có kiểm soát tắc nghẽn giao thông dữ liệu

Tuy các giao thức định tuyến động khớp về kỹ thuật với tầng giao vận trong bộ giao thức TCP/IP (do chúng chạy trên IP), nhưng chúng thường được xem là một phần của tầng mạng Một ví dụ là giao thức OSPF (số hiệu giao thức IP là 89)

Trang 18

Giao thức mới hơn, SCTP (Stream Control Transmission Protocol|), cũng là một

cơ chế giao vận định hướng kết nối "đáng tin cậy" Giao thức này định hướng dòng , chứ không định hướng byte như TCP, và cung cấp nhiều dòng đa công trên một kết nối Nó còn hỗ trợ đa điểm, trong đó một đầu của kết nối có thể được đại diện bởi nhiều địa chỉ IP (đại diện cho nhiều giao diện vật lý), sao cho, nếu một giao diện vật

lý thất bại thì kết nối vẫn không bị gián đoạn Giao thức này ban đầu được phát triển dành cho các ứng dụng điện thoại (để vận chuyển SS7 trên giao thức IP), nhưng nó cũng có thể được sử dụng cho các ứng dụng khác

UDP là một giao thức đồ hoạ phi kết nối Cũng như IP, nó là một giao thức nỗ lực tối đa hay "không đáng tin cậy" Vấn đề duy nhất về độ tin cậy mà nó giải quyết là sửa lỗi dữ liệu (dù chỉ bằng một thuật toán tổng kiểm tra yếu) UDP thường được dùng cho các ứng dụng như các phương tiện truyền thông theo dòng chứa âm thanh và hình ảnh, v.v , trong đó, vấn đề gửi đến đúng giờ có vai trò quan trọng hơn độ tin cậy, hoặc cho các ứng dụng truy vấn/đáp ứng đơn giản như tra cứu tên miền, trong đó, phụ phí của việc thiết lập một kết nối đáng tin cậy lớn một cách không cân xứng

Giao thức DCCP hiện đang được phát triển bởi IETF Nó cung cấp nội dung điều khiển lưu lượng của TCP, trong khi đối với người dùng, nó giữ bề ngoài như mô hình dịch vụ “datagram” của UDP

Cả TCP và UDP được dùng cho một số ứng dụng bậc cao Các ứng dụng tại các địa chỉ mạng cho trước được phân biệt bởi cổng TCP hay UDP của nó Theo quy ước, các cổng một số cổng được định nghĩa và được liên kết với một số ứng dụng cụ thể

RTP (Real-time Transport Protocol - giao thức giao vận thời gian thực) là một

giao thức biểu đồ được thiết kế cho dữ liệu thời gian thực chẳng hạn hình và tiếng được truyền theo dòng RTP là một giao thức tầng phiên sử dụng định dạng gói tin UDP làm căn bản Tuy nhiên, nó được đặt vào tầng giao vận của chồng giao thức TCP/IP

Trang 19

4.3 Tầng mạng

Theo định nghĩa ban đầu, tầng mạng giải quyết các vấn đề dẫn các gói tin qua một mạng đơn Một số ví dụ về các giao thức như vậy là X.25, và giao thức Host/IMP của mạng ARPANET

Với sự xuất hiện của khái niệm liên mạng, các chức năng mới đã được bổ sung cho tầng này, đó là chức năng dẫn đường cho dữ liệu từ mạng nguồn đến mạng đích Nhiệm vụ này thường đòi hỏi việc định tuyến cho gói tin quan một mạng lưới của các mạng máy tính, đó là liên mạng

Trong bộ giao thức liên mạng, giao thức IP thực hiện nhiệm vụ cơ bản dẫn đường

dữ liệu từ nguồn tới đích IP có thể chuyển dữ liệu theo yêu cầu của nhiều giao thức tầng trên khác nhau; mỗi giao thức trong đó được định danh bởi một số hiệu giao thức duy nhất: giao thức ICMP là giao thức 1 và giao thức IGMP là giao thức 2

Một số giao thức truyền bởi IP, chẳng hạn ICMP (dùng để gửi thông tin chẩn đoán

về truyền dữ liệu bằng IP) và IGMP (dùng để quản lý dữ liệu đa truyền ), được đặt lên trên IP nhưng thực hiện các chức năng của tầng liên mạng, điều này minh họa một sự bất tương thích giữa liên mạng và chồng TCP/IP và mô hình OSI Tất cả các giao thức định tuyến, chẳng hạn giao thức BGP, giao thức OSPF, và giao thức RIP, đều thực sự

là một phần của tầng mạng, mặc dù chúng có thể có vẻ thuộc về phần trên của chồng giao thức

4.4 Tầng liên kết

Tầng liên kết - phương pháp được sử dụng để chuyển các gói tin từ tầng mạng tới các máy chủ khác nhau - không hẳn là một phần của bộ giao thức TCP/IP, vì giao thức IP có thể chạy trên nhiều tầng liên kết khác nhau Các quá trình truyền các gói tin trên một liên kết cho trước và nhận các gói tin từ một liên kết cho trước có thể được điều khiển cả trong phần mềm điều vận thiết bị dành cho cạc mạng, cũng như trong hệ điều hành hay các phiên bản hay các bộ vi sử lý chuyên dụng Những thứ đó sẽ thực hiện các chức năng liên kết dữ liệu chẳng hạn như bổ sung một tín đầu để chuẩn bị cho việc truyền gói tin đó, rồi thực sự truyền khung dữ liệu qua một môi trường vật lý

Trang 20

Đối với truy nhập Internet qua modem quay số, các gói IP thường được truyền bằng cách sử dụng giao thức PPP Đối với truy nhập Internet băng thông rộng như ADSL hay modem cáp, giao thức PPPoE thường được sử dụng Mạng dây cục bộ thường sử dụng Ethernet, còn mạng không dây cục bộ thường dùng chuẩn IEEE 802.11 Đối với các mạng diện rộng, các giao thức thường được sử dụng là PPP đối với các đường T-carrier hoặc E-carrier, Frame relay, ATM, hoặc giao thức POS Tầng liên kết còn có thể là tầng nơi các gói tin được chặn để gửi qua một mạng riêng ảo Khi xong việc, dữ liệu tầng liên kết được coi là dữ liệu của ứng dụng và tiếp tục đi xuống theo chồng giao thức TCP/IP để được thực sự truyền đi Tại đầu nhận, dữ liệu đi lên theo chồng TCP/IP hai lần (một lần cho mạng riêng ảo và lần thứ hai cho việc định tuyến)

Tầng liên kết còn có thể được xem là bao gồm cả tầng vật lý - tầng là kết hợp của các thành phần mạng vật lý thực sự (hub, các bộ lặp, cáp mạng, cáp quang, cáp đồng trục, card mạng, card HBA và các thiết bị nối mạng có liên quan: RJ-45, BNC, etc),

và các đặc tả mức thấp về các tín hiệu (mức hiệu điện thế, tần số, v.v )

5 Cửa sổ trượt

5.1 Giới thiệu về cửa sổ trượt

Thay vì chỉ truyền đi một khung tại một thời điểm (simplex), giao thức cửa sổ trượt cho phép bên gửi có thể gửi đi nhiều khung

Giao thức này sử dụng một cửa sổ để cho phép bên gửi theo dõi các khung mà nó được phép gửi đi và các khung đó đang chờ báo nhận, gọi là cửa sổ gửi (Sending Windows) Một cửa sổ khác để bên nhận theo dõi các khung mà nó được phép nhận, gọi là cửa sổ nhận (Receiving Windows)

Cấu trúc của cửa sổ được mô tả như sau:

Trang 21

Hình 1.3: Cấu trúc cửa sổ trượt

Phần tô đen là phạm vi của cửa sổ gồm có cửa trước và cửa sau cùng di

chuyển theo một chiều

 Kích thước của cửa sổ là chiều của cung giới hạn từ cửa sau đến cửa trước

 Kích thước của cửa sổ có thể thay đổi Khi cửa trước di chuyển, cửa sổ được

mở rộng ra Ngược lại khi cửa sau di chuyển, kích thước của cửa sổ bị thu hẹp lại và nó làm cho cửa sổ thay đổi vị trí, trượt / quay quanh một tâm của vòng tròn

 Kích thước nhỏ nhất của cửa số là 0, khi đó cửa trước và cửa sau nằm cùng một

 Đối với bên nhận, các vị trí nằm trong cửa sổ biểu hiện số thứ tự các khung mà

Trang 22

5.2 Cách hoạt động của cửa sổ trượt

Cửa sổ trượt hoạt động tuần tự theo nhưng bước sau:

1 Các dãy số hiện hành của người gửi TCP là y

2 Thu TCP xác định kích thước cửa sổ thương lượng hiện tại x trong gói hàng

Điều này thường được chỉ định bởi hệ điều hành hoặc ứng dụng, nếu không nó bắt đầu từ 536 byte

3 Người gửi TCP gửi đi một datagram với số lượng dữ liệu byte bằng với kích

thước cửa sổ của người nhận x và chờ đợi cho một ACK từ nhận Kích thước

cửa sổ có thể được nhiều ngàn byte!

4 Nhận sẽ gửi một ACK với các giá trị y + x nghĩa là thừa nhận rằng x byte cuối

cùng đã được nhận OK và tiếp nhận các dự kiến khác truyền byte bắt đầu từ

7 Nếu người nhận có một bộ đệm đầy đủ, sau đó kích thước cửa sổ được giảm

xuống bằng không Trong trạng thái này, cửa sổ được gọi là đông lạnh và

người gửi không thể gửi bất kỳ byte nữa cho đến khi nó nhận được một datagram từ nhận với một kích thước cửa sổ lớn hơn số không

8 Nếu dữ liệu không được nhận như được xác định bởi bộ đếm thời gian đó được đặt ngay sau khi dữ liệu được thiết lập cho đến khi nhận được ACK một, sau đó

kích thước cửa sổ là cắt giảm một nửa ví dụ như từ 4x đến 2x Thất bại có thể

là do sự tắc nghẽn ví dụ như một bộ đệm đầy đủ về nhận, hoặc lỗi trên các phương tiện truyền thông

9 Trên truyền dẫn tới thành công, đoạn đường lên bắt đầu chậm lại

Trang 23

5.3 Kích thước của cửa sổ trượt

Kích thước cửa sổ có thể được sử dụng trong một phân đoạn đã được định nghĩa trước đó, tuy nhiên nó thường được sử dụng cửa sổ lên bởi một số phân khúc của hàng trăm byte trong mỗi một kích thước cửa sổ có nghĩa là mỗi byte của dữ liệu được yêu cầu để được công nhận trước đó có thể chuyển tiếp tới người nhận Điều này là không

hiệu quả và do đó kích thước cửa sổ thường lớn hơn nhiều và thường là một cửa sổ

trượt (như mô tả trước đó) là một giao thức động trong TCP và phụ thuộc vào số lỗi

xảy ra trong một kết nối Các 'trượt' là một yếu tố mô tả các octet được phép được truyền từ một dòng các octet đã hình thành trong một đoạn dữ liệu Như việc truyền

dữ liệu này được tiến hành thành từng đoạn, các hoạt động và trình bày cửa sổ dọc theo octet như octet được truyền và nhận dữ liệu ví dụ như là công nhận những dữ liệu trong octec dọc theo cửa sổ Khi người gửi nhận được một ACK, điều này sẽ xác định nơi cửa sau của cửa sổ trượt Các cửa sổ nhận có kích thước xác định bất kỳ dữ liệu nào không đựoc gửi có thể được gửi ngay lập tức vì điều này ngụ ý rằng có phòng trong bộ đệm nhận Nếu kích thước cửa sổ sau đó từ từ giảm nó cho thấy rằng các ứng dụng đang chạy chậm để lấy dữ liệu ra khỏi ngăn xếp TCP Nếu nhận thấy một kích thước cửa sổ là 0, sau đó người gửi không thể gửi bất kỳ byte nữa cho đến khi nhận gửi một gói với kích thước cửa sổ lớn hơn 0

Đi theo kịch bản mà người gửi có một chuỗi các byte để gửi, nói rằng số 1-20, với một bộ tiếp nhận những người có kích thước cửa sổ của mười Người gửi sau đó sẽ diễn ra một cửa sổ quanh mười byte đầu tiên và truyền chúng đi Sau đó nó sẽ chờ đợi một sự thừa nhận tiếp theo Theo sau đó nó sẽ gửi một ACK của 11 có nghĩa là nó thành công đã nhận được 10 byte đầu tiên, và bây giờ là hy vọng byte 11 tiếp theo Tại thời điểm này, người gửi di chuyển cửa sổ trượt (có kích thước 10) 10 byte cùng

để trang trải byte 11-20 Người gửi sau đó truyền các byte thứ 11 tới 20 đi tiếp

Ứng dụng xác định kích thước cửa sổ ban đầu và bạn có thể thấy kích thước này cho mỗi thiết bị đồng bộ ở ban đầu (bắt tay ba bước) Windows sử dụng 8.760 byte cho Ethernet theo mặc định, mặc dù điều này có thể được thay đổi trong trường đăng

ký Số 6 là 8.760 x 1.460 là số lượng dữ liệu một khung Ethernet toàn có thể thực hiện

và là MSS cho Ethernet theo mặc định, được chia sẻ trong khi đồng bộ hóa này Khi

Trang 24

định cỡ một cửa sổ, 6-8 lần kích thước gói tin được coi là hiệu quả nhất Những sai sót nhỏ xảy ra trên mạng, các cửa sổ lớn hơn được cho phép để có được và băng thông hơn được sử dụng cho dữ liệu Vấn đề duy nhất với kích thước cửa sổ lớn là nếu có một sự thất bại truyền tại bất kỳ điểm nào, toàn bộ các phân khúc sẽ được gửi lại qua

đó chiếm băng thông một đường bất kỳ

Một điều được nhận thức với các giao thức TCP có khởi động chậm hơn so với của kích thước cửa sổ Ví dụ, nếu bạn đang gửi một file 10Mb bằng cách sử dụng FTP, có thể mất 1Mb chuyển giao trước khi chuyển giao xảy ra ở tốc độ tối ưu Điều này là do kích thước cửa sổ bắt đầu giảm nhỏ để cho nhiều các lưu lượng ban đầu là tiêu đề chứ không phải là dữ liệu Tải tập tin nhỏ bằng cách sử dụng FTP không đạt được tốc độ

tải dữ liệu tối ưu, tải các tập tin lớn là hiệu quả hơn Cơ chế này được gọi là Slow

Start

Kích thước cửa sổ là số tối đa của byte dữ liệu có thể được truyền đi trong một đoạn mà không ghi nhận Cách nhìn này là kích thước cửa sổ quyết định số lượng dữ liệu có thể được gửi trong RTT Dưới đây là một số ví dụ:

 Một kích thước cửa sổ có 8KB sẽ mất 32ms để được truyền vào một liên kết nối tiếp 2Mbps ((8192 * 8) / 2048000 = 0.032s) RTT là do đó 64ms Vì vậy, cho mỗi 64ms, 8KB được truyền đi bởi vì các gói tin chỉ có thể được gửi cho 32ms thời gian mà như chúng ta đang phải chờ đợi cho Acks nghĩa là chúng tôi không thể sử dụng những khả năng đầy đủ của các băng thông Điều này chứng tỏ một cửa sổ 8KB cho chúng ta một thông lượng dữ liệu tối đa là 8192 * 8 * 1000/64 = 1024000bps (1Mbps), không phân biệt tốc độ tiềm năng của liên kết

 Một kích thước cửa sổ có 8KB sẽ mất 400ms vào một liên kết vệ tinh một chiều RTT là do đó 800ms Vì vậy, cho mọi 800ms, 8KB được truyền đi bởi vì các gói tin chỉ có thể được gửi cho 400ms thời gian mà như chúng ta đang phải chờ đợi cho Acks tức là một lần nữa chúng tôi không thể sử dụng những khả năng đầy đủ của các băng thông Điều này chứng tỏ một cửa sổ 8KB cho chúng ta một thông lượng dữ liệu tối đa là 8192 * 8 * 1000/800 = 81920bps hoặc về 82kbps, không phân biệt tốc độ tiềm năng của liên kết Điều này là do của sự chậm trễ rất lớn

Trang 25

 Một kích thước cửa sổ có 8KB sẽ mất 7s để được truyền vào một liên kết nối 9600bps ((8192 * 8) / 9600 = 6.83s) Hầu hết các cửa sổ 8KB sẽ được lưu trong

bộ nhớ đệm vì sự chậm trễ khi liên kết như bit sẽ gửi chậm hơn

TCP có trường cửa sổ 16-bit cho phép một kích thước lớn nhất là 65.535 byte (64KB) có thể được gửi bởi mỗi RTT Đối với một liên kết vệ tinh với RTT 800ms thông lượng tối đa với tối đa kích thước cửa sổ được cho bởi 65535 * 8 * 1000/800 = 655350bps hay khoảng 660Kbps Một vệ tinh có tốc đọ 2Mb cho phép bạn quy mô kích thước TCP có trường cửa sổ lên đến 30-bit, một lĩnh vực này là cửa sổ Tùy chọn Quy mô tả trong RFC 1323.

Nó sẽ là thích hợp hơn để có một kích thước cửa sổ phù hợp với kích thước của liên kết Sẽ có ít bộ nhớ đệm thừa, các Acks sẽ trở lại nhanh hơn và nhiều hơn nữa ,

các băng thông sẽ được sử dụng lý tưởng mà bạn đang tìm kiếm một thước Cửa sổ>

= Băng thông * RTT Vì vậy, một 128Kbps nối liền với một RTT của 40ms sẽ yêu

cầu một kích thước cửa sổ ít nhất là 128000 / 8 * 0,04 = 640 byte Tương tự như vậy, 2Mbps một liên kết với một RTT 20ms sẽ cần một kích thước cửa sổ ít nhất là

2000000 / 8 * 0,02 = 5.000 byte Vì vậy, một liên kết vệ tinh 128Kbps với RTT của 800ms sẽ yêu cầu một kích thước cửa sổ ít nhất là 128000 / 8 * 0,8 = 12800 byte Một

kỹ thuật như này (mặc dù phức tạp hơn) được sử dụng bởi các sản phẩm như đóng gói Rằng TCP kết nối giữa khách hàng và máy chủ, và sửa đổi các kích thước cửa sổ theo các đặc tính của liên kết giữa chúng để phù hợp nhất đối với từng quá trình truyền gói tin trong mạng

Trang 26

(tiếp theo seq.no 17768657) Ack.no 0

8.192 cửa sổ LEN = 0 byte SYN-ACK Seq.no 82980009

(tiếp theo seq.no 82980010) Ack.no 17768657

8.760 cửa sổ LEN = 0 byte ACK Seq.no 17768657

(tiếp theo seq.no 17768657) Ack.no 82980010

8.760 cửa sổ LEN = 0 byte Seq.no 17768657 (tiếp theo seq.no 17768729) Ack.no 82980010

8.760 cửa sổ LEN = 72 byte dữ liệu

Seq.no 82980010 (tiếp theo seq.no 82980070)

Trang 27

Ack.no 17768729 8.688 cửa sổ LEN = 60 byte dữ liệu Seq.no 17768729

(tiếp theo seq.no 17768885) Ack.no 82980070

8.700 cửa sổ LEN = 156 byte của dữ liệu

Seq.no 82980070 (tiếp theo seq.no 82980222) Ack.no 17768885

8.532 cửa sổ LEN = 152 byte của dữ liệu FIN Seq.no 17768885

(tiếp theo seq.no 17768886) Ack.no 82980222

8.548 cửa sổ LEN = 0 byte FIN-ACK Seq.no 82980222

(tiếp theo seq.no 82980223) Ack.no 17768886

Trang 28

8.532 cửa sổ LEN = 0 byte ACK Seq.no 17768886

(tiếp theo seq.no 17768886) Ack.no 82980223

8.548 cửa sổ LEN = 0 byte

Giá trị của LEN là chiều dài của dữ liệu TCP được tính bằng cách trừ IP header

TCP và kích cỡ từ kích thước datagram IP

1 Các phiên họp bắt đầu với trạm 160.221.172.250 khởi SYN có chứa số thứ tự

17.768.656 là ISS Ngoài ra, các octet đầu tiên của dữ liệu chứa các số tiếp theo

trình tự 17.768.657 Có số không chỉ trong lĩnh vực số báo nhận làm điều này là không được sử dụng trong phân khúc SYN Kích thước cửa sổ của người gửi bắt đầu giảm giá là 8.192 octet như giả định là chấp nhận được để nhận

2 Các trạm tiếp nhận gửi cả ISS của riêng mình (82980009) trong lĩnh vực dãy số và thừa nhận số thứ tự của người gửi bằng 1 (17768657) hy vọng điều này sẽ được bắt

đầu từ số thứ tự của các byte dữ liệu đó sẽ được gửi tới bởi người gửi Điều này

được gọi là SYN-ACK phân đoạn Kích thước cửa sổ của người nhận bắt đầu giảm giá là 8.760

3 Một khi SYN-ACK đã được nhận, người gửi các vấn đề một ACK thừa nhận rằng ISS bằng 1 và đặt nó trong lĩnh vực ghi nhận (82980010) Người gửi này cũng sẽ

gửi cùng một dãy số mà nó được gửi trước đây (17768657) Đây là phân khúc sản phẩm nào của dữ liệu và chúng tôi không muốn các buổi chỉ để giữ ramping lên

các số thứ tự không cần thiết Kích thước cửa sổ của 8.760 được công nhận bởi

người gửi

Trang 29

4 Từ bây giờ ACK s được sử dụng cho đến trước khi kết thúc phiên giao dịch này

Những người gửi ngay bây giờ bắt đầu gửi dữ liệu bằng cách ghi rõ số thứ tự

17768657 lần nữa vì đây là số thứ tự của byte đầu tiên của dữ liệu mà nó được gửi

Một lần nữa số 82980010 xác nhận được gửi đó là số thứ tự dự kiến của byte đầu

tiên của dữ liệu mà sẽ gửi cho người nhận Trong kịch bản trên, người gửi là intitially gửi 72 byte dữ liệu trong một phân đoạn Các quá trình phân tích mạng

có thể chỉ ra con số dự kiến tiếp theo trong chuỗi các dấu vết, trong trường hợp này

này sẽ được 17768657 + 72 = 17.768.729 Người gửi đã đồng ý với kích thước cửa sổ của 8.760 và sử dụng nó chính nó

5 Tiếp nhận công nhận việc nhận được dữ liệu bằng cách gửi về số 17768729 trong

lĩnh vực số xác nhận qua đó ghi nhận rằng các byte tiếp theo của dữ liệu được gửi

đi sẽ bắt đầu với số 17768729 dãy (tiềm ẩn ở đây là sự hiểu biết rằng con số lên

đến trình tự và bao gồm cả 17768728 đã được công nhận) Chú ý rằng không phải tất cả các byte cần phải được công nhận Người nhận cũng sẽ gửi lại số thứ tự của byte đầu tiên của dữ liệu trong phân khúc của riêng mình (82980010) mà là để được gửi đi Thu được gửi 60 byte dữ liệu Các nhận trừ 72 byte từ kích thước cửa

sổ trước của 8.760 và gửi 8.688 như kích thước cửa sổ mới

6 Người gửi công nhận việc nhận được dữ liệu với số 82980070 (82980010 + 60)

trong lĩnh vực số xác nhận, đây là số thứ tự của byte dữ liệu tiếp theo dự kiến sẽ được nhận được từ người nhận Những người gửi gửi 156 byte dữ liệu bắt đầu từ

số thứ tự 17.768.729 Ngươi gửi trừ 60 byte từ kích thước cửa sổ trước của 8.760

và gửi kích thước mới của 8.700

7 Tiếp nhận công nhận nhận được dữ liệu này với số 17768885 (17768729 + 156) vì

nó đã mong nó, và gửi 152 byte dữ liệu bắt đầu bằng số thứ tự 82.980.070 Nhận

Các trừ 156 byte từ kích thước cửa sổ trước đó và gửi số 8.688 kích cỡ của cửa sổ

mới 8.532

8 Ngươi gử i thừa nhận điều này với số thứ tự tiếp theo dự kiến 82980070 + 152 =

82980222 và gửi số chuỗi dự kiến 17.768.885 tại bên người nhận bởi vì vào thời

điểm này ứng dụng muốn đóng phiên Người gửi sẽ trừ 152 byte từ kích thước cửa

sổ trước của 8.700 và gửi kích thước mới của 8.548

Trang 30

9 Bên nhận sẽ gửi một FIN-ACK nhận các FIN dãy số ghi nhận bằng 1-17.768.886

đó là số sẽ mong đợi trên ACK cuối cùng Ngoài ra bên nhận sẽ gửi số chuỗi dự kiến 82.980.223 Kích thước cửa sổ vẫn ở 8.532 như không có dữ liệu đã được

nhận được từ FIN của người gửi

10 Các ACK cuối cùng được gửi bởi người gửi xác nhận số chuỗi 17768886 và thừa nhận nhận được 1 byte với số ghi nhận 82.980.223 Kích thước cửa sổ kết thúc tại

8.548 và các kết nối TCP là bây giờ đóng cửa

Từ bên trên, bạn có thể thấy rằng nếu bạn có dữ liệu lưu chuyển các ứng dụng không phải truyền trực tiếp, bạn có thể có một kịch bản mà ở đó có thể là một chuỗi dài của Acks nơi mà các số thứ tự là như nhau, các dữ liệu thu được đều có sự liên quan tới nhau Ngoài ra, bạn có thể có một cửa sổ ứng dụng bắt đầu được kích hoạt, điều đó có nghĩa rằng trong khi chờ đợi được gửi ACK của người nhận với một kích thước cửa sổ là 0 cho đến khi không gian đệm được giải phóng và ghi nhận một gửi cùng với kích thước cửa sổ đẩy gói tin thêm một lần nữa, do đó cho phép người gửi để gửi dữ liệu một lần nữa và số thứ tự bắt đầu tăng trở lại

Ví dụ trên là một ví dụ đơn giản cho việc truyền dữ liệu phiên giao dịch, tuy nhiên bạn thường có nhiều phiên TCP để sắp xếp thông qua việc sử dụng các cảng khác nhau và số thứ tự, cộng với các phân đoạn trong bất kỳ một phiên họp được có thể gửi lại, gửi đi trong một hàng hoặc cửa sổ là đông lạnh do ngăn xếp bộ đệm bị đầy tất cả đều có thể làm cho nó thú vị theo dõi các số thứ tự Hãy nhận biết rằng ACK chỉ

có để xác nhận số chuỗi cuối nhận được, do đó nếu bốn phân đoạn đã được gửi trong một hàng, chỉ có một ACK được yêu cầu Nếu số thứ tự không đến nơi thì toàn bộ phân đoạn bị mất với tất cả các byte của dữ liệu bên trong nó, cộng thêm bất kỳ phân đoạn có thể đã được gửi đi trong một hàng trước khi phân đoạn bị mất

Bạn sẽ được thông báo trong ví dụ trên là kích thước cửa sổ đều giảm, điều này cho thấy rằng không có dữ liệu đã được xử lý ra khỏi ngăn xếp TCP trong thời điểm này Trong một phiên làm việc lâu hơn, bạn sẽ nhận thấy cửa sổ tiếp tục tăng trở lại khi bộ nhớ đệm bị rỗng bởi các ứng dụng Trong ví dụ trên các kích thước cửa sổ có thể dễ dàng được thay đổi theo các gói phân đoạn khác nhau, tuy nhiên ACK không

Trang 31

phải lúc nào cũng làm theo và có thể được ghi nhận nhiều hơn một phân đoạn, điều này làm cho nó thêm mềm dẻo để thực hiện tiếp công việc

Các chi tiết mô tả ở trên trường hợp đơn giản của các kết nối TCP, tuy nhiên bạn

có thể nhận được các tình huống phức tạp hơn, nơi kết nối đồng thời được thiết lập, hoặc các phân đoạn bị lạc hoặc bị gửi lại Việc sử dụng khôn ngoan của RST (khởi động lại) giúp làm sạch những kết nối này lên Bạn có thể làm theo từng bước các kịch bản khác nhau trong RFC 793.

6 Các thuật toán trong TCP

6.1 Thuật toán Slow-Start

Các giao thức TCP sẽ bắt đầu kết nối với nhiều người gửi tiêm chích phân đoạn vào mạng, cho đến kích thước cửa sổ quảng cáo bằng thu Trong khi đây là OK khi hai máy trạm trên cùng một mạng LAN, nếu có bộ định tuyến và liên kết chậm hơn giữa người gửi và các nơi nhận tiếp nhận, các vấn đề có thể nảy sinh Một số bộ định tuyến trung gian phải xếp hàng các gói dữ liệu, và nó có thể cho rằng các bộ định tuyến để chạy trên không gian cho thấy cách tiếp cận này có thể làm giảm thông lượng của TCP kết nối mạng

Thuật toán để tránh trường hợp này được gọi là chậm - bắt đầu Nó hoạt động bằng cách quan sát là tỷ lệ mà tại đó các gói dữ liệu mới nên được đưa vào mạng và tỷ

lệ gói tin lúc đó sẽ được trả về đầu kia

Chậm bắt đầu thêm một cửa sổ để TCP của người gửi: sự tắc nghẽn cửa sổ, được gọi là "CWnd" Khi một kết nối mới được thành lập với một lưu trữ trên mạng khác, các cửa sổ tắc nghẽn được khởi tạo một phân đoạn (tức là kích thước phân đoạn công

bố vào cuối khác, hoặc các mặc định, thường là 536 hoặc 512) Mỗi một ACK được nhận, các cửa sổ tắc nghẽn là tăng thêm một phân đoạn Người gửi có thể truyền tải lên đến mức tối thiểu của cửa sổ tắc nghẽn và quảng cáo cửa sổ Cửa sổ tắc nghẽn dòng điều khiển được áp đặt bởi người gửi, trong khi các cửa sổ quảng cáo là dòng điều khiển áp đặt bởi máy thu Điều thứ nhất là dựa trên đánh giá của người gửi của nhận thức tắc nghẽn mạng; thứ hai là liên quan đến bộ đệm không gian ở cho người nhận kết nối này

Trang 32

Người gửi bắt đầu bằng cách truyền một phân khúc và chờ đợi ACK phản hồi Khi

đó ACK được nhận, cửa sổ tắc nghẽn là tăng 1-2, và hai phân đoạn có thể được gửi đi Khi các phân đoạn được ghi nhận, cửa sổ tắc nghẽn sẽ tăng lên bốn Điều này cung cấp một sự tăng trưởng hàm mũ, mặc dù nó không phải là chính xác theo hàm mũ vì người nhận có thể làm chậm Acks của nó, thường gửi một ACK cho mỗi hai phân đoạn mà nó nhận được

Tại một số điểm năng lực của internet có thể được đạt tới, và một bộ định tuyến trung gian sẽ bắt đầu gói “discarding” Này cho các người gửi rằng cửa sổ tắc nghẽn của nó đã đạt mức quá lớn Sớm triển khai thực hiện bắt đầu chậm chỉ khi đầu kia là trên một mạng khác nhau

6.2 Thuật toán tránh nghẽn mạng

Tắc nghẽn có thể xảy ra khi dữ liệu đến trên một đường ống lớn (một mạng LAN nhanh) và được gửi ra một ống nhỏ hơn (chậm hơn một WAN) Tắc nghẽn có thể cũng xảy ra khi dòng đầu vào nhiều đến một router có đầu ra khả năng sẽ thấp hơn tổng các yếu tố đầu vào Tránh tắc nghẽn là một cách để đối phó với các gói dữ liệu

bị mất

Giả định của thuật toán là mất gói thiệt hại gây ra bởi là rất nhỏ (ít hơn nhiều so với 1%), do đó những mất mát của một gói tín hiệu tắc nghẽn một nơi nào đó trong mạng giữa các nguồn và đích Có hai chỉ mất gói: một thời gian chờ xảy ra và biên nhận của Acks trùng lặp

Tránh tắc nghẽn và bắt đầu chạy chậm là thuật toán độc lập với mục tiêu khác nhau Nhưng khi xảy ra tắc nghẽn giao thức TCP phải làm chậm tốc độ truyền dẫn của các gói dữ liệu vào mạng, và sau đó gọi chậm bắt đầu để có được những điều sẽ trở lại Trong thực tế chúng là triển khai thực hiện cùng nhau

Tránh tắc nghẽn và bắt đầu chậm yêu cầu hai biến thể duy trì kết nối nhau: một cửa

sổ tắc nghẽn, CWnd, và một chậm bắt đầu ngưỡng kích thướccửa sổ trượt Thuật toán kết hợp hoạt động như sau:

1 Khởi động cho một kết nối cho bộ CWnd đến một phân đoạn và ngưỡng kích thước cửa sổ trượt đến 65.535 byte

Trang 33

2 Những thói quen không bao giờ sản lượng TCP gửi hơn giá tối thiểu của CWnd

và các cửa sổ quảng cáo của người nhận

3 Khi tắc nghẽn xảy ra (chỉ định bởi một thời gian chờ hoặc tiếp nhận các của Acks trùng lặp), một nửa kích thước cửa sổ hiện hành (các tối thiểu của CWnd và cửa sổ quảng cáo của người nhận, nhưng lúc ít nhất hai phân đoạn) được lưu trong ssthresh Ngoài ra, nếu các tắc nghẽn được chỉ định bởi một thời gian chờ, CWnd được thiết lập là một trong những phân khúc (nghĩa là chậm bắt đầu)

4 Khi dữ liệu mới được ghi nhận vào cuối khác, tăng CWnd, nhưng cách làm tăng phụ thuộc vào việc giao thức TCP được thực hiện bắt đầu làm chậm hoặc tránh tắc nghẽn

Nếu CWnd là nhỏ hơn hoặc bằng kích thước cửa sổ trượt, TCP là bắt đầu chậm; mặt khác TCP đang hoạt động tránh tắc nghẽn Qúa trình chậm bắt đầu tiếp tục cho đến khi TCP sẽ đợi cho đến khi tắc nghẽn không còn xảy ra, và sau đó sẽ tránh ùn tắc trên mạng

Qua trình chậm bắt đầu có khi CWnd phân đoạn, và được phân đoạn mỗi khi nhận được một ACK Như đã đề cập trước đó, điều này sẽ mở ra cửa sổ theo cấp số nhân: gửi một đoạn, sau đó hai, sau đó bốn v.v Đây là một sự tăng trưởng tuyến tính của CWnd Việc tăng CWnd nên được nhiều nhất là thời gian đáp trả đi được một vòng từ nơi gửi tới nơi nhận Khi đã nhận đủ thông tin đáp trả từ ACK cũng chính là lúc mạng

không còn tắc nghẽn quá trình chuyển gói tin tiếp tuch được thực hiện

6.3 Thuật toán truyền lại và phục hồi nhanh

Nhanh chóng truyền lại :

Trước khi miêu tả sự thay đổi, có thể nhận ra rằng TCP tạo ra một sự thừa nhận ngay lập tức (một ACK trùng lặp) khi một out của đoạn thứ tự nhận được với một ghi chú mà một trong những lý do để làm như vậy đã được cho thử nghiệm nhanh truyền lại thuật toán) ACK trùng lặp này không nên bị trì hoãn

Mục đích của ACK trùng lặp này là để cho đầu kia biết rằng một phân khúc đã được nhận ra trật tự, và để cho nó những gì dãy số dự kiến

Kể từ khi TCP không biết liệu một ACK trùng lặp là do bị mất phân đoạn hoặc chỉ cần sắp xếp lại một đoạn, nó đợi cho một số lượng nhỏ của Acks sao để được nhận

Trang 34

Người ta cho rằng nếu có chỉ là một sắp xếp lại các phân đoạn, sẽ có chỉ một hoặc hai Acks trùng lặp trước khi phân đoạn sắp xếp lại được xử lý, mà sẽ sau đó tạo ra một ACK mới Nếu ba hoặc nhiều bản sao được Acks nhận được trong một hàng, đó là một dấu hiệu mạnh rằng một phân đoạn đã được bị mất TCP sau đó thực hiện việc truyền lại của những gì hình như là thiếu phân đoạn, mà không cần chờ đợi cho một giờ để qua trình truyền lại hết hạn

Nhanh chóng phục hồi

Sau khi truyền lại nhanh chóng gửi những gì hình như là phân đoạn bị thiếu, tránh tắc nghẽn, nhưng bắt đầu không chậm được thực hiện Đây là thuật toán nhanh chóng phục hồi Nó là một cải tiến cho phép thông qua dưới ách tắc vừa phải, đặc biệt là cho các cửa sổ lớn

Lý do không thực hiện bắt đầu chậm trong trường hợp này là nhận được Acks sao nói TCP nhiều hơn một gói chỉ có bị mất Kể từ khi tiếp nhận chỉ có thể tạo ra các ACK trùng lặp khi phân đoạn khác là nhận được, mà phân khúc đã để lại mạng và là trong

bộ đệm của máy thu Đó là, hiện còn có dữ liệu chảy giữa hai kết thúc, và TCP không muốn giảm bớt dòng chảy đột ngột bằng cách đi vào bắt đầu chậm

Các thuật toán nhanh chóng truyền lại và phục hồi nhanh chóng thường cùng nhau thực hiện như sau

1 Khi lặp ACK thứ ba liên tiếp nhận được, Khi kích thước cửa sổ đạt một nửa cửa

sổ tắc nghẽn hiện nay, CWnd, nhưng không kém hơn hai phân đoạn Truyền lại những phân đoạn bị thiếu Đặt CWnd để kích thước cửa sổ cộng với 3 lần kích thước của phân khúc Đây là nổ cửa sổ tắc nghẽn bởi số lượng các phân đoạn có trái mạng lưới

và đầu kia mà đã lưu trữ

2 Mỗi thời gian khác ACK trùng lặp đến, tăng CWnd do kích thước phân đoạn Điều này nổ cửa sổ tắc nghẽn cho thêm đoạn đó đã để lại mạng Truyền tải một gói, nếu được cho phép bởi các giá trị mới của CWnd

3 Khi ACK tiếp đến là thừa nhận dữ liệu mới, thiết lập CWnd để kích thứoc cửa

sổ (giá trị thiết lập trong bước 1) ACK này nên là thừa nhận việc truyền lại từ bước 1, một trong một vòng thời gian sau khi việc truyền lại đã hoàn thành Ngoài ra, điều này nên ACK thừa nhận tất cả các phân đoạn trung gian gửi giữa nơi mất gói và nơi

Trang 35

nhận của các ACK trùng lặp đầu tiên Bước này là tránh tắc nghẽn, kể từ TCP giảm xuống một nửa khi gói đã bị mất

7 TCP trong giao thức Snoop

Hầu hết các ứng dụng hiện tại của mạng đều có yêu cầu sử dụng truyền dẫn TCP đáng tin cậy Vì vậy nó mong muốn để đạt được tất cả những mục tiêu về việc cải thiện hiệu qủa của hệ thống mạng không dây Để hiểu rõ hơn về giao thức này tôi giả

sử truyền dữ liệu từ một máy chủ cố định (FH) tới một máy lưu trữ di động (MH) thông qua một trạm cơ sở (BS) Trạm cơ sở chính là nơi định tuyến các gói tin chuyển

đi sẽ được gắn thêm một khối gọi là Snoop Khối Snoop duy trì bộ nhớ đệm (cache) của các gói tin TCP được gửi từ các FH chưa đựoc ghi nhận bởi các MH Khi có một gói tin mới được chuyển đến từ FH, Snoop thêm vào nó một bộ nhớ đệm và gửi các gói dữ liệu trên vào phần định tuyến của các gói tin, trong khi chức năng định tuyến vẫn thực hiện như thông thường Khối Snoop cũng theo dõi tất cả các gói “ACK” được gửi từ máy trạm lưu trữ di dộng Khi một gói được phát hiện bị mất trong quá trình truyền tin vì bất kỳ một lý do nào đó ngay lập tức khối Snoop này sẽ yêu cầu truyền lại ngay lập tức gói tin bị mất tới đích nhận Do đó các trạm cơ sở Snoop ẩn mất gói tin đến từ FH với các ACK không trùng lập nhau, vì vậy nó đã làm giảm bớt hiện tượng tắc nghẽn và tăng hiệu năng được trong mạng

Các khối Snoop bao gồm hai thủ tục kết nối đó là: Snoop Data và Snoop ACK Snoop Data là quá trình Cache các gói tin trong qua trình truyền dữ liệu Còn Snoop ACK là quá trình ACK đến từ các MH và ở đĩa lưu trữ các gói tin cần truyền lại từ các trạm cơ sở đến các máy chủ lưu trữ di động

7.1 Snoop Data

Snoop data là quá trình sử lý các gói tin từ các trạm lưu trữ cố định TCP thực hiện một đề án cửa sổ trượt để thực hiện quá trình truyền các gói tin dựa trên cửa sổ tắc nghẽn của nó đồng thời kiểm soát dòng chảy của cửa sổ TCP là một giao thức dòng Byte và mỗi byte của dữ liệu có một số chuỗi liên kết Mỗi gói tin TCP được xác định duy nhất bởi số thứ tự của Byte đầu tiên của dữ liệu và kích thước của nó Tại BS,

Trang 36

Snoop theo dõi những gói tin được truyền đi trong quá trình kết nối Một trong số những gói dữ liệu đó có thể đến BS từ FH và Snoop_Data sẽ sử lý chúng theo một vài cách khác nhau:

a Một gói mới trong một chuỗi TCP bình thường: Đây là trường hợp thông thường khi một gói mới tăng kích cỡ tiếp tục được gửi tới BS Trong trường hợp này gói tin sẽ được thêm vào bộ nhớ cache của Snoop và được chuyển tiếp vào MH

b Một chuỗi dữ liệu được lưu trữ trong trước đó: Đây là một trường hợp ít phổ biến, nhưng nó sẽ xảy ra khi gói tin bị qua hạn thời gian tới người nhận Nó cũng có thể xảy ra khi một dòng dữ liệu được người gửi truyền lại tới người nhận quá nhanh tới trạm cơ sở Các hành động này sẽ được xử lý khác nhau còn tuỳ thuộc vào các gói dữ liệu này lớn hơn hoặc ít hơn các gói vừa nhận cuối cùng Nếu các gói dữ liệu lớn hơn gói vừa nhận cuối cùng rất có khả năng gói này không phải đến từ

MH trước đó và chúng sẽ tiếp tục chuyển gói tin này vào trong mạng Mặt khác nếu các chuỗi này thấp hơn gói vừa nhận trước đó chứng tỏ chúng vừa được nhận bởi MH trước đó Tại thời điểm này Snoop có thể loại bỏ gói tin thừa này và tiếp tục hoạt động bình thường nhưng việc loại bỏ gói tin không phải là điều tốt nhất được thực hiện trong TCP Lý do có sự chênh lệch về kích cỡ của gói tin là ACK ban đầu với một dãy số có thể bị mất do sự tắc nghẽn trong khi đi lại cho các FH

Để tạo thuận lợi cho người gửi để nhận được hiện trạng kết nối càng nhanh càng tốt thì TCP sẽ tương ứng với ACK cuối cùng tại BS được tạo ra bởi Snoop ( với địa chỉ nguồn và cổng tương ứng với MH) và gửi tới FH

c Một chuỗi dữ liệu không được lưu trữ trước đó:Trong trường hợp này một trong hai gói dữ liệu bị mất sớm do tắc nghẽn trên mạng hoặc đã được chuyển giao ra khỏi trật tự của mạng Ngay lập tức các Snoop sẽ báo bằng cách gắn thêm các gói tin và chuyển tới MH, ngay lập tức các gói tin mất này sẽ được đánh dấu truyền lại cho người gửi

Trang 37

7.2 Snoop ACK()

Snoop_ack () giám sát và xử lý các Acks đưa trở lại của MH và thực hiện các hoạt động khác nhau tùy thuộc vào loại và số lượng Ack nó nhận được Những Acks rơi vào một trong ba loại:

a Một ACK mới: Đây là trường hợp phổ biến trong chuỗi gói dữ liệu nhận được ở các MH Thừa nhận này sẽ làm sạch bộ nhớ cache của snoop và tất cả các gói dữ liệu nhận được giải phóng Vòng tròn thời gian ước tính cho liên kết không dây cũng được cập nhật vào lúc này Ước tính này không được thực hiện cho mỗi gói, nhưng chỉ cho một gói tin trong mỗi cửa sổ của truyền dẫn, và chỉ khi không có truyền đã xảy ra ở cửa sổ đó Các điều kiện cuối cùng là cần thiết vì nó không thể nói chung để xác định sự xuất hiện của một sự thừa nhận cho một gói tin đã truyền lại cho các gói dữ liệu gốc hoặc cho việc truyền lại Cuối cùng, thừa nhận là chuyển tiếp đến các FH

b Một ACK loại bỏ: Đây là một sự thừa nhận ít hơn thừa nhận cuối nhìn thấy bởi các Snoop và là một tình huống mà rất hiếm khi xảy ra Đây là loại bỏ và các giao thức vẫn tiếp tục

c Một ACK trùng lặp (DUPACK): Đây là một ACK giống hệt một trước đó đã nhận được một Đặc biệt, nó giống như ACK cuối thấy cho đến nay Trong trường hợp này các gói tiếp theo chuỗi từ DUPACK đã không được nhận bởi MH này Tuy nhiên, một số gói tiếp theo trong chuỗi đã được nhận, kể từ MH tạo ra một DUPACK cho mỗi phân đoạn TCP đã nhận được trên chuỗi Một trong một vài hành động được lấy phụ thuộc vào loại thừa nhận trùng lặp và nhà nước hiện nay của snoop:

Các trường hợp đầu tiên xảy ra khi chúng tôi nhận được một DUPACK cho một gói là hoặc không có trong bộ nhớ cache ăn trộm ho ặc đã được đánh dấu là đã được truyền lại của người gửi Nếu không được gói trong bộ nhớ cache, nó cần được gửi lại

từ FH, có lẽ sau khi giải toả tắc nghẽn cơ chế kiểm soát cần thiết tại người gửi Nếu gói dữ liệu đã được đánh dấu là một gói được truyền lại từ người gửi, DUPACK cần phải được định tuyến đến FH vì ngăn xếp trên TCP có duy trì nhà nước dựa trên số

Trang 38

lượng Ack sao nó nhận được khi nó truyền lại một gói Vì vậy, cả các tình huống này đòi hỏi các DUPACK để được chuyển đến các FH

Các trường hợp thứ hai xảy ra khi Snoop nhận được một DUPACK rằng nó không

hy vọng sẽ nhận được cho gói Điều này thường xảy ra khi các DUPACK đầu tiên đến cho các gói dữ liệu, sau khi một gói tin tiếp theo trong dòng đạt tới MH Sự xuất hiện của từng gói kế tiếp trong cửa sổ gây ra một DUPACK để được tạo ra cho các gói dữ liệu bị mất Để làm cho số lượng DUPACKs như nhỏ nhất có thể, các gói dữ liệu bị mất và đã đựơc truyền lại ngay sau khi bị mất gói tin được phát hiện, và ở một ưu tiên cao hơn các gói dữ liệu bình thường Điều này được thực hiện bằng việc duy trì hai hàng đợi ở lớp liên kết cho các gói ưu tiên cao và bình thường Ngoài ra, Snoop cũng ước tính số lượng tối đa của Ack có thể đến cho các gói này Điều này được thực hiện bằng cách đếm số lượng các gói dữ liệu được truyền đi sau khi gói dữ liệu bị mất trước khi gói tin đựơc truyền lại

Trường hợp thứ ba xảy ra khi một "dự kiến" DUPACK đến, dựa trên các ước tính tối đa trên Các gói tin sẽ bị mất đã được truyền lại khi DUPACK đầu tiên đã đến (và các ước tính được số không), do đó thừa nhận điều này là bỏ đi Trong thực tế, các gói

đã được truyền lại gửi tới MH trước khi hầu hết các gói dữ liệu này chuyển tiếp và BS thấy sự gia tăng trong chuỗi ACK trước khi tất cả các DUPACKs dự kiến sẽ đến nơi Truyền lại gói tại một ưu tiên cao hơn bằng cách sử dụng một hàng đợi nhanh chóng cải thiện hiệu suất ở tất cả các tỷ lệ lỗi Những lợi ích của phương pháp tiếp cận này

có thể nhìn thấy ở hầu hết các bít đến Đây là một hệ quả của độ dài hàng đợi trung bình trong hàng đợi của quá trình truyền lại.Tỷ lệ lỗi tại các bit cao, hầu hết các gói dữ liệu cần phải được truyền lại, và không có ý nghĩa lợi thế để được bắt nguồn từ việc duy trì hai hàng đợi Tuy nhiên hàng đợi cho phép truyền lại nhanh hơn các gói để tiếp cận với máy chủ lưu trữ di động sớm hơn nếu chỉ có một trong hàng đợi, dẫn đến thông qua cải thiện Snoop theo dõi những số truyền lại tại một nút cho một gói, nhưng khởi tạo lai số này về 0, nếu gói đến một lần nữa từ người gửi sau một thời gian chờ hoặc truyền lại ngày một nhanh Ngoài ra việc truyền lại gói tin còn phụ thuộc vào

Trang 39

số lượng và loại Ack, giao thức Snoop cũng thực hiện việc truyền lại khi thời gian bị qua hạn Điều này được mô tả chi tiết hơn trong phần trên

8 UDP là gì

UDP là một trong những giao thức cốt lõi của giao thứcTCP/IP Dùng UDP,

chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được gọi là datagram

tới máy khác UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu

Những ứng dụng phổ biến sử dụng UDP như DNS (hệ thống tên miền), ứng dụng streaming media, Voice over IP, Trivial File Transfer Protocol (TFTP), và game trực tuyến

9 Cấu trúc trong gói UDP

UDP là giao thức hướng thông điệp nhỏ nhất của tầng giao vận hiện được mô tả trong RFC 768 của IETF

Trong bộ giao thức TCP/IP, UDP cung cấp một giao diện rất đơn giản giữa tầng mạng bên dưới (thí dụ, IPv4) và tầng phiên làm việc hoặc tầng ứng dụng phía trên UDP không đảm bảo cho các tầng phía trên thông điệp đã được gửi đi và người gửi cũng không có trạng thái thông điệp UDP một khi đã được gửi (Vì lý do này đôi khi

UDP còn được gọi là giao thức dữ liệu không an toàn)

UDP chỉ thêm các thông tin multiplexing và giao dịch Các loại thông tin tin cậy cho việc truyền dữ liệu nếu cần phải được xây dựng ở các tầng cao hơn

+ Bits 0 – 15 16 - 31

0 Source Port (cổng nguồn) Destination Port ( cổng đích)

32 Length ( độ dài) Checksum (trường kiểm tra)

Trang 40

64

Data ( dữ liệu)

Phần header của UDP chỉ chứa 4 trường dữ liệu, trong đó có 2 trường là tùy chọn (ô nền đỏ trong bảng)

Trường checksum 16 bit dùng cho việc kiểm tra lỗi của phần header và dữ liệu

-Phương pháp tính checksum được định nghĩa trong RFC 768

Do thiếu tính tin cậy, các ứng dụng UDP nói chung phải chấp nhận mất mát, lỗi hoặc trùng dữ liệu Một số ứng dụng như TFTP có nhu cầu phải thêm những kỹ thuật làm tin cậy cơ bản vào tầng ứng dụng Hầu hết các ứng dụng UDP không cần những

kỹ thuật làm tin cậy này và đôi khi nó bị bỏ đi Streaming media, game trực tuyến và voice over IP (VoIP) là những thí dụ cho các ứng dụng thường dùng UDP Nếu một ứng dụng đòi hỏi mức độ cao hơn về tính tin cậy, những giao thức như TCP hoặc mã

“erasure” có thể dùng thay

Thiếu những cơ chế kiểm soát tắc nghẽn và kiểm soát luồng, các kỹ thuật dựa trên mạng là cần thiết để giảm nguy hiệu ứng cơ tắc nghẽn dây chuyền do không kiểm soát, tỷ lệ tải UDP cao Nói cách khác, vì người gởi gói UDP không thể phát hiện tắc nghẽn, các thành phần dựa trên mạng như router dùng hàng đợi gói (packet queueing) hoặc kỹ thuật bỏ gói như là những công cụ để giảm tải của UDP Giao thức DCCP được thiết kế như một giải pháp cho vấn đề bằng cách thêm hành vi kiểm soát tắc

Ngày đăng: 25/03/2015, 11:01

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w