TCP / UDP / ICMP¶ Đối với các ứng dụng phần mềm nối mạng để giao tiếp qua mạng IP, họ phải sử dụng một giao thức lớp trên IP. Các giao thức này chiếm lớp thứ tư của mô hình OSI được gọi là lớp vận chuyển hoặc lớp 4. Xem trang số giao thức web được duy trì bởi Internet Assigned Numbers Authority (IANA) cho một danh sách các giao thức lớp trên IP và số liên quan của họ. Các Transmission Control protocol (TCP) là phổ biến nhất được sử dụng lớp 4 giao thức trong các ứng dụng mạng. TCP là một giao thức hướng kết nối: nó sử dụng một mô hình client-server, nơi một khách hàng kết nối đến một máy chủ, nơi mà máy chủ đề cập đến ứng dụng mà nhận được kết nối. Sự tương tác điển hình trong một tiền thu ứng dụng dựa trên TCP như sau: . Khách kết nối đến máy chủ . Khách hàng và trao đổi dữ liệu máy chủ . Khách hàng hoặc máy chủ ngắt kết nối vì một máy chủ mạng có thể có nhiều ứng dụng dựa trên TCP chạy, TCP sử dụng một lược đồ địa chỉ được gọi là cổng vào nhận diện các ứng dụng dựa trên TCP. Một cổng TCP được liên kết với một số trong khoảng 1-65.535, và chỉ có một ứng dụng trên một máy chủ có thể được kết hợp với một cổng TCP tại một thời điểm, một hạn chế đó được thực thi bởi các hệ điều hành. Một máy chủ TCP được cho nghe trên một cổng. Ví dụ, một máy chủ SSH thường lắng nghe trên cổng 22. Đối với một khách hàng để kết nối với một máy chủ sử dụng giao thức TCP, khách hàng phải biết cả hai địa chỉ IP của máy chủ của máy chủ và cổng TCP của máy chủ. Các hệ thống điều hành của ứng dụng TCP khách hàng tự động gán một số cổng cho khách hàng. Các khách hàng đang sở hữu này số cổng cho đến khi kết nối TCP được chấm dứt, sau thời gian đó hệ điều hành đòi số cổng. Những loại cổng được gọi đến các cảng như phù du. IANA duy trì một đăng ký các số cổng cho nhiều dịch vụ dựa trên TCP, cũng như dịch vụ sử dụng lớp 4 giao thức khác có sử dụng cổng. Đăng ký một số cổng TCP là không cần thiết, nhưng việc đăng ký một số cổng là hữu ích để tránh va chạm với các dịch vụ khác. Xem Phụ lục B. Tường lửa và mặc định cổng của Reference OpenStack Cấu hình cho các cổng TCP mặc định được sử dụng bởi các dịch vụ khác nhau liên quan đến việc triển khai OpenStack. Các giao diện lập trình ứng dụng phổ biến nhất (API) cho viết các ứng dụng dựa trên TCP được gọi là socket Berkeley, cũng được biết đến như ổ cắm BSD hay đơn giản, ổ cắm. Các ổ cắm API cho thấy một định hướng giao diện dòng để viết các ứng dụng TCP: từ góc nhìn của một lập trình viên, gửi dữ liệu qua kết nối TCP là tương tự như viết một dòng byte vào một tập tin. Đây là trách nhiệm thực hiện TCP / IP của hệ điều hành để phá vỡ các dòng dữ liệu thành các gói IP. Hệ điều hành cũng có trách nhiệm tự động phát lại các gói giảm xuống, và để xử lý kiểm soát dòng chảy để đảm bảo rằng dữ liệu được truyền không tràn bộ đệm dữ liệu của người gửi, người nhận của bộ đệm dữ liệu, và dung lượng mạng. Cuối cùng, hệ điều hành có trách nhiệm tái lắp ráp các gói tin theo đúng thứ tự thành một dòng dữ liệu trên mặt của người nhận. Bởi vì TCP phát hiện và truyền lại gói tin bị mất, nó được cho là một giao thức đáng tin cậy. Các User Datagram Protocol (UDP) là một giao thức lớp 4 đó là cơ sở của một số giao thức mạng nổi tiếng. UDP là một giao thức kết nối: hai ứng dụng mà giao tiếp qua UDP không cần phải thiết lập một kết nối trước khi trao đổi dữ liệu. UDP cũng là một giao thức không đáng tin cậy. Các hệ điều hành không cố gắng truyền lại hoặc thậm chí phát hiện bị mất gói tin UDP. Hệ điều hành cũng không cung cấp bất kỳ sự đảm bảo rằng các ứng dụng nhận thấy các gói tin UDP trong thứ tự mà chúng được gửi. UDP, như TCP, sử dụng khái niệm cổng để phân biệt giữa các ứng dụng khác nhau chạy trên cùng một hệ thống. Lưu ý, tuy nhiên, hệ điều hành xử lý các cổng UDP riêng từ cổng TCP. Ví dụ, nó có thể cho một ứng dụng được liên kết với cổng TCP 16.543 và một ứng dụng riêng biệt được liên kết với cổng UDP 16543. Giống như TCP, các socket API là API phổ biến nhất để viết các ứng dụng UDP dựa trên. Các ổ cắm API cung cấp một giao diện thông báo định hướng cho việc viết các ứng dụng UDP: một lập trình gửi dữ liệu qua UDP bằng cách truyền một thông điệp kích thước cố định. Nếu một ứng dụng đòi hỏi phải truyền lại các gói bị mất hoặc đặt hàng cũng xác định các gói tin nhận được, các lập trình viên có trách nhiệm thực hiện chức năng này trong mã ứng dụng. DHCP, hệ thống tên miền (DNS), Network Time Protocol (NTP), và . ảo mở rộng mạng lưới khu vực địa phương (VXLAN) là những ví dụ về các giao thức UDP dựa trên sử dụng trong triển khai OpenStack UDP đã hỗ trợ cho giao tiếp một-nhiều: gửi một gói tin đến máy chủ nhiều. Một ứng dụng có thể phát đi một gói tin UDP cho tất cả các máy chủ mạng trên một mạng cục bộ bằng cách thiết lập nhận địa chỉ IP là địa chỉ IP broadcast 255.255.255.255 đặc biệt. Một ứng dụng cũng có thể gửi một gói tin UDP tới một tập hợp các máy thu sử dụng IP multic
đang được dịch, vui lòng đợi..
