Sự khác biệt giữa giao thức tcp và udp Giao thức truyền dữ liệu TCP và UDP

Hai giao thức Lớp vận chuyển phổ biến nhất trong ngăn xếp TCP/IP là Giao thức điều khiển truyền (TCP) và Giao thức gói dữ liệu người dùng (UDP). Cả hai giao thức đều quản lý việc liên lạc của nhiều ứng dụng. Sự khác biệt giữa hai giao thức này nằm ở chức năng cụ thể mà chúng triển khai.

Giao thức gói dữ liệu người dùng (UDP)

UDP là một giao thức không kết nối đơn giản được mô tả trong RFC 768. Nó có ưu điểm là cung cấp dữ liệu mà không cần chi phí không cần thiết. Các phần giao tiếp trong UDP được gọi là gói dữ liệu. Các datagram này được gửi nhanh nhất có thể bởi giao thức Lớp vận chuyển này.

Ví dụ về các ứng dụng sử dụng UDP:

  • Hệ thống tên miền (DNS - viết tắt của Tên miền Hệ thống)
  • Truyền phát video
  • Điện thoại IP (VoIP - viết tắt của Voice IP)

Giao thức điều khiển truyền dẫn (TCP)

TCP là một giao thức hướng kết nối được mô tả trong RFC 793. TCP bổ sung thêm chi phí bổ sung vào mạng để thực hiện các chức năng của nó. Chức năng bổ sung Giao thức TCP bao gồm cùng thứ tự giao hàng, độ tin cậy và Kiểm soát lưu lượng. Mỗi phân đoạn TCP có thêm 20 byte trong tiêu đề đóng gói dữ liệu Lớp ứng dụng, trong khi phân đoạn UDP chỉ có 8 byte. Xem hình ảnh để so sánh.

Giao thức UDP

Giao thức gói dữ liệu người dùng (UDP) là một giao thức đơn giản, không kết nối, hướng datagram, cung cấp dịch vụ truyền tải nhanh nhưng không nhất thiết phải đáng tin cậy. Nó hỗ trợ các tương tác một-nhiều và do đó thường được sử dụng để truyền các gói dữ liệu quảng bá và đa hướng.

Giao thức Internet (IP) là giao thức chính của Internet. Giao thức điều khiển truyền dẫn (TCP) và UDP là các giao thức lớp vận chuyển được xây dựng dựa trên giao thức cơ bản.

TCP/IP là một bộ giao thức, còn được gọi là Bộ giao thức Internet, bao gồm bốn lớp. Hãy nhớ rằng TCP/IP không chỉ là một giao thức mà còn là một họ hoặc một tập hợp các giao thức bao gồm các giao thức cấp thấp hơn khác như IP, TCP và UDP. UDP nằm ở lớp vận chuyển phía trên IP (giao thức lớp mạng). Lớp vận chuyển cung cấp liên lạc giữa các mạng thông qua các cổng. Nó sử dụng địa chỉ IP để gửi các gói dữ liệu qua Internet hoặc mạng khác bằng nhiều trình điều khiển thiết bị.

Trước khi bạn bắt đầu học công việc UDP, hãy chuyển sang những thuật ngữ cơ bản mà bạn cần biết rõ. Dưới đây chúng tôi sẽ xác định ngắn gọn các thuật ngữ chính liên quan đến UDP:

Gói

Trong truyền thông dữ liệu, gói là một chuỗi các chữ số nhị phân biểu thị dữ liệu và tín hiệu điều khiển được truyền và chuyển mạch qua máy chủ. Bên trong gói, thông tin này được đặt theo một định dạng đặc biệt.

Datagram

Một datagram là một gói dữ liệu độc lập, đơn lẻ mang đủ thông tin để truyền từ nguồn đến đích, do đó không có sự trao đổi bổ sung giữa nguồn, đích và Mạng lưới giao thông không yêu cầu.

MTU (Đơn vị truyền tối đa)

MTU đặc trưng cho lớp liên kết và tương ứng với số byte tối đa có thể được truyền trong một gói. Nói cách khác, MTU là gói lớn nhất mà một thiết bị nhất định có thể mang theo. môi trường mạng. Ví dụ: Ethernet có MTU cố định là 1500 byte. Trong UDP, nếu kích thước gói dữ liệu lớn hơn MTU, giao thức IP sẽ thực hiện phân mảnh bằng cách chia gói dữ liệu thành các phần nhỏ hơn (đoạn) sao cho mỗi đoạn nhỏ hơn MTU.

Cổng

Để khớp dữ liệu đến với một quy trình cụ thể đang chạy trên máy tính, UDP sử dụng các cổng. UDP chuyển tiếp gói đến vị trí thích hợp bằng số cổng được chỉ định trong tiêu đề UDP của datagram. Các cổng được biểu thị bằng số 16 bit và do đó nhận các giá trị từ 0 đến 65.535. Các cổng, còn được gọi là điểm cuối kết nối logic, được chia thành ba loại:

    Các cổng nổi tiếng - từ 0 đến 1023

    Cổng đã đăng ký - từ 1024 đến 49151

    Cổng động/riêng - 49152 đến 65535

Lưu ý rằng các cổng UDP có thể nhận được nhiều tin nhắn tại bất kỳ thời điểm nào. Trong một số trường hợp, các dịch vụ TCP và UDP có thể sử dụng cùng số cổng, chẳng hạn như 7 (Echo) hoặc 23 (Telnet).

UDP sử dụng các cổng đã biết sau:

Danh sách các cổng UDP và TCP được duy trì bởi IANA (Cơ quan cấp số được gán Internet).

Các địa chỉ IP

Một datagram IP bao gồm địa chỉ IP nguồn và đích 32 bit. Địa chỉ IP đích chỉ định điểm cuối cho gói dữ liệu UDP và địa chỉ IP nguồn được sử dụng để lấy thông tin về người đã gửi tin nhắn. Tại đích, các gói được lọc và những gói có địa chỉ nguồn không có trong bộ địa chỉ hợp lệ sẽ bị loại bỏ mà không thông báo cho người gửi.

Địa chỉ IP unicast xác định duy nhất một máy chủ trên mạng, trong khi địa chỉ IP multicast xác định một nhóm địa chỉ cụ thể trên mạng. Địa chỉ IP quảng bá được tất cả các máy chủ nhận và xử lý mạng nội bộ hoặc một mạng con cụ thể.

TTL

Giá trị thời gian tồn tại hoặc TTL (thời gian tồn tại) cho phép bạn đặt giới hạn trên cho số lượng bộ định tuyến mà gói dữ liệu có thể đi qua. Giá trị TTL ngăn chặn các gói bị vướng vào các vòng lặp vô tận. Nó được khởi tạo bởi người gửi và giảm đi một bởi mỗi bộ định tuyến xử lý datagram. Khi giá trị TTL bằng 0, datagram sẽ bị loại bỏ.

Gửi thư nhóm

Multicast là một phương pháp mở, dựa trên tiêu chuẩn để phân phối thông tin giống hệt nhau cho nhiều người dùng cùng một lúc. Multicast là tính năng chính của giao thức UDP; giao thức TCP không thể thực hiện được. Multicast cho phép tương tác một-nhiều, ví dụ như tạo ra các ứng dụng khả thi như gửi tin tức và thư đến nhiều người nhận, radio Internet hoặc các chương trình demo thời gian thực. Multicast không tải mạng nhiều như truyền phát quảng bá vì dữ liệu được gửi đến nhiều người dùng cùng một lúc:

UDP hoạt động như thế nào

Khi một ứng dụng dựa trên UDP gửi dữ liệu đến một máy chủ khác trên mạng, UDP sẽ gắn thêm nó với một tiêu đề 8 bit chứa số cổng đích và cổng nguồn, tổng độ dài của dữ liệu và tổng kiểm tra. IP thêm tiêu đề của nó lên trên gói dữ liệu UDP, tạo thành gói dữ liệu IP:

Hình trước chỉ ra rằng tổng chiều dài của tiêu đề UDP là 8 byte. Kích thước tối đa theo lý thuyết của một datagram IP là 65.535 byte. Với 20 byte tiêu đề IP và 8 byte tiêu đề UDP, độ dài dữ liệu người dùng có thể lên tới 65.507 byte. Tuy nhiên, hầu hết các chương trình đều hoạt động với kích thước dữ liệu nhỏ hơn. Do đó, đối với hầu hết các ứng dụng, độ dài mặc định là khoảng 8192 byte, vì đây là lượng dữ liệu được đọc và ghi bởi Hệ thống tệp mạng (NFS). Bạn có thể đặt kích thước của bộ đệm đầu vào và đầu ra.

Tổng kiểm tra là cần thiết để kiểm tra xem dữ liệu có được gửi đến đích chính xác hay bị hỏng hay không. Nó bao gồm cả tiêu đề UDP và dữ liệu. Một byte phụ được sử dụng nếu Tổng số Các octet datagram là số lẻ. Nếu tổng kiểm tra nhận được bằng 0, người nhận sẽ ghi lại lỗi tổng kiểm tra và loại bỏ gói dữ liệu. Mặc dù tổng kiểm tra là một tính năng tùy chọn nhưng bạn nên bao gồm nó.

TRÊN bước tiếp theo Lớp IP thêm 20 byte tiêu đề bao gồm TTL, địa chỉ IP nguồn và đích và các thông tin khác. Hành động này được gọi là đóng gói IP.

Như đã đề cập trước đó, kích thước gói tối đa là 65.507 byte. Nếu một gói vượt quá kích thước MTU mặc định, lớp IP sẽ chia gói thành các phân đoạn. Các phân đoạn này được gọi là các đoạn và quá trình chia dữ liệu thành các phân đoạn được thực hiện sự phân mảnh. Tiêu đề IP chứa tất cả thông tin phân đoạn.

Khi ứng dụng gửi "ném" một datagram vào mạng, nó sẽ được định tuyến đến địa chỉ IP đích được chỉ định trong tiêu đề IP. Khi đi qua bộ định tuyến, giá trị thời gian tồn tại (TTL) trong tiêu đề IP sẽ giảm đi một.

Khi một datagram đến một đích và cổng nhất định, lớp IP sẽ kiểm tra tiêu đề của nó để xem liệu datagram có bị phân mảnh hay không. Nếu vậy, datagram được tập hợp theo thông tin trong tiêu đề. Cuối cùng, lớp ứng dụng lấy dữ liệu đã lọc bằng cách xóa tiêu đề.

Nhược điểm của UDP

So với TCP, UDP có những nhược điểm sau:

    Không có tín hiệu xác nhận. Trước khi gửi gói UDP, bên gửi không trao đổi tín hiệu bắt tay với bên nhận. Do đó, người gửi không có cách nào để biết liệu datagram đã đến được hệ thống đích hay chưa. Do đó, UDP không thể đảm bảo rằng dữ liệu sẽ thực sự được gửi đến đích (ví dụ: nếu hệ thống hoặc mạng cuối không hoạt động).

    Ngược lại, TCP hướng kết nối và cho phép liên lạc giữa các máy chủ được kết nối mạng bằng các gói. TCP sử dụng tín hiệu bắt tay để xác minh rằng dữ liệu đã được vận chuyển thành công.

    Sử dụng phiên. Bản chất hướng kết nối của TCP được hỗ trợ bởi các phiên giữa các máy chủ. TCP sử dụng mã định danh phiên để theo dõi các kết nối giữa hai máy chủ. UDP không hỗ trợ phiên do tính chất không kết nối của nó.

    độ tin cậy. UDP không đảm bảo rằng chỉ một bản sao dữ liệu sẽ được gửi đến người nhận. Để gửi hệ thống cuối cùng lượng lớn dữ liệu, UDP chia nó thành các phần nhỏ. UDP không đảm bảo rằng các bộ phận này sẽ được chuyển đến đích theo đúng thứ tự mà chúng được tạo tại nguồn. Ngược lại, TCP sử dụng số thứ tự cùng với số cổng và gửi xác nhận thường xuyên để đảm bảo việc phân phối dữ liệu có trật tự.

    Sự an toàn. TCP an toàn hơn UDP. Trong nhiều tổ chức, tường lửa và bộ định tuyến không cho phép các gói UDP đi qua. Điều này là do tin tặc có thể lợi dụng các cổng UDP mà không thực hiện kết nối rõ ràng.

    Kiểm soát lưu lượng. TRONG Kiểm soát UDP không có luồng và kết quả là ứng dụng UDP được thiết kế kém có thể tiêu tốn một phần đáng kể băng thông mạng.

Lợi ích của UDP

So với TCP, UDP có những ưu điểm sau:

    Không có kết nối nào được thiết lập. UDP là giao thức không kết nối nên nó loại bỏ chi phí liên quan đến việc thiết lập kết nối. Vì UDP không sử dụng bắt tay nên cũng tránh được tình trạng trễ kết nối. Đây là lý do tại sao DNS ưu tiên UDP hơn TCP - DNS sẽ chậm hơn nhiều nếu chạy trên TCP.

    Tốc độ. UDP nhanh hơn TCP. Vì lý do này, nhiều ứng dụng thích UDP hơn TCP. Các tính năng tương tự giúp TCP mạnh mẽ hơn (chẳng hạn như tín hiệu bắt tay) cũng làm nó chậm lại.

    Đa dạng cấu trúc liên kết. UDP hỗ trợ liên lạc một-một và một-nhiều, trong khi TCP chỉ hỗ trợ liên lạc một-một.

    Chi phí chung. Làm việc với TCP có nghĩa là chi phí tăng lên, chi phí do UDP áp đặt thấp hơn đáng kể. TCP sử dụng nhiều tài nguyên hệ điều hành hơn UDP và kết quả là UDP được sử dụng rộng rãi trong các môi trường nơi máy chủ phục vụ nhiều máy khách cùng lúc.

    Kích thước tiêu đề. Đối với mỗi gói, tiêu đề UDP chỉ dài 8 byte, trong khi TCP có tiêu đề 20 byte và do đó UDP tiêu thụ ít băng thông mạng hơn.

Chúc một ngày tốt lành, độc giả thân mến.
Theo nhu cầu phổ biến, hôm nay tôi đăng cho các bạn một bài viết sẽ giới thiệu cho các bạn những khái niệm cơ bản về các thuật ngữ cơ bản mạng máy tính, cụ thể là:

  • Giao thức mạng - những cái tên đáng sợ này là gì và chúng dùng để làm gì?
  • UDP, TCP, ICMP, - cái gì, tại sao và sự khác biệt là gì
  • IP-địa chỉ, - mọi người đều có nó, nhưng không phải ai cũng biết tại sao lại có thứ này :-)
  • Mặt nạ địa chỉ (mạng con)
  • Cổng vào
  • Một vài lời về bảng định tuyến
  • Cổng - chúng thực sự là gì?
  • MAC-Địa chỉ

Như thế.

Tôi nghĩ bài viết sẽ hữu ích cho tất cả mọi người, già cũng như trẻ, vì nó không chứa đựng quá nhiều những hành động hay lời nói kỳ lạ, khó hiểu mà là một khối ngôn ngữ có thể truy cập thông tin được trình bày, ở mức tối thiểu, sẽ giúp bạn hiểu về cách thức hoạt động của tất cả và lý do tại sao nó lại cần thiết. Đi.

Giao thức mạng TCP/IP, NWLink IPX/SPX, NetBEUI

Hãy bắt đầu với giao thức mạng là gì và nó được sử dụng để làm gì.
Giao thức mạng là một tập hợp các quy tắc được triển khai bằng phần mềm để liên lạc giữa các máy tính. Một loại ngôn ngữ trong đó các máy tính nói chuyện với nhau và truyền tải thông tin. Trước đây, máy tính có thể nói là đa ngôn ngữ và ở các phiên bản cũ hơn các cửa sổ toàn bộ bộ giao thức đã được sử dụng - TCP/IP, NWLink IPX/SPX, NetBEUI. Bây giờ chúng tôi đã đi đến một thỏa thuận chung và tiêu chuẩn đã trở thành việc sử dụng độc quyền giao thức TCP/IP, và do đó sẽ thảo luận thêm về anh ta.

Khi họ nói về TCP/IP, thì tên này thường có nghĩa là nhiều... quy tắc khác nhau hoặc, chẳng hạn, các tiêu chuẩn được quy định khi sử dụng (hoặc để sử dụng) giao thức này. Ví dụ: có những quy tắc theo đó các tin nhắn được trao đổi giữa máy chủ thư và có những quy tắc theo đó người dùng cuối nhận được thư trong hộp thư đến của mình. Có các quy tắc tiến hành hội nghị truyền hình và các quy tắc tổ chức các cuộc trò chuyện “điện thoại” qua Internet. Trên thực tế, đây thậm chí không phải là những quy tắc thực sự... Giống như một loại ngữ pháp hay thứ gì đó hơn. Chà, bạn biết đấy, trong tiếng Anh có một cấu trúc để xây dựng hội thoại, trong tiếng Pháp có một cấu trúc khác... Vì vậy, trong TCP/IP một cái gì đó tương tự, tức là một số thứ khác nhau quy tắc ngữ pháp chỉ là một giao thức hoàn chỉnh TCP/IP hay chính xác hơn là Ngăn xếp giao thức TCP/IP.

Giao thức mạng UDP, TCP, ICMP

Là một phần của giao thức TCP/IP các giao thức được sử dụng để truyền dữ liệu - TCPUDP. Chắc hẳn nhiều người đã từng nghe nói có những cổng như TCP, Vì thế UDP, nhưng không phải ai cũng biết sự khác biệt là gì và ý nghĩa của nó là gì. Vì thế..

Truyền dữ liệu qua giao thức TCP(Giao thức điều khiển truyền dẫn) cung cấp xác nhận việc nhận thông tin. "Chà, họ nói, bạn hiểu chưa? - Hiểu rồi!" Nếu bên truyền không nhận được xác nhận cần thiết trong khung thời gian đã thiết lập, dữ liệu sẽ được truyền lại. Do đó giao thức TCPđược gọi là các giao thức dựa trên kết nối và UDP(Giao thức gói dữ liệu người dùng) - không. UDPđược sử dụng trong trường hợp không cần xác nhận việc tiếp nhận (ví dụ: truy vấn DNS hoặc điện thoại IP ( đại diện sáng giá cái nào - Skype)). Đó là, sự khác biệt nằm ở sự hiện diện của xác nhận tiếp nhận. Có vẻ như “thế thôi!”, nhưng trên thực tế, nó đóng một vai trò quan trọng.

Ngoài ra còn có một giao thức ICMP(Giao thức tin nhắn điều khiển Internet) được sử dụng để truyền dữ liệu về các thông số mạng. Nó bao gồm các loại gói tiện ích như ping, khoảng cách không thể truy cập, TTL vân vân.

Địa chỉ IP là gì

Mọi người đều có một địa chỉ, nhưng không phải ai cũng biết đây là loại địa chỉ nào và tại sao không thể sống thiếu nó. Tôi đang nói với bạn.

IP-Địa chỉ - 32 -x số bit được sử dụng để nhận dạng một máy tính trên mạng. Thông thường, người ta thường viết địa chỉ bằng giá trị thập phân của mỗi octet của số này, phân tách các giá trị kết quả bằng dấu chấm. Ví dụ, 192.168.101.36

IPđịa chỉ là duy nhất, có nghĩa là mỗi máy tính có địa chỉ riêng sự kết hợp riêng số và không thể có hai máy tính trên mạng có cùng địa chỉ. IP-địa chỉ được phân phối tập trung, các nhà cung cấp Internet đưa ra yêu cầu trong trung tâm quốc gia theo nhu cầu của bạn. Phạm vi địa chỉ mà nhà cung cấp nhận được sẽ được phân bổ rộng rãi hơn giữa các khách hàng. Ngược lại, khách hàng có thể tự mình đóng vai trò là nhà cung cấp và phân phối thông tin nhận được IP-địa chỉ giữa các khách hàng phụ, v.v. Với phương thức phân phối này IP-địa chỉ, hệ thống máy tính biết chính xác “vị trí” của máy tính, có địa chỉ duy nhất IP-Địa chỉ; - chỉ cần cô ấy gửi dữ liệu đến mạng “chủ sở hữu” là đủ và nhà cung cấp sẽ phân tích đích đến và biết phần địa chỉ này được cung cấp cho ai, sẽ gửi thông tin cho chủ sở hữu tiếp theo của băng tần con IP-địa chỉ cho đến khi dữ liệu đến máy tính đích.

Để xây dựng mạng cục bộ, các dải địa chỉ đặc biệt được phân bổ. Đây là những địa chỉ 10.x.x.x,192.168.x.x, 10.x.x.x, c 172.16.x.x Qua 172.31.x.x, 169.254.x.x, ở đâu dưới x- có nghĩa là bất kỳ số nào từ 0 trước 254 . Các gói được truyền từ các địa chỉ được chỉ định sẽ không được định tuyến, nói cách khác, chúng đơn giản là không được gửi qua Internet và do đó các máy tính trên các mạng cục bộ khác nhau có thể có địa chỉ trùng khớp trong phạm vi được chỉ định. Tức là ở công ty LLC " Sừng và móng guốc"và LLC" Vasya và công ty"có thể có hai máy tính có địa chỉ 192.168.0.244 , nhưng họ không thể nói với địa chỉ 85.144.213.122 , nhận được từ nhà cung cấp Internet, bởi vì Không thể có hai cái giống hệt nhau trên Internet. IP-địa chỉ. Để gửi thông tin từ các máy tính đó tới Internet và ngược lại, các chương trình và thiết bị đặc biệt được sử dụng để thay thế địa chỉ cục bộ thực tế khi làm việc với Internet. Nói cách khác, dữ liệu được gửi tới Mạng từ một thiết bị thực IP-địa chỉ, không phải từ địa chỉ. Quá trình này xảy ra mà người dùng không nhận thấy và được gọi là dịch địa chỉ. Tôi cũng muốn đề cập rằng trong cùng một mạng lưới, chẳng hạn như một công ty, LLC " Sừng và móng guốc", không thể có hai máy tính có cùng địa chỉ IP cục bộ, tức là trong ví dụ trên, điều đó có nghĩa là một máy tính có địa chỉ 192.168.0.244 ở một công ty, công ty thứ hai có cùng địa chỉ - ở một công ty khác. Trong cùng một công ty có hai máy tính có địa chỉ 192.168.0.244 đơn giản là họ sẽ không hợp nhau.

Bạn có muốn biết và có thể tự mình làm được nhiều hơn không?

Chúng tôi cung cấp cho bạn đào tạo về các lĩnh vực sau: máy tính, chương trình, quản trị, máy chủ, mạng, xây dựng trang web, SEO và hơn thế nữa. Tìm hiểu chi tiết ngay bây giờ!

Chắc hẳn bạn đã từng nghe những thuật ngữ như external IP và nội bộ IP, hằng số (IP tĩnh) và biến (động) IP. Tóm tắt về họ:

  • bên ngoài IP- cái này giống hệt cái này IP, được nhà cung cấp cấp cho bạn, tức là. Ví dụ: địa chỉ duy nhất của bạn trên Internet - 85.144.24.122
  • Nội địa IP, mang tính địa phương IP, I E. Của bạn IP trên mạng cục bộ chẳng hạn - 192.168.1.3
  • tĩnh IP- Cái này IP, không thay đổi với mỗi kết nối, tức là. được giao cho bạn một cách chắc chắn và mãi mãi
  • năng động IP, đang nổi IP-địa chỉ thay đổi theo mỗi kết nối

Kiểu của bạn IP(tĩnh hoặc động) tùy thuộc vào cài đặt của nhà cung cấp.

Mặt nạ địa chỉ (mạng con) là gì

Khái niệm mạng con được đưa ra để chúng ta có thể làm nổi bật một phần IP- địa chỉ của một tổ chức, một phần của tổ chức khác, v.v. Mạng con là một dải địa chỉ IP được coi là thuộc về cùng một mạng cục bộ. Khi làm việc trên mạng cục bộ, thông tin sẽ được gửi trực tiếp đến người nhận. Nếu dữ liệu dành cho các máy tính có địa chỉ IP không thuộc mạng cục bộ thì các quy tắc đặc biệt sẽ được áp dụng cho dữ liệu đó để tính toán lộ trình chuyển tiếp từ mạng này sang mạng khác.

Mặt nạ là một tham số cho phần mềm biết có bao nhiêu máy tính được kết hợp trong nhóm này(mạng con). Mặt nạ địa chỉ có cấu trúc giống như địa chỉ IP: nó là một tập hợp gồm bốn nhóm số, mỗi nhóm có thể nằm trong khoảng từ 0 đến 255 . Trong trường hợp này, giá trị mặt nạ càng thấp thì càng có nhiều máy tính được kết nối với mạng con này. Đối với mạng của các công ty nhỏ, mặt nạ thường trông giống như 255.255.255.x(ví dụ: 255.255.255.224). Mặt nạ mạng được gán cho máy tính cùng với địa chỉ IP. Vì vậy, ví dụ, mạng 192.168.0.0 với mặt nạ 255.255.255.0 có thể chứa các máy tính có địa chỉ từ 192.168.0.1 trước 192.168.254 192.168.0.0 với mặt nạ 255.255.255.128 cho phép địa chỉ từ 192.168.0.1 trước 192.168.0.127 . Tôi nghĩ ý nghĩa là rõ ràng. Theo quy định, các mạng có số lượng máy tính nhỏ có thể được các nhà cung cấp sử dụng để lưu địa chỉ IP. Ví dụ: một khách hàng có thể được chỉ định một địa chỉ có mặt nạ 255.255.255.252 . Mạng con này chỉ chứa hai máy tính.

Sau khi máy tính đã nhận được địa chỉ IP và biết giá trị của mặt nạ mạng con, chương trình có thể bắt đầu hoạt động trong mạng con cục bộ này. Tuy nhiên, để trao đổi thông tin với các máy tính khác trong mạng lưới toàn cầu, bạn cần biết các quy định về nơi gửi thông tin cho mạng bên ngoài. Với mục đích này, một đặc điểm như địa chỉ Cổng được sử dụng.

Cổng là gì?

Cổng là một thiết bị (máy tính hoặc bộ định tuyến) chuyển tiếp thông tin giữa các mạng con IP khác nhau. Nếu chương trình xác định (bằng IP và mặt nạ) rằng địa chỉ đích không phải là một phần của mạng con cục bộ thì nó sẽ gửi dữ liệu này đến thiết bị hoạt động như một cổng. Trong cài đặt giao thức, chỉ định địa chỉ IP của thiết bị đó.

Để chỉ hoạt động trong mạng cục bộ, cổng có thể không được chỉ định.

Đối với người dùng cá nhân kết nối Internet hoặc đối với các doanh nghiệp nhỏ có một kênh kết nối duy nhất, hệ thống chỉ nên có một địa chỉ cổng - đây là địa chỉ của thiết bị có kết nối Internet. Nếu có nhiều tuyến đường thì sẽ có nhiều cổng. Trong trường hợp này, bảng định tuyến được sử dụng để xác định đường dẫn dữ liệu.

Bảng định tuyến là gì

Và thế là chúng tôi đã tiếp cận được họ một cách suôn sẻ. Và vậy... Đây là loại bàn gì?

Một tổ chức hoặc người dùng có thể có một số điểm kết nối với Internet (ví dụ: các kênh dự phòng trong trường hợp có sự cố xảy ra với nhà cung cấp đầu tiên, nhưng Internet vẫn rất cần thiết) hoặc chứa một số kênh IP-mạng. Trong trường hợp này, để hệ thống biết cách nào (thông qua cổng nào) để gửi thông tin này hoặc thông tin kia, bảng định tuyến sẽ được sử dụng. Bảng định tuyến cho mỗi cổng chỉ ra các mạng con Internet mà thông tin nào sẽ được truyền qua chúng. Trong trường hợp này, đối với một số cổng, bạn có thể đặt phạm vi giống nhau, nhưng với ở các mức giá khác nhau truyền dữ liệu: ví dụ: thông tin sẽ được gửi qua kênh có chi phí thấp nhất và nếu không thành công vì lý do này hay lý do khác, kết nối rẻ nhất hiện có tiếp theo sẽ tự động được sử dụng.

Cổng mạng là gì

Khi truyền dữ liệu ngoại trừ IP-địa chỉ của người gửi và người nhận, gói thông tin chứa số cổng. Ví dụ: 192.168.1.1: 80 , - V trong trường hợp này 80 - đây là số cổng. Cổng là một số được sử dụng khi nhận và truyền dữ liệu để xác định quy trình (chương trình) sẽ xử lý dữ liệu. Vì vậy, nếu một gói được gửi đến 80 cổng thứ, điều này cho biết rằng thông tin được dành cho máy chủ HTTP.

Số cổng với 1 lần trước 1023 -th được gán cho các chương trình cụ thể (được gọi là cổng nổi tiếng). Cổng có số 1024 -65 535 có thể được sử dụng trong các chương trình phát triển riêng. trong đó xung đột có thể xảy ra phải do chính các chương trình quyết định bằng cách chọn một cổng miễn phí. Nói cách khác, các cổng sẽ được phân phối động: có thể vào lần khởi động tiếp theo của chương trình, nó sẽ chọn một giá trị cổng khác, tất nhiên trừ khi bạn đặt cổng đó theo cách thủ công thông qua cài đặt.

Địa chỉ MAC là gì

Thực tế là các gói được gửi trên mạng được gửi đến máy tính không phải bằng tên của chúng và không phải bằng IP-Địa chỉ. Gói này dành cho một thiết bị có địa chỉ cụ thể, được gọi là MAC-Địa chỉ.

Địa chỉ MAC- đây là một địa chỉ duy nhất thiết bị mạng, được nhà sản xuất thiết bị bao gồm trong đó, tức là. đây là một loại số được đóng dấu của bạn thẻ kết nối. Nửa đầu MAC-address là mã định danh của nhà sản xuất, thứ hai là số duy nhất của thiết bị này.

Thường xuyên MAC-address đôi khi được yêu cầu để nhận dạng, chẳng hạn như với nhà cung cấp (nếu nhà cung cấp sử dụng liên kết địa chỉ cây thuốc phiện thay vì mật khẩu đăng nhập) hoặc khi thiết lập bộ định tuyến.

Nơi để xem tất cả các cài đặt mạng

Tôi gần như quên nói vài lời về nơi bạn có thể xem xét và thay đổi tất cả những điều này.

Khi nói về bảo mật thông tin, chúng tôi muốn nói đến tính bảo mật, tính toàn vẹn và tính sẵn có của thông tin tại bất kỳ thời điểm nào. Và nếu mọi thứ đều rõ ràng với tính bảo mật và sẵn sàng thì làm thế nào để đảm bảo tính toàn vẹn của thông tin khi truyền qua mạng? Để giải quyết vấn đề này, chúng ta sẽ cần có kiến ​​thức về các giao thức mạng. Trong bài này chúng ta sẽ xem xét các giao thức TCP và UDP. Chúng là một phần của ngăn xếp giao thức TCP/IP, thuộc lớp vận chuyển của mô hình OSI và được sử dụng để truyền thông tin từ nút này sang nút khác.

Mỗi giao thức này là gì, sự khác biệt của chúng là gì và khi nào nên sử dụng kết nối UDP và khi nào nên sử dụng TCP.

UDP

Giao thức UDP là giao thức cung cấp truyền dữ liệu (datagram) mà không cần tạo kết nối giữa các máy chủ trước. Khi gửi datagram, không có gì chắc chắn về sự tồn tại của người nhận và sự sẵn sàng trao đổi của người đó. Giao thức mạng UDP cũng không cung cấp thứ tự các datagram khi nhận được. Nó được sử dụng bởi các ứng dụng cần thời gian phân phối khi không có cách nào để chờ đợi các gói bị trì hoãn hoặc yêu cầu bị mất, chẳng hạn như trong các hệ thống thời gian thực. Các gói dữ liệu có thể được gửi không theo thứ tự, bị trùng lặp hoặc không được gửi đi chút nào. Đây là lý do tại sao UDP được gọi là “Giao thức gói dữ liệu không đáng tin cậy”.

Các ứng dụng sử dụng giao thức UDP không nhạy cảm với việc mất dữ liệu, gói dữ liệu không đúng thứ tự và trùng lặp. Đồng thời, họ có thể sử dụng các cơ chế tin cậy ở cấp độ ứng dụng.

TCP

Giao thức truyền dữ liệu TCP là giao thức cung cấp giao hàng đáng tin cậy gói dữ liệu, nó sẽ thiết lập kết nối giữa hai máy chủ bằng phương pháp bắt tay, sau đó dữ liệu có thể được trao đổi.

Trước khi các gói được truyền qua kết nối TCP, một phiên được thiết lập với người nhận, trong đó dữ liệu sẽ được truyền. Điều này đảm bảo rằng người nhận tồn tại và sẵn sàng nhận dữ liệu. Sau khi quá trình chuyển hoàn tất, phiên sẽ đóng, người nhận được thông báo rằng sẽ không còn dữ liệu nữa và người gửi được thông báo rằng người nhận đã được thông báo.

Mỗi gói trong quá trình trao đổi đều có số sê-ri riêng. TCP tự động sắp xếp các gói bằng cách sử dụng số thứ tự và chuyển chúng đến lớp ứng dụng sau khi nối. Sau khi gửi một số gói, cần có xác nhận và số thứ tự của gói tiếp theo. Nếu không nhận được xác nhận, việc gửi sẽ được lặp lại; nếu nỗ lực không thành công, phiên sẽ kết thúc. Số lượng gói dữ liệu được yêu cầu xác nhận sẽ phụ thuộc vào độ tin cậy của mạng. Nếu dữ liệu bị mất, xác nhận sẽ tự động được yêu cầu thường xuyên hơn. Đây được gọi là cơ chế cửa sổ trượt, cho phép TCP hoạt động trên các mạng bất kể mức độ tin cậy của chúng.

Nên sử dụng TCP khi việc mất dữ liệu là không thể chấp nhận được, chẳng hạn như trong quá trình ủy quyền cũng như khi truyền thông tin được mã hóa.

Sự khác biệt giữa TCP và UDP

Điều này có nghĩa là không nên sử dụng UDP? Không có gì. Do thiếu “đảm bảo phân phối”, UDP cung cấp tốc độ truyền dữ liệu cao hơn TCP. Vì lý do này, UDP là tối ưu cho mạng và Trò chơi trực tuyến, đang xem truyền phát video, tổ chức truyền thông video và điện thoại IP.

Chia sẻ thông tin hữu ích với những người thân yêu.

UDP là một giao thức đơn giản và có phạm vi cụ thể. Trước hết, điều này tương tác giữa máy khách và máy chủ và đa phương tiện. Tuy nhiên, hầu hết các ứng dụng Internet đều yêu cầu đường truyền ổn định và đáng tin cậy. UDP không đáp ứng được các yêu cầu này nên cần có một giao thức khác. Giao thức này được gọi là TCP và nó ngựa lao động Internet.

Khái niệm cơ bản về TCP

Giao thức điều khiển truyền dẫn (TCP) được thiết kế đặc biệt để cung cấp luồng byte đầu cuối đáng tin cậy qua mạng Internet không đáng tin cậy. Mạng được kết nối khác với mạng độc lập ở chỗ các phần khác nhau của nó có thể có cấu trúc liên kết, băng thông, giá trị độ trễ, kích thước gói và các tham số khác rất khác nhau. Sự phát triển của TCP tập trung vào khả năng của giao thức trong việc thích ứng với các đặc tính của mạng và khả năng phục hồi khi đối mặt với nhiều vấn đề khác nhau.

Giao thức TCP được mô tả trong RFC 793. Theo thời gian, nhiều lỗi khác nhau và không chính xác, và ở một số điểm, các yêu cầu đã được thay đổi. Miêu tả cụ thể Những phần làm rõ và chỉnh sửa này được đưa ra trong RFC 1122. Các phần mở rộng giao thức được đưa ra trong RFC 1323.

Mỗi máy hỗ trợ giao thức TCP đều có một thực thể truyền tải TCP, đó là thủ tục thư viện, quy trình người dùng hoặc một phần của nhân hệ thống. Trong cả hai trường hợp, thực thể vận chuyển quản lý các luồng TCP và giao diện với lớp IP. Thực thể TCP nhận luồng dữ liệu người dùng từ các tiến trình cục bộ, chia chúng thành các phần không lớn hơn 64 KB (trong thực tế, con số này thường là 460 byte dữ liệu, cho phép chúng được đặt trong một khung Ethernet với các tiêu đề IP và TCP), và gửi chúng tới các gói dữ liệu IP riêng biệt. Khi các gói dữ liệu IP chứa dữ liệu TCP đến máy, chúng sẽ được chuyển đến thực thể TCP, thực thể này sẽ xây dựng lại luồng byte ban đầu. Để đơn giản, đôi khi chúng ta sẽ sử dụng "TCP" để chỉ thực thể truyền tải TCP (một phần mềm) hoặc giao thức TCP (một bộ quy tắc). Từ ngữ cảnh sẽ rõ ràng ý nghĩa của nó. Ví dụ: trong biểu thức “Người dùng đang truyền dữ liệu TCP”, thực thể vận chuyển TCP được ngụ ý một cách tự nhiên.

Cấp độ IP không được đảm bảo giao hàng đúng datagram, do đó TCP phải theo dõi thời gian chờ đã hết hạn và nếu cần, truyền lại các gói. Đôi khi các datagram đến không đúng thứ tự. TCP cũng chịu trách nhiệm khôi phục các tin nhắn từ các datagram đó. Do đó, TCP được thiết kế để cung cấp độ tin cậy mà nhiều người dùng mong muốn mà IP không cung cấp.

Mô hình dịch vụ TCP

Dịch vụ TCP dựa trên cái gọi là ổ cắm (ổ cắm hoặc điểm cuối) được tạo bởi cả người gửi và người nhận. Chúng đã được thảo luận trong phần Ổ cắm Berkeley. Mỗi ổ cắm có một số (địa chỉ) bao gồm địa chỉ IP của máy chủ và số 16 bit cục bộ của máy chủ được gọi là cổng. Một cổng trong TCP được gọi là địa chỉ TSAP. Để truy cập dịch vụ TCP, một kết nối phải được thiết lập rõ ràng giữa ổ cắm trên máy gửi và ổ cắm trên máy nhận.

Một ổ cắm có thể được sử dụng cho nhiều kết nối cùng một lúc. Nói cách khác, hai hoặc nhiều kết nối có thể kết thúc trên cùng một ổ cắm. Các kết nối được phân biệt bằng ID ổ cắm ở cả hai đầu - (socket1, socket2). Số kênh ảo hoặc số nhận dạng khác không được sử dụng.

Số cổng dưới 1024, gọi là cổng phổ biến, được bảo lưu dịch vụ tiêu chuẩn. Ví dụ: bất kỳ quy trình nào muốn thiết lập kết nối đến máy chủ để truyền tệp bằng cách sử dụng Giao thức FTP, có thể liên hệ với cổng 21 của máy chủ đích và do đó liên hệ với trình nền FTP của nó. Danh sách các cổng phổ biến được cung cấp trên trang web www.iana.org.

Tất nhiên, chúng ta có thể liên kết daemon FTP với cổng 21 khi khởi động, sau đó liên kết daemon telnet với cổng 23, v.v. Tuy nhiên, nếu làm như vậy, chúng ta sẽ chỉ lãng phí bộ nhớ với thông tin về các daemon mà trên thực tế , hầu hết thời gian họ đều nhàn rỗi. Thay vào đó, người ta thường sử dụng một daemon duy nhất, gọi là inetd trong UNIX, giao tiếp với nhiều cổng và chờ cổng đầu tiên. kết nối đến. Khi điều này xảy ra, inetd sẽ tạo quy trình mới, trong đó một daemon phù hợp được gọi để xử lý yêu cầu. Vì vậy, chỉ có inetd là hoạt động liên tục, những cái khác chỉ được gọi khi có công việc cho chúng. Inetd có một đặc biệt tập tin cấu hình, từ đó anh ta có thể tìm hiểu về mục đích của các bến cảng. Điều này có nghĩa là quản trị viên hệ thống có thể định cấu hình hệ thống sao cho các daemon liên tục được liên kết với các cổng bận rộn nhất (ví dụ: 80) và inetd được liên kết với phần còn lại.

Một số cổng dành riêng

Giao thức

Cách sử dụng

21

FTP

Truyền tập tin

23

Telnet

Đăng nhập từ xa

25

SMTP

E-mail

69

TFTP

Giao thức truyền file đơn giản nhất

79

Ngón tay

Tìm kiếm thông tin người dùng

80

HTTP

Mạng toàn cầu

110

POP-3

Truy cập email từ xa

119

NNTP

Nhóm tin

Tất cả các kết nối TCP đều là song công hoàn toàn và điểm-điểm. Song công hoàn toàn có nghĩa là lưu lượng có thể đi theo các hướng ngược nhau cùng một lúc. Kết nối điểm-điểm có nghĩa là nó có hai điểm cuối. Phát sóng và phát đa hướng không được TCP hỗ trợ.

Kết nối TCP là luồng byte, không phải luồng tin nhắn. Biên giới giữa các tin nhắn không được giữ nguyên. Ví dụ: nếu quy trình gửi ghi bốn khối dữ liệu 512 byte vào luồng TCP, thì dữ liệu đó có thể được gửi đến quy trình nhận dưới dạng bốn khối 512 byte, hai khối 1024 byte, một khối 2048 byte hoặc thứ gì đó khác. Không có cách nào để người nhận xác định dữ liệu được ghi như thế nào.

Các tệp trên hệ thống UNIX cũng có thuộc tính này. Chương trình đọc đường ray không thể xác định cách tệp này được ghi: từng khối, từng byte hoặc hoàn toàn cùng một lúc. Như với các tập tin Hệ thống UNIX,Các chương trình TCP không có ý tưởng hoặc quan tâm đến mục đích của byte. Một byte đối với họ chỉ là một byte.

Khi TCP nhận được dữ liệu từ một ứng dụng, nó có thể gửi tất cả dữ liệu đó cùng một lúc hoặc đệm nó để gửi một khối dữ liệu lớn hơn cùng một lúc, tùy theo lựa chọn của nó. Tuy nhiên, đôi khi một ứng dụng cần gửi dữ liệu ngay lập tức. Ví dụ: giả sử người dùng đăng nhập vào một máy từ xa. Sau khi anh ta nhập lệnh và nhấn phím Enter, điều quan trọng là chuỗi anh ta nhập vào sẽ được chuyển tới máy từ xa ngay lập tức, thay vì được lưu vào bộ đệm cho đến khi được nhập hàng tiếp theo. Để buộc dữ liệu được truyền không chậm trễ, ứng dụng có thể đặt cờ PUSH.

Một số ứng dụng cũ hơn đã sử dụng cờ PUSH làm dấu phân cách tin nhắn. Mặc dù thủ thuật này đôi khi có tác dụng nhưng không phải tất cả việc triển khai TCP đều chuyển cờ PUSH tới ứng dụng nhận. Ngoài ra, nếu thực thể TCP nhận thêm một số gói như vậy trước khi gói PUSH đầu tiên được gửi trên đường truyền (nghĩa là đường đầu ra bận), thực thể TCP sẽ có quyền gửi tất cả dữ liệu này dưới dạng một gói dữ liệu duy nhất, không chia chúng thành các phần riêng biệt.

Tính năng mới nhất Dịch vụ TCP đáng nói đến là dữ liệu khẩn cấp. Khi người dùng tương tác với một chương trình tương tác nhấn Phím xoá hoặc Ctrl-C để làm gián đoạn việc bắt đầu quá trình từ xa, mà ứng dụng gửi đặt vào luồng dữ liệu đầu ra thông tin kiểm soát và chuyển nó tới dịch vụ TCP cùng với cờ KHẨN CẤP (khẩn cấp). Cờ này khiến thực thể TCP ngừng tích lũy dữ liệu và ngay lập tức giải phóng mọi thứ nó có để kết nối với mạng.

Khi dữ liệu khẩn cấp đến đích, ứng dụng nhận sẽ bị gián đoạn (nghĩa là "được báo hiệu" trong thuật ngữ UNIX), sau đó nó có thể đọc dữ liệu từ luồng đầu vào và tìm kiếm dữ liệu khẩn cấp trong số đó. Sự kết thúc của dữ liệu khẩn cấp được đánh dấu để ứng dụng có thể nhận ra nơi nó kết thúc. Sự bắt đầu của dữ liệu khẩn cấp không được đánh dấu. Ứng dụng sẽ tự tìm ra nó. Mạch này cung cấp một cơ chế báo hiệu thô sơ, để lại mọi thứ khác cho ứng dụng.

giao thức TCP

TRONG phần này Giao thức TCP sẽ được xem xét trong phác thảo chung. Trong phần tiếp theo, chúng ta sẽ thảo luận về tiêu đề giao thức, từng trường.

Thuộc tính quan trọng của TCP xác định toàn bộ cấu trúc giao thức là trong kết nối TCP, mỗi byte có số thứ tự 32 bit riêng. Trong những năm đầu của Internet tốc độ cơ bản truyền dữ liệu giữa các bộ định tuyến qua đường dây thuê riêng là 56 Kbps. Đến một máy chủ liên tục xuất dữ liệu từ tốc độ tối đa, phải mất hơn một tuần thì số sê-ri mới xuất hiện đầy đủ. Ở tốc độ hiện tại, số thứ tự có thể hết rất nhanh, vấn đề này sẽ được nói thêm sau. Các số thứ tự 32 bit riêng biệt được sử dụng cho các xác nhận và cho cơ chế cửa sổ trượt, điều này cũng sẽ được thảo luận sau.

Các thực thể TCP gửi và nhận trao đổi dữ liệu dưới dạng các phân đoạn. Một phân đoạn bao gồm một tiêu đề 20 byte cố định (cộng với một phần tùy chọn), có thể theo sau là các byte dữ liệu. Kích thước của các phân đoạn được xác định phần mềm TCP. Nó có thể kết hợp dữ liệu thu được từ một số thao tác ghi vào một phân đoạn hoặc ngược lại, phân phối kết quả của một lần ghi trên một số phân đoạn. Kích thước của các phân đoạn được giới hạn bởi hai giới hạn. Đầu tiên, mỗi phân đoạn, bao gồm tiêu đề TCP, phải vừa với trường tải trọng 65.515 byte của gói IP. Thứ hai, mọi mạng đều có Đơn vị truyền tải tối đa (MTU) và mỗi phân đoạn phải phù hợp với MTU. Trong thực tế, kích thước của đơn vị truyền tải tối đa thường là 1500 byte (tương ứng với kích thước của trường tải trọng Ethernet) và do đó xác định giới hạn trên của kích thước phân đoạn.

Giao thức chính được các thực thể TCP sử dụng là giao thức cửa sổ trượt. Khi truyền một đoạn, người gửi bắt đầu tính thời gian. Khi phân đoạn đến đích, thực thể TCP nhận sẽ gửi lại một phân đoạn (có dữ liệu nếu có gì cần gửi hoặc không có dữ liệu) kèm theo số

xác nhận bằng số thứ tự của phân đoạn dự kiến ​​tiếp theo. Nếu hết thời gian xác nhận, người gửi sẽ gửi lại phân đoạn.

Mặc dù giao thức này có vẻ đơn giản nhưng có một số chi tiết cần được xem xét chi tiết hơn. Các phân đoạn có thể đến không đúng thứ tự. Vì vậy, ví dụ, có thể các byte 3072 đến 4095 đã đến nhưng không thể gửi xác nhận cho chúng vì byte 2048 đến 3071 vẫn chưa được nhận. Ngoài ra, các phân đoạn có thể tồn tại trên mạng quá lâu đến mức người gửi hết thời gian chờ và truyền lại chúng. Phân đoạn được truyền lại có thể bao gồm các phạm vi phân đoạn khác nhau, do đó cần phải quản lý rất cẩn thận để xác định số byte đã được nhận chính xác. Tuy nhiên, vì mỗi byte trong luồng được xác định duy nhất bằng phần bù của nó nên nhiệm vụ này là khả thi.

TCP phải có khả năng giải quyết những vấn đề này và giải quyết chúng một cách hiệu quả. Rất nhiều nỗ lực đã được dành để tối ưu hóa hiệu suất của các luồng TCP. Trong phần tiếp theo, chúng ta sẽ thảo luận về một số thuật toán được sử dụng trong các triển khai khác nhau của giao thức TCP.

Tiêu đề phân đoạn TCP

Mỗi phân đoạn bắt đầu bằng tiêu đề có định dạng cố định 20 byte. Nó có thể được theo sau bởi các lĩnh vực bổ sung. Sau các trường bổ sung có thể có tới 65.535 - 20 - 20 = 65.495 byte dữ liệu, trong đó 20 byte đầu tiên là tiêu đề IP và thứ hai là tiêu đề TCP. Các phân đoạn có thể không chứa dữ liệu. Các phân đoạn như vậy thường được sử dụng để truyền các thông báo xác nhận và điều khiển.

Chúng ta hãy xem xét trường tiêu đề TCP theo từng trường. Các trường Cổng nhận và Cổng nguồn là các mã định danh của điểm cuối kết nối cục bộ. Số cổng cùng với địa chỉ IP máy chủ tạo thành mã định danh điểm cuối 48 bit duy nhất. Một cặp số nhận dạng như vậy, liên quan đến nguồn và đích, xác định duy nhất kết nối.

Các trường Số thứ tự và Số xác nhận thực hiện các chức năng thông thường của chúng. Lưu ý rằng trường Số xác nhận đề cập đến byte tiếp theo được mong đợi, không phải byte cuối cùng nhận được. Cả hai đều là 32 bit vì mỗi byte dữ liệu trong luồng TCP đều được đánh số.

Trường Độ dài Tiêu đề TCP chứa kích thước của tiêu đề TCP, được biểu thị bằng các từ 32 bit. Thông tin này là cần thiết vì trường Trường tùy chọn và toàn bộ tiêu đề có thể có độ dài thay đổi. Về cơ bản, trường này chỉ định độ lệch từ đầu phân đoạn đến trường dữ liệu, được đo bằng các từ 32 bit. Điều này giống như độ dài tiêu đề.

Tiếp theo là trường 6 bit chưa sử dụng. Việc lĩnh vực này tồn tại được 1/4 thế kỷ là một minh chứng cho thấy thiết kế của TCP được suy nghĩ kỹ lưỡng đến mức nào.

Tiếp theo là sáu cờ 1 bit. Bit URG được đặt thành 1 khi sử dụng trường Con trỏ dữ liệu khẩn cấp, trường này chứa byte offset từ số thứ tự byte hiện tại đến vị trí của dữ liệu khẩn cấp. Đây là cách TCP thực hiện các thông báo ngắt. Như đã đề cập, giao thức TCP chỉ đảm bảo việc truyền tín hiệu của người dùng đến người nhận mà không quan tâm đến nguyên nhân gây gián đoạn.

Nếu bit ACK được đặt thành 1, trường Số xác nhận chứa dữ liệu có ý nghĩa. Mặt khác, phân đoạn này không chứa xác nhận và trường Số xác nhận sẽ bị bỏ qua.

Bit PSH về cơ bản là cờ PUSH yêu cầu người gửi đẩy dữ liệu đến ứng dụng ngay khi nhận được gói, thay vì lưu trữ trong bộ đệm cho đến khi đầy. (Người nhận có thể đệm để có hiệu quả cao hơn.)

Bit RST được sử dụng để thiết lập lại trạng thái của kết nối đã bị bế tắc do lỗi máy chủ hoặc lý do khác. Nó cũng được sử dụng để từ chối một phân đoạn không hợp lệ hoặc nỗ lực tạo kết nối. Nếu bạn nhận được một phân đoạn có tập bit RST thì có một số vấn đề.

Bit SYN được sử dụng để thiết lập kết nối. Yêu cầu kết nối có bit SYN = 1 và bit ACK = 0, có nghĩa là trường xác nhận không được sử dụng. Phản hồi cho yêu cầu này chứa một xác nhận, vì vậy giá trị của các bit này là: SYN= 1, ACK- 1. Do đó, bit SYN được sử dụng để biểu thị các phân đoạn YÊU CẦU KẾT NỐI và KẾT NỐI ĐƯỢC CHẤP NHẬN và bit ACK được sử dụng để phân biệt chúng với nhau.

Bit FIN được sử dụng để kết thúc kết nối. Nó chỉ ra rằng người gửi không còn dữ liệu để truyền. Tuy nhiên, ngay cả sau khi đóng kết nối, quá trình vẫn có thể tiếp tục nhận dữ liệu vô thời hạn. Các phân đoạn có bit FIN và SYN có số thứ tự, đảm bảo theo đúng thứ tự việc thực hiện của họ.

Kiểm soát luồng trong giao thức TCP được thực hiện bằng cửa sổ trượt có kích thước thay đổi. Trường Kích thước cửa sổ cho biết có thể gửi bao nhiêu byte sau byte xác nhận. Giá trị của trường Kích thước cửa sổ có thể bằng 0, có nghĩa là tất cả byte lên đến Số xác nhận-1 đã được nhận, nhưng người nhận có khoảnh khắc này có một số vấn đề và nó chưa thể chấp nhận các byte còn lại. Có thể nhận được quyền truyền tiếp bằng cách gửi một phân đoạn có cùng giá trị trường Số xác nhận và giá trị trường Kích thước cửa sổ khác 0.

Trong một số giao thức, việc xác nhận khung có liên quan đến quyền tiếp tục truyền. Mối quan hệ này là hệ quả của kích thước cửa sổ trượt cố định một cách cứng nhắc trong các giao thức này. Trong TCP, các xác nhận được tách biệt khỏi quyền truyền dữ liệu. Về bản chất, người nhận có thể nói: "Tôi đã nhận được số byte lên tới k-ro, nhưng tôi không muốn tiếp tục nhận dữ liệu ngay bây giờ." Sự phân chia này (được biểu thị dưới dạng cửa sổ trượt có kích thước thay đổi) mang lại cho giao thức tính linh hoạt bổ sung. Chúng ta sẽ thảo luận về khía cạnh này chi tiết hơn dưới đây.

Trường Checksum được sử dụng để tăng độ tin cậy. Nó chứa tổng kiểm tra tiêu đề, dữ liệu và tiêu đề giả. Khi thực hiện tính toán, trường Tổng kiểm tra được đặt bằng 0 và trường dữ liệu được đệm bằng một byte rỗng nếu độ dài của nó là số lẻ. Thuật toán tổng kiểm tra chỉ cần thêm tất cả các từ 16 bit vào mã bổ sung, rồi tính phần bù của tổng. Kết quả là khi người nhận kiểm tra toàn bộ phân đoạn, bao gồm cả trường Checksum thì kết quả phải là 0.

Tiêu đề giả chứa địa chỉ IP nguồn và đích 32 bit, số giao thức cho TCP (6) và số byte cho phân đoạn TCP (bao gồm cả tiêu đề). Việc bao gồm một tiêu đề giả trong tổng kiểm tra TCP giúp phát hiện các gói bị gửi sai, mặc dù nó phá vỡ hệ thống phân cấp giao thức vì các địa chỉ IP trong đó thuộc về lớp IP chứ không phải lớp TCP. UDP sử dụng cùng một tiêu đề giả cho tổng kiểm tra.

Trường Trường tùy chọn cung cấp Tính năng bổ sung, không được bao phủ bởi tiêu đề tiêu chuẩn. Bằng cách sử dụng một trong các trường này, mỗi máy chủ có thể chỉ định kích thước trường tải trọng tối đa mà nó có thể chấp nhận. Kích thước của các phân đoạn được sử dụng càng lớn thì hiệu quả càng cao vì nó giảm chi phí hoạt động của các tiêu đề 20 byte, nhưng không phải tất cả các máy chủ đều có thể chấp nhận các phân đoạn rất lớn. Các máy chủ có thể liên lạc với nhau kích thước trường tải trọng tối đa trong quá trình thiết lập kết nối. Theo mặc định kích thước này là 536 byte. Tất cả các máy chủ được yêu cầu chấp nhận các phân đoạn TCP có kích thước 536 + 20 = 556 byte. Mỗi hướng có thể có kích thước trường tải trọng tối đa của riêng nó.

Đối với các đường truyền có tốc độ truyền cao và/hoặc độ trễ cao, cửa sổ 64 KB là quá nhỏ. Do đó, đối với đường truyền TZ (44,736 Mbit/s), toàn bộ cửa sổ có thể được truyền tới đường truyền chỉ trong 12 ms. Nếu thời gian khứ hồi là 50 ms (điển hình cho cáp quang xuyên lục địa), 3/4 thời gian người gửi sẽ dành để chờ xác nhận. Khi liên lạc qua vệ tinh, tình hình sẽ còn tồi tệ hơn. kích thước lớn hơn windows có thể cải thiện hiệu quả, nhưng trường Kích thước cửa sổ 16 bit không cho phép điều này. Đề xuất RFC 1323 tham số mới Tỷ lệ cửa sổ mà hai máy chủ có thể thỏa thuận khi thiết lập kết nối. Con số này cho phép trường Kích thước cửa sổ được dịch chuyển sang trái tối đa 14 bit, cho phép kích thước cửa sổ mở rộng lên 230 byte (1 GB). Hiện nay, hầu hết việc triển khai giao thức TCP đều hỗ trợ tính năng này.

Một tùy chọn khác, được đề xuất trong RFC 1106 và hiện được sử dụng rộng rãi, là sử dụng giao thức thử lại có chọn lọc thay vì quay lui.Nếu đích nhận được một phân đoạn xấu và sau đó một số lượng lớn tốt, TCP bình thường cuối cùng sẽ hết thời gian chờ và truyền lại tất cả các phân đoạn chưa được xác nhận, bao gồm cả những phân đoạn đã được nhận chính xác. RFC 1106 đề xuất sử dụng các xác nhận phủ định (NAK) để cho phép người nhận yêu cầu một phân đoạn hoặc nhiều phân đoạn. Sau khi nhận được, bên nhận có thể xác nhận tất cả dữ liệu được lưu trong bộ đệm, do đó làm giảm lượng dữ liệu được truyền lại.