Chương 1: MẠNG VÀ CẤU TRÚC CÁC GÓI
1.1 Giới thiệu tóm lược về mạng máy tính.
Ngày nay với một lượng lớn về thông tin, nhu cầu xử lý thông tin ngày càng cao. Mạng máy tính hiện nay trở nên quá quen thuộc đối với chúng ta, trong mọi lĩnh vực như khoa học, quân sự, quốc phòng, thương mại, dịch vụ, giáo dục... Hiện nay ở nhiều nơi mạng đã trở thành một nhu cầu không thể thiếu được.
1.1.1 Định nghĩa: Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi đường truyền theo một cấu trúc nà
83 trang |
Chia sẻ: huyen82 | Lượt xem: 1827 | Lượt tải: 2
Tóm tắt tài liệu Điều khiển thiết bị trong mạng LAN, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o đó và thông qua đó các máy tính trao đổi thông tin qua lại cho nhau.
Người ta thấy được việc kết nối các máy tính thành mạng cho chúng ta những khả năng như:
1/ Sử dụng chung tài nguyên: Những tài nguyên của mạng (như thiết bị, chương trình, dữ liệu) khi được trở thành các tài nguyên chung thì mọi thành viên của mạng đều có thể tiếp cận được mà không quan tâm tới những tài nguyên đó ở đâu.
2/ Tăng độ tin cậy của hệ thống: Người ta có thể dễ dàng bảo trì máy móc và lưu trữ (backup) các dữ liệu chung và khi có trục trặc trong hệ thống thì chúng có thể được khôi phục nhanh chóng. Trong trường hợp có trục trặc trên một trạm làm việc thì người ta cũng có thể sử dụng những trạm khác thay thế.
3/ Nâng cao chất lượng và hiệu quả khai thác thông tin.
1.1.2 Môi trường truyền mạng (Network Media):
Các phương tiện mạng được dùng để truyền các tín hiệu vật lý qua mạng, thực hiện quá trình giao tiếp giữa các trạm trên mạng, mỗi phương tiện có những đặc điểm, những ưu, nhược điểm riêng tuỳ thuộc vào môi trường vật lý dùng để truyền tín hiệu. Để nâng cao hiệu năng sử dụng mạng, sau đây chúng ta sẽ xem xét một số môi trường truyền thông phổ biến nhất:
Đồng (Copper): Đồng là vật liệu được sử dụng sớm nhất và rộng rãi nhất trong việc truyền thông, các loại dây đồng chiếm phần lớn trong các loại cáp truyền thông, truyền thông sử dụng dây đồng đã và sẽ còn phát triển trong tương lai. Ví dụ về đường truyền bằng đồng: cáp xoắn đôi (Twisted pair) có 2 loại : có lớp bảo vệ Shielded Twisted pair (STP) và không có lớp bảo vệ Unshielded Twisted pair (UTP). Cáp đồng trục (Coaxial cable).
Thuỷ tinh (Glass): Thuỷ tinh là vật liệu mới được sử dụng trong truyền thông, tuy nhiên loại vật liệu này đã và đang phát triển hết sức nhanh chóng, vật liệu này truyền tín hiệu không phải là sóng điện từ như các vật liệu truyền thống mà truyền các tín hiệu quang học (ánh sáng) do đó cần có thiết bị để chuyển đổi tín hiệu điện từ thành tín hiệu có thể truyền được trên cáp quang và ngược lại. Truyền tin bằng cáp quang có ưu điểm lớn so với các phương pháp khác là tín hiệu không bị ảnh hưởng bởi nhiễu điện từ, không bị thu trộm cũng như cho phép truyền giữa hai điểm có khoảng cách rất xa về mặt địa lý. Ví dụ về đường truyền bằng thủy tinh: cáp quang (Fiber Optic cable).
Không khí (Air): Cả môi trường đồng và thuỷ tinh đều có những yếu điểm khi không thể thực hiện nối dây giữa các trạm. Trong trường hợp này việc sử dụng môi trường truyền không khí với phương tiện truyền hồng ngoại tỏ ra có ưu thế hơn. So với các phương tiện sử dụng hai môi trường truyền trên thì phương tiện truyền bằng hồng ngoại có tốc độ truyền thấp hơn, tuy nhiên nó lại có ưu điểm khi thực hiện truyền tin giữa những khoảng cách địa lý, hoặc trong những điều kiện không thể thực hiện nối dây giữa các trạm. Môi trường truyền này thường sử dụng tia hồng ngoại như tín hiệu mang tin do vậy rất nhạy cảm với ánh sáng, khi thiết kế cần chú ý giảm tác động của ánh sáng tới quá trình truyền tín hiệu.
Sóng radio (Radio): Mặc dầu sóng radio cũng sử dụng môi trường truyền tin là không khí nhưng sóng radio lại có thể truyền xuyên qua tường ngăn cũng như trong điều kiện ánh sáng. Truyền tin bằng sóng radio là phương tiện truyền tin rất phổ biến, tuy nhiên sóng radio chịu ảnh hưởng rất lớn của nhiễu điện từ, vì vậy khi thiết kế các phương tiện truyền tin bằng sóng radio cần chú ý để giảm tối đa ảnh hưởng của nhiễu tác động lên môi trường truyền tin.
1.1.3 Phân loại mạng máy tính
1.1.3.1Theo địa lý:
Do hiện nay mạng máy tính được phát triển khắp nơi với những ứng dụng ngày càng đa dạng cho nên việc phân loại mạng máy tính là một việc rất phức tạp. Người ta có thể chia các mạng máy tính theo khoảng cách địa lý ra làm hai loại: Mạng diện rộng và Mạng cục bộ.
Mạng cục bộ (Local Area Networks - LAN) là mạng được thiết lập để liên kết các máy tính trong một khu vực như trong một toà nhà, một khu nhà.
Mạng diện rộng (Wide Area Networks - WAN) là mạng được thiết lập để liên kết các máy tính của hai hay nhiều khu vực khác nhau như giữa các thành phố hay các tỉnh.
Sự phân biệt trên chỉ có tính chất ước lệ, các phân biệt trên càng trở nên khó xác định với việc phát triển của khoa học và kỹ thuật cũng như các phương tiện truyền dẫn. Tuy nhiên với sự phân biệt trên phương diện địa lý đã đưa tới việc phân biệt trong nhiều đặc tính khác nhau của hai loại mạng trên, việc nghiên cứu các phân biệt đó cho ta hiểu rõ hơn về các loại mạng.
1.1.3.2 Theo Protocol (giao thức mạng): Là tập hợp các quy tắc, quy ước truyền thông trên mạng mà mỗi phần tử tham gia truyền thông trên mạng phải tuân thủ để đảm bảo cho mạng hoạt động được tốt.
Topylogy và Protocol là hai khái niệm rất cơ bản của mạng máy tính, đứng trên góc độ một quản trị mạng thì khi xem xét một mạng máy tính bất kỳ điều đầu tiên cần xem xét là Topology và Protocol của mạng.
Protocol của mạng sẽ được xem xét sau, chúng ta sẽ xem xét một số topology phổ biến của mạng.
1.1.3.3 Theo hình thái mạng ( Network topologies):
Network Topologies: Thể hiện cách nối các máy tính trên mạng với nhau. Có hai kiểu nối chủ yếu là điểm-điểm (point-to-point) và quảng bá (broadcast hay point-to-multipoints).
Point-to-point: Các đường truyền nối từng cặp nút với nhau, mỗi nút có trách nhiệm lưu trữ tạm thời và sau đó chuyển tiếp dữ liệu đi cho tới đích.
Broadcast: Tất cả các nút mạng phân chia chung một đường truyền vật lý, dữ liệu được gửi có thể được tiếp nhận bởi tất cả các nút trên mạng, mỗi nút căn cứ vào địa chỉ đích của dữ liệu để biết đó có phải là dữ liệu gửi cho mình không.
Bus topology: Đây là kiểu nối broadcast, các máy trên mạng được nối vào cùng một đường trục duy nhất. Trong kiểu nối này ở một thời điểm chỉ một máy trên mạng được phép truyền thông tin. Một yếu tố quan trọng ảnh hưởng đến hoạt động của mạng là tín hiệu truyền trên bus khi đến một đầu bus có thể bị phản hồi trở lại gây nhiễu cho các tín hiệu đang được truyền trên bus do đó để đảm bảo cho hoạt động của mạng cần có một thiết bị gọi là terminator được lắp ở hai đầu bus để khử tín hiệu phản hồi.
Star topology: Đây là kiểu nối point-to-point, trong kiểu nối này các máy được nối từ ra từ một hub trung tâm, hub này sẽ thực hiện chuyển mạch phục vụ cho việc trao đổi thông tin giữa các máy.
Ring topology: Đây cũng là kiểu nối point-to-point, các máy được nối theo một vòng khép kín, mỗi máy trên mạng có một máy liền trước và liền sau.
Star bus và Star Ring: Là kiểu nối phối hợp giữa bus và star hoặc giữa bus và ring. Trong kiểu nối star bus các hub được nối với nhau trên cùng một bus chung, các máy được nối vào các hub theo kiểu star còn trong kiểu nối star ring thì hub trung tâm được tổ chức như một ring, các máy được nối vào hub trung tâm theo kiểu star.
Physical mesh topology: Đây là kiểu nối broadcast, trong một topology mesh thực sự có một đường nối giữa hai máy tính bất kỳ trong mạng, phần lớn các mesh topology thực tế là các hybrid mesh topology nghĩa là không cần bao gồm tất cả các liên kết từ một máy bất kỳ đến tất cả các máy khác trên mạng.
Mỗi loại topology đều có những ưu, nhược điểm riêng, sự lựa chọn một topology nào phụ thuộc vào các yêu cầu về mạng như độ an toàn, khả năng thay đổi về cấu trúc hay thêm vào các thành phần mạng, tốc độ truyền tin trên mạng....
1.2 Giao thức mạng và Cấu trúc các gói.
Một giao thức mạng là một tập các thao tác cơ bản mà hai máy (hoặc nhiều máy) muốn giao tiếp được với nhau phải thực hiện theo đúng trình tự. Nếu chỉ một trong các thao tác này khác nhau hoặc được thực hiện không đúng trình tự hai máy sẽ không thể nào giao tiếp được với nhau.
Để thực hiện giao tiếp các máy thực hiện truyền và nhận các gói tin (packet) qua mạng, Các tầng trong giao thức của mạng sẽ tạo lập, sửa, cắt, hợp các gói tin trong quá trình truyền gói tin cũng như trong quá trình nhận gói tin. Một gói tin điển hình thường có các thành phần như sau:
Địa chỉ nguồn chỉ ra địa chỉ của trạm gửi gói tin.
Địa chỉ đích chỉ ra địa chỉ của trạm nhận.
Các thông tin điều khiển việc truyền gói tin qua mạng.
Thông tin xác định thứ tự của gói tin trong trường hợp gói tin là một phần của thông báo dài.
Dữ liệu cần truyền.
Mã kiểm tra và phát hiện lỗi.
Một gói tin thường được chia làm ba phần cơ bản như sau:
Header: Thường chứa địa chỉ nguồn, địa chỉ đích, các tín hiệu đồng bộ.
Data: Chứa dữ liệu thực sự cần gửi.
Trailer: Thường chứa mã CRC.
Các phần của gói tin không có kích thước xác định mà phụ thuộc vào giao thức được sử dụng, tuy nhiên trong một giao thức cũng có những thủ tục cho phép thay đổi kích thước các phần của gói tin.
Trong quá trình giao tiếp các trạm có thể thực hiện một trong hai phương pháp giao tiếp sau:
Phương pháp có liên kết (Connection Oriented): Đối với phương pháp này khi muốn thực hiện một quá trình truyền thông hai trạm sẽ thực hiện quá trình thiết lập liên kết logic giữa các thực thể đồng mức, như vậy quá trình truyền tin sẽ bao gồm ba giai đoạn như sau:
Giai đoạn thiết lập liên kết: Hai thực thể đồng mức ở hai hệ thống sẽ thực hiện quá trình thương lượng về tập các tham số sẽ sử dụng trong giai đoạn truyền dữ liệu (phương thức truyền, kích thước gói tin ...).
Giai đoạn truyền dữ liệu: Dữ liệu được truyền với các cơ chế kiểm soát kèm theo (quản lý lỗi, quản lý luồng dữ liệu ...) để tăng cường độ tin cậy và hiệu quả của việc truyền dữ liệu.
Giai đoạn huỷ bỏ liên kết: Giải phóng liên kết logic, giải phóng các tài nguyên hệ thống đã được cung cấp để phục vụ cho liên kết đó.
Phương pháp không liên kết (Connectionless Oriented): Theo phương pháp này chỉ có giai đoạn truyền dữ liệu, dữ liệu được truyền đi mà không cần thiết lập cũng như huỷ bỏ liên kết.
Lưu ý: mạng Internet hiện nay cung cấp các dich vụ cho phép truyền theo hai cách: có liên kết (TCP/IP) và không liên kết (UDP/IP).
Có 3 protocol được hỗ trợ của Microsoft trong các sản phẩm về mạng của hãng là: NetBEUI, NWlink và TCP/IP. Vì đề tài có giới hạn nên ta chỉ xét đến protocol TCP/IP.
TCP/IP được phát triển bởi bộ quốc phòng Mỹ để thực hiện kết nối các mạng thành một liên mạng. Với sự ra đời của Internet TCP/IP phát triển rất nhanh chóng và trở thành giao thức chuẩn cho Internet. TCP/IP có các ưu điểm sau:
Khả năng kết nối rộng lớn giữa tất cả các loại máy chủ và máy trạm.
Truy nhập trực tiếp vào mạng Internet toàn cầu.
Hỗ trợ khả năng tìm đường rất mạnh.
Hỗ trợ giao thức quản trị mạng đơn giản (Simple Network Management Protocol).
Hỗ trợ khả năng cấu hình động cho từng host (Dynamic Host Configuration Protocol) cho phép gán “động” địa chỉ IP cho máy trạm.
Hỗ trợ Windows Internet Name Service (WINS) cho phép duyệt qua các máy chủ và máy trạm của Microsoft.
Hỗ trợ phần lớn các giao thức cho Internet (Post Office Protocol, Hypertext Transfer Protocol ...).
Tập trung hoá việc quản lý và gán các miền, cho phép làm việc liên mạng giữa các tổ chức.
Bên cạnh những ưu điểm trên TCP/IP cũng có một số nhược điểm sau:
Việc tập trung hoá quản lý các miền đòi hỏi nhiều chi phí và phải đăng nhập.
Sự phát triển mạnh mẽ của Internet bị giới hạn bởi các miền địa chỉ có sẵn.
Khó cài đặt và phí tổn cao cho việc kết nối và chọn đường.
1.3 Giao thức IP:
Đầu tiên các máy muốn liên lạc được với nhau thì phải biết địa chỉ của nhau, giống như muốn gửi thư phải ghi địa chỉ của mình và địa chỉ người nhận. Trên Internet hay đơn giản là mạng LAN địa chỉ của một máy tính (được gọi là địa chỉ IP ) được chia làm 2 phần: NetID và HostID. Việc này giống như số nhà mình vậy: NetID là tên đường, còn HostID là số nhà.
Địa chỉ IP có 32bit được chia làm 4 vùng ( mỗi vùng 1 byte) phân cách nhau bởi dấu chấm. Địa chỉ IP được thể hiện phổ biến nhất là dạng 4 số thập lục phân được ngăn cách bởi dấu chấm. VD : 192.168.1.1
Do tổ chức và độ lớn của các mạng con (subnet) của liên mạng có thể khác nhau, người ta chia các địa chỉ IP thành 5 lớp, ký hiệu là A, B, C, D và E. Trong lớp A, B, C chứa địa chỉ có thể gán được. Lớp D dành riêng cho lớp kỹ thuật multicasting. Lớp E được dành những ứng dụng trong tương lai.
NetID được chia bằng các bit đầu tiên của byte đầu tiên được dùng để định danh lớp địa chỉ (0 - lớp A, 10 - lớp B, 110 - lớp C, 1110 - lớp D v 11110 - lớp E).
Ở đây ta xét cấu trúc của các lớp địa chỉ có thể gán được là lớp A, lớp B, lớp C. Cấu trúc của các địa chỉ IP như sau:
Mạng lớp A: địa chỉ mạng (NetID) là 1 Byte và địa chỉ host (HostID) là 3 byte.
Mạng lớp B: địa chỉ mạng (NetID) là 2 Byte và địa chỉ host (HostID) là 2 byte.
Mạng lớp C: địa chỉ mạng (NetID) là 3 Byte và địa chỉ host (HostID) là 1 byte.
Như vậy, lớp A cho phép định danh tới 126 mạng, với tối đa 16 triệu host trên mỗi mạng. Lớp này được dùng cho các mạng có số trạm cực lớn. Lớp B cho phép định danh tới 16384 mạng, với tối đa 65534 host trên mỗi mạng. Lớp C cho phép định danh tới 2 triệu mạng, với tối đa 254 host trên mỗi mạng. Lớp C này được dùng cho các mạng có ít trạm.
Hình 1.1 chia lớp địa chỉ IP
Một số địa chỉ có tính chất đặc biệt: Một địa chỉ có HostID = 0 được dùng để hướng tới mạng định danh bởi vùng NetID. Ngược lại, một địa chỉ có vùng HostID gồm toàn số 1 được dùng để hướng tới tất cả các host nối vào mạng NetID, và nếu vùng NetID cũng gồm toàn số 1 thì nó hướng tới tất cả các host trong liên mạng.
Hình 1.2: Ví dụ cấu trúc các lớp địa chỉ IP
Cần lưu ý rằng các địa chỉ IP được dùng để định danh các host và mạng ở tầng mạng của mô hình OSI, và chúng không phải là các địa chỉ vật lý (hay địa chỉ MAC) của các trạm trên đó một mạng cục bộ (Ethernet, Token Ring.).
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 một địa chỉ lớp A thì có nghĩa nó chứa tới 16*1.048.576 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. Subnet mask là một con số 32 bit bao gồm n bit 1 (thường là các bit cao nhất) dùng để đánh địa chỉ mạng con và m bit 0 dùng để đánh địa chỉ máy trong mạng con với n+m=32.Vùng SubnetID được lấy từ vùng HostID, cụ thể đối với lớp A, B, C như ví dụ sau:
Hình 1.3: Ví dụ địa chỉ khi bổ sung vùng subnetid
1.3.1 Đơn vị dữ liệu dùng trong IP được gọi là gói tin (datagram), có khuôn dạng:
0
31
Vers
Hlen
Service type
Total length
Identification
Flag
Fragment offset
Time to live
Protocol
Header cheksum
Source IP address
Destination IP address
IP options
Padding
IP datagram data (Max 65535 bytes)
Destination
Address
Source
Address
Type
field
IP data
CRC
Hình 1.4: Dạng thức của gói tin IP
1.3.2 Ý nghĩa các trường của gói IP:
VER (4 bits): chỉ version hiện hành của giao thức IP hiện được cài đặt, Việc có chỉ số version cho phép có các trao đổi giữa các hệ thống sử dụng version cũ và hệ thống sử dụng version mới.
IHL (4 bits): chỉ độ dài phần đầu (Internet header Length) của gói tin datagram, tính theo đơn vị từ ( 32 bits). Trường này bắt buột phải có vì phần đầu IP có thể có độ dài thay đổi tùy ý. Độ dài tối thiểu là 5 từ (20 bytes), độ dài tối đa là 15 từ (hay là 60 bytes).
Type of service (8 bits): đặc tả các tham số về dịch vụ nhằm thông báo cho mạng biết dịch vụ nào mà gói tin muốn được sử dụng, chẳng hạn ưu tiên, thời hạn chậm trễ, năng suất truyền và độ tin cậy. Hình sau cho biết ý nghĩ của trường 8 bits này.
Hình 1.5 Type of service
Precedence (3 bit): chỉ thị về quyền ưu tiên gửi datagram, nó có giá trị từ 0 (gói tin bình thường) đến 7 (gói tin kiểm soát mạng).
Values of the IP Precedence Field
Precedence Value
Precedence
000
Routine
001
Priority
010
Immediate
011
Flash
100
Flash Override
101
CRITIC/ECP
110
Internetwork Control
111
Network Control
Chú ý : Giá trị mặc định là 000.
D (Delay) (1 bit): chỉ độ trễ yêu cầu trong đó:
D = 0 gói tin có độ trễ bình thường.
D = 1 gói tin độ trễ thấp.
T (Throughput) (1 bit): chỉ độ thông lượng yêu cầu sử dụng để truyền gói tin với lựa chọn truyền trên đường thông suất thấp hay đường thông suất cao.
T = 0 thông lượng bình thường
T = 1 thông lượng cao.
R (Reliability) (1 bit): chỉ độ tin cậy yêu cầu
R = 0 độ tin cậy bình thường.
R = 1 độ tin cậy cao.
Total Length (16 bits): chỉ độ dài toàn bộ gói tin, kể cả phần đầu tính theo đơn vị byte với chiều dài tối đa là 65.535 bytes. Hiện nay giới hạn trên là rất lớn nhưng trong tương lai với những mạng Gigabit thì các gói tin có kích thước lớn là cần thiết.
Identification (16 bits): cùng với các tham số khác (như Source Address và Destination Address) tham số này dùng để định danh duy nhất cho một datagram trong khoảng thời gian nó vẫn còn trên liên mạng.
Flags (3 bits): liên quan đến sự phân đoạn (fragment) các datagram, Các gói tin khi đi trên đường đi có thể bị phân thành nhiều gói tin nhỏ, trong trường hợp bị phân đoạn thì trường Flags được dùng điều khiển phân đoạn và tái lắp ghép bó dữ liệu. Tùy theo giá trị của Flags sẽ có ý nghĩa là gói tin sẽ không phân đoạn, có thể phân đoạn hay là gói tin phân đoạn cuối cùng. Trường Fragment Offset cho biết vị trí dữ liệu thuộc phân đoạn tương ứng với đoạn bắt đầu của gói dữ liệu gốc. Ý nghĩa cụ thể của trường Flags là:
bit 0: reserved - chưa sử dụng, luôn lấy giá trị 0.
bit 1: (DF) = 0 (May Fragment); = 1 (Don't Fragment)
bit 2: (MF) = 0 (Last Fragment); = 1 (More Fragments)
Fragment Offset (13 bits): chỉ vị trí của đoạn (fragment) ở trong datagram tính theo đơn vị 8 bytes, có nghĩa là phần dữ liệu mỗi gói tin (trừ gói tin cuối cùng) phải chứa một vùng dữ liệu có độ dài là bội số của 8 bytes. Điều này có ý nghĩa là phải nhân giá trị của Fragment offset với 8 để tính ra độ lệch byte.
Sự phân mảnh IP: Như đã trình bày ở trên, có khả năng một gói dữ liệu IP được phân mảnh trong khi truyền qua Internet. Sự phân mảnh có thể xảy ra ở hai nơi:
Ở host nguồn - Khi IP nhận một yêu cầu chuyển một gói dữ liệu (ví dụ chứa TCP segment hoặc một UDP datagram) tới một host đích, nó sẽ kiểm tra giao diện cục bộ mà trên đó gói dữ liệu được vận chuyển đối với một đơn vị truyền lớn nhất của gói vật lý trên mạng. Nếu tổng số dữ liệu được vận chuyển ( bao gồm cả độ dài của IP Header, hoặc 20 octet) lớn hơn MTU, khi đó gói dữ liệu được phân mảnh thành một số gói dữ liệu nhỏ hơn.
Trong bộ định đường - Nếu bộ định đường được kết nối với mạng mang các kích thước gói khác nhau, như Token Ring và Ethernet, sự phân mảnh có thể được khởi tạo. Nếu bộ định đường nhận một gói dữ liệu IP lớn để định đường vào mạng, mà mạng đó không chuyển được các gói dữ liệu lớn như vậy, thì bộ định đường cần phải chia gói thành một số các gói dữ liệu IP riêng biệt để truyền.
Ngay từ khi bị phân mảnh, các gói dữ liệu mảnh này sẽ không được lắp ráp lại cho tới khi chúng đến được host đích. Vì sự phân mảnh tạo ra các gói dữ liệu phụ nên cần quá trình xử lý phụ, nó có thể dẫn đến sự giảm tính năng mạng. Hơn nữa vì IP là một giao thức không tin cậy, nên bất kỳ một gói dữ liệu bị phân mảnh nào bị mất thì tất cả các mảnh sẽ phải truyền lại. Nhiệm vụ của các lớp cao hơn, như TCP hoặc lớp ứng dụng UDP, là phát hiện vấn đề này và thực hiện các hành động thích hợp.
Nói chung, nơi gửi muốn giữ kích thước của mọi gói dữ liệu IP được vận chuyển ở kích thước lớn nhất có thể vận chuyển được, không có sự phân mảnh. Giá trị này được đề cập tới như Path MTU. Một số stack tự động tính toán điều đó, trong khi những stack khác đặt điều đó thành một nhiệm vụ cho người sử dụng.
Time to Live (8 bits): qui định thời gian tồn tại (tính bằng giây) của gói tin trong mạng để tránh tình trạng một gói tin bị quẩn trên mạng. Thời gian này được cho bởi trạm gửi và được giảm đi (thường qui ước là 1 đơn vị) khi datagram đi qua mỗi router của liên mạng. Thời lượng này giảm xuống tại mỗi router với mục đích giới hạn thời gian tồn tại của các gói tin và kết thúc những lần lặp lại vô hạn trên mạng. Sau đây là 1 số điều cần lưu ý về trường Time To Live:
Nút trung gian của mạng không được gởi 1 gói tin mà trường này có giá trị= 0.
Một giao thức có thể ấn định Time To Live để thực hiện cuộc ra tìm tài nguyên trên mạng trong phạm vi mở rộng.
Một giá trị cố định tối thiểu phải đủ lớn cho mạng hoạt động tốt.
Protocol (8 bits): chỉ giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu ở trạm đích (hiện tại thường là TCP hoặc UDP được cài đặt trên IP). Ví dụ: TCP có giá trị trường Protocol là 6, UDP có giá trị trường Protocol là 17.
Header Checksum (16 bits): Mã kiểm soát lỗi của header gói tin IP.
Source Address (32 bits): Địa chỉ của máy nguồn.
Destination Address (32 bits): địa chỉ của máy đích.
Options (độ dài thay đổi): khai báo các lựa chọn do người gửi yêu cầu (tuỳ theo từng chương trình).
Padding (độ dài thay đổi): Vùng đệm, được dùng để đảm bảo cho phần header luôn kết thúc ở một mốc 32 bits.
Data (độ dài thay đổi): Trên một mạng cục bộ như vậy, hai trạm chỉ có thể liên lạc với nhau nếu chúng biết địa chỉ vật lý của nhau. Như vậy vấn đề đặt ra là phải thực hiện ánh xạ giữa địa chỉ IP (32 bits) và địa chỉ vật lý (48 bits) của một trạm.
1.3.3 Các giao thức hỗ trợ cho giao thức IP:
Để mạng với giao thức IP hoạt động được tốt người ta cần một số giao thức bổ sung, các giao thức này đều không phải là bộ phận của giao thức IP và giao thức IP sẽ dùng đến chúng khi cần.
1.3.3.1 Giao thức ARP (Address Resolution Protocol): Ở đây cần lưu ý rằng các địa chỉ IP được dùng để định danh các host và mạng ở tầng mạng của mô hình OSI, và chúng không phải là các địa chỉ vật lý (hay địa chỉ MAC) của các trạm trên đó một mạng cục bộ (Ethernet, Token Ring.). Trên một mạng cục bộ hai trạm chỉ có thể liên lạc với nhau nếu chúng biết địa chỉ vật lý của nhau. Như vậy vấn đề đặt ra là phải tìm được ánh xạ giữa địa chỉ IP (32 bits) và địa chỉ vật lý của một trạm. Giao thức ARP đã được xây dựng để tìm địa chỉ vật lý từ địa chỉ IP khi cần thiết.
1.3.3.2 Giao thức RARP (Reverse Address Resolution Protocol): Là giao thức ngược với giao thức ARP. Giao thức RARP được dùng để tìm địa chỉ IP từ địa chỉ vật lý.
1.3.3.3 Giao thức ICMP (Internet Control Message Protocol): Giao thức này thực hiện truyền các thông báo điều khiển (báo cáo về các tình trạng các lỗi trên mạng.) giữa các gateway hoặc một nút của liên mạng. Tình trạng lỗi có thể là: một gói tin IP không thể tới đích của nó, hoặc một router không đủ bộ nhớ đệm để lưu và chuyển một gói tin IP, Một thông báo ICMP được tạo và chuyển cho IP. IP sẽ "bọc" (encapsulate) thông báo đó với một IP header và truyền đến cho router hoặc trạm đích.
1.4 Giao thức điều khiển truyền dữ liệu TCP:
TCP là một giao thức "có liên kết" (connection - oriented), nghĩa là cần phải thiết lập liên kết giữa hai thực thể TCP trước khi chúng trao đổi dữ liệu với nhau. Một tiến trình ứng dụng trong một máy tính truy nhập vào các dịch vụ của giao thức TCP thông qua một cổng (port) của TCP. Số hiệu cổng TCP được thể hiện bởi 2 bytes.
Hình 1.6: Cổng truy nhập dịch vụ TCP
Một cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket) duy nhất trong liên mạng. Dịch vụ TCP được cung cấp nhờ một liên kết logic giữa một cặp đầu nối TCP/IP. Một đầu nối TCP/IP có thể tham gia nhiều liên kết với các đầu nối TCP/IP ở xa khác nhau. Trước khi truyền dữ liệu giữa 2 trạm cần phải thiết lập một liên kết TCP giữa chúng và khi không còn nhu cầu truyền dữ liệu thì liên kết đó sẽ được giải phóng.
Các thực thể của tầng trên sử dụng giao thức TCP thông qua các hàm gọi (function calls) trong đó có các hàm yêu cầu để yêu cầu, để trả lời. Trong mỗi hàm còn có các tham số dành cho việc trao đổi dữ liệu.
Các bước thực hiện để thiết lập một liên kết TCP/IP:
Thiết lập một liên kết mới có thể được mở theo một trong 2 phương thức: chủ động (active) hoặc bị động (passive).
Phương thức bị động, người sử dụng yêu cầu TCP chờ đợi một yêu cầu liên kết gửi đến từ xa thông qua một đầu nối TCP/IP (tại chỗ). Người sử dụng dùng hàm passive Open có khai báo cổng TCP và các thông số khác (mức ưu tiên, mức an toàn).
Với phương thức chủ động, người sử dụng yêu cầu TCP mở một liên kết với một một đầu nối TCP/IP ở xa. Liên kết sẽ được xác lập nếu có một hàm Passive Open tương ứng đã được thực hiện tại đầu nối TCP/IP ở xa đó.
Bảng 1.7: liệt kê một vài cổng TCP phổ biến.
Số hiệu cổng
Mô tả
0
Reserved
5
Remote job entry
7
Echo
9
Discard
11
Systat
13
Daytime
15
Nestat
17
Quotd (quote odd day
20
ftp-data
21
ftp (control)
23
Telnet
25
SMTP
37
Time
53
Name Server
102
ISO - TSAP
103
X.400
104
X.400 Sending
111
Sun RPC
139
Net BIOS Session source
160 - 223
Reserved
Khi người sử dụng gửi đi một yêu cầu mở liên kết sẽ được nhận hai thông số trả lời từ TCP.
Thông số Open ID được TCP trả lời ngay lập tức để gán cho một liên kết cục bộ (local connection name) cho liên kết được yêu cầu. Thông số này về sau được dùng để tham chiếu tới liên kết đó. (Trong trường hợp nếu TCP không thể thiết lập được liên kết yêu cầu thì nó phải gửi tham số Open Failure để thông báo.)
Khi TCP thiết lập được liên kết yêu cầu nó gửi tham số Open Sucsess được dùng để thông báo liên kết đã được thiết lập thành công. Thông báo này dược chuyển đến trong cả hai trường hợp bị động và chủ động. Sau khi một liên kết được mở, việc truyền dữ liệu trên liên kết có thể được thực hiện.
1.4.1 Cấu trúc gói TCP:
Đơn vị dữ liệu sử dụng trong TCP được gọi là segment (đoạn dữ liệu), có các tham số với ý nghĩa như sau:
Hình 1.7: Dạng thức của segment TCP
Source Port (16 bits): Số hiệu cổng TCP của trạm nguồn.
Destination Port (16 bit): Số hiệu cổng TCP của trạm đích.
Sequence Number (32 bit): số hiệu của byte đầu tiên của segment trừ khi bit SYN được thiết lập. Nếy bit SYN được thiết lập thì Sequence Number là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN+1.
Acknowledgment Number (32 bit): số hiệu của segment tiếp theo mà trạm nguồn đang chờ để nhận. Ngầm ý báo nhận tốt (các) segment mà trạm đích đã gửi cho trạm nguồn.
Data offset (4 bit): số lượng bội của 32 bit (32 bit words) trong TCP header (tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu).
Reserved (6 bit): dành để dùng trong tương lai
Control bit (các bit điều khiển):
URG: Vùng con trỏ khẩn (Ucgent Poiter) có hiệu lực.
ACK: Vùng báo nhận (ACK number) có hiệu lực.
PSH: Chức năng PUSH Dữ liệu này cần đưa lên các ứng dụng ngay lập tức.
RST: Khởi động lại (reset) liên kết.
SYN: Đồng bộ hóa số hiệu tuần tự (sequence number).
FIN: Không còn dữ liệu từ trạm nguồn.
Window (16 bit): cấp phát credit để kiểm soát nguồn dữ liệu (cơ chế cửa sổ). Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte được chỉ ra trong vùng ACK number, mà trạm nguồn đã saün sàng để nhận.
Checksum (16 bit): mã kiểm soát lỗi cho toàn bộ segment (header + data)
Urgemt Poiter (16 bit): con trỏ này trỏ tới số hiệu tuần tự của byte đi theo sau dữ liệu khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập.
Options (độ dài thay đổi): khai báo các option của TCP, trong đó có độ dài tối đa của vùng TCP data trong một segment.
Paddinh (độ dài thay đổi): phần chèn thêm vào header để đảm bảo phần header luôn kết thúc ở một mốc 32 bit. Phần thêm này gồm toàn số 0.
TCP data (độ dài thay đổi): chứa dữ liệu của tầng trên, có độ dài tối đa ngầm định là 536 byte. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options.
1.4.2 Quá trình truyền và nhận dữ liệu trong giao thức TCP/IP:
Chúng ta đã biết, IP ấn định một địa chỉ mạng/host cho một máy tính. Tuy nhiên, thường hay gặp các ứng dụng phức tạp trên một máy tính cho trước đồng thời mong muốn các dịch vụ ỷ truyền hoặc nhận, đặc biệt nếu máy tính là một server được truy nhập bởi các kết nối dial-up phức tạp hoặc nếu nó phục vụ như là một internet gateway đối với LAN hoặc WAN.
Để trợ giúp các phiên liên lạc đồng thời phức tạp, TCP làm cho các địa chỉ IP đầy đủ hơn bằng các số hiệu cổng. Đối với hầu hết các mục đích, cổng biểu thị tiến trình ứng dụng đã cho trên máy tính. Sự kết hợp của một địa chỉ IP và cổng tạo thành một socket. Một cặp socket xác định một kết nối TCP đã cho.
Tóm lại, giao thức TCP/IP giúp ta truyền datagram đến đúng máy có 1 địa chỉ IP duy nhất và đúng các ứng dụng ở lớp trên thông qua số cổng ( số port ) ( nhiều ứng dụng hoạt động đồng thời).
1.4.2.1 Khởi xướng kết nối:
Trước khi hai tiến trình ứng dụng có thể liên lạc qua một mạng khi sử dụng TCP/IP, mỗi tiến trình cần phải chỉ thị tới tiến trình TCP trên host riêng của chúng rằng chúng đã sẵn sàng gửi và nhận thông tin. Tiến trình muốn khởi xướng hoặc chấp nhận kết nối phải cung cấp tiến trình TCP cùng với một số hiệu cổng duy nhất, vào thời gian đó, ở trên máy đó. Các ứng dụng hướng mạng (network - oriented) nhất định đã được gán các số hiệu cổng biết rõ. Các ứng dụng khác trước hết phải yêu cầu một phép gán cổng từ tiến trình TCP.
Một tiến trình ứng dụng đã sẵn sàng khởi xướng kết nối cũng cần phải cung cấp tiến trình TCP cùng với một định danh socket cho nơi nhận. Nếu ứng dụng nhận không có một cổng được gán cố định, kết nối khởi xướng sẽ được thực hiện từ tiến trình trên máy nhận, nó sẽ được nhận diện và trở lại cổng mong muốn.
1.4.2.2 Số hiệu cổng đã biết rõ:
IANA (The Internet Assigned Number Authority) đảm nhiệm việc gán các giá trị cố định đối với các tham số khác nhau trong các giao thức liên quan tới Internet (internet related), trong đó có TCP. Các giá trị tham số này bao gồm cả các số hiệu cổng được dự trữ cho việc sử dụng các ứng dụng then chốt và các tiến trình khác trên các máy host.
Các số hiệu cổng từ 0 đến 1023 được quản lý bởi IANA gọi là các Well Known Port Number. Đây là các phép gán cổng có thể được các tiến trình và các ứng dụng TCP chấp nhận ở bất kỳ đâu trên Internet.
Các cổng 1024-65535 không được gán chính thức cho các tiến trình ứng dụng. Nhiều số hiệu cổng trong khoản này, tuy nhiên, được dự trữ không chính thức cho việc sử dụng bởi các gói quản lý mạng cố định và các sử dụng cụ thể khác.
Một tiến trình ứng dụng đã cho có thể được giao dịch khi sử dụng nhiều hơn một giao thức lớp liên vận (ví dụ TCP và UDP), và số hiệu cổng như nhau sẽ được sử dụng bởi cả hai giao thức cho mục đích đó.
1.4.2.3 Thương lượng kết nối TCP:
Ngay khi một tiến trình ứng dụng yêu cầu TCP thiết lập kết nối tới một socket ở xa cụ thể, tiế._.