Các giao thức lõi của TCP/IP

Một phần của tài liệu Mô hình mạng OSI, TCP/IP (Trang 55)

Bộ giao thức TCP/IP là tập hợp của một số các giao thức liên kết gọi là giao thức lõi của TCP/IP.Tất cả các ứng dụng và các giao thức khác đều dựa trên các dịch vụ cung cấp bởi các giao thức sau: IP, ARP, ICMP, IGMP, TCP và UDP.

Internet protocol (IP)

IP là giao thức chịu trách nhiệm đánh địa chỉ và định tuyến các gói giữa các máy. IP không phải là giao thức kết nối có nghĩa là nó không có các phiên đợc thành lập trớc khi trao đổi dữ liệu. IP cũng không phải là giao thức tin cậy có nghĩa là các gói tin truyền đi không đợc bảo đảm. Một gói tin IP có thể bị mất, bị trễ hay bị truyền thừa và IP cũng không khắc phục lại các lỗi đó. Sự đảm bảo và khôi hục lại các gói tin bị mất hay bị lỗi do các giao thức ở tầng trên đảm bảo. Chính là TCP. Đơn vị dữ liệu dùng trong IP đợc gọi Datagram có định dạng nh sau:

Một gói IP bao gồm một IP header và các thông tin. Bảng sau mô tả các thành phần trong IP header.

Tham số Mô tả

VER(4bits) Chỉ version hiện hành của IP

IHL(4bits) Chỉ độ dài phần đầu(Internet Header Length) của

datagram

Type of service Đặc tả các tham số về dịch vụ

Total length(16 bits) Chỉ độ dài toàn bộ datagram

Identification(16 bits) Cùng với các tham số khác nh Source Address và

Destination Address để định danh duy nhất cho một datagram khi nó còn trên mạng

Flag(3 bits) Liên quan tới phân đoạn

Fragment offset(13 bits)

Chỉ vị trí đoạn ở trong datagram

Time to Live (8bits) Quy định thời gian tồn tại(s) của datagram trong

mạng Option (Độ dài thay

đổi)

Khai báo các tuỳ chọn do ngời dùng thay đổi Padding(Độ dài thay

đổi)

Vùng đệm

Source IP Address Địa chỉ IP thực của nơi gửi

Destination IP Address Địa chỉ của đích cuối cùng

Protocol Cho biết IP tại nơi đích sẽ chuyển gói tin sang

giao thức nào TCP,UDP,ICMP… Header Checksum(16

bits)

Một cơ chế tính toán đơn giản để kiểm tra sự toàn vẹn của IP header

Data(Độ dài thay đổi) Vùng dữ liệu có độ dài là bội của 8bits và tối đa là

65535 bytes

IPv6 (IP version 6)

IPv6 là một phiên bản mới của giao thức IP dựa trên IPv4. IPv6 tăng độ dài lên 128 bits để có thể đáp ứng đợc số địa chỉ mạng ngày càng tăng. IPv6 hỗ trợ khả năng mở rộng và tuỳ chọn. Định dạng của IPv6 header nh sau :

Tham số Mô tả

Source port Số cổng của nguồn

Destination port Số cổng của đích

Sequence number Số sequence của data octet đầu tiên trong một

đoạn

Acknowledgment number Nếu bit ACK đợc set thì nó chức giá trịn tiếp

theo của Sequence number

Data offset(4bits) Xác định vị trí dữ liệu bắt đầu

Reserved(6bits) Cha dùng

Control bits(6 bits) Có thể là U,A,P,R,F,S,F

Window(16 bits) Số data octet của đoạn dữ liệu

Checksum Một cơ chế tính toán đơn giản để kiểm tra sự

toàn vẹn của IP header Bảng 5.6 IP header v6

Sự phân mảnh và tập hợp lại

Nếu router nhận đợc một gói tin quá lớn để có thể truyền đợc trên mạng thì nó sẽ chia gói tin này thành các gói tin nhỏ hơn. Khi gói tin đợc nhận tại địa chỉ đích thì IP tại đây sẽ tập hợp các gói này thành gói tin ban đầu. Quá trình đó đợc gọi là phân mảnh và tập hợp lại. Quá trình Phân mảnh và tập hợp lại diễn ra nh sau:

- Khi một gói IP đợc gửi đi từ một nơi nó đặt một giả trị duy nhất trong trờng

Identification .

- Gói tin đợc nhận tại router. IP của router xác nhận đơn vị nhỏ nhất có thể

truyền của mạng để có thể phân mảnh gói tin.

- IP chia gói tin thành các gói nhỏ và các gói này đợc chuyển đi với các Header

Khi các gói nhỏ phân mảnh này đợc nhận tại một IP nào đó thì nó sẽ đợc tập hợp lại thành một gói nh ban đầu.

ARP(Address Resolution Protocol)

Các máy tính trên cùng một mạng vật lý chỉ có thể liên lạc với nhau khi biết địa chỉ vật lý của nhau. Giao thức ARP cho phép một máy tính tìm đại chỉ vật lý của máy đích trên cùng một mạng vật lý, chỉ cần biết địa chỉ IP của máy đích.

ICMP(Internet Control Message Protocol)

Để cho phép một bộ định tuyến trong mạng thông báo lỗi hoặc cung cấp thông tin về những tình huống không mong đợi, những nhà thiết kế đã cung cấp thêm một cơ chế thông báo có mục đích đặc biệt cho các giao thức TCP/IP. Cơ chế này gọi là ICMP. ICMP cho phép một bộ định tuyến gửi thông báo lỗi và thông báo điều khiển đến các bộ định tuyến khác hoặc các máy khác. ICMP cung cấp phơng tiện thông tin liên lạc giữa phần mềm IP trên một máy và phần mềm IP trên maý khác. Khi một datagram gây lỗi, ICMP chỉ có thể thông báo điều kiện lỗi trở về nguồn ban đầu của datagram. Nguồn này phải liên lạc lỗi với từng chơng trình ứng dụng hoặc thực hiện thao tác khác để sửa lôĩ.

TCP (Transmission control protocol)

TCP là giao thức kiểu có liên kết (connection oriented) nghĩa là cần thành lập liên kết giữa các cặp thực thể TCP trớc khi chúng trao đổi dữ liệu với nhau. Đơn vị sử dụng trong TCP là segment(đoạn dữ liệu) có định dạng nh sau:

Các tham số trong định dạng:

Tham số Mô tả

Destination port(16bits) Số hiệu cổng của trạm đích

Sequence number(32bits) Số hiệu của số byte đầu tiên của segment nếu bit SYN không đợc thiết lập.

Acknowledment number (32bits)

Số hiệu của segment tiếp theo mà trạm nguồn đang chờ để nhận.

Data offset(4 bits) Số lợng từ (word ) trong TCP header

Reserved(6 bits) Cha dùng

Control bits Các bits điều khiển

Window(16 bits) Số lợng các byte dữ liệu bắt đầu từ byte đợc chỉ

ra trong vùng ACK number

Checksum (16 bits) Mã kiểm soát lỗi

Urgent Pointer(16 bits) Con trỏ này trỏ tới số hiệu tuần tự của byte đi

theo sau dữ liệu khẩn,cho phép bên nhận biết đ- ợc độ dài của dữ liệu khẩn

Option(Độ dài thay đổi) Các lựa chọn

Pading(Độ dài thay đổi) Phần chèn thêm vào header để bảo đảm phần

header luôn kết thúc ở mốc 32 bits

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 bytes.Giá trị nà có thể thay đổi trong vùng option.Một tiến trình trong một host truy nhập vào các dịch vụ của TCP cung cấp thông qua một cổng.Một cổng kết hợp với địa chỉ IP tạo thành một socket duy nhất trong liên mạng. Trớc khi truyền dữ liệu giữa hai 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 đ- ợc giải phóng.

5.3 Giao diện ứng dụng TCP/IP

Để ứng dụng có thể truy cập các dịch vụ của các giao thức lõi của TCP/IP theo một cách chuẩn hệ điều hành mạng cung cấp chuẩn công nghệ gọi là Application programming Interface(API).API là một tập các hàm và lệnh đợc lập trình để cho phép thực hiện các dịch vụ mạng.Hình 6.3 minh hoạ hai giao diện lạpp trình mạng thông dụng là Winsock và NetBIOS và các giao thức lõi của nó.

Hình 5.5 Giao diện lập trình TCP/IP

5.3.1 Windows Sockets Interface

Windows Sockets API là API chuẩn của Windows cho ứng dụng sử dụng giao thức TCP và UDP.Các ứng dụng viết dới Windows socket API có thể chạy trên các version của TCP/IP. Window socket cung cấp dịch vụ cho phép kết hợp một cổng và địa chỉ IP để thành lập một kết nối ,gửi và nhận dữ liệu.

5.3.2 NetBIOS

NetBIOS đợc phát triển cho IBM bởi Sytek Corporation cho phép các ứng dụng giao kết qua mạng.NetBIOS là một chuẩn API cho phép lập trình I/O, điều khiển dới các phần mềm điều khiển giao thức mạng . NetBIOS cung cấp các lệnh và hỗ trợ NetBIOS Name Management,NetBIOS Datagram và NetBISO session.

5.4 Địa chỉ IP

Một hệ thống liên lạc đợc gọi là cung cấp dịch vụ thông tin liên lạc toàn cầu nếu nó cho phép bất kỳ máy tính liên lạc đựoc với máy tính khác. Để cho hệ thông tin liên lạc là toàn cầu thì cần có phơng pháp đợc chấp nhận toàn cầu về việc xác định mỗi máy tính nối vào nó. Thông thuờng định danh của máy tính đợc phân loại theo tên, địa chỉ.Mỗi máy tính TCP/IP đợc định nghĩa bởi một địa chỉ logic IP. Địa chỉ IP là một địa chỉ lớp mạng và nó không phụ thuộc vào địa chỉ MAC. Địa chỉ IP xác định vị trí của máy tính trên mạng giống nh địa chỉ của nhà trong thành phố. Một địa chỉ IP là một số duy nhất toàn cầu và có định dạng thống nhất. Mỗi địa chỉ IP bao gồm : network ID và host ID. Network ID (hay còn gọi là địa chỉ mạng) xác định vị trí của một hệ thống trên cùng một mạng vật lý đựoc xác định bởi IP router. Tất cả các hệ thống trên một mạng vật lý phải có địa chỉ mạng giống nhau. Địa chỉ mạng phải là duy nhất trên một liên mạng. Host ID (hay gọi là địa chỉ host) xác định một trạm một server, một router hay một host TCP/IP khác trên mạng. Địa chỉ Host ID là duy nhất trên một địa chỉ mạng. Một địa chỉ IP gồm 32 bits.Thay vì làm việc với 32 bits một lần ,thông thờng địa chỉ IP đợc chia ra làm 4 đoạn 8 bits đựoc gọi là octet. Mỗi octet đựoc chuyển sang số thập phân trong một trờng từ 0-255 và đựoc phân chia bởi các dấu chấm. Ví dụ của một địa chỉ IP trong dạng nhị phân và dạng thập phân :

Binary Format Dotted Decimal Notation

11000000 10101000 00000011 00011000 192.168.3.24

Bảng 5.7 Ví dụ địa chỉ IP

Hình 5.6 Địa chỉ IP

5.4.1 Address Classes

Mọi địa chỉ IP đều gồm 2 phần là Network ID và Host IP nhng định dạng của chúng không giống nhau. Bởi vì cỡ của các đoạng mạng là không giống nhau, tuỳ theo các kích cỡ mạng khác nhau chia ra 4 loại class khác nhau. Class của địa chỉ IP định nghĩa số bits đợc sử dụng cho network ID và số bits sử dụng cho Host ID .Số bít sử dụng cho Network ID quyến định số mạng và số bits sử dụng cho Host ID quyết định số host có thể trên một mạng.Các class là A, B, C, D, E. Tuỳ thuộc vào số mạng và số host mà ta chọn các class khác nhau. Class A định nghĩa một số lợng nhỏ mạng và số lợng lớn các

host trên mạng. Ngợc lại class C lại định nghĩa nhiều mạng và số host trên mạng là ít. Class B nằm giữa class A và C nó thích hợp cho các mạng có số mạng vừa và số host trên mạng cũng không lớn. Class D hơi khác so với các class khác là nó sử dụng cho mutilCast. Class E là thiết kế cho tơng lai và hiện tại cha sử dụng. Bảng sau mô tả Network ID và Host ID của địa chỉ IP class A, B, C.

Class IP Address Net ID Host ID

A a.b.c.d a b.c.d

B a.b.cd a.b b.c

C a.b.c.d a.b.c D

Bảng 5.8 Network ID và Host ID của các class

Có thể nhận biết class của một địa chỉ IP bởi nhìn bit đầu tiên trong dạng nhị phân hay trờng trong biểu thị thập phân. Bảng sau biểu thị cách nhận biết các class A, B, C và số host và số network tối đa trong cho mỗi địa chỉ IP.

IP Address class IP Address Format Leading bits Decimal range Max networks Max Host/network A N.H.H.H 0 1- 127 127 16.777.216 B N.N.H.H 10 128-191 16.384 65.534 C N.N.N.H 110 192-223 2.097.152 254

Bảng 5.9 Số network và host tối đa trong các class Class B có địa chỉ 192.168.*.* thì có thể có 65.534 máy tính trên mạng.

Hình 5.6 Các class của địa chỉ IP

5.4.2 Subnet và Subnet Mask

Một địa chỉ IP gồm địa chỉ Network ID và host ID và đợc chia thành các class khác nhau.Ta thấy trong class A có thể có 254 network và có tới hơn 16 tỉ host trên mạng. Nh vậy để đánh địa chỉ cho các host trên mạng ta cần hơn 16 tỉ địa chỉ.Tất cả các host trên cùng một mạng vật lý thì sẽ cùng chia sẻ giao thông đờng truyền. Nh vậy nếu không sử dụng hết hơn 16 tỉ host thì rất lãng phí đờng truyền. Ta có thể chia nhỏ mạng ra và khi đó sẽ có địa chỉ IP mới. Điịa chỉ IP này sẽ dựa trên địa chỉ IP ban đầu.Địa chỉ IP của mạng con này cũng có Network ID và Host ID, Network ID lấy một phần từ Host ID của mạng ban đầu.Ví dụ một mạng Class B có địa chỉ IP 139.12.0.0 thì có thể có 65534 host. Nh vậy số host quá nhiều không sử dụng hết dẫn đến lãng phí đờng

truyền. Ta có thể chia mạng ra thành các mạng nhỏ với các địa chỉ IP riêng mà không ảnh hởng tới địa chỉ IP của mạng trong một liên mạng.

Hình 5.7 Mạng trớc khi chia nhỏ

Mạng đợc chia nhỏ bằng cách sử dụng 8 bits của địa chỉ Host làm địa chỉ Network ID mới. Mạng sau khi chia nhỏ minh hoạ nh hình 5.8

Hình 5.8 Mạng sau khi chia

Một vấn đề đặt ra là làm thế nào để router có thể biết đợc địa chỉ IP của mạng con và thiết lập lại địa chỉ IP. Subnet mask đợc sử dụng để xác đinh rõ địa chỉ IP của mạng ban đầu cũng nh địa chỉ IP của mạng con.

Subnet mask

Subnet mask là một giá trị 32 bits đợc sử dụng để phân biệt Network ID và Host ID trên mạng khi chia mạng thành các mạng con. Các bits của subnet mask đợc định nghĩa nh sau:

- Tất cả các bit biểu thị Network ID thì có giá trị là 1

- Tất cả các bit biểu thị Host ID thì có giá trị là 0

Mỗi host trên mạng cần sử dụng một subnet mask, có thể sử dụng subnet mask mặc định của mạng ban đầu hoặc thay đổi khi chia thành các mạng con. Subnet mask mặc định đợc biểu thị nh sau:

Address class

Bits for subnet mask Subnet Mask

Class A 11111111 00000000 00000000 00000000 255.0.0.0

Class B 11111111 11111111 00000000 00000000 255.255.0.0

Class C 11111111 11111111 11111111 00000000 255.255.255.0

Bảng 5.10 Subnet Mask

Khi chia nhỏ mạng thành các mạng con thì subnet mask đợc biểu thị khác.Ví dụ 138.96.58.0 là địa chỉ IP của một host trong mạng class B.8 bits trong địa chỉ Host ID ở mạng ban đầu đợc sử dụng làm địa chỉ Network ID của mạng con.Subnet mask cần sử dụng 24 bits để biểu thị Network ID trong mạng con.(255.255.255.0).

Chú ý: Subnet mask không phải là địa chỉ IP và thay vì biểu thị subnet mask bằng các bits 1,0 ngời ta có thể dụng tiền tố để biểu thị.Ví dụ một host trong mạng class B có địa chỉ IP 138.96.0.0 và subnet mask 255.255.0.0 có thể biêu thị nh sau: 138.96.0.0/16

Address

class Bits for subnet mask Network Prefix

Class A 11111111 00000000 00000000 00000000 /8

Class B 11111111 11111111 00000000 00000000 /16

Class C 11111111 11111111 11111111 00000000 /24

Bảng 5.11 Biểi diễn dới dạng prefix

Xác định địa chỉ Network ID

Để biết chính xác network ID của một host trong một mạng con ta sử dụng một phép toán logic AND giữa địa chỉ IP và subnet mask của host.Ví dụ để tìm Network ID của một host có địa chỉ IP là 129.56.189.41 và địa chỉ IP là 255.255.240.0 ta thực hiện phép toán AND giữa địa chỉ IP và subnet mask:

10000001 00111000 10111101 00101001 IP Address 11111111 11111111 11110000 00000000 Subnet Mask 10000001 00111000 10110000 00000000 Network ID 5.4.3 Subnetting

Khái niệm về chia mạng thì đơn giản nhng thực tế việc chia mạng ohức tạp hơn một chút. Chia nhỉ một mạng cần ba bớc sau:

2. Liệt kê các network ID trong mạng mới

3. Liệt các địa chỉ IP cho mỗi network ID trong mạng mới

Bớc 1 : Xác định số bits sử dụng cho Host

Đây là bớc xác định số mạng con(subnet) và số host trên mỗi mạng con. Trớc khi xác định số bít sử dụng cho host nên tính toán số lợng subnet và số host trên mỗi subnet. Việc sử dụng nhiều bits cho subnet mask sẽ mất rất nhiều thời gian để xét địa chỉ IP sau này. Càng nhiều host bits đợc sử dụng thì càng có nhiều subnet.Ví dụ sử dụng 8 bits host trong class của Class B. Nếu sử dụng 1 bits thì sẽ có 2 mạng con và có 16382

Một phần của tài liệu Mô hình mạng OSI, TCP/IP (Trang 55)

Tải bản đầy đủ (DOC)

(95 trang)
w