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

  • Số trang: 85 |
  • Loại file: PDF |
  • Lượt xem: 29 |
  • Lượt tải: 1
nhattuvisu

Đã đăng 26946 tài liệu

Mô 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 6 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 7 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 8 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 9 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 10 (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) Bít 0 – 3 0 4-9 10 - 15 Source Port ( cổng nguồn) 16 - 32 Destination Port (cổng đích) 32 Sequence Number (Số trình tự) 64 Acknowledgement Number 96 128 Data Offset Reserved Flags Check sum Urgent Pointer 160 Options (optional) 160/1 2+ Data ( dữ liệu) Source port ( cổng nguồn) Số hiệu của cổng tại máy tính gửi. Destination port (cổng đích) Window Trang 11 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) Bao gồm 6 cờ: URG Cờ cho trƣờng Urgent pointer ACK Cờ cho trƣờng Acknowledgement PSH Hàm Push RST Thiết lập lại đƣờng truyền SYN Đồng bộ lại số thứ tự FIN Không gửi thêm số liệu Window Số byte có thể nhận bắt đầu từ giá trị của trƣờng báo nhận (ACK) Trang 12 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 đề của IP: + Bít 0 3 4 -7 8- 10 - 15 9 1 Source address (Địa chi nguồn) 0 Destination address (địa chỉ đích) 2 64 Zeros 96 Source Port (cổng nguồn) Protocol TCP length Destination Port (Cổng đích) 128 Sequence Number (Số trình tự) 160 Acknowledgement Number 19 225 - 31 Data Offset Reserved Flags Checksum Window Urgent Poi ter 257 Options (optional) 257/289+ Data (dữ liệu) Trang 13 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. - Options Đây là trƣờng tùy chọn. Nếu có thì độ dài là bội số của 32 bít. - Dữ liệu Trƣờng cuối cùng không thuộc về tiêu đề. Giá trị của trƣờng này là thông tin dành cho các tầng trên (trong mô hình 7 lớp OSI). Thông tin về giao thức của tầng trên không đƣợc chỉ rõ trong phần header mà phụ thuộc vào cổng đƣợc chọn. 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 14 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 15 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 16 Để 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 17 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ỹ: Tầng 4 ứng dụng DNS, TFTP, TLS/SSL, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, TELNET, ECHO, BitTorrent, RTP, PNRP, rlogin, ENRP, … 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. Tầng 3 giao TCP, UDP, DCCP, SCTP, IL, RUDP, … vận 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 18 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. 1 Tầng Ethernet, Wi-Fi, Token ring, PPP, SLIP, FDDI, ATM, Frame Relay, liên kết SMDS, … Những tầng càng cao thì nó càng gần với ngƣời sử dụng hơn, còn những tầng gần đáy gần với thiết bị truyền thông dữ liệu. Mỗi tầng có một giao thức để phục vụ tầng trên nó, và một giao thức để sử dụng dịch vụ của tầng dƣới nó (ngoại trừ giao thức của tầng đỉnh và tầng đáy). 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 nó. Sự trìu tƣợng hóa này cho phép những tầng trên cung cấp những dịch vụ mà các tầng dƣới không thể làm đƣợc, hoặc cố ý không làm. Chẳng hạn IP đƣợc thiết kế với độ đáng tin cậy thấp, và đƣợc gọi là giao thức phân phát với khả năng tốt nhất (thay vì với "độ tin cậy cao" hoặc "đảm bảo nhất"). Điều đó có nghĩa là tất cả các tầng giao vận đều phải lựa chọn, hoặc là cung cấp dịch vụ đáng tin cậy, hoặc là không, và ở mức độ nào. UDP đảm bảo sự toàn vẹn của dữ liệu (bằng cách dùng kiểm tra tổng (checksum)), song không đảm bảo sự phân phát dữ liệu tới đích; TCP cung cấp cả hai, 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 19 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: 4.1. Tầng ứng dụng Tầng ứng dụng là nơi các chƣơng trình mạng thƣờng dùng nhất làm việc nhằm liên lạc giữa các nút trong một mạng. Giao tiếp xảy ra trong tầng này là tùy theo các ứng dụng cụ thể và dữ liệu đƣợc truyền từ chƣơng trình, trong định dạng đƣợc sử dụng nội bộ bởi ứng dụng này, và đƣợc đóng gói theo một giao thức tầng giao vận. 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 20 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 21 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 22 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 23 Đố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:
- Xem thêm -