Hôm nay, chúng ta sẽ bắt đầu bằng cách tập trung vào TCP. Trước đó trong chương về Layering, chúng tôi đã đề cập đến một điểm quan trọng. Ở lớp mạng và bên dưới, đó là nhiều hơn về các kết nối máy chủ, điều đó có nghĩa là máy tính của bạn cần biết nơi máy tính khác có thể kết nối với nó. Tuy nhiên, giao tiếp trong một mạng thường là giao tiếp trong quá trình thay vì giao tiếp liênine. Do đó, giao thức TCP giới thiệu khái niệm cổng. Một cổng chỉ có thể bị chiếm bởi một quy trình, cung cấp giao tiếp trực tiếp giữa các quy trình ứng dụng chạy trên các máy chủ khác nhau.
Nhiệm vụ của lớp vận chuyển là làm thế nào để cung cấp các dịch vụ giao tiếp trực tiếp giữa các quy trình ứng dụng chạy trên các máy chủ khác nhau, do đó, nó còn được gọi là giao thức từ đầu đến cuối. Lớp vận chuyển che giấu các chi tiết cốt lõi của mạng, cho phép quy trình ứng dụng thấy như thể có một kênh giao tiếp từ đầu đến cuối hợp lý giữa hai thực thể lớp vận chuyển.
TCP là viết tắt của giao thức điều khiển truyền và được gọi là giao thức định hướng kết nối. Điều này có nghĩa là trước khi một ứng dụng có thể bắt đầu gửi dữ liệu đến ứng dụng khác, hai quy trình phải thực hiện một cái bắt tay. Bắt tay là một quá trình được kết nối logic, đảm bảo truyền tải đáng tin cậy và nhận dữ liệu có trật tự. Trong thời gian bắt tay, một kết nối được thiết lập giữa các máy chủ nguồn và điểm đến bằng cách trao đổi một loạt các gói điều khiển và đồng ý về một số tham số và quy tắc để đảm bảo truyền dữ liệu thành công.
TCP là gì? (MYLINKIOUS'sTap mạngVàNhà môi giới gói mạngcó thể xử lý cả gói TCP hoặc UDP)
TCP (Giao thức điều khiển truyền) là một giao thức giao tiếp lớp vận chuyển dựa trên dòng byte được kết nối, đáng tin cậy.
Định hướng kết nối: Định hướng kết nối có nghĩa là giao tiếp TCP là một-một, nghĩa là giao tiếp từ đầu đến cuối điểm, không giống như UDP, có thể gửi tin nhắn đến nhiều máy chủ cùng một lúc, do đó không thể đạt được giao tiếp một-nhiều.
Đáng tin cậy: Độ tin cậy của TCP đảm bảo rằng các gói được phân phối một cách đáng tin cậy cho máy thu bất kể thay đổi trong liên kết mạng, điều này làm cho định dạng gói giao thức của TCP phức tạp hơn so với UDP.
Dựa trên luồng byte: Bản chất dựa trên dòng byte của TCP cho phép truyền các tin nhắn có kích thước và thứ tự tin nhắn bảo đảm: ngay cả khi tin nhắn trước đó chưa được nhận đầy đủ, và ngay cả khi đã nhận được các byte tiếp theo, TCP sẽ không gửi chúng vào lớp ứng dụng để xử lý và sẽ tự động giảm các gói trùng lặp.
Khi máy chủ A và máy chủ B đã thiết lập một kết nối, ứng dụng chỉ cần sử dụng dòng giao tiếp ảo để gửi và nhận dữ liệu, do đó đảm bảo truyền dữ liệu. Giao thức TCP chịu trách nhiệm kiểm soát các tác vụ như thiết lập kết nối, ngắt kết nối và nắm giữ. Cần lưu ý rằng ở đây chúng tôi nói rằng dòng ảo chỉ có nghĩa là thiết lập kết nối, kết nối giao thức TCP chỉ chỉ ra rằng hai bên có thể bắt đầu truyền dữ liệu và để đảm bảo độ tin cậy của dữ liệu. Các nút định tuyến và vận chuyển được xử lý bởi các thiết bị mạng; Bản thân giao thức TCP không liên quan đến các chi tiết này.
Kết nối TCP là một dịch vụ hoàn toàn song công, có nghĩa là máy chủ A và máy chủ B có thể truyền dữ liệu theo cả hai hướng trong kết nối TCP. Đó là, dữ liệu có thể được chuyển giữa máy chủ A và máy chủ B trong một luồng hai chiều.
TCP tạm thời lưu trữ dữ liệu trong bộ đệm gửi của kết nối. Bộ đệm gửi này là một trong những bộ nhớ cache được thiết lập trong thời gian bắt tay ba chiều. Sau đó, TCP sẽ gửi dữ liệu trong bộ đệm gửi đến bộ đệm nhận của máy chủ đích vào thời điểm thích hợp. Trong thực tế, mỗi ngang hàng sẽ có bộ đệm gửi và bộ đệm nhận, như được hiển thị ở đây:
Bộ đệm gửi là một khu vực của bộ nhớ được duy trì bởi việc triển khai TCP ở phía người gửi được sử dụng để lưu trữ dữ liệu tạm thời sẽ được gửi. Khi bắt tay ba chiều được thực hiện để thiết lập kết nối, bộ đệm gửi được thiết lập và sử dụng để lưu trữ dữ liệu. Bộ đệm gửi được điều chỉnh động theo tắc nghẽn mạng và phản hồi từ máy thu.
Bộ đệm nhận là một khu vực của bộ nhớ được duy trì bởi việc triển khai TCP ở phía nhận được sử dụng để lưu trữ tạm thời dữ liệu nhận được. TCP lưu trữ dữ liệu nhận được trong bộ đệm nhận và chờ ứng dụng trên đọc nó.
Lưu ý rằng kích thước của bộ đệm gửi và nhận bộ đệm bị hạn chế, khi bộ đệm đầy, TCP có thể áp dụng một số chiến lược, chẳng hạn như điều khiển tắc nghẽn, điều khiển dòng chảy, v.v., để đảm bảo truyền dữ liệu đáng tin cậy và ổn định mạng.
Trong mạng máy tính, truyền dữ liệu giữa các máy chủ được thực hiện bằng các phân đoạn. Vậy một phân đoạn gói là gì?
TCP tạo ra một phân đoạn TCP hoặc phân đoạn gói, bằng cách chia luồng đến thành các khối và thêm các tiêu đề TCP vào mỗi khối. Mỗi phân đoạn chỉ có thể được truyền trong một khoảng thời gian giới hạn và không thể vượt quá kích thước phân đoạn tối đa (MSS). Trên đường xuống, một phân đoạn gói đi qua lớp liên kết. Lớp liên kết có một đơn vị truyền tối đa (MTU), đây là kích thước gói tối đa có thể đi qua lớp liên kết dữ liệu. Đơn vị truyền tối đa thường liên quan đến giao diện giao tiếp.
Vậy sự khác biệt giữa MSS và MTU là gì?
Trong các mạng máy tính, kiến trúc phân cấp rất quan trọng vì nó có tính đến sự khác biệt giữa các cấp độ khác nhau. Mỗi lớp có một tên khác nhau; Trong lớp vận chuyển, dữ liệu được gọi là phân đoạn và trong lớp mạng, dữ liệu được gọi là gói IP. Do đó, đơn vị truyền tải tối đa (MTU) có thể được coi là kích thước gói IP tối đa có thể được truyền qua lớp mạng, trong khi kích thước phân đoạn tối đa (MSS) là khái niệm lớp vận chuyển đề cập đến lượng dữ liệu tối đa có thể được truyền qua gói TCP tại một thời điểm.
Lưu ý rằng khi kích thước phân đoạn tối đa (MSS) lớn hơn đơn vị truyền tối đa (MTU), phân mảnh IP sẽ được thực hiện ở lớp mạng và TCP sẽ không chia dữ liệu lớn hơn thành các phân đoạn phù hợp với kích thước MTU. Sẽ có một phần trên lớp mạng dành riêng cho lớp IP.
Cấu trúc phân đoạn gói TCP
Hãy khám phá định dạng và nội dung của các tiêu đề TCP.
Số trình tự: Một số ngẫu nhiên được tạo bởi máy tính khi kết nối được thiết lập làm giá trị ban đầu khi kết nối TCP được thiết lập và số thứ tự được gửi đến máy thu thông qua gói SYN. Trong quá trình truyền dữ liệu, người gửi tăng số trình tự theo lượng dữ liệu được gửi. Người nhận đánh giá thứ tự của dữ liệu theo số trình tự nhận được. Nếu dữ liệu được tìm thấy theo thứ tự, người nhận sẽ sắp xếp lại dữ liệu để đảm bảo thứ tự của dữ liệu.
Số xác nhận: Đây là một số trình tự được sử dụng trong TCP để xác nhận việc nhận dữ liệu. Nó chỉ ra số trình tự của dữ liệu tiếp theo mà người gửi dự kiến sẽ nhận được. Trong kết nối TCP, người nhận xác định dữ liệu nào đã được nhận thành công dựa trên số trình tự của phân đoạn gói dữ liệu nhận được. Khi người nhận nhận thành công dữ liệu, nó sẽ gửi một gói ACK cho người gửi, trong đó chứa số xác nhận xác nhận. Sau khi nhận được gói ACK, người gửi có thể xác nhận rằng dữ liệu trước khi xác nhận số trả lời đã được nhận thành công.
Các bit điều khiển của phân đoạn TCP bao gồm các phần sau:
Ack bit: Khi bit này là 1, điều đó có nghĩa là trường trả lời xác nhận là hợp lệ. TCP chỉ định rằng bit này phải được đặt thành 1 ngoại trừ các gói Syn khi kết nối ban đầu được thiết lập.
Bit đầu tiên: Khi bit này là 1, nó chỉ ra rằng có một ngoại lệ trong kết nối TCP và kết nối phải bị buộc phải ngắt kết nối.
Syn bit: Khi bit này được đặt thành 1, điều đó có nghĩa là kết nối sẽ được thiết lập và giá trị ban đầu của số thứ tự được đặt trong trường Số thứ tự.
Fin bit: Khi bit này là 1, điều đó có nghĩa là sẽ không còn dữ liệu nào được gửi trong tương lai và kết nối được mong muốn.
Các chức năng và đặc điểm khác nhau của TCP được thể hiện bởi cấu trúc của các phân đoạn gói TCP.
UDP là gì? (MyLinking'sTap mạngVàNhà môi giới gói mạngcó thể xử lý cả gói TCP hoặc UDP)
Giao thức Datagram người dùng (UDP) là giao thức giao tiếp không kết nối. So với TCP, UDP không cung cấp các cơ chế kiểm soát phức tạp. Giao thức UDP cho phép các ứng dụng gửi trực tiếp các gói IP được đóng gói mà không cần thiết lập kết nối. Khi nhà phát triển chọn sử dụng UDP thay vì TCP, ứng dụng sẽ giao tiếp trực tiếp với IP.
Tên đầy đủ của giao thức UDP là giao thức Datagram của người dùng và tiêu đề của nó chỉ là tám byte (64 bit), rất súc tích. Định dạng của tiêu đề UDP như sau:
Cổng đích và nguồn: Mục đích chính của họ là chỉ ra quy trình UDP nào sẽ gửi các gói.
Kích thước gói: Trường kích thước gói giữ kích thước của tiêu đề UDP cộng với kích thước của dữ liệu
Kiểm tra: Được thiết kế để đảm bảo phân phối các tiêu đề và dữ liệu UDP đáng tin cậy Vai trò của tổng kiểm tra là phát hiện liệu lỗi hoặc tham nhũng đã xảy ra trong quá trình truyền gói UDP để đảm bảo tính toàn vẹn của dữ liệu.
Sự khác biệt giữa TCP và UDP trong Mylinking'sTap mạngVàNhà môi giới gói mạngcó thể xử lý cả gói TCP hoặc UDP
TCP và UDP khác nhau trong các khía cạnh sau:
Sự liên quan: TCP là một giao thức vận chuyển định hướng kết nối yêu cầu kết nối được thiết lập trước khi dữ liệu có thể được chuyển. Mặt khác, UDP không yêu cầu kết nối và có thể truyền dữ liệu ngay lập tức.
Đối tượng dịch vụ: TCP là một dịch vụ hai điểm một-một, nghĩa là, một kết nối chỉ có hai điểm cuối để liên lạc với nhau. Tuy nhiên, UDP hỗ trợ giao tiếp tương tác một-một, một-nhiều và nhiều đến nhiều, có thể giao tiếp với nhiều máy chủ cùng một lúc.
Độ tin cậy: TCP cung cấp dịch vụ cung cấp dữ liệu một cách đáng tin cậy, đảm bảo rằng dữ liệu không có lỗi, không mất, không trùng lặp và theo yêu cầu. UDP, mặt khác, nỗ lực tốt nhất và không đảm bảo giao hàng đáng tin cậy. UDP có thể bị mất dữ liệu và các tình huống khác trong quá trình truyền.
Kiểm soát tắc nghẽn, kiểm soát dòng chảy: TCP có các cơ chế kiểm soát tắc nghẽn và điều khiển dòng chảy, có thể điều chỉnh tốc độ truyền dữ liệu theo các điều kiện mạng để đảm bảo tính bảo mật và tính ổn định của truyền dữ liệu. UDP không có cơ chế điều khiển tắc nghẽn và điều khiển dòng chảy, ngay cả khi mạng rất tắc nghẽn, nó sẽ không điều chỉnh tỷ lệ gửi UDP.
Chi phí tiêu đề: TCP có độ dài tiêu đề dài, thường là 20 byte, tăng khi sử dụng các trường tùy chọn. Mặt khác, UDP có tiêu đề cố định chỉ 8 byte, vì vậy UDP có chi phí tiêu đề thấp hơn.
Kịch bản ứng dụng TCP và UDP:
TCP và UDP là hai giao thức lớp vận chuyển khác nhau và chúng có một số khác biệt trong các kịch bản ứng dụng.
Vì TCP là một giao thức định hướng kết nối, nó chủ yếu được sử dụng trong các kịch bản trong đó cần phân phối dữ liệu đáng tin cậy. Một số trường hợp sử dụng phổ biến bao gồm:
Chuyển tệp FTP: TCP có thể đảm bảo rằng các tệp không bị mất và bị hỏng trong quá trình chuyển.
Http/https: TCP đảm bảo tính toàn vẹn và tính chính xác của nội dung web.
Vì UDP là một giao thức không kết nối, nó không cung cấp bảo đảm độ tin cậy, nhưng nó có đặc điểm của hiệu quả và thời gian thực. UDP phù hợp cho các tình huống sau:
Lưu lượng gói thấp, chẳng hạn như DNS (Hệ thống tên miền): Truy vấn DNS thường là các gói ngắn và UDP có thể hoàn thành chúng nhanh hơn.
Giao tiếp đa phương tiện như video và âm thanh: Đối với truyền đa phương tiện với các yêu cầu thời gian thực cao, UDP có thể cung cấp độ trễ thấp hơn để đảm bảo rằng dữ liệu có thể được truyền một cách kịp thời.
Truyền thông phát sóng: UDP hỗ trợ giao tiếp một-nhiều và nhiều đến nhiều và có thể được sử dụng để truyền tin nhắn phát sóng.
Bản tóm tắt
Hôm nay chúng tôi đã học về TCP. TCP là một giao thức giao tiếp lớp vận chuyển dựa trên dòng kết nối, đáng tin cậy, byte. Nó đảm bảo truyền tải đáng tin cậy và nhận dữ liệu có trật tự bằng cách thiết lập kết nối, bắt tay và xác nhận. Giao thức TCP sử dụng các cổng để hiện thực hóa giao tiếp giữa các quy trình và cung cấp các dịch vụ giao tiếp trực tiếp cho các quy trình ứng dụng chạy trên các máy chủ khác nhau. Các kết nối TCP là song công hoàn toàn, cho phép chuyển dữ liệu hai chiều đồng thời. Ngược lại, UDP là một giao thức giao tiếp không có kết nối, không cung cấp bảo đảm độ tin cậy và phù hợp cho một số kịch bản với các yêu cầu thời gian thực cao. TCP và UDP khác nhau ở chế độ kết nối, đối tượng dịch vụ, độ tin cậy, kiểm soát tắc nghẽn, kiểm soát luồng và các khía cạnh khác và các kịch bản ứng dụng của chúng cũng khác nhau.
Thời gian đăng: Tháng 12 năm 03-2024