TCP/IP là gì? Các ứng dụng sử dụng giao thức TCP/IP
Hiểu đúng về khái niệm TCP/IP
Tên của giao thức liên quan đến hai giao thức quan trọng nhất trong bộ giao thức:
- TCP là viết tắt của Transmission Control Protocol, tạm dịch: Giao thức kiểm soát truyền tải.
- IP là viết tắt của Internet Protocol, tạm dịch: Giao thức Internet.
Kết hợp hai cụm trên, TCP/IP là một tập hợp các giao thức (protocol) điều khiển truyền thông giữa tất cả các máy tính trên Internet. Cụ thể hơn, TCP/IP chỉ rõ cách thức đóng gói thông tin (gói tin), được gửi và nhận bởi các máy tính có kết nối với nhau.
Hiểu đơn giản, TCP/IP là bộ giao thức cho phép kết nối các hệ thống mạng không đồng nhất với nhau. Đây là 2 giao thức đầu tiên trên thế giới được định nghĩa.
Lịch sử phát triển của TCP/IP
Nguồn gốc của TCP/IP phải kể đến Bộ giao thức liên mạng trong DARPA vào năm 1970.
Năm 1975, thử nghiệm nối giữa hai mô hình TCP và IP diễn ra vô cùng thành công. Sau đó, nhiều cuộc thử nghiệm khác đã diễn ra với hiệu quả vượt mong đợi.
Năm 1978, theo hợp đồng tại Bộ Quốc phòng Mỹ, sau nhiều năm phát triển, nhóm nghiên cứu của Bob Kahn và Vint Cerf đã cho ra đời sản phẩm TCP/IP. Đây là mô hình TCP/IP Version 4 – bộ giao thức ổn định và chuẩn như hiện nay.
Năm 1982, Bộ quốc phòng Mỹ chấp nhận giao thức này được xem như 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.
Cấu trúc của TCP/IP
Bản chất của TCP/IP là một chuẩn phổ biến mà các mạng nội bộ và diện rộng có thể giao tiếp, cho phép các máy tính kết nối với nhau và cho các ứng dụng để gửi dữ liệu đi và về.
Để hoạt động nhịp nhàng, TCP/IP phải có 4 lớp/tầng trừu tượng, mỗi lớp có một bộ giao thức riêng.
Lớp kết nối (link layer)
Đây là lớp thấp nhất trong ngăn TCP/IP, còn được gọi là tầng liên kết dữ liệu hay tầng giao tiếp mạng.
Link Layer bao gồm các thiết bị giao tiếp mạng và các chương trình cung cấp các thông tin cần thiết để có thể hoạt động, truy nhập đường truyền vật lý qua các thiết bị giao tiếp mạng đó. Hiểu đơn giản, lớp này là một nhóm phương thức vận hành trên một kết nối của máy chủ, thường được biết đến là Ethernet.
Lớp Internet (IP)
Đây là lớp kết nối các mạng nội bộ với nhau, còn được gọi là tầng Mạng.
Lớp Internet sẽ xử lý quá trình truyền gói tin trên mạng. Các giao thức của lớp này bao gồm:
- IP – Internet Protocol
- ICMP-Internet Control Message Protocol
- IGMP- Internet Group Message Protocol
Lớp truyền tải (transport layer) (TCP)
Đây là lớp điều khiển giao tiếp máy chủ tới máy chủ, còn được gọi là Tầng giao vận.
Lớp truyền tải sẽ phụ trách luồng dữ liệu giữa 2 trạm thực hiện các ứng dụng của lớp trên. Lớp này có 2 giao thức chính là:
- TCP – Transmission Control Protocol: cung cấp luồng dữ liệu tin cậy giữa 2 trạm nhờ nhiều cơ chế. Ví dụ như chia nhỏ các gói tin ở tầng trên thành các gói tin có kích thước thích hợp cho tầng mạng bên dưới, báo nhận gói tin, đặt hạn chế thời gian timeout để đảm bảo bên nhận biết được các gói tin đã gửi đi.
- UDP – User Datagram Protocol: gửi dữ liệu từ trạm này tới trạm kia mà không đảm bảo các gói tin đến được tới đích.
Lớp ứng dụng (application layer)
Đây là một tập hợp các giao thức cụ thể giao tiếp dữ liệu trên một lớp quá trình tới quá trình. Ví dụ, HTTP là một giao thức ứng dụng là nền tảng của World Wide Web (www).
Lớp này cung cấp rất nhiều ứng dụng. Phổ biến nhất là Telnet sử dụng trong việc truy cập mạng từ xa, FTP-File Transport Protocol hỗ trợ truyền tệp tin, …
Nguyên lý hoạt động của TCP/IP
TCP/IP hoạt động như thế nào?
Mỗi khi có gói thông tin đi qua trạm, TCP sẽ kiểm tra, đảm bảo sự an toàn cho mỗi gói tin đó.
Nếu phát hiện gói tin bị lỗi, một tín hiệu sẽ được truyền đi và yêu cầu hệ thống gửi lại gói tin khác. Quá trình này được thực hiện do sự kết hợp nhịp nhàng của 4 lớp trong mô hình TCP/IP.
Là giao thức liên mạng, giao thức IP sẽ thêm thông tin dẫn đường vào các gói tin đó để các gói tin được gửi đến đúng đích đã được định sẵn ban đầu.
TCP/IP mang đến lợi ích gì cho người dùng?
Nhờ mô hình TCP/IP, người dùng có thể:
- Linh hoạt sử dụng do TCP/IP không chịu sự kiểm soát của bất cứ công ty nào
- Thoải mái sử dụng vì giao thức này tương thích được với tất cả hệ điều hành, các loại phần cứng máy tính và mạng.
- Định tuyến, xác định đường dẫn hiệu quả nhất thông qua mạng vì TCP/IP là giao thức có khả năng mở rộng cao.
Các giao thức TCP/IP phổ biến hiện nay
HTTP – HyperText Transfer Protocol
Đây là giao thức được sử dụng để truyền thông tin dữ liệu không bảo mật giữa 1 web client và 1 web server. Những dữ liệu đó thường là gồm các file ảnh, tệp HTML,…
Nguyên lý hoạt động là: Một trình duyệt Internet trên máy tính (web client) gửi 1 yêu cầu tới 1 web server để xem 1 trang web. Khi nhận được yêu cầu đó, máy chủ web gửi thông tin trang web về cho trình duyệt Internet đó.
HTTPS – Hypertext Transfer Protocol Secure
Đây 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 sử dụng mô hình TCP/IP, kết hợp giữa SSL và TLS.
HTTPS thường được dùng để gửi dữ liệu giao dịch thẻ tín dụng hoặc là các dữ liệu cá nhân khác từ 1 web client (ví dụ: trình duyệt Internet trên máy tính) đến 1 web server.
FTP – File Transfer Protocol
Đây là giao thức được dùng giữa 2 hoặc nhiều máy tính với nhau qua Internet. FTP hoạt động trên hai cổng là 20 và 21. Nhờ FTP, các máy client trong mạng có khả năng truy cập đến máy chủ để gửi và lấy dữ liệu.
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.
Những câu hỏi thường gặp về TCP/IP
Nên chọn mô hình TCP/IP hay OSI?
So với mô hình OSI, giao thức TCP/IP được nhiều người sử dụng và tin tưởng hơn. TCP/IP không quá khắt khe các quy tắc đối với người dùng. Đồng thời, TCP/IP cũng cung cấp các nguyên tắc chung.
TCP/IP tiếp cận theo chiều ngang còn OSI tiếp cận theo chiều dọc.
Điểm khác biệt còn nằm ở sự kết hợp giữa các tầng với nhau. Với TCP/IP thì tầng trình diễn được kết hợp với tầng phiên trong tầng ứng dụng. Với OSI, mỗi tầng sẽ thực hiện một nhiệm vụ khác nhau.
Trong TCP/IP, các giao thức được thiết kế trước, sau đó, mô hình sẽ được phát triển. Ngược lại, mô hình trong OSI sẽ được phát triển trước rồi các giao thức được phát triển sau.
TCP/IP là 1 mô hình phụ thuộc hoàn toàn vào giao thức còn OSI thì lại là 1 chuẩn giao thức độc lập.
TCP/IP khác biệt gì so với Ethernet?
TCP/IP mô tả các quy tắc phân chia thông tin thành những phần nhỏ, cung cấp địa chỉ, kiểm tra và phát hiện lỗi, theo dõi và kiểm soát trình tự truyền gói tin. Trong khi Ethernet là một tiêu chuẩn mạng quy định không có máy tính hoặc thiết bị trung tâm nào trên mạng (node) phải kiểm soát thời điểm dữ liệu có thể được truyền đi. Mỗi node sẽ chủ động truyền dữ liệu khi xác định mạng có thể nhận thông tin liên lạc.
Ethernet là một công nghệ cục bộ, một giao thức cho Network Layer trong TCP/IP stack. Nó mô tả cách các thiết bị nối mạng có thể định dạng dữ liệu để truyền đến những thiết bị mạng khác trên cùng một segment mạng và làm thế nào để đưa dữ liệu đó ra trên kết nối mạng. Trong khi đó, TCP/IP là một bộ giao thức được sử dụng trong các lớp OSI để kết nối mạng hiệu quả giữa mỗi lớp. TCP/IP cho phép hai hệ thống giao tiếp với nhau và chức năng này hoàn toàn độc lập với kiến trúc cơ bản trên cả hai hệ thống.
Dữ liệu truyền vào các lớp có giống nhau không?
Ở mỗi lớp khác nhau, dữ liệu được truyền vào là khác nhau. Cụ thể là:
- Lớp kết nối (link layer): dữ liệu được truyền đi gọi là Frame.
- Lớp Internet (IP): dữ liệu mà IP gửi xuống tầng dưới gọi là IP Datagram.
- Lớp truyền tải (transport layer) (TCP): đơn vị dữ liệu TCP gửi xuống gọi là TCP segment.
- Lớp ứng dụng (application layer): dữ liệu là các luồng được gọi là Stream.
Giao thức nào được sử dụng ở mỗi lớp?
Hiểu đơn giản, giao thức ở lớp cao hơn dùng giao thức ở lớp thấp hơn để đạt được mục đích của mình.
- Lớp kết nối (link layer): Ethernet, Wi-Fi, Token Ring, FDDI (Fiber Distributed Data Interface)
- Lớp Internet (IP): IP gán địa chỉ cho dữ liệu trước khi truyền và định tuyến chúng tới đích, ICMP thông báo lỗi trong trường hợp truyền dữ liệu bị hỏng, …
- Lớp truyền tải (transport layer) (TCP): TCP đảm bảo truyền dữ liệu một cách tin cậy, UDP tăng tốc độ truyền tải, …
- Lớp ứng dụng (application layer): FTP truyền các file ASCII hoặc nhị phân theo 2 chiều, SMTP phân phối thư điện tử, HTTP truyền nội dung giữa client và server, DNS hỗ trợ truy nhập Internet, …