3.5.6 TCP Connection ManagementIn this subsection we take a closer loo dịch - 3.5.6 TCP Connection ManagementIn this subsection we take a closer loo Việt làm thế nào để nói

3.5.6 TCP Connection ManagementIn t

3.5.6 TCP Connection Management
In this subsection we take a closer look at how a TCP connection is established and torn down. Although this topic may not seem particularly thrilling, it is important because TCP connection establishment can significantly add to perceived delays (for example, when surfing the Web). Furthermore, many of the most common net-work attacks—including the incredibly popular SYN flood attack—exploit vulnera-bilities in TCP connection management. Let’s first take a look at how a TCP connection is established. Suppose a process running in one host (client) wants to initiate a connection with another process in another host (server). The client appli-cation process first informs the client TCP that it wants to establish a connection to a process in the server. The TCP in the client then proceeds to establish a TCP con-nection with the TCP in the server in the following manner:
Step 1. The client-side TCP first sends a special TCP segment to the server-side TCP. This special segment contains no application-layer data. But one of the flag bits in the segment’s header (see Figure 3.29), the SYN bit, is set to 1. For this reason, this special segment is referred to as a SYN segment. In addition, the client randomly chooses an initial sequence number (client_isn) and puts this number in the sequence number field of the initial TCP SYN segment. This segment is encapsulated within an IP datagram and sent to the server. There has been considerable interest in properly randomizing the choice of the client_isn in order to avoid certain security attacks [CERT 2001–09].
Step 2. Once the IP datagram containing the TCP SYN segment arrives at the server host (assuming it does arrive!), the server extracts the TCP SYN segment from the datagram, allocates the TCP buffers and variables to the connection, and sends a connection-granted segment to the client TCP. (We’ll see in Chapter 8 that the allocation of these buffers and variables before completing the third step of the three-way handshake makes TCP vulnerable to a denial-of-service attack known as SYN flooding.) This connection-granted segment also contains no application-layer data. However, it does contain three important pieces of information in the segment header. First, the SYN bit is set to 1. Second, the acknowledgment field of the TCP segment header is set to client_isn+1. Finally, the server chooses its own initial sequence number (server_isn) and puts this value in the sequence number field of the TCP segment header. This connection-granted segment is saying, in effect, “I received your SYN packet to start a connection with your initial sequence number, client_isn. I agree to establish this con-nection. My own initial sequence number is server_isn.” The connection-granted segment is referred to as a SYNACK segment.
Step 3. Upon receiving the SYNACK segment, the client also allocates buffers and variables to the connection. The client host then sends the server yet another segment; this last segment acknowledges the server’s connection-granted seg-ment (the client does so by putting the value server_isn+1 in the acknowl-edgment field of the TCP segment header). The SYN bit is set to zero, since the connection is established. This third stage of the three-way handshake may carry client-to-server data in the segment payload.
Once these three steps have been completed, the client and server hosts can send segments containing data to each other. In each of these future segments, the SYN bit will be set to zero. Note that in order to establish the connection, three packets are sent between the two hosts, as illustrated in Figure 3.39. For this reason, this connection- establishment procedure is often referred to as a three-way handshake. Several aspects of the TCP three-way handshake are explored in the homework problems (Why are initial sequence numbers needed? Why is a three-way handshake, as opposed to a two-way handshake, needed?). It’s interesting to note that a rock climber and a belayer (who is stationed below the rock climber and whose job it is to handle the climber’s safety rope) use a three-way-handshake communication protocol that is identical to TCP’s to ensure that both sides are ready before the climber begins ascent.
All good things must come to an end, and the same is true with a TCP connec-tion. Either of the two processes participating in a TCP connection can end the con-nection. When a connection ends, the “resources” (that is, the buffers and variables) in the hosts are deallocated. As an example, suppose the client decides to close the connection, as shown in Figure 3.40. The client application process issues a close command. This causes the client TCP to send a special TCP segment to the server process. This special segment has a flag bit in the segment’s header, the FIN bit (see Figure 3.29), set to 1. When the server receives this segment, it sends the client an acknowledgment segment in return. The server then sends its own shutdown segment, which has the FIN bit set to 1. Finally, the client acknowledges the server’s shutdown segment. At this point, all the resources in the two hosts are now deallocated.
During the life of a TCP connection, the TCP protocol running in each host makes transitions through various TCP states. Figure 3.41 illustrates a typical sequence of TCP states that are visited by the client TCP. The client TCP begins in the CLOSED state. The application on the client side initiates a new TCP connec-tion (by creating a Socket object in our Java examples as in the Python examples from Chapter 2). This causes TCP in the client to send a SYN segment to TCP in the server. After having sent the SYN segment, the client TCP enters the SYN_SENT state. While in the SYN_SENT state, the client TCP waits for a segment from the server TCP that includes an acknowledgment for the client’s previous segment and has the SYN bit set to 1. Having received such a segment, the client TCP enters the ESTABLISHED state. While in the ESTABLISHED state, the TCP client can send and receive TCP segments containing payload (that is, application-generated) data.
Suppose that the client application decides it wants to close the connection. (Note that the server could also choose to close the connection.) This causes the client TCP to send a TCP segment with the FIN bit set to 1 and to enter the FIN_WAIT_1 state. While in the FIN_WAIT_1 state, the client TCP waits for a TCP segment from the server with an acknowledgment. When it receives this segment, the client TCP enters the FIN_WAIT_2 state. While in the FIN_WAIT_2 state, the client waits for another segment from the server with the FIN bit set to 1; after receiving this segment, the client TCP acknowledges the server’s segment and enters the TIME_WAIT state. The TIME_WAIT state lets the TCP client resend the final acknowledgment in case the ACK is lost. The time spent in the TIME_WAIT state is implementation-dependent, but typical values are 30 seconds, 1 minute, and 2 minutes. After the wait, the connection formally closes and all resources on the client side (including port numbers) are released.
Figure 3.42 illustrates the series of states typically visited by the server-side TCP, assuming the client begins connection teardown. The transitions are self-explanatory. In these two state-transition diagrams, we have only shown how a TCP connection is normally established and shut down. We have not described what happens in certain pathological scenarios, for example, when both sides of a con-nection want to initiate or shut down at the same time. If you are interested in learn-ing about this and other advanced issues concerning TCP, you are encouraged to see Stevens’ comprehensive book [Stevens 1994].
Our discussion above has assumed that both the client and server are prepared to communicate, i.e., that the server is listening on the port to which the client sends its SYN segment. Let’s consider what happens when a host receives a TCP segment whose port numbers or source IP address do not match with any of the ongoing sockets in the host. For example, suppose a host receives a TCP SYN packet with destination port 80, but the host is not accepting connections on port 80 (that is, it is not running a Web server on port 80). Then the host will send a special reset seg-ment to the source. This TCP segment has the RST flag bit (see Section 3.5.2) set to 1. Thus, when a host sends a reset segment, it is telling the source “I don’t have a socket for that segment. Please do not resend the segment.” When a host receives a UDP packet whose destination port number doesn’t match with an ongoing UDP socket, the host sends a special ICMP datagram, as discussed in Chapter 4.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
3.5.6 TCP kết nối quản lýTrong tiểu mục này, chúng ta có một địa điểm gần nhất nhìn như thế nào một kết nối TCP được thành lập và xé. Mặc dù chủ đề này có thể không có vẻ đặc biệt đáng sợ, nó là quan trọng bởi vì thiết lập kết nối TCP có thể đáng kể thêm vào sự chậm trễ nhận thức (ví dụ, khi lướt Web). Hơn nữa, nhiều người trong số các cuộc tấn công mạng-công việc phổ biến nhất-bao gồm cả cực kỳ phổ biến SYN lũ tấn công-khai thác vulnera-bilities trong quản lý kết nối TCP. Hãy đầu tiên hãy xem làm thế nào thiết lập một kết nối TCP. Giả sử một tiến trình đang chạy trong một máy chủ (khách hàng) muốn để bắt đầu kết nối với một quá trình trong một máy chủ (server). Quá trình öùng-cation khách hàng đầu tiên thông báo cho khách hàng TCP rằng nó muốn thiết lập một kết nối đến một quá trình trong máy chủ. TCP trong khách hàng sau đó tiến hành để thiết lập một côn TCP-nection với TCP trong máy chủ theo cách sau đây:Bước 1. TCP phía khách hàng đầu tiên gửi một phân đoạn đặc biệt TCP TCP phía máy chủ. Phân khúc này đặc biệt có chứa không có dữ liệu lớp ứng dụng. Nhưng một trong những lá cờ bit trong các phân đoạn tiêu đề (xem hình 3,29), SYN bit, được thiết lập để 1. Vì lý do này, phân khúc này đặc biệt được gọi là một phân đoạn SYN. Ngoài ra, khách hàng ngẫu nhiên chọn một số thứ tự ban đầu (client_isn) và đặt số này trong trường số thứ tự của các phân đoạn TCP SYN ban đầu. Phân khúc này được đóng gói trong một datagram IP và được gửi đến máy chủ. Đã có sự quan tâm đáng kể trong đúng randomizing sự lựa chọn của client_isn để tránh một số cuộc tấn công bảo mật [CERT 2001-09].Bước 2. Một khi datagram IP có chứa đoạn TCP SYN đến các máy chủ máy chủ (giả sử nó đến!), Hệ phục vụ chất chiết xuất từ các phân đoạn TCP SYN từ datagram, phân bổ các bộ đệm TCP và biến để kết nối, và gửi một phân đoạn kết nối cấp cho khách hàng TCP. (Chúng tôi sẽ nhìn thấy trong chương 8 mà phân bổ các bộ đệm và biến trước khi hoàn tất bước bắt tay ba chiều, thứ ba làm cho TCP dễ bị tổn thương một cuộc tấn công từ chối dịch vụ được biết đến như SYN lũ lụt.) Điều này kết nối-cấp phân đoạn cũng chứa không có dữ liệu lớp ứng dụng. Tuy nhiên, nó có chứa ba phần quan trọng của thông tin trong tiêu đề phân đoạn. Trước tiên, SYN bit được thiết lập để 1. Thứ hai, lĩnh vực thừa nhận tiêu đề phân đoạn TCP được thiết lập để client_isn + 1. Cuối cùng, Hệ phục vụ chọn số thứ tự ban đầu của riêng của nó (server_isn) và đặt giá trị này trong lĩnh vực số thứ tự tiêu đề phân đoạn TCP. Điều này kết nối-cấp phân đoạn nói, trong thực tế, "tôi nhận được của bạn gói SYN để bắt đầu kết nối với số thứ tự ban đầu của bạn, client_isn. Tôi đồng ý với thiết lập này con-nection. Số thứ tự ban đầu của riêng của tôi là server_isn." Các kết nối cấp phân đoạn được gọi là một phân đoạn SYNACK.Bước 3. Sau khi nhận được các phân đoạn SYNACK, khách hàng cũng phân bổ các bộ đệm và biến để kết nối. Các máy chủ khách hàng sau đó gửi máy chủ nào được nêu ra một phân đoạn; phân khúc cuối này thừa nhận của máy chủ cấp kết nối seg-ment (khách hàng như vậy bằng cách đặt các giá trị server_isn + 1 trong lĩnh vực acknowl-edgment tiêu đề phân đoạn TCP). SYN bit được thiết lập số không, kể từ khi kết nối được thiết lập. Giai đoạn thứ ba này của bắt tay ba chiều có thể mang dữ liệu khách hàng trên máy chủ trong tải trọng phân đoạn.Một khi các bước sau ba đã được hoàn thành, các khách hàng và máy chủ máy chủ có thể gửi phân đoạn có chứa dữ liệu với nhau. Trong mỗi của các phân đoạn trong tương lai, SYN bit sẽ được thiết lập bằng không. Lưu ý rằng để thiết lập kết nối, ba gói dữ liệu được gửi giữa hai máy chủ, như minh hoạ trong hình 3,39. Vì lý do này, thủ tục thành lập kết nối này thường được gọi là một bắt tay ba chiều. Một số khía cạnh của bắt tay ba chiều TCP được khám phá trong những vấn đề bài tập ở nhà (tại sao là số thứ tự ban đầu cần thiết? Tại sao là một bắt tay ba chiều, như trái ngược với một cái bắt tay hai chiều, cần thiết?). Nó là thú vị để lưu ý rằng một nhà leo núi đá và một belayer (người đồn trú dưới đây các nhà leo núi đá và công việc mà nó là để xử lý các nhà leo núi an toàn dây) sử dụng một giao thức truyền thông ba cách bắt tay là giống hệt nhau để TCP của để đảm bảo rằng cả hai bên sẵn sàng trước khi các nhà leo núi bắt đầu đi lên.Tất cả những điều tốt đẹp phải đến một kết thúc, và như vậy là đúng với một TCP connec-tion. Một trong hai quá trình tham gia vào một kết nối TCP có thể kết thúc con-nection. Khi kết nối kết thúc, các "nguyên" (có nghĩa là, các bộ đệm và biến) trong các máy chủ được deallocated. Ví dụ, giả sử khách hàng quyết định để ngắt kết nối, như minh hoạ trong hình 3,40. Quá trình ứng dụng khách hàng các vấn đề một lệnh chặt chẽ. Điều này làm khách hàng TCP gửi một phân đoạn TCP đặc biệt cho quá trình máy chủ. Phân khúc này đặc biệt có một lá cờ bit trong tiêu đề của các phân đoạn, vây bit (xem hình 3,29), thiết lập để 1. Khi máy chủ nhận được phân khúc này, nó sẽ gửi khách hàng một phân đoạn thừa nhận trong trở lại. Hệ phục vụ sau đó gửi riêng của mình phân đoạn tắt máy, có vây chút các thiết lập để 1. Cuối cùng, khách hàng thừa nhận các máy chủ tắt máy phân đoạn. Tại thời điểm này, tất cả các nguồn lực trong hai máy chủ được bây giờ deallocated.Trong cuộc đời của một kết nối TCP, giao thức TCP chạy trong mỗi máy chủ làm cho quá trình chuyển đổi thông qua các TCP tiểu bang. 3,41 hình minh hoạ một trình tự điển hình của kỳ TCP được truy cập bởi các khách hàng TCP. Khách hàng TCP bắt đầu thuộc bang đóng cửa. Các ứng dụng trên phía khách hàng đưa ra một mới TCP connec-tion (bằng cách tạo ra một đối tượng ổ cắm trong ví dụ của chúng tôi Java như trong ví dụ Python từ chương 2). Điều này gây ra TCP trong khách hàng để gửi một phân đoạn SYN để TCP trong máy chủ. Sau khi có gửi đoạn SYN, khách hàng TCP vào nhà nước SYN_SENT. Trong khi ở trạng thái SYN_SENT, khách hàng TCP chờ đợi cho một phân đoạn từ các máy chủ TCP bao gồm một sự thừa nhận đối với phân khúc trước của khách hàng và có SYN bit thiết lập để 1. Có đã nhận được một phân đoạn, khách hàng TCP vào nhà nước được thành lập. Trong khi ở trạng thái được thành lập, khách hàng TCP có thể gửi và nhận được phân đoạn TCP có tải trọng chiến đấu (có nghĩa là, ứng dụng tạo ra) dữ liệu.Giả sử rằng các ứng dụng khách hàng quyết định nó muốn ngắt kết nối. (Lưu ý rằng các máy chủ cũng có thể chọn để ngắt kết nối.) Điều này làm khách hàng TCP gửi một phân đoạn TCP với cánh bit thiết lập để 1 và nhập bang FIN_WAIT_1. Trong khi ở trạng thái FIN_WAIT_1, khách hàng TCP chờ đợi cho một phân đoạn TCP từ các máy chủ với một sự thừa nhận. Khi nó nhận được phân khúc này, khách hàng TCP vào nhà nước FIN_WAIT_2. Trong khi ở trạng thái FIN_WAIT_2, các khách hàng chờ đợi cho một phân đoạn từ các máy chủ với chút vây thiết lập để 1; sau khi nhận được phân khúc này, khách hàng TCP thừa nhận phân đoạn của máy chủ và đi vào tiểu bang TIME_WAIT. TIME_WAIT trạng thái cho phép khách hàng TCP gửi lại sự thừa nhận cuối cùng trong trường hợp ACK là bị mất. Thời gian thuộc bang TIME_WAIT là phụ thuộc vào thực hiện, nhưng giá trị điển hình là 30 giây, phút 1, và 2 phút. Sau khi chờ đợi, kết nối chính thức đóng cửa và tất cả tài nguyên về phía khách hàng (bao gồm cả cổng số) được phát hành.3,42 hình minh họa các loạt các kỳ thường được truy cập bởi các giao thức TCP phía máy chủ, giả sử khách hàng bắt đầu kết nối teardown. Các quá trình chuyển đổi được tự giải thích. Trong những sơ đồ hai quá trình chuyển đổi nhà nước, chúng tôi chỉ có hiển thị như thế nào một kết nối TCP thường được thành lập và đóng cửa. Chúng tôi không có mô tả những gì xảy ra trong một số trường hợp bệnh lý, ví dụ, khi cả hai mặt của một con-nection muốn để bắt đầu hoặc tắt cùng một lúc. Nếu bạn đang quan tâm đến việc tìm hiểu-ing về điều này và các vấn đề nâng cao liên quan đến TCP, bạn được khuyến khích để xem cuốn sách toàn diện Stevens' [Stevens 1994].Chúng tôi thảo luận ở trên đã thừa nhận rằng cả khách hàng và máy chủ đang chuẩn bị để giao tiếp, ví dụ, rằng các máy chủ lắng nghe trên cổng mà khách hàng sẽ gửi phân đoạn SYN. Chúng ta hãy xem xét những gì sẽ xảy ra khi nhận được một máy chủ một phân đoạn TCP có cổng số hoặc nguồn IP địa chỉ không khớp với bất kỳ các ổ cắm đang diễn ra trong các máy chủ. Ví dụ, giả sử một loạt sẽ nhận được một gói TCP SYN với điểm đến cổng 80, nhưng các máy chủ không chấp nhận các kết nối trên cổng 80 (có nghĩa là, nó không chạy một máy chủ Web trên cổng 80). Sau đó các máy chủ sẽ gửi một đặc biệt đặt lại seg-ment nguồn. Phân khúc TCP này có lá cờ RST bit (xem phần 3.5.2) thiết lập để 1. Vì vậy, khi một máy chủ gửi một phân đoạn thiết lập lại, nó là nói cho nguồn "tôi không có một ổ cắm cho phân đoạn đó. Xin vui lòng không gửi lại đoạn." Khi một máy chủ nhận được một gói UDP có số hiệu cổng đích không phù hợp với một ổ cắm UDP liên tục, các máy chủ gửi một datagram ICMP đặc biệt, như được thảo luận trong chương 4.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
3.5.6 Quản lý kết nối TCP
Trong tiểu mục này, chúng ta có một cái nhìn sâu hơn về cách kết nối TCP được thiết lập và rách xuống. Mặc dù chủ đề này có thể không có vẻ đặc biệt ly kỳ, điều quan trọng là do thiết lập kết nối TCP có thể thêm đáng kể đến sự chậm trễ nhận thức (ví dụ, khi lướt Web). Hơn nữa, nhiều người trong số các cuộc tấn công, bao gồm cả mạng lưới làm việc phổ biến nhất lũ SYN tấn công-khai thác vulnera-trách vô cùng phổ biến trong quản lý kết nối TCP. Đầu tiên chúng ta hãy xem làm thế nào một kết nối TCP được thiết lập. Giả sử một quá trình đang chạy trong một máy chủ (client) muốn đầu một kết nối với một quá trình trong máy chủ khác (máy chủ). Các khách hàng quá trình Appli-cation đầu tiên thông báo cho TCP client rằng nó muốn thiết lập một kết nối đến một quá trình trong máy chủ. Các giao thức TCP trong các khách hàng sau đó tiến tới thành lập một TCP con-mối liên với TCP tại máy chủ trong các cách sau đây:
Bước 1. Phía client TCP đầu tiên gửi một segment TCP đặc biệt để phía máy chủ TCP. Phân khúc đặc biệt này không chứa dữ liệu lớp ứng dụng. Nhưng một trong những bit cờ trong phần đầu của phân đoạn (xem Hình 3.29), các bit SYN, được thiết lập để 1. Vì lý do này, phân khúc đặc biệt này được gọi là một phân khúc SYN. Ngoài ra, khách hàng chọn ngẫu nhiên một số thứ tự ban đầu (client_isn) và đặt con số này trong các lĩnh vực số thứ tự của các phân đoạn TCP SYN ban đầu. Phân khúc này được đóng gói trong một gói tin IP và gửi đến máy chủ. Hiện đã có lợi ích đáng kể trong hợp ngẫu nhiên sự lựa chọn của client_isn để tránh các cuộc tấn công bảo mật nhất định [CERT 2001-09].
Bước 2. Sau khi các gói tin IP có chứa các phân đoạn TCP SYN đến lúc các máy chủ lưu trữ (giả sử nó không đến! ), máy chủ chất chiết xuất từ các phân đoạn TCP SYN từ các gói tin, phân bổ các bộ đệm TCP và các biến để kết nối, và gửi một đoạn kết nối để cấp cho các TCP client. (Chúng ta sẽ thấy trong chương 8 rằng việc phân bổ các bộ đệm và các biến trước khi hoàn thành bước thứ ba của ba cách bắt tay làm cho TCP dễ bị tấn công từ chối dịch vụ được gọi là SYN lũ lụt.) Phân đoạn kết nối được cấp này cũng không chứa dữ liệu lớp ứng dụng. Tuy nhiên, nó có chứa ba mẩu thông tin quan trọng trong tiêu đề đoạn. Đầu tiên, các bit SYN được thiết lập để 1. Thứ hai, lĩnh vực thừa nhận của các tiêu đề đoạn TCP được thiết lập để client_isn + 1. Cuối cùng, máy chủ sẽ chọn số thứ tự ban đầu của riêng mình (server_isn) và đặt giá trị này trong các lĩnh vực số thứ tự của tiêu đề đoạn TCP. Đoạn kết nối được cấp này được nói, có hiệu lực, "Tôi nhận được gói SYN của bạn để bắt đầu kết nối với số thứ tự ban đầu của bạn, client_isn. Tôi đồng ý thành lập này con-mối liên. Số thứ tự ban đầu của tôi là server_isn. "Phân khúc kết nối cấp được gọi là một phân khúc SYNACK.
Bước 3. Khi nhận được các phân khúc SYNACK, khách hàng cũng phân bổ bộ đệm và các biến để kết nối. Các máy chủ của khách hàng sau đó gửi cho máy chủ phân đoạn khác; đoạn cuối cùng này thừa nhận kết nối được cấp seg-ment của máy chủ (client như vậy bằng cách đặt giá trị server_isn + 1 trong lĩnh vực acknowl-edgment của các phân đoạn TCP header). Các bit SYN được thiết lập để không, kể từ khi kết nối được thiết lập. Điều này giai đoạn thứ ba của ba cách bắt tay có thể mang client-to-máy chủ dữ liệu trong payload phân khúc.
Khi ba bước đã được hoàn thành, các khách hàng và máy chủ host có thể gửi các đoạn chứa dữ liệu với nhau. Trong mỗi phân đoạn trong tương lai, các bit SYN sẽ được thiết lập để không. Lưu ý rằng để thiết lập kết nối, ba gói dữ liệu được gửi giữa hai máy chủ, như minh họa trong hình 3.39. Vì lý do này, thủ tục thành lập connection- này thường được gọi là bắt tay ba chiều. Một số khía cạnh của TCP bắt tay ba chiều được khám phá trong các bài tập về nhà (Tại sao là số thứ tự ban đầu cần thiết? Tại sao là ba cách bắt tay, như trái ngược với một cái bắt tay hai chiều, cần thiết?). Thật thú vị khi lưu ý rằng một nhà leo núi đá và một belayer (người đang đóng quân dưới leo núi và có công việc đó là để xử lý sợi dây an toàn của người leo núi) sử dụng một giao thức truyền thông ba chiều-handshake giống hệt TCP để đảm bảo rằng cả hai bên sẵn sàng trước khi leo núi bắt đầu đi lên.
Tất cả những điều tốt đẹp phải đi đến một kết thúc, và điều này cũng đúng với một TCP connec-tion. Một trong hai quá trình tham gia vào một kết nối TCP có thể kết thúc các con-mối liên. Khi một kết nối kết thúc, các "tài nguyên" (có nghĩa là, các bộ đệm và các biến) trong các máy chủ được deallocated. Như một ví dụ, giả sử khách hàng quyết định để đóng kết nối, như thể hiện trong hình 3.40. Quá trình ứng dụng khách hàng các vấn đề một lệnh đóng cửa. Điều này làm cho TCP client để gửi một phân đoạn TCP đặc biệt đến quá trình máy chủ. Phân khúc đặc biệt này có một chút lá cờ trong phần đầu của phân đoạn, các bit FIN (xem Hình 3.29), thiết lập để 1. Khi máy chủ nhận được đoạn này, nó sẽ gửi cho khách hàng một đoạn ghi nhận lại. Các máy chủ sau đó sẽ gửi đoạn tắt máy riêng của mình, trong đó có các bit FIN là 1. Cuối cùng, khách hàng thừa nhận đoạn shutdown của máy chủ. Tại thời điểm này, tất cả các nguồn lực trong hai máy chủ đang deallocated.
Trong suốt cuộc đời của một kết nối TCP, giao thức TCP chạy trong mỗi máy chủ làm cho quá trình chuyển đổi qua trạng thái TCP khác nhau. Hình 3.41 minh họa một trình tự đặc trưng của các quốc gia TCP được truy cập bởi các TCP client. Các TCP client bắt đầu từ bang CLOSED. Các ứng dụng trên các mặt hàng khởi tạo một TCP mới connec-tion (bằng cách tạo ra một đối tượng Socket trong ví dụ Java của chúng tôi như trong các ví dụ Python từ Chương 2). Điều này gây ra TCP trong các khách hàng để gửi một phân đoạn TCP SYN để trong máy chủ. Sau khi gửi các đoạn SYN, TCP client vào trạng thái SYN_SENT. Còn ở trạng thái SYN_SENT, TCP client đợi cho một phân khúc từ các máy chủ TCP bao gồm một sự thừa nhận cho phân khúc trước của khách hàng và đã SYN bit là 1. Sau khi nhận được một đoạn như vậy, TCP client vào trạng thái ESTABLISHED. Còn ở trạng thái ESTABLISHED, khách hàng TCP có thể gửi và nhận các phân đoạn TCP chứa tải trọng (có nghĩa là, ứng dụng tạo ra) dữ liệu.
Giả sử rằng các ứng dụng khách hàng quyết định nó muốn đóng kết nối. (Lưu ý rằng các máy chủ cũng có thể chọn để đóng kết nối.) Điều này làm cho TCP client để gửi một phân đoạn TCP với FIN bit thiết lập để 1 và đi vào trạng thái FIN_WAIT_1. Còn ở trạng thái FIN_WAIT_1, TCP client đợi cho một phân đoạn TCP từ máy chủ với một sự thừa nhận. Khi nhận được đoạn này, TCP client vào trạng thái trạng thái FIN_WAIT_2. Còn ở trạng thái trạng thái FIN_WAIT_2, khách hàng chờ đợi cho một lĩnh vực khác từ máy chủ với các bit FIN thiết lập để 1; sau khi nhận được đoạn này, khách hàng TCP thừa nhận đoạn của máy chủ và vào trạng thái TIME_WAIT. Các trạng thái TIME_WAIT cho phép các client TCP gửi lại sự thừa nhận chính thức trong trường hợp ACK bị mất. Thời gian ở trạng thái TIME_WAIT là thực hiện phụ thuộc, nhưng giá trị điển hình là 30 giây, 1 phút, 2 phút. Sau khi chờ đợi, các kết nối chính thức đóng cửa và tất cả các nguồn lực về phía khách hàng (bao gồm cả số cổng) được phát hành.
Hình 3.42 minh họa một loạt các quốc gia thường được viếng thăm bởi phía máy chủ TCP, giả định các khách hàng bắt đầu kết nối teardown. Việc chuyển đổi là tự giải thích. Trong hai sơ đồ trạng thái, chúng ta chỉ có thể hiện như thế nào một kết nối TCP thường được thành lập và đóng cửa. Chúng tôi đã không mô tả những gì xảy ra trong các tình huống bệnh lý nhất định, ví dụ, khi cả hai bên của một con-mối liên muốn bắt đầu hoặc tắt tại cùng một thời điểm. Nếu bạn quan tâm đến học-ing về điều này và các vấn đề khác liên quan đến TCP tiên tiến, bạn được khuyến khích để xem cuốn sách toàn diện của Stevens [Stevens 1994].
thảo luận của chúng tôi ở trên đã giả định rằng cả hai máy khách và máy chủ đang chuẩn bị để giao tiếp, tức là, server đang lắng nghe trên các cổng mà client gửi SYN segment của nó. Hãy xem xét những gì sẽ xảy ra khi một máy chủ nhận được một phân đoạn TCP có số cổng hoặc địa chỉ IP nguồn không phù hợp với bất kỳ ổ cắm đang diễn ra tại các máy chủ. Ví dụ, giả sử một máy chủ nhận được một gói tin TCP SYN với cổng đích 80, nhưng chủ nhà không chấp nhận các kết nối trên cổng 80 (có nghĩa là, nó không chạy một máy chủ Web trên cổng 80). Sau đó, các máy chủ sẽ gửi một thiết lập lại seg-ment đặc biệt với nguồn. Segment TCP này có bit RST cờ (xem mục 3.5.2) là 1. Như vậy, khi một máy chủ sẽ gửi một phân khúc thiết lập lại, nó là nói nguồn "Tôi không có một ổ cắm cho phân đoạn đó. Xin vui lòng không gửi lại phân khúc này. "Khi một host nhận được gói tin UDP mà điểm đến cổng số không phù hợp với một socket UDP đang diễn ra, máy chủ sẽ gửi một ICMP gói đặc biệt, như đã thảo luận trong chương 4.
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: