Ví dụ

Thứ Tư, 20 tháng 12, 2017

Tự Học CCNA Bài 3 : Lớp TRANSPORT của mô hình TCP/IP

Tự Học CCNA Bài 3 : Lớp TRANSPORT của mô hình TCP/IP

Tiếp nối series “ Tự Học CCNAx” hôm nay mình xin tiếp tục chia sẻ “Lớp TRANSPORT trong mô hình TCP/IP và cách thức hoạt động của phân lớp này”.
Bài viết nên xem qua :
Series “Tự học CCNA”
Các phần mình sẻ chia sẻ trong topic này:
CONTENT
***Lớp Transport chịu trách nhiệm :
+ Truyền tải các session trao đổi dữ liệu của lớp Application qua một kết nối end – to – end
+ Thực hiện phân mảnh data, đóng gói các PDU của lớp trên vào dữ liệu của Lớp 4
+ 2 phương thức chính trong truyền tải của lớp Transport : connection – oriented hoặc connectionless.
+ 2 Giao thức đặt trưng của lớp Transport : UDP và TCP
1/ Giao thức UDP (User Datagram Protocol)
– Là một giao thức truyền tải theo phương thức connectionless điển hình. Giao thức của phương thức này không xây dựng kết nối trước khi truyền  mà truyền trực tiếp ngay lập tức – truyền theo kiểu best effort. Phương thức connectionless cũng không có các phương thức đảm bộ độ tin cậy như báo nhận, điều khiển kết nối ( flow control ), hay kiểu đánh số thức tự các gói tin bị chặt nhỏ trên đường truyền. Nên giao thức này truyền tải rất nhanh, được dùng cho các gói tin như Voice hay Video. Tuy nhiên hoạt động truyền này không có độ tin cậy cao và dễ gây mất gói và gây lỗi.
  Cấu trúc dữ liệu của một UDP Datagram
-Ta thấy cấu trúc một UDP rất đơn giản như :
  • Các trường source port, destination port : cho phép định danh một session của một ứng dụng nào đó chạy trên nền UDP, Port có thể xem là địa chỉ của lớp 4
  • Trường UDP length : cho biết chiều dài gói tin UDP
  • Trường UDP checksum : thực hiện nhiệm vụ kiểm tra lỗi cho UDP Datagram
  • Data: dữ liệu từ lớp trên được đóng gói vào UDP Datagram.
2/Giao thức TCP(Tranmission Control Protocol)
2.1 Overview
-TCP(Tranmission Control Protocol) là một giao thức có phương thức truyền tải dạng connection – oriented và mang các đặc điểm :
  • Phải thực hiện thiết lập kết nối đầu xa trước khi thực hiện trao đổi dữ liệu, tiến trình thiết lập kết nối này điển hình cho giao thức TCP gọi là tiến trình Threeway handshake.
  • Phải thực hiện các cơ chế báo nhận khi truyền dữ liệu, mỗi segment gửi đi đều phải được báo nhận (Acknowledge), những segment nào không được bật ACK thì coi nhưng segment lỗi và phải xử lí để bật ACK và truyền lại.
  • Phải có cơ chế đánh số thứ tự (Sequencing) cho các segment được truyền .
  • Kèm theo cơ chế điều khiển kết nối – điều khiển luồng dữ liệu (flow control) để xử lí tránh ngẽn đường truyền.
-Một kết nối TCP cũng được xem như một cặp đường kết nối luận lý giữa 2 host end to end, mỗi đường phục vụ cho một hướng truyền dữ liệu – kiểu truyền full duplex.
-Cấu trúc một gói TCP Segment:
  • Trường Source port and Destination port : được sử dụng để định danh cho các session của giao thức nào chạy trên nền TCP.
  • Trường Sequence number : trường đánh số thứ tự các byte đầu tiên trong phần data của segment. Đảm bảo việc sắp xếp và lắp rắp lại đúng trình thự ban đầu khi gói tin bị chặt gói trên đường truyền ở phía đầu nhận.
  • Trường Acknowledgement number : trường đánh số thứ tự các byte kế tiếp để bật ACK gửi qua đầu nhận.
  • Trường Header length : cho biết chiều dài của TCP header
  • Các bit control : thực hiện các chức năng như điều khiển thiết lập kết nối, kiểm soát lỗi, flow control….
  • Window size : cho biết số lượng byte mà thiết bị sẳn sàng tiếp nhận
  • Trường Checksum : kiểm tra lỗi cho toàn bộ TCP segment
  • Trường Urgent pointer : chỉ thị báo điểm kết thúc của dữ liệu có tính khẩn cấp, ưu tiên cao
  • Trường Options : tùy chọn cho các người dùng có thể cấu hình thêm những gì cần thiết, phù hợp cho người dùng
  • Data : dữ liệu lớp trên được đẩy xuống
2.2 Quy trình Three Handshake
-Giả sử host A muốn truyền được dữ liệu qua host B thông qua một kết nối TCP . Host A cần phải thiết lập một kết nối TCP với host B, tiến trình Three Handshake được thực hiện như sau:
  • Host A gửi cho host B segment đầu tiên có cờ SYN được bật lên giả sử host A set cho segment này có số thứ tự là x, tuy nhiên segment này là segment đầu tiên nên k chứa data
  • Host B nhận được cờ SYN từ host A sẻ thực hiện respond lại một TCP segment, segment này có cờ SYN và ACK được bật lên như hình trên. Giả sử host B set sequence segment này là y, segment respond của host B không chứa dữ liệu nhưng vẫn được tính là 1 byte. Host B phải chỉ rõ ACK sequence số thứ tự của byte tiếp theo mà nó muốn nhận từ A. Segment do A gửi qua được tính là 1 byte nên mong muốn nhận được byte tiếp theo là x+ 1 do đó ACK được đánh số x + 1
  • Khi A nhận được respond từ B nó sẻ gửi segment có bật cờ ACK về lại cho B, ACK của A gửi đi biểu thị số thứ tự gói tin tiếp theo nó muốn nhận từ B nên ACK = y + 1
  • Khi quá trình Three Handshake được thiết lập lúc này hai host A và B có thể trao đổi dữ liệu với nhau.
2.3/ Cơ chế điều khiển luồng (Flow control)
                                                                                Cơ chế Flow Control
-Khi host A gửi dữ liệu quá nhanh, host B không xử lí kịp, dữ liệu dễ bị mất. Để tránh mất dữ liệu host nhận trong phương thức TCP sẻ bật cơ chế điều khiển luồng bằng cách gửi cho host A một thông báo cho biết rằng host B đang không xử lí kịp, chưa sẳn sàng tiếp nhận segment mới, khi nhận được thông báo này host A sẻ dừng gửi segment, đợi host B xử lí, khi host B xử lí hoàn tất, host B sẻ gửi một thông báo nó đã sẳn sàng tiếp nhận dữ liệu, host A sẻ tiếp tục gửi segment.
2.4 ACK(Acknowledgement)
-Host A gửi một segment với Window size = 1 sẻ respond lại một ACK 2 từ host B gửi lại yêu cầu gửi tiếp gói ACK 2 và tiến trình tiếp tục diễn ra mỗi lần 1 gói ACK.
-Để tăng hiệu suất, có thể thiết lập Window size cao hơn như hình bên dưới. ( Window size = 3 )
-Trường hợp xử lý nghẽn khi tăng Window size
-Khi host A gửi segment với Window size = 3, trên đường truyền bị mất gói, host B chỉ nhận được 2 segment, host B sẻ gửi thông báo cho host A yêu cầu gửi lại với Window size = 2.
2.5 Các ứng dụng đặc trưng chạy trên Lớp TRANSPORT
-Transport sẻ đọc thông tin trong gói tin TCP hoặc UDP Header để xác định dữ liệu được đóng gói bên trong mà không cần mở gói để xem nội dung bên trong, để thực hiện được điều này, chồng giao thức TCP/IP sẻ dùng một số PORT đặc trưng trong TCP/UDP Header để xác nhận giao thức lớp trên được đóng gói trong phần Data.
  • FTP : chạy nền TCP port 20 hoặc 21
  • Telnet : chạy nền TCP port 23
  • SMTP chạy nền TCP port 25
  • SNMP chạy nền UDP port 161
  • HTTP chạy nền TCP port 80
  • HTTPs chạy nền TCP port 443
  • DNS (đặc biệt chạy cả nền TCP hoặc UDP) sử dụng port 53
  • ETC….
-So sánh cơ bản giữa TCP và UDP :
Mình xin kết thúc phần chia sẻ về Lớp Transport ở đây, mong vẫn tiếp tục được sự ủng hộ và góp ý của các anh em gần xa. Phần chia sẻ tiếp theo mình xin chia sẻ bài 4 ” Lớp Internet của mô hình TCP/IP”. Hãy theo dõi bài viết tiếp theo trong Series Tự học CCNA tại website và blog itforvn.comnhé. Nếu có thắc mắc hay đóng góp các Anh em hãy comment bên dưới nhé! Thân ái!

Quân Lê -ITFORVN.COM

Không có nhận xét nào:

Đăng nhận xét