Bài viết gồm 4 phần, trình bày tổng quan về mô hình OSI, TCP/IP; Các giao thức TCP, UDP; Địa chỉ vật lý (MAC) và hành trình gói tin trên Internet. Sau đây là chi tiết các phần.
Phần 1: Tổng quan về mô hình OSI, TCP/IP
Ngày nay,
Internet đang ngày càng trở nên phổ biến và trở thành phương thức kết nối toàn
cầu. Để internet hoạt động, nó cần có các phương thức truyền dẫn và TCP/IP là một
phương thức phổ biến hiện nay. Bài viết này sẽ khái quát các mô hình OSI,
TCP/IP, đồng thời so sánh giao thức TCP/IP với OSI.
1. Mô hình OSI - mô hình tham chiếu 7 tầng
Mô hình OSI (Open Systems Interconnection) hay còn được gọi là “mô hình tham chiếu 7 tầng OSI”. Mục đích chính của chúng là giúp người sử dụng dễ hình dung hơn về cơ chế truyền tin giữa các máy tính với nhau. Mô hình OSI bao gồm 7 tầng, mỗi tầng đều có đặc tính là chỉ sử dụng chức năng của tầng dưới nó, đồng thời chúng cũng chỉ cho phép tầng trên sử dụng các chức năng của mình. Mô hình OSI thực chất là chia nhỏ các hoạt động phức tạp của mạng thành các phần công việc đơn giản , dễ hình dung hơn.
Chức năng của từng tầng:
Tầng 1: Tầng vật lý (Physical Layer) có
chức năng chính là điều khiển việc truyền tải các bit trên đường truyền vật lý.
Chúng định nghĩa các tín hiệu điện, trạng thái đường truyền, phương pháp mã hóa
dữ liệu.
Tầng 2: Tầng liên kết dữ liệu (Data-Link
Layer) Đảm bảo truyền tải các khung dữ liệu (Frame) giữa hai máy tính có đường
truyền vật lý nối trực tiếp với nhau là điều mà chúng thực hiện. Ngoài ra nó
còn cài đặt cơ chế phát hiện và xử lý lỗi dữ liệu nhận.
Tầng 3: Tầng mạng (Network Layer) tầng
mạng đảm nhiệm việc truyền các gói tin (packet) giữa hai máy tính bất kỳ trong
mạng máy tính.
Tầng 4: Tầng vận chuyển (Transport Layer)
Vai trò của chúng là phân nhỏ các gói tin có kích thước lớn khi gửi và tập hợp
chúng khi nhận, quá trình phân nhỏ khi gửi và nhận đảm bảo tính toàn vẹn cho dữ
liệu (không bị mất mát, không lặp và đúng thứ tự).
Tầng 5: Tầng giao dịch (Session) Quản
lý phiên làm việc giữa các người sử dụng chính là việc mà chúng làm.Tầng mạng
này cung cấp cơ chế nhận biết tên và chức năng bảo mật thông tin qua mạng máy
tính.
Tầng 6: Tầng trình bày (Presentaition
Layer) Đảm bảo các máy tính có kiểu định dạng dữ liệu khác nhau vẫn có thể
trao đổi thông tin cho nhau.Thường thì các máy tính sẽ thống nhất với nhau về một
kiểu định dạng dữ liệu trung gian để trao đổi thông tin giữa các máy tính. Trong
quá trình truyền dữ liệu, tầng trình bày bên máy gửi có nhiệm vụ dịch dữ liệu từ
định dạng riêng sang định dạng chung và quá trình ngược lại trên tầng trình bày
bên máy nhận.
Tầng 7: Tầng ứng dụng (Application Layer)
là tầng cung cấp các ứng dụng truy xuất đến các dịch vụ mạng như Web Browser, Mail
User Agent… hoặc các Program cung cấp các dịch vụ mạng như Web Server, FTP
Server, Mail Server…
Những ưu điểm
của OSI đó là:
·
OSI phân thành nhiều tầng nhỏ và đơn giản hơn.
·
OSI chuẩn hóa các thành phần mạng để phát triển
dễ dàng hơn.
·
OSI chuẩn hóa giao diện giữa các tầng.
·
Dữ liệu được truyền nhanh chóng và dễ dàng hơn.
2. Mô hình TCP/IP
2.1. Khái niệm
Nếu OSI được
hình thành mang tính chất dùng cho học tập nghiên cứu nhiều hơn là triển khai
thực tế, thì TCP/IP lại khác hoàn toàn. Chính trên chiếc máy tính chúng ta đang
sử dụng hàng ngày cũng dùng các giao thức TCP/IPv4 hoặc TCP/IPv6. Mô hình
TCP/IP còn được gọi với cái tên khác đó là mô hình DoD.
TCP/IP viết tắt
của Transmission Control Protocol/Internet Protocol – Giao thức điều khiển truyền
nhận/ Giao thức liên mạng. Đây là một bộ các giao thức truyền thông được sử dụng
để kết nối các thiết bị mạng với nhau trên internet. TCP/IP cũng có thể được sử
dụng như một giao thức truyền thông trong mạng máy tính riêng (mạng nội bộ).
Mô hình TCP/IP
có sự kết hợp giữa các giao thức riêng biệt. Nhiệm vụ của mỗi giao thức là giúp
máy tính có thể kết nối, truyền thông tin qua lại với nhau. TCP là giao thức điều
khiển truyền nhận còn Internet Protoco (IP) là giao thức liên mạng. TCP/IP gồm
4 tầng đó là tầng ứng dụng, tầng mạng, tầng giao vận và tầng vật lý.
FTP, HTTP,
HTTPS ba giao thức được dùng nhiều nhất
của TCP/IP. FTP là giao thức giúp cho máy tính có thể gửi dữ liệu không giới hạn
đến một hay nhiều máy tính khác. HTTP có chức năng truyền dữ liệu không an toàn
giữa người dùng web và máy chủ web. HTTPS là giao thức được dùng để truyền dữ
liệu an toàn giữa người dùng web và máy chủ web.
TCP/IP chỉ định
cách dữ liệu được trao đổi qua internet. Nó thực hiện bằng cách cung cấp thông
tin liên lạc đầu cuối. Từ đó xác định cách nó được chia thành các packet, xác định
địa chỉ, truyền dẫn, định tuyến và nhận dữ liệu. TCP/IP được thiết kế để đảm bảo
độ tin cậy, nó có khả năng khôi phục tự động khi gặp sự cố trong quá trình truyền
dữ liệu.
2.2. Sự phát triển và hình thành của mô
hình TCP/IP
Mô hình TCP/IP
được bắt nguồn từ Bộ giao thức liên mạng trong công trình DARPA từ những năm đầu
thập niên kỷ 1970.
Năm 1975, thử
nghiệm nối giữa hai mô hình TCP và IP được diễn ra thành công ngoài mong đợi.
Thành công nối tiếp, nhiều cuộc thử nghiệm khác đã diễn ra với hiệu quả bất ngờ.
T rải
qua vô số năm nghiên cứu và phát triển của 2 kỹ sư Robert E. Kahn và Vinton
Cerf cùng sự hỗ trợ của không ít các nhóm nghiên cứu. Đầu năm 1978, nhóm nghiên
cứu đã cho ra đời giao thức TCP/ IP được ổn định hóa với giao thức tiêu chuẩn
được dùng hiện nay của Internet đó là mô hình TCP/IP Version 4.
Năm 1982, Bộ
quốc phòng Mỹ đã chấp nhận giao thức này và TCP/IP được xem là một tiêu chuẩn
cho toàn bộ mạng lưới thông tin của quốc gia này.
2.3. Ưu điểm và nhược điểm của TCP/IP
Ưu điểm
Như đã đề cập ở
trên, TCP/IP là một mô hình có tính thực tế cao. Những đặc điểm nổi bật của nó
có thể được kể đến như:
·
Thiết lập kết nối giữa các loại máy tính khác
nhau.
·
Hoạt động độc lập với hệ điều hành.
·
Hỗ trợ nhiều giao thức định tuyến.
·
Kiến trúc client – server, khả năng mở rộng cao.
·
Có thể hoạt động độc lập.
·
Hỗ trợ nhiều giao thức định tuyến.
·
Nhẹ, không gây nhiều áp lực với máy tính hay mạng.
Nhược điểm
Dẫu vậy, không
có mô hình nào là hoàn hảo. TCP/IP cũng có một số điểm hạn chế cần được khắc phục:
·
Việc cài đặt khá phức tạp, khó để quản lý.
·
Tầng transport không đảm bảo việc phân phối các
gói tin.
·
Các giao thức trong TCP/IP không dễ để có thể
thay thế.
·
Không tách biệt rõ ràng các khái niệm về dịch vụ,
giao diện và giao thức. Do đó nó không hiệu quả để mô tả các công nghệ mới
trong mạng mới.
·
Dễ bị tấn công SYN – một kiểu tấn công từ chối dịch vụ.
2.4. Vai trò của TCP/IP
Trong hai giao
thức chính của bộ Giao thức internet, mỗi giao thức đảm nhiệm các chức năng cụ
thể. TCP xác định cách các ứng dụng có thể tạo ra các kênh truyền dẫn thông qua
mạng. Đồng thời, TCP quản lý cách một tin nhắn được chia thành các packet nhỏ
hơn trước khi truyền qua internet. Sau đó là cách chúng tập hợp lại theo đúng
thứ tự ở nơi nhận.
Đối với IP,
giao thức IP đảm bảo các gói được đi đến đúng địa chỉ đích. Mỗi gateway trên mạng
sẽ kiểm tra địa chỉ IP này để xác định nơi chuyển tiếp.
2.5. Các giao thức TCP/IP phổ biến
HTTP, HTTPS,
FTP được coi là 3 giao thức TCP/IP được sử dụng phổ biến nhất hiện nay.
+ Giao thức HTTP: Mục đích sử dụng HTTP
để truyền dữ liệu không an toàn giữa một web client và một web server. Bạn có
thể hiểu đơn giản rằng, một web client (trình duyệt Internet trên máy tính) sẽ
gửi một yêu cầu đến một web server để xem một trang web. Sau khi tiếp nhận yêu
cầu, máy chủ web xử lý và gửi thông tin trang web về cho web client.
+ Giao thức HTTPS: HTTPS là giao thức
được sử dụng để truyền thông tin dữ liệu bảo mật bởi 1 web client và 1 web
server. Giao thức này được dùng để gửi dữ liệu giao dịch thẻ tín dụng hoặc các
dữ liệu cá nhân khác từ một web client tới một web server.
+ FTP: FTP là giao thức trao đổi file
dùng giữa hai hoặc nhiều máy tính với qua Internet. Nhờ FTP, dù đang ở xa, người
dùng vẫn có thể truy cập vào máy chủ để truyền hoặc nhận dữ liệu
2.6. Cách thức hoạt động của giao thức
TCP/IP
Bộ giao thức
TCP/IP sử dụng mô hình giao tiếp client – server. Trong đó, người dùng (client)
được cung cấp dịch vụ (như gửi trang web) bởi một máy chủ (server) trong mạng.
TCP/IP là sự kết
hợp giữa 2 giao thức như tên gọi. Trong đó, IP (Giao thức liên mạng) có nhiệm vụ
gửi các gói tin đến đích đã định sẵn. Quy trình hoạt động của IP là thêm các
thông tin chỉ đường vào các gói tin để chúng đến được đích quy định.
Và giao thức
TCP (Giao thức truyền vận) đóng vai trò kiểm tra và đảm bảo sự an toàn cho mỗi
gói tin khi đi qua mỗi trạm. Khi giao thức TCP nhận thấy gói tin bị lỗi trong
quá trình truyền vận, một tín hiệu sẽ được phát ra và yêu cầu hệ thống máy chủ
gửi lại một gói tin khác. Quá trình hoạt động này sẽ được làm rõ hơn ở chức
năng của mỗi tầng trong mô hình TCP/IP trong phần dưới đây.
T óm
lại, mô hình TCP/IP tương đối khác so với mô hình mạng bảy lớp – Mô hình tham
chiếu hệ thống mở (Open Systems Interconnection – OSI). Mô hình OSI được ra đời
sau, xác định cách các ứng dụng có thể giao tiếp qua mạng.
2.7. Các tầng trong mô hình TCP/IP
Mô hình TCP/IP
tiêu chuẩn được chia thành 4 tầng (Layer) chồng lên nhau bao gồm: Tầng vật lý
(Physical) → Tầng mạng (Network) → Tầng giao vận (Transport) và cuối cùng là Tầng
ứng dụng (Application). Mỗi tầng đều có giao thức cụ thể khác nhau.
Tầng 1 – Tầng Vật Lý (Physical)
+ Còn gọi là
Link Layer, gồm các giao thức chỉ hoạt động trên một liên kết – thành phần mạng
kết nối các nút hoặc máy chủ trong mạng. Tầng này chịu trách nhiệm truyền dữ liệu
giữa hai thiết bị trong cùng một mạng.
+ Các giao thức
truyền dữ liệu: Ethernet (cho mạng LAN) và ARP.
Tầng 2 – Tầng Mạng (Internet)
+ Trong tầng
này sẽ có nhiệm vụ xử lý các network packet và kết nối các mạng độc lập. Từ đó
vận chuyển các packet qua network.
+ Giao thức:
IP và ICMP (Internet Control Message Protocol) – dùng để báo cáo lỗi.
Tầng 3 – Tầng Giao Vận (Transport)
+ Chịu trách
nhiệm duy trì thông tin liên tạc end-to-end trên toàn mạng. TCP xử lý thông tin
liên lạc giữa các máy chủ và cung cấp khả năng kiểm soát luồng, ghép kênh và độ
tin cậy.
+ Trong tầng
này bao gồm 2 giao thức cốt lõi là TCP và UDP. TCP giúp đảm bảo chất lượng gói
tin và UDP giúp tốc độ truyền tải nhanh hơn.
Tầng 4 – Tầng Ứng Dụng (Application)
+ Cung cấp cho
các ứng dụng những trao đổi dữ liệu chuẩn hóa, giao tiếp dữ liệu giữa 2 máy
khác nhau thông qua các dịch vụ mạng khác nhau.
+ Bao gồm các
giao thức trao đổi dữ liệu hỗ trợ truyền tập tin: HTTP, FTP, Post Office
Protocol 3 (POP3), Simple Mail Transfer Protocol (SMTP) và Simple Network
Management Protocol (SNMP).
+ Dữ liệu
trong tầng này là dữ liệu ứng dụng thực tế.
2.8. Điểm giống nhau và khác nhau giữa OSI
và TCP/IP
Giống nhau: Mô hình OSI và TCP/IP có một
số điểm chung như sau:
·
OSI và TCP/IP đều có kiến trúc phân lớp.
·
OSI và TCP/IP đều có lớp Network và lớp
Transport.
·
OSI và TCP/IP cùng sử dụng kỹ thuật chuyển
Packet.
Khác nhau:
Điểm so sánh |
TCP/IP |
OSI |
Phổ biến |
Được nhiều người sử dụng. |
Ít được sử dụng hơn. |
Phương pháp tiếp cận |
Chiều ngang. |
Chiều dọc. |
Cách giao tiếp ở các tầng |
Kết hợp để thực hiện nhiệm vụ. |
Mỗi tầng 1 nhiệm vụ riêng biệt. |
Sự phụ thuộc |
Phụ thuộc vào giao thức |
Độc lập hoàn toàn |
Sự phát triển |
Phát triển giao thức trước, xây dựng mô hình sau |
Xây dựng mô hình trước và giao thức dựng sau |
Để có thể hiểu
thêm về sự khác nhau giữa mô hình TCP/IP, bạn có thể tham khảo thêm một vài yếu
tố dưới đây nhé:
+ TCP/IP chỉ sử
dụng tầng ứng dụng để xác định chức năng của các tầng trên. Trong khi đó, OSI sử
dụng đến ba tầng (Application, presentation và session).
+ TCP/IP sử dụng
Link Layer để xác định chức năng tầng dưới cùng. Đối với OSI, nó sử dụng hai tầng:
Physical và Data Link.
+ OSI sử dụng
lớp Network để xác định các tiêu chuẩn và giao thức định tuyến. Chức năng này
được quản lý bởi tầng internet của TCP/IP.
+ Mô hình
TCP/IP là một tiêu chuẩn oriented protocol. Trong khi đó, OSI là một mô hình
chung dựa trên chức năng của mỗi lớp.
+ Cách tiếp cận
của TCP/IP là tiếp cận ngang, trong khi của OSI là dọc.
+ Trong bộ
TCP/IP, các giao thức được phát triển trước mô hình. Quá trình này ngược lại so
với OSI.
+ TCP/IP giúp
thiết lập kết nối giữa các loại máy tính với nhau. Mặt khác, OSI giúp chuẩn hóa
các router, switch, bo mạch chủ và các phần cứng khác.
Tóm lại, mỗi
mô hình đều có cách vận hành cũng như chức năng khác nhau. Tuy nhiên, có thể thấy
TCP/IP là một mô hình thực tế hơn khi nó đặt ra các tiêu chuẩn mà internet được
tạo ra. Trong khi đó, OSI cung cấp các hướng dẫn về cách giao tiếp phải được thực
hiện.
2.9. Ứng dụng của giao thức TCP/IP
Giao thức
TCP/IP có thể được sử dụng để cung cấp thông tin đăng nhập từ xa qua mạng, truyền
file tương tác, gửi email, phân phối trang web qua mạng và truy cập từ xa vào hệ
thống của máy chủ lưu trữ.
Nói cách khác,
TCP/IP được sử dụng để biểu thị thông tin thay đổi khi nó truyền qua mạng. Từ lớp
vật lý cụ thể đến lớp ứng dụng trừu tượng. TCP/IP trình bày chi tiết các giao
thức cơ bản hoặc các phương thức giao tiếp ở mỗi lớp khi thông tin đi qua.
Lời kết
Hy vọng bài viết
trên sẽ giúp bạn hiểu hơn về 2 mô hình OSI và TCP/IP, ứng dụng, sự giống và
khác nhau, ưu nhược điểm của 2 mô hình này. Xin chân thành cảm ơn.
Phần 2: Tìm hiểu giao thức TCP và UDP
Như chúng ta đều
biết TCP và UDP đều là hai giao thức cốt lõi nằm ở tầng giao vận (Transport)
thuộc giao thức TCP/IP có khả năng gửi tin đến các máy chủ khác trong mạng giao
thức Internet. Vậy TCP là gì? UDP là gì?
I. Những điều cơ bản về TCP và UDP
TCP
·
Đảm bảo rằng dữ liệu đến đúng như khi được gửi.
·
Kiểm tra lỗi các luồng dữ liệu.
·
Header 20 byte cho phép 40 byte dữ liệu tùy chọn.
·
Chậm hơn UDP.
·
Tốt nhất cho các ứng dụng yêu cầu độ tin cậy.
UDP
·
Không đảm bảo dữ liệu đến.
·
Không cung cấp tính năng kiểm tra lỗi.
·
Header 8 byte chỉ cho phép dữ liệu bắt buộc.
·
Nhanh hơn TCP.
·
Tốt nhất cho các ứng dụng yêu cầu tốc độ.
Cả hai giao thức
đều gửi dữ liệu qua internet dưới dạng gói. Trong đó, TCP thiên về kết nối. Sau
khi kết nối được thực hiện, dữ liệu sẽ di chuyển theo hai chiều. UDP là một
giao thức đơn giản hơn không có kết nối.
TCP mạnh hơn
UDP. Nó cung cấp các chức năng sửa lỗi và độ tin cậy cao. UDP nhanh hơn TCP, chủ
yếu vì nó không cung cấp khả năng sửa lỗi. Ngoài ra, TCP xử lý kiểm soát luồng,
trong khi UDP không có tùy chọn để kiểm soát luồng.
1. Giao thức TCP (Tranmission Control
Protocol)
1.1. Khái niệm
TCP là giao thức
truyền tải hướng kết nối (connection-oriented), nghĩa là phải thực hiện thiết lập
kết nối với đầu xa trước khi thực hiện truyền dữ liệu. Tiến trình thiết lập kết
nối ở TCP được gọi là tiến trình bắt tay 3 bước (threeway handshake).
Cung cấp cơ chế
báo nhận (Acknowledgement): Khi A gửi dữ liệu cho B, B nhận được thì gửi gói
tin cho A xác nhận là đã nhận. Nếu không nhận được tin xác nhận thì A sẽ gửi
cho đến khi B báo nhận thì thôi.
Cung cấp cơ chế
đánh số thứ tự gói tin (sequencing) cho các đơn vị dữ liệu được truyền, sử dụng
để ráp các gói tin chính xác ở điểm nhận và loại bỏ gói tin trùng lặp.
Có các cơ chế
điều khiển luồng thích hợp (flow control) để tránh nghẽn xảy ra.
Hỗ trợ cơ chế
full-duplex (truyền và nhận dữ liệu cùng một lúc).
Phục hồi dữ liệu
bị mất trên đường truyền ( A gửi B mà không thấy xác nhận sẽ gửi lại).
1.2. Cấu trúc gói tin TCP
Do là giao thức
tin cậy nên cấu trúc gói tin của TCP rất phức tạp.
+ Source port và destination port (đều dài 16
bit): được sử dụng để định danh cho session của giao thức nào đó trên lớp ứng
dụng đang được truyền tải trong TCP segment đang xét.
+ Sequence number (32 bit): dùng để đánh
số thứ tự gói tin (từ số sequence nó sẽ tính ra được số byte đã được truyền).
+ Acknowledge number (32 bit): dùng để
báo đã nhận được gói tin nào và mong nhận được byte mang số thứ tự nào tiếp
theo.
+ Header length (4 bit): cho biết toàn bộ
header dài bao nhiêu tính theo đơn vị word(1 Word = 4 byte).
+ Các bit reserverd (4 bit): đều được
thiết lập bằng 0.
+ Các bit control (9 bit): các bit dùng
để điều khiển cờ (flag) ACK, cờ Sequence...
+ Window size (16 bit): số lượng byte được
thiết bị sẵn sàng tiếp nhận.
+ Checksum (16 bit): kiểm tra lỗi của
toàn bộ TCP segment.
+ Urgent pointer (16 bit): sử dụng
trong trường hợp cần ưu tiên dữ liệu.
+ Options (tối đa 32 bit): cho phép thêm
vào TCP các tính năng khác
+ Data: dữ liệu của lớp trên
1.3. Cách thức hoạt động
TCP hoạt động
theo tiến trình bắt tay 3 bước mà mình đã nói ở trên.
Giả
sử host A muốn truyền dữ liệu cho host B thông qua một kết nối TCP. Trước khi
thực hiện truyền, host A cần phải thiết lập kết nối TCP với host B việc này được
tiến hành thông qua quá trình bắt tay 3 bước như sau:
+ Bước 1: Host A gửi cho B một gói tin
có cờ SYN được bật lên, với số thứ tự được đánh là 100. Segment đầu tiên này
không chứa phần dữ liệu nên không có phần data, tuy nhiên số lượng byte dữ liệu
vẫn được tính là một byte cho hoạt động gửi cờ SYN.
+ Bước 2: Host B nhận được gói tin thì
B gửi lại gói tin có cờ SYN được bật lên, kèm theo đó là cờ ACK để xác nhận.
Giả sử host B
thiết lập segment có số thứ tự là 300. Segment trả lời từ Host B này cũng không
có dữ liệu nhưng vẫn được tính là 1 byte cho phần data. Khi phản hồi lại host
A, host B cũng cần phải chỉ rõ trong trường ACK sequence số thứ tự của byte kế
tiếp mà nó muốn nhận từ host A. Do segment SYN do A gửi qua được tính là 1 byte
nên B sẽ mong muốn nhận byte tiếp theo là byte thứ 101 từ A , do đó ACK
sequence được đánh số là 101. (SEQ=300, ACK=101)
+ Bước 3: Sau khi kết nối đã được thiết
lập thì A gửi lại gói tin để đáp ứng nhu cầu của B. Gói tin được đánh số SEQ =
101 để đáp ứng nhu cầu của B. ACK =301 dùng để báo là đã nhận được gói tin có
SEQ = 300.
Sau khi 3 bước
được hoàn tất , kết nối TCP được thiết lập giữa host A và B, lúc này 2 host đã
có thể truyền dữ liệu được với nhau.
2. Giao thức UDP (User Datagram Protocol)
2.1. Khái niệm
Ngược lại với
giao thức TCP thì UDP là giao thức truyền tải hướng không kết nối
(connectionless). Nó sẽ không thực hiện thao tác xây dựng kết nối trước khi
truyền dữ liệu mà thực hiện truyền ngay lập tức khi có dữ liệu cần truyền (kiểu
truyền best effort) => truyền tải rất nhanh cho dữ liệu của lớp ứng dụng.
Không đảm bảo
tính tin cậy khi truyền dữ liệu và không có cơ chế phục hồi dữ liệu (nó không
quan tâm gói tin có đến đích hay không, không biết gói tin có bị mất mát trên
đường đi hay không) => dễ bị lỗi.
Không thực hiện
các biện pháp đánh số thứ tự cho các đơn vị dữ liệu được truyền…
Nhanh và hiệu
quả hơn đối với các dữ liệu có kích thước nhỏ và yêu cầu khắt khe về thời gian.
Bản chất không
trạng thái nên UDP hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng
lớn người yêu cầu.
2.2. Cấu trúc gói tin UDP
+ Source port và destination port (đều 16
bit): cho phép định danh một session của một ứng dụng nào đó chạy trên UDP.
Có thể coi port chính là địa chỉ của tâng Transport.
+ UDP length (16 bit): cho biết chiều
dài của toàn bộ UDP datagram tổng cộng bao nhiêu byte. (16 bit thì sẽ có tổng cộng
2^16 byte = 65536 giá trị (từ 0 -> 65535 byte)).
+ UDP checksum(16 bit): sử dụng thuật
toán mã vòng CRC để kiểm lỗi cho toàn bộ UDP datagram và chỉ kiểm tra một cách
hạn chế.
+ Data: dữ liệu tầng trên được đóng gói
vào UDP datagram đang xét.
2.3. Cách hoạt động của UDP
UDP hoạt động
tương tự như TCP nhưng nó không cung cấp kiểm tra lỗi khi truyền gói tin.
Khi một ứng dụng
sử dụng UDP, các gói tin chỉ được gửi đến người nhận. Người gửi không đợi để đảm
bảo người nhận nhận được gói tin hay không, mà tiếp tục gửi các gói tiếp theo.
Nếu người nhận miss mất một vài gói tin UDP thì gói tin đó coi như bị mất vì
người gửi sẽ không gửi lại chúng => Các thiết bị có thể giao tiếp nhanh hơn.
II. So sánh UDP và TCP
1. So sánh UDP và TCP
Giống nhau: đều là các giao thức mạng
TCP/IP, có chức năng kết nối các máy lại với nhau và có thể gửi dữ liệu cho
nhau….
Khác nhau
TCP |
UDP |
Hướng kết nối |
Hướng không kết nối |
Độ tin cậy cao |
Độ tin cậy thấp |
Gửi dữ liệu dạng luồng byte |
Gửi đi Datagram |
Không cho phép mất gói tin |
Cho phép mất gói tin |
Đảm bảo việc truyền dữ liệu |
Không đảm bảo việc truyền dữ liệu |
Có sắp xếp thứ tự các gói tin |
Không sắp xếp thứ tự các gói tin |
Tốc độ truyền thấp hơn UDP |
Tốc độ truyền cao |
2. Các ứng dụng của TCP
Dưới đây là
các ứng dụng của TCP:
+ TCP giúp bạn
thiết lập kết nối giữa các loại máy tính khác nhau.
+ Hoạt động độc
lập với hệ điều hành.
+ Hỗ trợ nhiều
giao thức định tuyến.
+ TCP cho phép
kết nối Internet giữa các tổ chức.
+ TCP có thể
hoạt động độc lập.
+ TCP có thể
được sử dụng để thiết lập kết nối giữa hai máy tính.
3. Các ứng dụng của UDP
Dưới đây là
các ứng dụng của UDP:
+ Phương pháp
UDP phần lớn được sử dụng bởi các ứng dụng nhạy cảm với thời gian cũng như những
máy chủ trả lời các truy vấn nhỏ từ cơ sở khách hàng lớn hơn.
+ UDP tương
thích với các chương trình phát gói để gửi trên toàn mạng và gửi đa hướng.
+ UDP cũng được
sử dụng trong Domain Name System, Voice over IP và các game trực tuyến.
4. Ưu, nhược điểm của TCP
Ưu điểm
·
Giúp bạn thiết lập kết nối giữa các loại máy
tính khác nhau.
·
Hoạt động độc lập với hệ điều hành.
·
Hỗ trợ nhiều giao thức định tuyến.
·
Cho phép kết nối Internet giữa các tổ chức.
·
Mô hình TCP/IP có kiến trúc client-server có khả
năng mở rộng cao.
·
Nó có thể hoạt động độc lập.
·
Nó có thể được sử dụng để thiết lập kết nối giữa
hai máy tính.
Nhược điểm
·
TCP không bao giờ kết thúc quá trình truyền mà
không yêu cầu rõ ràng tất cả dữ liệu đang chuyển động.
·
Bạn không thể sử dụng để truyền phát hoặc truyền
đa hướng.
·
TCP không có ranh giới khối, vì vậy bạn cần phải
tạo ranh giới riêng cho mình.
·
TCP cung cấp nhiều tính năng mà bạn không muốn.
Chúng có thể lãng phí băng thông, thời gian hoặc công sức.
·
Trong trường hợp này, mô hình hóa lớp truyền tải
không đảm bảo việc phân phối các gói tin.
·
Thay thế giao thức trong TCP/IP là không dễ
dàng.
·
Nó không cung cấp sự tách biệt rõ ràng với các dịch
vụ, giao diện và giao thức của nó.
5. Ưu, nhược điểm của UDP
Ưu điểm
·
Nó không bao giờ hạn chế bạn với một mô hình
giao tiếp dựa trên kết nối; đó là lý do tại sao độ trễ khởi động trong các ứng
dụng phân tán thấp.
·
Người nhận các gói UDP không được quản lý chúng,
điều này cũng bao gồm các ranh giới khối.
·
Khả năng truyền phát và truyền đa hướng có sẵn với
UDP.
·
Mất dữ liệu có thể xảy ra.
·
Giao dịch nhỏ (DNS lookup).
·
Ứng dụng chuyên sâu về băng thông chấp nhận được
hiện tượng mất gói.
Nhược điểm
·
Trong giao thức UDP, một gói có thể không được
phân phối hoặc phân phối hai lần. Nó có thể được truyền không theo thứ tự.
·
Các router không bao giờ truyền lại nếu xảy ra
xung đột.
·
UDP không có Congestion Control và tính năng kiểm
soát luồng, vì vậy việc triển khai là công việc của ứng dụng người dùng.
·
UDP thường xảy ra hiện tượng bị mất gói nghiêm
trọng hơn
6. Tốt nhất về độ tin cậy: TCP
TCP
·
Đảm bảo việc cung cấp dữ liệu.
·
Theo dõi các gói dữ liệu.
·
Kiểm tra các gói để tìm lỗi.
·
Kiểm soát lưu lượng.
·
Header 20 byte với một tùy chọn cho dữ liệu bổ
sung.
UDP
·
Không đảm bảo việc chuyển dữ liệu.
·
Các gói có thể bị mất.
·
Không có kiểm soát luồng.
·
Header được giới hạn ở 8 byte.
TCP đảm bảo việc
phân phối dữ liệu đến người nhận. Nếu bất kỳ dữ liệu nào bị mất, TCP sẽ thực hiện
các bước để khôi phục dữ liệu bị mất và gửi lại. Để thực hiện việc này, TCP
theo dõi các gói dữ liệu và kiểm tra chúng để tìm lỗi.
UDP không đảm
bảo việc cung cấp dữ liệu. Ngoài ra, các gói UDP có thể bị mất khi truyền hoặc
bị hỏng.
Cả TCP và UDP
đều sử dụng header như một phần của việc đóng gói dữ liệu thông báo và truyền
qua các kết nối mạng. Bởi vì TCP là giao thức mạnh mẽ hơn, nên header của nó
cũng lớn hơn (20 byte) với tùy chọn cho dữ liệu bổ sung, trong khi header UDP bị
giới hạn ở kích thước 8 byte.
7. Tốt nhất cho tốc độ: UDP
TCP: Chậm vì nó thực hiện nhiều chức
năng.
UDP: Nhanh chóng vì nó cung cấp các chức
năng hạn chế.
Mặc dù TCP rất
đáng tin cậy, nhưng nó chậm hơn UDP, chủ yếu là do TCP thực hiện nhiều chức
năng hơn. Những người dùng cuối yêu cầu tốc độ nhanh nhất có thể, chẳng hạn như
game thủ và những người làm việc với video, sẽ được hưởng lợi từ UDP.
8. Tùy chọn tốt nhất để sử dụng: Phụ thuộc
vào nhu cầu
TCP: Tốt nhất cho web, truyền file,
email và Secure Shell (SSH).
UDP: Tốt nhất cho VPN, phát video trực
tuyến, VoIP, phát sóng trực tiếp và chơi game trực tuyến.
Bởi vì TCP rất
đáng tin cậy, nên nó phù hợp sử dụng trong các tình huống yêu cầu độ tin cậy
cao nhưng không yêu cầu tốc độ, chẳng hạn như web, email và FTP.
Tốc độ của UDP làm cho nó phù hợp nhất để chơi game trực tuyến, phát sóng trực tiếp, tạo VPN tunnel và phát video trực tuyến.
Phần 3: Địa chỉ MAC
1. Khái niệm, ví dụ về địa chỉ MAC
Địa chỉ MAC,
tên đầy đủ là Media Access Control Address. Đây là một số nhận dạng duy nhất được
gán cho network interface controller (NIC), là một thành phần con của thiết bị
lớn hơn. NIC là nơi để bạn thực hiện kết nối vật lý với mạng bằng cách cắm cáp
Ethernet hoặc kết nối với tín hiệu WiFi. Các số này được dùng làm địa chỉ mạng
để giao tiếp trong một phân đoạn mạng.
Địa chỉ MAC là
một số thập lục phân (dãy số từ 0-9, A-F), gồm 6 octets, mỗi octets bằng 8
bits, được biểu diễn bằng 6 cặp chữ số hoặc ký tự khác nhau và được ngăn cách bằng
dấu hai chấm hoặc dấu gạch nối.
Ví dụ: Địa chỉ MAC của 2c549188c9e3 thường
được hiển thị dưới dạng 2C: 54: 91: 88: C9: E3 hoặc 2c-54-91-88-c9-e3.
Các nút mạng
có nhiều giao diện mạng, như Router và Switch đa lớp Layer phải có một địa chỉ
MAC duy nhất cho mỗi NIC trong cùng một mạng. Tuy nhiên, hai NIC được kết nối với
hai mạng khác nhau có thể chia sẻ cùng một địa chỉ MAC.
2. Phân loại địa chỉ MAC
Có ba loại địa
chỉ MAC, đó là: Địa chỉ MAC Unicast, Địa chỉ MAC Multicast, Địa chỉ MAC
Broadcast
2.1. Địa chỉ MAC Unicast:
Địa chỉ MAC Unicast đại diện cho NIC cụ thể trên mạng. Khung địa chỉ MAC Unicast chỉ được gửi đến giao diện được gán cho một NIC cụ thể. Do đó được truyền tới thiết bị đích duy nhất. Nếu LSB (bit ít quan trọng nhất) của octet đầu tiên của một địa chỉ được đặt thành 0, thì khung dữ liệu chỉ được truyền đến được một NIC đích.
2.2. Địa chỉ MAC Multicast:
Địa chỉ Multicast cho phép thiết bị nguồn
truyền khung dữ liệu đến nhiều thiết bị hoặc NIC. Trong địa chỉ Multicast
Layer-2 (Ethernet), LSB (bit ít quan trọng nhất) hoặc 3 byte đầu tiên của octet
đầu tiên của một địa chỉ sẽ được đặt thành 1 và lưu trữ cho các địa chỉ
multicast. 24 bit còn lại được sử dụng bởi thiết bị muốn gửi dữ liệu trong một
nhóm. IEEE sẽ cấp các địa chỉ 01-80-C2-xx-xx-xx (01-80-C2-00-00-00 đến
01-80-C2-FF-FF-FF) cho các địa chỉ nhóm để kết nối với nhau.
2.3. Địa chỉ MAC Broadcast
Địa chỉ MAC Broadcast đại diện cho tất
cả các thiết bị trong một Network. Trong địa chỉ MAC broadcast. Các khung
Ethernet có tất cả các bit của địa chỉ đích (FF-FF-FF-FF-FF-FF) được gọi là địa
chỉ broadcast. Tất cả các bit này là địa chỉ dành riêng cho broadcast. Các
khung có địa chỉ MAC FF-FF-FF-FF-FF-FF sẽ đến được với mọi máy tính thuộc phân
đoạn mạng LAN đó. Nếu thiết bị nguồn muốn gửi dữ liệu đến tất cả các thiết bị
trong mạng, thiết bị đó có thể sử dụng địa chỉ broadcast làm địa chỉ MAC đích.
3. Định dạng địa chỉ MAC
Địa chỉ MAC là một dãy số hexadecimal (hệ thập lục phân) 12 ký tự có thể là chữ, chữ số hoặc một ký tự đặc biệt nào đó. Trong đó 6 ký tự đầu tiên là những ký tự địa chỉ MAC định danh nhà sản xuất thiết bị đó, gọi là OUI (Organizational Unique Identifier), 6 ký tự bên phải đại diện cho card mạng, được gán bởi nhà sản xuất.
Ví dụ về các
ký tự định danh nhà sản xuất thiết bị mạng:
·
CC:46:D6 - Cisco
·
3C:5A:B4 - Google Inc.
·
3C:D9:2B - Hewlett Packard
·
00:9A:CD - HUAWEI TECHNOLOGIES CO.,LTD
4. Ưu nhược điểm khi sử dụng địa chỉ MAC
Lợi ích khi sử dụng địa chỉ MAC
MAC được sử dụng
như tính năng lọc trong các router wifi. Bạn có thể yêu cầu router từ chối truy
cập đến những địa chỉ MAC hoặc chỉ cho phép một số địa chỉ MAC nhất định kết nối.
Điều này giúp bạn hạn chế được nguy cơ xâm nhập trái phép từ những thiết bị lạ,
tránh đánh mất thông tin khi cùng kết nối cùng một đường truyền mạng.
Nhược điểm của địa chỉ MAC
Địa chỉ MAC có
nhược điểm lớn nhất là rất dễ dàng thay đổi địa chỉ MAC của thiết bị. Bất kỳ ai
cũng có thể “giả mạo” địa chỉ MAC của một người khác. Nó cũng làm cho các tính
năng như bộ lọc MAC gần như vô dụng.
5. Địa chỉ MAC khác với địa chỉ IP như thế
nào?
Địa chỉ IP
(Internet Protocol) được hiểu như một giao thức Internet cho phép các thiết bị
kết nối mạng chia sẻ hoặc truyền dữ liệu với nhau. Nói cách khác, địa chỉ IP sử
dụng giao thức internet để kết nối, nhận diện và liên lạc với nhau trên mạng
máy tính.
Cả địa chỉ MAC
và địa chỉ IP đều được sử dụng để xác định thiết bị của bạn trên mạng. Tuy
nhiên chúng được sử dụng cho các mục đích khác nhau.
Địa chỉ MAC giống
như dãy số nhận dạng xe, là dãy số nhận diện duy nhất cho mỗi chiếc xe. Địa chỉ
IP giống như biển số xe vì nó có thể được gán lại hoặc chuyển cho các phương tiện
khác nhau.
Ví dụ: Trong khi máy tính của bạn với địa
chỉ MAC X có thể có IP là 1.2.3.4 ngày hôm nay, tuy nhiên nếu bạn xóa máy tính
của mình khỏi mạng thì địa chỉ IP đó có thể được sử dụng bởi một máy tính khác
với địa chỉ MAC Y.
Địa chỉ MAC được
sử dụng để định tuyến dữ liệu trong cùng một mạng cục bộ. Bạn cần có địa chỉ IP
nếu muốn dữ liệu của mình truyền sang các mạng khác, chẳng hạn như Internet.
6. Clone địa chỉ MAC
Clone địa chỉ
MAC thực hiện khi xảy ra tình huống sau:
ISP sử dụng địa
chỉ MAC để gắn địa chỉ IP của router tới thiết bị kết nối. Khi thiết bị kết nối
tới ISP, DHCP server sẽ ghi lại địa chỉ MAC và sau đó gắn địa chỉ IP cho thiết
bị này. Lúc này hệ thống sẽ xác định thiết bị bằng địa chỉ MAC. Khi thiết bị bị
ngắt kết nối, nó sẽ bị mất địa chỉ IP. Nếu người dùng muốn kết nối lại và sử dụng
địa chỉ IP cũ, DHCP server sẽ kiểm tra xem liệu thiết bị này có được kết nối
trước đó không.
được sẽ cho phép kết nối, nếu không thì người
dùng sẽ clone địa chỉ MAC. Người dùng chỉ cần thay đổi thành địa chỉ MAC đã
đăng ký với ISP lần trước. Bây giờ bộ định tuyến tiếp tục báo cáo cho ISP về địa
chỉ MAC cũ, và sẽ không có vấn đề gì xảy ra trong quá trình kết nối.
7. Địa chỉ MAC có thể thay đổi được không?
Địa chỉ MAC là
một dãy số cố định được nhà sản xuất quy định cho mỗi thiết bị vì vậy không thể
thay đổi được. Tuy nhiên, địa chỉ MAC có thể được thay đổi ảo khi hiển thị trên
hệ thống mạng. Có nhiều thiết bị mạng có thể thay đổi được địa chỉ MAC như
router, máy tính.
+ Cách thay đổi
địa chỉ MAC trên Router: Nếu router có tính năng nhân bản MAC. Bạn có thể thực
hiện được vì hầu hết các router đều có tính năng này. Các thay đổi như sau:
đăng nhập vào giao diện web của router, đến thiết lập WAN và nhập địa chỉ MAC mới.
Nhập bất kì chỉ cần đúng định dạng
+ Cách thay đổi
địa chỉ MAC trên máy tính: dùng Start và gõ ncpa.cpl => Enter, cửa sổ
network xuất hiện. click chuột phải vào Adapter muốn đổi MAC => Properties,
cửa sổ mới xuất hiện. Nhấn Configure => Advanced => Network Address/locally
Administered Address. Thay đổi Value thành địa chỉ MAC khác đúng định dạng và
chọn ok. Restart máy tính, địa chỉ MAC mới sẽ được áp dụng.
Có thể thấy địa
chỉ MAC đóng một vai trò quan trọng trong quá trình duyệt web từ khi người dùng
gõ Domain name System vào trình duyệt hay tìm kiếm thông tin cụ thể từ các thiết
bị đầu vào như máy tính, điện thoại cho đến khi xuất hiện các thông tin kết quả
mong muốn. Quá trình nảy tuy diễn ra trong 1 vài dây nhưng có rất nhiều các bộ
phận khác nhau cùng thực hiện và MAC đóng 1 phần quan trọng giúp dữ liệu trả về
đúng thiết bị ban đầu đưa ra yêu cầu.
Phần 4: Hành trình của một gói tin trên Internet
Một gói tin được
truyền đi giữa các máy tính trong mạng LAN/WAN hay giữa Client-Server trên mạng
Internet là nhờ vào bộ giao thức TCP/IP.
1. Tại Máy tính
Lớp Application
Lớp
Application là lớp gần nhất và tương tác với người dùng, cung cấp các giao thức
sử dụng để gửi dữ liệu. Ở đây, lớp Application cung cấp dịch vụ, giao thức mà
người dùng sử dụng để tương tác, chứng thực và sử dụng giao thức phù hợp với mục
đích người dùng. Dữ liệu tại đây sẽ được đóng gói, định dạng theo giao thức sử
dụng và mã hoá nếu yêu cầu.
Ví dụ:
Khi nhập địa
chỉ một trang web vào trình duyệt, thì một request HTTP GET sẽ được tạo ra, dựa
trên những thông tin mà người dùng nhập.
Khi gửi email
thì dữ liệu sẽ được đóng gói với các thông tin như người nhận, email người nhận,
nội dung mail...
Lớp Transport
Tại lớp
Transport, dữ liệu sẽ được phân đoạn, các phần phân đoạn được đóng gói với một
header, header được thêm vào để xác định thông tin như port nguồn, port đích,
thông tin kiểm lỗi, đánh dấu thứ tự... tất
cả để máy đích khi nhận được sẽ ghép lại thành một khối dữ liệu hoàn chỉnh. Các
phần phân đoạn này được gọi là segment nếu dùng TCP hoặc diagram nếu dùng UDP.
Vì có rất nhiều
ứng dụng chạy trên host, nên để chuyển chính xác dữ liệu cho các ứng dụng thì
đây là nhiệm vụ của port trong header của lớp này. Mọi ứng dụng muốn truy cập mạng
đều phải thông qua port, port của từng ứng dụng phải mang giá trị độc nhất trên
host đó. Ví dụ một số port thông dụng:
·
HTTP: 80
·
HTTPS: 443
·
FTP: 21
·
DNS: 53
·
SMTP: 25
Tùy theo ứng dụng
khác nhau, yêu cầu độ tin cậy khác nhau, lớp Transport sử dụng giao thức TCP
hay UDP cho phù hợp:
+ TCP: là giao
thức tin cậy, đảm bảo cho tất vả dữ liệu đều được chuyển tới đích đúng và đủ.
Dùng cho các tác vụ yêu cầu sự chính xác và đảm bảo dữ liệu.
+ UDP: là giao
thức đơn giản, không cung cấp bất kỳ sự tin cậy nào. Dùng cho các việc cần độ
trễ thấp như streaming, game...
Lớp Network
Tại đây, các
segment sẽ được gắn thêm một header gọi là IP Header, bao gồm hai thông tin
chính là địa chỉ Source IP và Destination IP. Các gói tin bây giờ được gọi là
packet. Source IP là địa chỉ IP của máy gửi, địa chỉ này có thể được đặt bởi
người dùng hay được cấp phát động qua giao thức DHCP. Destination IP là địa chỉ
IP của máy đích, địa chỉ là có thể được cài đặt trực tiếp hoặc xác định bởi
DNS.
DNS là hệ thống
phân giải tên miền, khi máy tính truy cập vào một ứng dụng mạng thông qua tên
miền thì DNS sẽ truy vấn tên miền đó và trả về địa chỉ IP của máy chủ đó và đồng
thời máy tính sẽ lưu lại thông tin máy chủ này, thông tin được lưu lại gọi là
DNS Cache. Để truy vấn nhanh hơn thì đầu tiên máy tính sẽ truy vấn trong DNS Cache,
nếu không tìm thấy IP tương ứng với tên miền thì một DNS Request sẽ được gửi tới
DNS Server để phản hồi thông tin cần thiết sử dụng và thông tin này sẽ lại được
đưa xuống DNS Cache.
Trong Windows,
có thể xem thông tin DNS Cache bằng lệnh ipconfig
/displaydns
DHCP là giao
thức khi một máy tính được kết nối vào một mạng mà địa chỉ IP của nó chưa được
đặt, DHCP server (là router ở các mô hình mạng nhỏ, đối với các mạng lớn hơn sẽ
có một máy chủ chuyên dụng để cấp IP) sẽ lấy một địa chỉ IP sẵn có dùng để cấp
phát cho DHCP client (máy tính cần cấp phát địa chỉ IP).
Cả DNS và DHCP
đều hoạt động ở lớp Application.
Lớp Data Link
Để một gói tin
có thể gửi tới đích cần thêm một loại địa chỉ nữa đó là địa chỉ MAC hay địa chỉ
vật lý. Địa chỉ này là độc nhất cho mọi thiết bị. Tầng này sẽ ghép frame header
và frame trailer lần lượt vào đầu và cuối packet. Các packet bây giờ được gọi
là frame. Phần header chứa Source MAC và Destination MAC và vài thông tin điều
khiển. Phần trailer chứa thông tin dùng để kiểm lỗi bit (ví dụ như CRC).
Source MAC
chính là địa chỉ MAC của máy gửi, có thể kiểm tra địa chỉ MAC của máy tính bằng
câu lệnh getmac trong Command Prompt.
Để xác định địa
chỉ Destination MAC dựa vào Destination IP, máy tính sẽ từ động tìm kiếm trong
ARP cache. Xem thông tin ARP cache bằng cách sử dụng câu lệnh arp –a trong
Command Prompt.
Nếu không tìm
thấy Destination MAC tương ứng với Destination IP, máy tính sẽ sử dụng giao thức
ARP. Một gói tin gọi là ARP Request đính kèm Destination IP sẽ được gửi
Broadcast tới tất cả các máy trong mạng chứa máy nguồn, một số trường hợp xảy
ra như sau:
+ Nếu
Destination IP là địa chỉ IP cục bộ của mạng đó, máy tính mang địa chỉ IP này sẽ
trả lời với địa chỉ MAC của nó về cho máy gửi ARP Request. Vậy Destination MAC ở
đây chính là địa chỉ MAC của máy tính cùng mạng với máy gửi.
+ Nếu
Destination IP là địa chỉ IP của mạng khác, Router chứa mạng này sẽ phát hiện
ra điều đó và trả lời với địa chỉ MAC của router nên Destination MAC ở đây sẽ
là địa chỉ MAC của router.
+ Nếu Destination
IP là địa chỉ IP của mạng khác và địa chỉ Default gateway cũng như Subnet mask
đã được đặt, máy tính sẽ sử dụng thông tin này để xác định được Gateway và gửi
gói tin đến đây. Destination MAC ở đây sẽ là địa chỉ của Gateway, thường sẽ là
một router.
Destination
MAC sau khi được xác định sẽ lưu lại vào ARP Cache cho lần sử dụng tiếp theo.
Lớp Physical
Sau khi xác định
đầy đủ địa chỉ Source MAC và Destination MAC, các frame sẽ được đưa xuống lớp
Physical, được mã hóa và chuyển đổi thành các xung điện để đưa lên đường truyền.
2. Khi ra khỏi máy tính
Tại switch
Các máy tính
trong cùng một mạng thường sẽ được tập hợp lại thông qua switch. Điểm đến tiếp
theo của frame sẽ là một port switch. Tại đây, frame được đặt trong một hàng đợi,
mỗi frame có mức ưu tiên khác nhau và switch dựa vào điều này để xử lý các
frame quan trọng trước.
Switch sẽ mở
gói tin ra và đọc địa chỉ Source MAC, lưu vào MAC Address table, lưu số port và
địa chỉ MAC kết nối trực tiếp với port này, tiếp theo đọc Destination MAC của
gói tin so sánh với bảng MAC Address table của switch và có những hành động
tương ứng:
+ Nếu
Destination MAC là địa chỉ tồn tại trong MAC Address table, switch sẽ gửi gói
tin qua port tương ứng.
+ Nếu
Destination MAC là địa chỉ không tồn tại trong MAC Address table hoặc là địa chỉ
broadcast, switch sẽ gửi gói tin ra tất cả các port trừ cổng nhận vào.
+ Nếu
Destination MAC trùng với Source MAC, frame sẽ bị drop – không gửi ra bất kỳ
port nào.
Như vậy, nếu
máy nhận nằm trong cùng một mạng với máy gửi, thì chỉ cần thông qua switch,
frame đã có thể được chuyển tới đích. Trường hợp máy nhận nằm khác mạng với máy
gửi. Frame sẽ được chuyển tiếp tới router để xử lý.
Tại Router
Router sẽ gỡ bỏ
header của lớp Data Link (bao gồm Source MAC và Destination MAC) và đọc thông
tin lớp Network (Bao gồm Source IP và Destination IP).
Router sử dụng
Destination IP, so sánh với Routing table. Routing table chứa danh sách các đường
đi được sử dụng để chuyển gói tin và interface đầu ra tương ứng. Các đường đi
này có thể được gán tĩnh bởi người quản trị mạng, hoặc có thể được thêm vào qua
các giao thức định tuyến như OSPF, EIGRP, RIP, IS-IS... Các giao thức này nhằm
tìm ra đường đi ngắn nhất đến mạng đích và lưu vào Routing table.
+ Nếu không
tìm được đường đi nào tương ứng với địa chỉ mạng của Destination IP hoặc trường
TTL (time to live) trong IP Header (sẽ giảm dần qua mỗi lần chuyển, tránh trường
hợp gói tin bị loop vô tận) bằng 0, gói tin sẽ bị drop và router gửi thông báo
“Destination host unreachable” ngược lại cho máy gửi.
+ Nếu tìm được
đường đi tương ứng với địa chỉ mạng của Destination IP, router thêm lại header
chứa Source MAC – chính là địa chỉ MAC của interface tương ứng với đường đi tìm
được và Destination MAC – là địa chỉ của MAC của interface router tiếp theo.
Như vậy, trong suốt quá trình gửi đi, Source IP và Destination IP luôn được giữ
nguyên (trừ trường hợp sử dụng NAT, VPN) còn Source MAC và Destination MAC sẽ
thay đổi mỗi khi qua router.
Quá trình trên
sẽ được lặp lại cho đến khi router phát hiện ra Destination IP nằm chung mạng với
một Interface của router. Khi đó router cũng sẽ sử dụng giao thức ARP để xác định
địa chỉ MAC của máy đích và dùng nó để làm Destination MAC và gửi gói tin đến
máy đích.
0 comments:
Đăng nhận xét