客戶和服務器一直暗戀著對方。
服務器不知道的是,客戶寫給它的情書已經堆成小山了,但是一封都沒有寄出。
客戶不知道的是,服務器為它單獨開了個信箱,目的就是為了不錯過來自它的任何一封信。
[第一次握手]
客戶決定主動出擊,於是它寄了一封情書出去。
可能,也許是郵差偷懶了,也許是路上太擁堵了,它遲遲沒有收到回信。
於是它又試探著發了一封:哥哥哥哥你理理我嘛。
服務器一直沒有回應。
客戶不開心,但是他沒有灰心,隻要服務器一天沒有拒絕自己,自己就還有機會。
[第二次握手]
郵差終於把信件投遞到服務器的信箱裡了。
服務器給自己的小暗戀者寫了一封回信,交給了郵差。
第二天,它起來去看信箱。
客戶:哥哥哥哥你理理我嘛。
服務器:?
好好好,理理理。
[第三次握手]
客戶收到了服務器的回信。
它太開心了,忍不住拆開來細細品味每一個字。
信中服務器回應了它的感情,它有些不敢相信,於是焦急又期待的再次奔向桌前,寫信問道:是真的嗎?你願意和我連接嗎?
[第四次握手](不一定有)
服務器去信,肯定了客戶的猜測。
[日常通信]
自從服務器和自己確認連接後,客戶整個機都飄飄然,恨不得一天24小時都跟服務器保持通信。
它天天給服務器打電話:“喂喂喂喂喂喂……”
服務器很忙,偶爾回一兩句證明自己在聽。
但客戶樂在其中,恨不得把自己每一分每一秒在做的事都彙報給對方。
可是服務器太忙了,它又不忍心頻繁地打擾對方,隻能按照最開始的約定,攢到多少想說的話後,一口氣全部說給對方。
[DO完]
[“客戶主動打開連接,服務器被動打開連接”。——《計算機網絡》]
它們現在都處在一個ESTABLISHED的狀態。
“客戶的應用進程先向其TCP發出連接釋放報文段,並停止再發送數據,主動關閉TCP連接。”
服務器收到後,表示同意,並進入CLOSEWAIT狀態。
它同意的太爽快了,客戶心中不爽。趁著此時的TCP連接處於半關閉狀態。客戶又強行發送了一段數據,服務器無奈接收。
心滿意足的客戶終於放過了服務器,進入FIN-WAIT-2(終止等待2)狀態。
“哥哥,真的……不繼續了嗎?”
服務器要工作了,它直接無視了對方的請求,進入TIME-WAIT狀態。
一番溫存,大約2MSL(目前是4分鐘)時間後,服務器終於成功進入了CLOSED狀態。
[番外-保活計時器]
客戶已經超過兩個小時沒有給自己發消息了。
服務器想著,麵無表情地回複完另一個追求者的信件。
它應該是死了。
於是服務器毫不留情地刪除了客戶的聯係方式。
[結局]
客戶還不知道的是,服務器給每個人都單獨開了一個信箱。