BỘ lao đỘng thưƠng binh và XÃ HỘi tổng cục dạy nghề


Một số giao thức điều khiển



tải về 0.62 Mb.
trang12/13
Chuyển đổi dữ liệu24.07.2016
Kích0.62 Mb.
#3675
1   ...   5   6   7   8   9   10   11   12   13

2. Một số giao thức điều khiển


Mục tiêu: Nắm được các giao thức điều khiển.

2.1.Giao thức ICMP


ICMP ((Internet Control Message Protocol) là một giao thức điều khiển của mức IP, được dùng để trao đổi các thông tin điều khiển dòng số liệu, thông báo lỗi và các thông tin trạng thái khác của bộ giao thức TCP/IP. Ví dụ:

- Điều khiển lưu lượng dữ liệu (Flow control): khi các gói dữ liệu đến quá nhanh, thiết bị đích hoặc thiết bị định tuyến ở giữa sẽ gửi một thông điệp ICMP trở lại thiết bị gửi, yêu cầu thiết bị gửi tạm thời ngừng việc gửi dữ liệu.

- Thông báo lỗi: trong trường hợp địa chỉ đích không tới được thì hệ thống sẽ gửi một thông báo lỗi "Destination Unreachable".

- Định hướng lại các tuyến đường: một thiết bị định tuyến sẽ gửi một thông điệp ICMP "định tuyến lại" (Redirect Router) để thông báo với một trạm là nên dùng thiết bị định tuyến khác để tới thiết bị đích. Thông điệp này có thể chỉ được dùng khi trạm nguồn ở trên cùng một mạng với cả hai thiết bị định tuyến.

- Kiểm tra các trạm ở xa: một trạm có thể gửi một thông điệp ICMP

"Echo" để kiểm tra xem một trạm có hoạt động hay không.

Sau đây là mô tả một ứng dụng của giao thức ICMP thực hiện việc định tuyến lại (Redirect):

Ví dụ: giả sử host gửi một gói dữ liệu IP tới Router R1. Router R1 thực hiện việc quyết định tuyến vì R1 là router mặc định của host đó. R1 nhận gói

dữ liệu và tìm trong bảng định tuyến và nó tìm thấy một tuyến tới R2. Khi R1 gửi gói dữ liệu tới R2 thì R1 phát hiện ra rằng nó đang gửi gói dữ liệu đó ra ngoài trên cùng một giao diện mà gói dữ liệu đó đã đến (là giao diện mạng LAN mà cả host và hai Router nối đến). Lúc này R1 sẽ gửi một thông báo ICMP Redirect Error tới host, thông báo cho host nên gửi các gói dữ liệu tiếp theo đến R2 thì tốt hơn.

Tác dụng của ICMP Redirect là để cho mọt host với nhận biết tối thiểu về định tuyến xây dựng lên một bảng định tuyến tốt hơn theo thời gian. Host đó có thể bắt đầu với một tuyến mặc định (có thể R1 hoặc R2 như ví dụ trên) và bất kỳ lần nào tuyến mặc định này được dùng với host đó đến R2 thì nó sẽ được Router mặc định gửi thông báo Redirect để cho phép host đó cập nhật bảng định tuyến của nó một cách phù hợp hơn. Khuôn dạng của thông điệp ICMP redirect như sau:




0 7 8 15 16 31

type (5)

Code(0-3)

Checksum

Địa chỉ IP của Router mặc định

IP header (gồm option) và 8 bytes đầu của gói dữ liệu IP nguồn


Hình 5.9: Dạng thông điệp ICMP redirect

Có bốn loại thông báo ICMP redirect khác nhau với các giá trị mã (code) như bảng sau:



Code

Description

0

Redirect cho mạng

1

Redirect cho host


2

Redirect cho loại dịch vụ (TOS) và mạng

3

Redirect cho loại dịch vụ và host


Hình 5.10: Các loại định hướng lại của gói dữ liệu ICMP


Redirect chỉ xảy ra khi cả hai Router R1 và R2 cùng nằm trên một mạng với host nhận direct đó.


2.2. Giao thức ARP và giao thức RARP


Địa chỉ IP được dùng để định danh các host và mạng ở tầng mạng của mô hình OSI, 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 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. Giao thức ARP (Address Resolution Protocol) đã được xây dựng để chuyển đổi từ địa chỉ IP sang địa chỉ vật lý khi cần thiết. Ngược lại, giao thức RARP (Reverse Address Resolution Protocol) được dùng để chuyển đổi địa chỉ vật lý sang địa chỉ IP. Các giao thức ARP và RARP không phải là bộ phận của IP mà IP sẽ dùng đến chúng khi cần.

Giao thức ARP

Giao thức TCP/IP sử dụng ARP để tìm địa chỉ vật lý của trạm đích. Ví dụ khi cần gửi một gói dữ liệu IP cho một hệ thống khác trên cùng một mạng vật lý Ethernet, hệ thông gửi cần biết địa chỉ Ethernet của hệ thống đích để tầng liên kết dữ liệu xây dựng khung gói dữ liệu.

Thông thường, mỗi hệ thống lưu giữ và cập nhật bảng thích ứng địa chỉ IP-MAC tại chỗ (còn được gọi là bảng ARP cache). Bảng thích ứng địa chỉ được cập nhật bởi người quản trị hệ thống hoặc tự động bởi giao thức ARP sau mỗi lần ánh xạ được một địa chỉ thích ứng mới. Khuôn dạng của gói dữ liệu ARP được mô tả trong hình
0 31


Data link type

Network type

Hlen

plen

Opcode

Sender data link (6byte for Ethernet)

Sender network (4 byte for IP)

Tagret data link (6 byte)

Tagret network (4 byte)

Check sume


Hình 5.11: Mô tả khuôn dạng của gói ARP


  • Data link type: cho biết loại công nghệ mạng mức liên kết (ví dụ đối với mạng Ethernet trường này có giá trị 01).

  • Network type: cho biết loại mạng (ví dụ đối với mạng IPv4, trường này có giá trị 080016).

  • Hlen (hardware length): độ dài địa chỉ mức liên kết (6 byte).

  • Plen (Protocol length): cho biết độ dài địa chỉ mạng (4 byte)

  • Opcode (operation code): mã lệnh yêu cầu: ; mã lệnh trả lời .

  • Sender data link: địa chỉ mức liên kết của thiết bị phát gói dữ liệu này.

  • Sender network : địa chỉ IP của thiết bị phát.

  • Tagret data link: trong yêu cầu đây là địa chỉ mức liên kết cần tìm

  • (thông thường được điền 0 bởi thiết bị gửi yêu cầu); trong trả lời đây là địa chỉ

  • mức liên kết của thiết bị gửi yêu cầu.

  • Tagret network : trong yêu cầu đây là địa chỉ IP mà địa chỉ mức liên kết tương ứng cần tìm; trong trả lời đây là địa chỉ IP của thiết bị gửi yêu cầu.

Mỗi khi cần tìm thích ứng địa chỉ IP - MAC, có thể tìm địa chỉ MAC tương ứng với địa IP đó trước tiên trong bảng địa chỉ IP - MAC ở mỗi hệ thống. Nếu không tìm thấy, có thể sử dụng giao thức ARP để làm việc này.

Trạm làm việc gửi yêu cầu ARP (ARP_Request) tìm thích ứng địa chỉ IP - MAC đến máy phục vụ ARP - server. Máy phục vụ ARP tìm trong bảng thích ứng địa chỉ

IP - MAC của mình và trả lời bằng ARP_Response cho trạm làm việc. Nếu không, máy phục vụ chuyển tiếp yêu cầu nhận được dưới dạng quảng bá cho tất cả các trạm làm việc trong mạng. Trạm nào có trùng địa chỉ IP được yêu cầu sẽ trả lời với địa chỉ MAC của mình. Tóm lại tiến trình của ARP được mô tả như sau




1. IP yêu cầu địa chỉ MAC.


2. Tìm kiếm trong bảng ARP.
3. Nếu tìm thấy sẽ trả lại địa chỉ MAC.
4. Nếu không tìm thấy, tạo gói ARP yêu cầu và gửi tới tất cả các trạm.
5. Tuỳ theo gói dữ liệu trả lời, ARP cập nhật vào bảng ARP và gửi địa chỉ MAC đó cho IP.
Giao thức RARP

Reverse ARP (Reverse Address Resolution Protocol) là giao thức giải thích ứng địa chỉ AMC - IP. Quá trình này ngược lại với quá trình giải thích ứng địa chỉ IP - MAC mô tả ở trên, nghĩa là cho trước địa chỉ mức liên kết, tìm địa chỉ IP tương ứng.


2.3. Giao thức lớp chuyển tải (Transport Layer)

2.3.1 Giao thức TCP


TCP (Transmission Control Protocol) là một giao thức “có liên kết”

(connection - oriented), nghĩa là cần thiết lập liên kết (logic), giữa một cặp thực thể TCP trước khi chúng trao đổi dữ liệu với nhau.

TCP cung cấp khả năng truyền dữ liệu một cách an toàn giữa các máy trạm trong hệ thống các mạng. Nó cung cấp thêm các chức năng nhằm kiểm tra tính chính xác của dữ liệu khi đến và bao gồm cả việc gửi lại dữ liệu khi có lỗi xảy ra. TCP cung cấp các chức năng chính sau:

1. Thiết lập, duy trì, kết thúc liên kết giữa hai quá trình.

2. Phân phát gói tin một cách tin cậy.

3. Đánh số thứ tự (sequencing) các gói dữ liệu nhằm truyền dữ liệu một cách tin cậy.

4. Cho phép điều khiển lỗi.

5. Cung cấp khả năng đa kết nối với các quá trình khác nhau giữa trạm nguồn và trạm đích nhất định thông qua việc sử dụng các cổng.

6. Truyền dữ liệu sử dụng cơ chế song công (full-duplex).

2.3.2 Cấu trúc gói dữ liệu TCP
0 31


Source port

Destination port

Sequence number

Acknowledgment number

Data


Offset

Resersed


U
R
G

A
C
K

P
S
H

R
S
T

S
Y
N

F
I
N

Window


Checksum

Urgent pointer

Options

Padding

TCP data


Hình 5.13: Khuôn dạng của TCP segment
- Source port (16 bits) : số hiệu cổng của trạm nguồn

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

- Sequence Number (32 bits): số hiệu của byte đầu tiên của segment trừ khi bit SYN được thiết lập. Nếu 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.
- Acknowlegment: vị trí tương đối của byte cuối cùng đã nhận đúng bởi thực thể gửi gói ACK cộng thêm 1. Giá trị của trường này còn được gọi là số tuần tự thu. Trường này được kiểm tra chỉ khi bit ACK=1.

- Data offset (4 bits) : số tượng từ 32 bit trong TCP header. Tham số này chỉ ra

vị trí bắt đầu của vùng dữ liệu

- Reserved (6 bits) : dành để dùng trong tương lai. Phải được thiết lập là 0.

- Control bits : các bit điều khiển

- URG : vùng con trỏ khẩn (Urgent Pointer) 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. PSH=1 thực thể nhận phải chuyển dữ liệu này cho ứng dụng tức thời.


- RST : thiết lập lại (reset) kết nối.

- SYN : đồng bộ hoá các số hiệu tuần tự, dùng để thiết lập kết nối TCP.

- FIN : thông báo thực thể gửi đã kết thúc gửi dữ liệu.

- Window (16 bits): cấp phát credit để kiểm soát luồng 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 đã sẵn sàng để nhận

- Checksum (16 bits) : mã kiểm soát lỗi (theo phương pháp CRC) cho toàn bộ

segment (header + data)

- 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. 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

- Padding (độ 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ột mốc 32 bits. 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 bytes. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options. Một tiến trình ứng dụng 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 (port) như sau:

Một cổng kết hợp với một địa chỉ IP tạo thành một socket duy nhất trong liên mạng. TCP được cung cấp nhờ một liên kết logic giữa một cặp socket. Một socket có thể tham gia nhiều liên kết với các socket ở xa khác nhau. 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 kết thúc phiên truyền dữ liệu thì liên kết đó sẽ được giải phóng. Cũng giống như ở các giao thức khác, các thực thể ở tầng trên sử dụng TCP thông qua các hàm dịch vụ nguyên thuỷ (service primitives), hay còn gọi là các lời gọi hàm (function call).








2.3.3 Thiết lập và kết thúc kết nối TCP

Thiết lập kết nối
Thiết lập kết nối TCP được thực hiện trên cơ sở phương thức bắt tay ba bước (Tree - way Handsake) hình 2.11. Yêu cầu kết nối luôn được tiến trình trạm khởi tạo, bằng cách gửi một gói TCP với cờ SYN=1 và chứa giá trị khởi tạo số tuần tự ISN của client. Giá trị ISN này là một số 4 byte không dấu và được tăng mỗi khi kết nối được yêu cầu (giá trị này quay về 0 khi nó tới giá trị 232). Trong thông điệp SYN này còn chứa số hiệu cổng TCP của phần mềm dịch vụ mà tiến trình trạm muốn kết nối (bước 1).

Mỗi thực thể kết nối TCP đều có một giá trị ISN mới số này được tăng theo thời gian. Vì một kết nối TCP có cùng số hiệu cổng và cùng địa chỉ IP được dùng lại nhiều lần, do đó việc thay đổi giá trị INS ngăn không cho các kết nối dùng lại các dữ liệu đã cũ (stale) vẫn còn được truyền từ một kết nối cũ và có cùng một địa chỉ kết nối.

Khi thực thể TCP của phần mềm dịch vụ nhận được thông điệp SYN, nó gửi lại gói SYN cùng giá trị ISN của nó và đặt cờ ACK=1 trong trường hợp sẵn sàng nhận kết nối. Thông điệp này còn chứa giá trị ISN của tiến trình trạm trong trường hợp số tuần tự thu để báo rằng thực thể dịch vụ đã nhận được giá trị ISN của tiến trình trạm (bước 2).

Tiến trình trạm trả lời lại gói SYN của thực thể dịch vụ bằng một thông báo trả lời ACK cuối cùng. Bằng cách này, các thực thể TCP trao đổi một cách tin cậy các giá trị ISN của nhau và có thể bắt đầu trao đổi dữ liệu.

Không có thông điệp nào trong ba bước trên chứa bất kỳ dữ liệu gì; tất cả thông tin trao đổi đều nằm trong phần tiêu đề của thông điệp TCP (bước 3).


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

Khi có nhu cầu kết thúc kết nối, thực thể TCP, ví dụ cụ thể A gửi yêu cầu kết thúc kết nối với FIN=1. Vì kết nối TCP là song công (full-duplex) nên mặc dù nhận được yêu cầu kết thúc kết nối của A (A thông báo hết số liệu gửi) thực thể B vẫn có thể tiếp tục truyền số liệu cho đến khi B không còn số liệu để gửi và thông báo cho A bằng yêu cầu kết thúc kết nối với FIN=1 của mình. Khi thực thể TCP đã nhận được thông điệp FIN và sau khi đã gửi thông điệp FIN của chính mình, kết nối TCP thực sụ kết thúc.




tải về 0.62 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   5   6   7   8   9   10   11   12   13




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương