- Bản vẽ thiết kế :
b. Giao thức điều khiển truyền tin TCP
Một số ứng dụng đòi hỏi giao thức giao vận cung cấp dịch vụ chuyển giao thông tin tin cậy sử dụng TCP bởi nó cung cấp dịch vụ kiểm tra đúng đắn và dữ liệu được truyền với một sự phối hợp thích hợp .Một số đặc điểm của dịch vụ tin cậy mà TCP cung cấp là:
Hướng dòng (Stream Orientation): TCP coi dữ liệu nó gửi đi là một dòng byte không phảI là gói tin .Do đó ,TCP đảm bảo số thứ tự của các byte gửi nhận .Trường Sequency number và Acknowledgment number trong Header của TCP giữ dấu của các byte trong toàn bộ dòng dữ liệu truyền .TCP không bắt hệ thống phải sử dụng một số đặc biệt nào để đánh số dòng byte ,mỗi hệ thống tự chọn một số mà nó sẽ dùng làm điểm bắt đầu .Mỗi trạm cuối phải biết số thứ tự mà trạm kia dùng .Chúng phải trao đổi một segment để đồng bộ hệ thống số sẽ được sử dụng (Synchronize sequence number –SYN) trong quá trình bắt tay .Trường Sequent number trong SYN segment chứa số bắt đầu (ISN) của dòng số đánh thứ tự ,số này được chọn ngẫu nhiên .Mỗi byte trong dữ liệu được giữ dấu bởi ISN do đó byte đầu tiên của dữ liệu mang số ISN+1 .Sequent number chứa vị trí của dòng byte trong gói tin nếu ISN=0 và 4000 byte đã được chuyển giao thì con số tiếp theo sẽ là 4001.
Chuyển giao bộ đệm (Buffered Transfer) :Để giảm số lượng truyền thông ,giao thức cố gắng sử dụng số lượng tối thiểu các segment để truyển tải thông tin .Do vậy ,giao thức sử dụng tối đa độ dài có thể của segment .Trường Window trong TCP header cho biết số byte tối đa mà trạm đích có thể nhận được ,nếu trạm đích có khả năng chấp nhận 6000 byte thì trường window sẽ là 6000 ,trạm gửi có thể điều chỉnh lại dữ liệu cho phù hợp .Nếu trường Window mang giá trị 0 có nghĩa là trạm gửi phải chờ tới khi nhận được một số khác 0 .
Kết nối hai chiều (Full Duplex Connection) :TCP/IP cung cấp kết nối cho cả hai đầu của liên kết .Điều này có nghĩa là tầng phía dưới cung cấp khả năng gửi trả thông báo từ trạm đích trở lại trạm nguồn .TCP là giao thức hướng kết nối .Nó thiết lập quan hệ logic giữa hai trạm tham gia liên kết .Thông tin điều khiển gọi là handshake được trao đổi giữa hai trạm để thiết lập hội thoại trước khi thông tin được truyền .TCP chỉ dẫn chương trình điều khiển của một segment bằng cách đặt một bit dành riêng của cờ tại word thứ 4 của segment header .
Kiểu bắt tay của TCP gọi là three way handshake bởi vì 3 segment được trao đổi .Trạm A bắt đầu kết nối bằng cách gửi một segment với bit SYN .Segment này báo cho trạm B thứ tự trạm A sẽ sử dụng cho những segment của nó gửi ,số thứ tự này bảo đảm cho dữ liệu một trật tự thích hợp .Trạm B đáp lại trạm B vói bit Acknownledgment (ACK) và SYN được đặt .Segment của B thông báo rằng nó đã nhận được thông báo của A và báo cho A biết số thứ tự mà nó sẽ sử dụng .Cuối cùng ,A gửi một segment báo cho B nó đã nhận được thông báo và truyền gói dữ liệu đầu tiên .Chú ý rằng ,gói tin thứ nhất chứa bit SYN và các gói tiếp theo chứa bit ACK .Sau khi trao đổi ,trạm A xác định hiển nhiên trạm đích tồn tại và đã sẵn sàng nhận dữ liệu .Ngay sau khi kết nối được thiết lập ,dữ liệu có thể truyền .Khi kết thúc hợp tác truyền giao dữ liệu ,chúng sẽ trao đổi three way handshake
(FIN) để kết thúc kết nối .Đó là sự trao đổi giữa hai trạm cung cấp một kết nối logic giữa hai hệ thống .
TCP cung cấp dịch vụ tin cậy với một cơ chế gọi là “Positive Ackownledgement with Retransmission”(PAR).Đơn giản là trạm nguồn tiếp tục gửi thông tin đi cho tới khi nó nhận được thông báo dữ liệu đã được nhận chính xác tại trạm đích .Đơn vị thông tin chuyển giao giữa các ứng dụng gọi là segment, mỗi segment chứa checksum để đảm bảo rằng segment không bị phá huỷ trên đường truyền , nếu segment bị phá huỷ , trạm nhận huỷ bỏ nó và sau một thời gian nào đó , trạm gửi sẽ gửi lại gói tin mà nó không nhận được thông báo xác nhận.
Source Port Destination Port
Sequence Number Acknowledgment Number
Offset Reserved Flags Window
Checksum Urgent Pointer
Option Padding Data Destination Address Source Address Type field IP Header TCP Segment CRC
Cấu trúc gói tin TCP
Source Port Cổng nguồn
Destination Cổng đích
Sequency Number Số thứ tự của gói tin
Offset Số thứ tự của byte đầu tiên
Reserved Để dành
Flags Cờ chỉ dẫn
Window Số byte tối đa trạm đích có thể nhận
Urgent Pointer Độ dài dữ liệu khẩn đi sau
Option Tuỳ chọn
Padding Phần điền thêm vào các con số 0
Data Dũ liệu bắt đầu từ đây
Tuy cũng dùng các port number để định danh cho các ứng dụng nhưng một cổng không đủ để định danh cho một thực thể duy nhất trên mạng . TCP là một giao thức hướng kết nối do đó nó cần phải định danh cho cả hai đầu của liên kết.TCP đưa ra định nghĩa endpoin là một cặp số nguyên (host, port )trong đó, host là địa chỉ IP của một máy tính còn port là port number mà máy tính đó sử dụng .
2.2.6 Tầng ứng dụng
Phần lớn người sử dụng chỉ quan tâm đến các dịch vụ thông tin được cung cấp trên Internet.Các ứng dụng có sớm nhất của Internet là Telnet,FTP, SMTP, DNS ngoài ra ngày nay có hàng ngàn ứng dụng khác đang phát triển và ngày một nhiều . Sau đây ta tìm hiểu một số ứng dụng của Internet :
a.Dich vụ tên miền DNS
Việc định vị các máy tính trên mạng bằng các địa chỉ IP có nhiều lợi điểm , tuy nhiên với người sử dunụg , việc nhớ các con số là một việc tẻ nhạt khó chịu . Hơn nữa , địa chỉ IP không mang thông tin về địa lý , tổ chức hay người dùng . Vì thế , người ta xây dựng hệ thống đặt tên gọi là Domain Name Server để cung cấp cho người dùng cách đặt tên cho các máy tính với cách đặt tên thông thường quen thuộc.
Một domainame thông thường có dạng : Tên_ người _dùng @tên miền
Với tên miền được phân làm các cấp nối với nhau bởi dấu chấm “.”. Tên miền được NIC cung cấp
Telnet cho phép ngưòi sử dụng từ một trạm làm việc của mình có thể đăng nhập vào một trạm xa như một đầu cuối nối trực tiếp với trạn xa đó.
Để đăng nhập vào một máy tính ta đánh lệnh : telnet[domain name / IP address]
c.Thư điện tử Email
Đây là một dịch vụ phổ biến nhất trên Internet trước khi World Wide Web ra đời , thông qua dịch vụ này , người sử dụng trên mạng có thể trao đổi các thông báo cho nhau trên pham vi thế giới . Đây là một dịch vụ mà hầu hết các mạng diện rộng đều cài đặt và cũng là dịch vụ cơ bản nhất của một mạng khi ra nhập Internet . Nhiều người sử dụng máy tính tham gia mạng chỉ dùng duy nhất dịch vụ này. Dịch vụ này sử dunụg giao thức SMTP (Simple Mail Transfer Prôtcol) trong họ giao thức TCP/ IP.
d.Giao thức truyền tệp FTP
Đây là một phương pháp sao chép tệp từ một máy tính ở xa về máy tính của người dùng . Ta có thể ngồi tại máy tính của mình truyền hoặc lấy file trên một máy chủ nào đó
2.2.7 Cơ chế địa chỉ Internet
Mỗi thiết bị TCP-IP được nhận dạng bởi một địa chỉ IP .Địa chỉ IP là địa chỉ lớp mạng , nó không phụ thuộc vào địa chỉ lớp liên kết dữ liệu . Mỗi địa chỉ IP xác định duy nhất một Host vào một thiết bị mạng .
Mỗi địa chỉ IP bao gồm Networt ID và Host ID:
- Networt ID (có thể xem như là địa chỉ mạng ) dùng để nhận dạng các hệ thống đặt trong cùng một mạng vật lý được chia bởi các Router. Các hệ thống cùng mạng vật lý phải có cùng Networt ID . Networt ID phải là duy nhất ở trên mạng tương tác.
- Host ID (có thể xem như là địa chỉ Host ) được dùng để nhận dạng một workstation, server, router, hay thiết bị TCP- IP khác ở trên mạng . Địa chỉ của mỗi Host là duy nhất đối với mỗi Network ID
- Mạng Internet sử dụng hệ thống địa chỉ IP 32bits để xác định vị trí các máy tính kết nối với nó. Có hai cách đánh địa chỉ , phụ thuộc vào cách liên kết của từng máy tính cụ thể:
- Nếu các máy tính được kết nối trực tiếp với mạng Internet thì trung tâm thông tin Internet(Network Information Centren-NIC)sẽ cấp cho các máy tính đó một địa chỉ IP(tuy nhiên cũng dưới sự cho phép của NIC).
Hệ thống địa chỉ này được thiết kế mềm dẻo qua một sự phân lớp , có 5 lớp địa chỉ IP là :A, B, C, D, E. Sự khác nhau cơ bản giữa các lớp địa chỉ này là ở khả năng tổ chức các cấu trúc con của nó.
Class A Class B Class C Class D ClassE Các lớp địa chỉ IP
Trong 5 lớp địa chỉ IP trên , chỉ có 3 lớp địa chỉ A,B,C là được sử dụng rộng rãi ở trên mạng
a.Địa chỉ lớp A
Lớp A sử dụng byte đầu để đánh địa chỉ mạng , 3 byte còn lại dùng để đánh địa chỉ máy trong mạng . Lớp A được nhận ra dễ dàng bởi bit đầu tiên trong byte đầu tiên có giá trị 0 .
Mặt khác , do người ta không sử dụng địa chỉ toàn 0 hay toàn 1 để đánh địa chỉ mạng cũng như địa chỉ máy trong mạng nên lớp A có 27
-2=126 địa chỉ nằm trong khoảng 1 đến 126 và số máy tính tối đa đối với mỗi địa chỉ lớp A sẽ
0 Netid Hostid
1 0 Netid Hostid
1 1 0 Netid Hostid
1 1 1 0 Multicast address
là 224 2 16.777.214 =
− địa chỉ lớp A thường được cấp cho các tổ chức có số
lượng máy tính lớn.
Địa chỉ lớp A có dạng :<Network.Host.Host.Host>
b. Địa chỉ lớp B
Địa chỉ lớp B được nhạn ra bởi 2 bit đầu tiên của byte đầu tiên có giá trị 10 .Lớp B sử dụng 2 byte đầu tiên để đánh địa chỉ mạng và 2 byte cuối để đánh địa chỉ máy chủ trong mạng.
Lớp B có 214
-2=16.382 địa chỉ và mỗi địa chỉ có tối đa 216
-2=65.534 máy tính .Byte đầu tiên của địa chỉ lớp B nằm trong khoảng 128 đến 191.
Địa chỉ lớp B có dạng :<Network.Network.Host.Host>
c. Địa chỉ lớp C
Địa chỉ lớp C được phân biệt bởi 3 bit đầu tiên của byte đầu tiên có giá trị 110. Lớp C dùng 3 byte đầu tiên để đánh địa chỉ mạng và byte cuối để đánh địa chỉ máy chủ trong mạng .Địa chỉ lớp C thường được cấp cho các tổ chức có quy mô nhỏ .Lớp C có 221
-2=2.097.150 địa chỉ ,mỗi lớp C có tối đa 28
-2=254 máy chủ.Giá trị byte đầu tiên của lớp C nằm trong khoảng 192 đến 223.
Địa chỉ lớp B có dạng :<Network.Network.Network.Host>
2.2.8 Subnet và Subnet Mask
Mạng Internet sử dụng địa chỉ IP 32 bit và phân chia ra các lớp rất mềm dẻo .Tuy nhiên ,với một hệ thống địa chỉ như vậy việc quản lý vẫn rất khó khăn .Nếu như một mạng được cấp cho một địa chỉ lớp A thì có nghĩa nó chứa tới 16.777.214 máy tính ,do vậy ngươi ta dùng mặt nạ bit để phân chia mạng ra thành những mạng con gọi là Subnet Mask .Subnet Mask là một số 32 bit bao gồm n bit 1 (các bit cao nhất) dùng để đánh địa chỉ mạng con và m bit 0 (các bit còn lại) dùng để đánh địa chỉ máy trong mạng con với n+m=32.
Network Number Host Number
Network Number Subnet Number Host Number
11111111 11111111 11111111 00000000
Subnet Mask phải được cấu hình cho mỗi máy tính trong mạng và phải được định nghĩa cho mỗi Router .Như vậy ,ta phải dùng một Subnet Mask cho toàn bộ mạng vật lý cùng chung một địa chỉ Internet .
Ví dụ
Ta có một địa chỉ lớp B 128.001.000.000 và cần chia nó thành 254 mạng con với 254 máy trong mỗi mạng ,ta giải quyết vấn đề này bằng Subnet Mask như sau :
Network num 10000000 00000001 00000000 000000000=128.001.000.000 Subnet Mask 11111111 11111111 11111111 000000000=255.255.255.000
Subnet Mask trên định nghĩa 254 mạng con với địa chỉ như sau :
Subnet#1 10000000 00000001 00000001 000000000=128.001.001.000 Subnet#2 10000000 00000001 00000010 000000000=128.001.002.000 Subnet#3 10000000 00000001 00000011 000000000=128.001.003.000 …
Subnet#254 10000000 00000001 11111110 000000000=128.001.254.000
Số máy trong mạng con thứ nhất sẽ nằm trong khoảng sau :
Subnet#1 10000000 00000001 00000001 000000000=128.001.001.000 Low Address 10000000 00000001 00000001 000000001=128.001.001.001 High Address 10000000 00000001 00000001 111111110=128.001.001.254 Chú ý rằng một địa chỉ chứa toàn số 1 dùng cho broadcasting ,chứa toàn số 0 dành cho Subnet Mask. Do vậy ,địa chỉ IP của host không bao giờ chứa các con số 1 hoặc 0.
Định tuyến là việc xử lí truyền các gói tin IP dựa vào địa chỉ IP đích ,Internet là một mạng chuyển mạch gói ,để chuyển các gói tin IP trên mạng người ta sử dụng thuật toán định tuyến .Định tuyến là một tiến trình tìm đường đi để truyền gói tin và việc định tuyến được thực hiện bởi máy tính trên mạng .Có 2 kiểu định tuyến : Trực tiếp và gián tiếp
Định tuyến trực tiếp (direct routing): Định tuyến trực tiếp từ máy tính này sang máy tính kia chỉ thực hiện được khi cả hai máy tính kết nối vào một mạng vật lý.
Định tuyến gián tiếp (indirect routing) :Khi trạm đích không cùng nằm trên một mạng với trạm gửi cần thông qua gateway để truyền đi.
2.3.1 Định tuyến trực tiếp
Mọi máy tính cùng nằm trên một mạng có cùng một Network ID và các máy tính trên cùng một mạng vật lý có thể gửi frame vật lý trực tiếp cho nhau nên việc truyền thông tin giữa hai máy tính trong cùng một mạng vật lý không cần sử dụng gateway .Trạm gửi chỉ việc kết khối dữ liệu vào frame , chuyển địa chỉ IP của trạm đích thành địa chỉ vật lý và gửi trực tiếp nó tới máy nhận .
Một cơ chế sử dụng để truyền địa chỉ IP thành địa chỉ vật lý là ARP (Address Rosolusion Protocol) .Khi hai máy tính cùng nối vào một mạng vật lý ,chúng phải biết địa chỉ vật lý của nhau .ARP giải quyết vấn đề chuyển từ địa chỉ IP 32 bit sang địa chỉ Ethernet 48 bit. Người ta sử dụng hai cơ chế đó là:
• Chuyển giao trực tiếp : Địa chỉ vật lý là một hàm của địa chỉ IP (kiểu chuyển giao này thường sử dụng cho các mạng cho phép đặt địa chỉ IP và địa chỉ vật lý tự do ). Ví dụ người ta có thể đặt địa chỉ IP là 192.5.48.3 và địa chỉ vật lý là 3 khi đó ta có PA= f(IA).
• Chuyển giao địa chỉ động : được thực hiện bằng cách máy tính muốn gửi thông báo tới toàn bộ các máy tính trên mạng ,trong thông báo đó có chứa địa chỉ IP của máy nó cần liên lạc ,mọi máy sẽ nhận được thông báo và máy nào thấy địa chỉ IP của mình thì trả lại một thông báo chứa địa chỉ vật lý .Khi đó hai máy có thể “nói chuyện” với nhau.
Quá trình chuyển giao địa chỉ động
• Ngoài ra , người ta còn sử dụng bảng định tuyến để lưu trữ tạm thời các địa chỉ sử dụng mới nhất để tăng tốc độ của việc chuyển giao địa chỉ.
Trong trường hợp máy trạm không biết địa chỉ IP của chính mình khi khởi động ,người ta sử dụng cơ chế có tên RARP để giải quyết vấn đề này đó là : Có một máy chủ chứa bảng địa chỉ IP của các máy trạm ,khi máy trạm khởi động, nó gửi một request tới tất cả các máy và máy chủ trả lời nó bằng một gói tin chứa địa chỉ IP của nó .
2.3.2 Định tuyến gián tiếp
nó có thể được truyền trực tiếp tới máy nhận . Thuật toán định tuyến thường sử dụng bảng định tuyến (Internet routing table – IP routing table) trên mỗi máy tính để chứa thông tin về các máy tính và cách đi đến chúng . Vì việc định tuyến được thực hiện bởi cả host và gateway , nên mỗi thiết bị đều chứa một bảng đinh tuyến.Bảng định tuyến chứa thông tin về các