24/05/2018, 14:30

Giao thức IP

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

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 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 để chuyển địa chỉ IP thành địa chỉ vật lý là ARP (Address Resolusion Protocol). Khi hai máy tính cùng nối vào một mạng vật lý, chúng biết được địa chỉ IP của nhau nhưng để truyền thông giữa hai máy, chúng phải biết được đị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 ví du sử dụng trên mạng token ring proNET-10 là mạng cho phép đặt địa chỉ IP và địa chỉ vật lý thoải mái. 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 tin gửi một 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 tính 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 tính có thể “nói chuyện” với nhau.

Hình 2.5: Quá trình hỏi đáp của gói tin ARP

  • Ngoài ra, người ta còn sử dụng bảng chỉ đường để lưu trữ tạm thời các địa chỉ sử dụng mới nhất (Address Reslution Cache) để tăng tốc độ của việc chuyển giao địa chỉ.

Một gói thông tin ARP là một Ethernet Frame được truyền trực tiếp từ máy này tới máy khác. Vì không phải sử dụng IP, gói tin này không có địa chỉ IP cũng như không cần được dẫn đường, nó phải được gửi broadcasts tới tất cả các máy trên mạng Ethernet (với địa chỉ FFFFFFFFFFFFF)

Gói thông tin ARP được mô tả như sau:

Hình 2.6 Cấu trúc gói tin ARP

Không giống phần lớn các giao thức khác, dữ liệu trong ARP không có một định dạng chuẩn cho header. Để ARP có thể làm việc với nhiều công nghệ khác nhau, người ta dùng một trường để chứa độ dài của những trường đi sau nó.

Trong trường hợp máy trạm không có thiết bị nhớ phụ, nó 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.

Một giao thức trong tầng Internet là ICMP được định nghĩa trong RFC 792. ICMP sử dụng gói tin IP để chuyển thông báo của nó. ICMP gửi các thông báo làm các công việc: Điều khiển, thông báo lỗi và chức năng thông tin cho TCP/IP.

Gói tin ICMP

Mặc dầu mỗi thông báo ICMP có một kiểu định dạng riêng của nó, chúng đều chứa 3 trường đầu tiên giống nhau.

  • TYPE: Định nghĩa thông báo đi sau.
  • CODE: Cung cấp thông tin thêm về thông báo.
  • CHECKSUM: Chưa checksum của thông báo.

Bảng 2.1 Bảng mã gói tin thông báo ICMP

Type Field ICMP Message Type
0 Echo Reply
3 Destination Unreachable
4 Source Quench
5 Redirect (Change o router)
8 Echo Request
11 Time Exceeded for a Datagram
12 Parameter Problem on a Datagram
13 Timestamp Request
14 Timestamp Reply
15 Information Request
16 Information Reply
17 Address Mask Request
18 Address Mask Reply

Điều khiển dòng dữ liệu

Khi dữ liệu gửi tới trạm nhận quá nhanh không kịp xử lý, trạm đích - hay một thiết bị dẫn đường gửi trả trạm nguồn một thông báo để nó tạm ngừng việc truyền thông tin.

Thông báo lỗi

Khi không tìm thấy trạm đích, một thông báo lỗi Destination Unreachable được được gateway gửi trả lại trạm nguồn. Nếu một cổng không nhận ra, trạm đích gửi thông báo lỗi lại cho trạm nguồn (chúng ta sẽ nói về cổng trong phần giao thức tầng giao vận).

UDP cho phép chương trình ứng dụng truy cập trực tiếp đến gói tin của dịch vụ chuyển giao giống như dịch vụ mà giao thức IP cung cấp. Nó cho phép ứng dụng trao đổi thông tin qua mạng với ít thông tin điều khiển nhất. UDP là giao thức không định kết nối, kém tin cậy vì nó không có cơ chế kiểm tra tính đúng đắn của dữ liệu truyền.

Gói thông tin UDP

Mỗi gói thông tin UDP gọi là một Datagram được phân làm 2 phần header và data trong đó header chứa thông tin về địa chỉ cổng nguồn, địa chỉ cổng đích, độ dài của gói và checksum.

Hình 2.7: Cấu trúc tiêu đề gói tin UDP

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 sequence number và Acknowledgment number trong TCP header giữ dấu của các byte. TCP tiêu chuẩn 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. Để giữ dấu dòng byte một cách chính xác, mỗi trạm cuối phải biết số thứ tự mà trạm kia dùng. Chúng phải đồng bộ hệ thống số để trao đổi SYN segment 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 số 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): Vì dữ liệu được coi là dòng byte nên đơn vị truyền có thể là byte. Để giảm số lượng truyền thông, giao thức cố gắng sử dụng số lượng tối đa của segment để truyền tải thông tin. 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. 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 2 trạm tham gia liên kết. Thông tin điều khiển gọi là "handshake" được trao đổi giữa 2 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 "Synchronize sequenence number" (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 đảm bảo cho dữ liệu một trật tự thích hợp. Trạm B đáp lại trạm B với một segment với bit "Acknowledgment" (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 hanshake chứa bit No more data from sender gọi là (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 Ackowledgment 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. Mỗi đơ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 không bị phá huỷ, trạm nhận gửi thông báo xác nhận lại trạm gửi, 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.

Hình 2.8: Tiêu đề gói tin TCP

Bảng 2.2 Ý nghĩa tiêu đề gói tin TCP

Trong đó:

Tên Ý nghĩa
Source Port Cổng nguồn
Destination Port Cổng đích
Sequence 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
Windows Số byte tối đa trạm đích có thể nhận
Checksum Checksum kiểm tra tính toàn vẹn
Urgent Pointer Độ dài dữ liệu khẩn đi sau
Option Tùy chọn
Padding Phần điền thêm vào các con số 0
Data Dữ liệu bắt đầu tại đây

NTP (Network Time Protocol), quản lý thời gian, giúp truyền và nhận tín hiệu trong khung thời gian xác định và đảm bảo chất lượng.

Triển khai:Trước đây, khi mạng số hóa chưa được liên ngôi, người ta phải dùng và chỉ có POTS (Plain Old Telephone Service). POTS đi qua mạng điện thoại PSTN (Public Switched Telephone Network).

Để gọi điện qua VOIP, người dùng cần có chương trình phần mềm điện thoại Sip hoặc một điện thoại VOIP dạng phần cứng. Có thể gói điện thoại đến bất cứ đâu/cho bất kỳ ai: cả đối với số điện thoại VOIP và những người dùng số điện thoại bình thường.

0