詳細總結(jié)在寫一篇完美總結(jié)之前,先進行全面的信息收集和整理,構(gòu)建寫作的基礎。請大家積極學習這些總結(jié)范文,提高自己的寫作能力和總結(jié)能力。
傳輸層的協(xié)議書簡短篇一
乙方:_______________。
第一條合同定義與合同項目。
1.1甲方租用屬于乙方網(wǎng)絡環(huán)境的服務器,乙方為甲方提供“服務器端流媒體視頻文件存放空間”,并將之接入到國際互聯(lián)網(wǎng)(internet),為甲方提供internet視頻廣告點播服務。乙方負責該服務器的硬件配置與軟件安裝,及日常維護和服務器故障的排除,甲方按照本合同的約定購買相應空間使用權(quán)。
1.2甲方委托乙方代為租用英文域名一個及100m虛擬主機空間。乙方有義務全權(quán)受理,在中華人民共和國注冊的企業(yè)法人及合法的isp,icp處申請并開通服務,以確保網(wǎng)絡的穩(wěn)定運行。合同中“雙方”僅指本合同的締約方,即上述甲方和乙方。甲方要求,所選定主機配置以及相關(guān)設備以由甲方在合同附件所作的填寫為說明。乙方受甲方委托對其所租用的主機進行維護管理。
1.3標準服務:品質(zhì)機房環(huán)境及設備;乙方選定之主機及設備;恒溫恒濕控制系統(tǒng);通過高速光纖直接接入chinanet骨干網(wǎng);間斷、無休日網(wǎng)絡系統(tǒng)管理維護與技術(shù)支持;服務器應用監(jiān)測。
第二條雙方的權(quán)利和義務。
2.1甲方的權(quán)利和義務。
2.1.1甲方有權(quán)對所租用的服務器流媒體視頻文件存放空間進行內(nèi)容的修改,增加,刪除。
2.1.2甲方的信息經(jīng)營必須遵守《中華人民共和國計算機信息網(wǎng)絡國際聯(lián)網(wǎng)暫行規(guī)定》和國家的有關(guān)法律,法令,法規(guī),不得做任何違法經(jīng)營活動(包括但不限于黑客行為,侵權(quán)行為,發(fā)布色情或迷信的內(nèi)容,舉辦博彩/賭博游戲,進行違反國家規(guī)定的政治或宗教宣傳,發(fā)布涉及國家機密和安全的信息,發(fā)布危害社會秩序和治安,社會公共道德和侵害他人合法權(quán)益的信息等)否則,乙方在通知甲方后,有權(quán)要求甲方就不適當內(nèi)容進行刪除或修改。
2.1.3甲方對其經(jīng)營的信息而引起的政治責任,法律責任和經(jīng)濟糾紛負全部責任。
2.1.4甲方利用所租用的空間進行以_________為主的信息服務。同時可以配置和使用ftp等internet功能和數(shù)據(jù)庫。可以自行發(fā)布任何所需要的合法影片。
2.1.5如果甲方利用本合同服務進行的經(jīng)營,活動需要獲得國家有關(guān)部門認可或批準的,甲方應獲得該有關(guān)認可或批準。但乙方?jīng)]有義務審查甲方是否具有該認可或批準,出現(xiàn)問題也由甲方自行解決或者承擔相關(guān)責任,與乙方無關(guān)。
2.2乙方的權(quán)利和義務。
2.2.1簽訂合同與繳納費用后,乙方應為甲方提供流媒體視頻文件存放空間,并確保服務器穩(wěn)定運行。
2.2.3甲方租用本業(yè)務,如不屬于乙方之原因,造成電路或系統(tǒng)故障不能通信時,甲方應采取合作的態(tài)度等待互聯(lián)網(wǎng)基礎業(yè)務供應商(如電信部門)來處理。
2.2.4乙方為甲方提供機房物理環(huán)境以100兆共享帶寬不限流量與internet連接,并保證服務器與外部連接的安全性,穩(wěn)定性,及時性,使甲方可以通過ftp等對所租用空間進行管理。
2.2.5乙方對服務器進行日常維護和監(jiān)控,以保證甲方信息服務器的正常運行。除非雙方另有書面約定,乙方承認甲方自己存放在服務器上的任何資料,軟件,數(shù)據(jù)等的知識產(chǎn)權(quán)均與乙方無關(guān),乙方無權(quán)復制,傳播,轉(zhuǎn)讓,許可或提供他人使用這些資源,否則應承擔相應的責任。
2.2.6因乙方原因,造成服務器的正常工作中斷,乙方以小時為單位,以月費為基數(shù),按平均每小時費用的二倍向甲方賠償。但以當月的月費為賠償?shù)淖罡呦蕖?/p>
2.2.7甲方自行安裝軟件或進行系統(tǒng)配置如導致系統(tǒng)無法使用,需要乙方進行恢復的,乙方有權(quán)要求甲方支付相應的服務費用。
第三條合同金額及付款方式(本條內(nèi)容依甲方所租用主機的類型而不同)。
3.1本合同所涉及的費用包括一次性費用。其涉及的金額一律以人民幣元為單位。
3.2本合同涉及的一次性費用共計人民幣_________元整(rmb:_________元)。
第四條合同期限。
4.1合同有效期為12個月。自甲方付款,并由乙方開通相關(guān)服務之日起生效。由乙方出具書面通知為準。
4.2在合同到期時,雙方如需要繼續(xù)合作并對本合同無異議,則本合同自動順延。如雙方認為某些條款需要修改,屆時雙方另簽合同。如果在合同期間或期滿之后甲方需要乙方的其他服務,雙方另簽合同。
第五條合同中止及違約責任。
5.1甲方違約責任。
5.1.1如果甲乙雙方無異議并且甲方在本合同結(jié)束期七日前按時付款續(xù)約,則本合同自動延續(xù)一年,如果甲方?jīng)]有按時支付續(xù)約款項,則在甲方前一次付款款項的有效期結(jié)束后,本合同即告終止。乙方屆時將關(guān)閉甲方的使用帳號。如果甲方違約,乙方有權(quán)關(guān)閉甲方的使用帳號,由此造成的損失由甲方負責。
5.1.2乙方在進行維護時有時需要短時間中斷服務,或因internet上的通路的偶然阻塞造成甲方虛擬主機訪問速度下降,甲方認同這是屬于正常情況,不屬于乙方違約。
5.2乙方的違約責任。
5.2.1乙方不得無故破壞或干擾為甲方提供的服務。乙方保證甲方所租用的服務正常運行,供電穩(wěn)定可靠,與internet連接的正常,如確實必須暫時停機或與internet斷開連接,乙方應及時通知甲方。如乙方無故停機或未及時通知甲方,將以所列罰款款項的雙倍對甲方進行賠償。
5.2.2如果乙方違約,甲方有權(quán)要求乙方在限定時間內(nèi)為甲方的退出或轉(zhuǎn)移服務,其違約造成的損失由乙方負責。
5.2.3本合同在下述情形下終止,雙方互不負責,但終止方應書面通知另一方:一方當事人主體資格消失,如破產(chǎn)。但進行重組、名稱變更或者與第三方合并等不在此列。一方嚴重違反本合同,另一方根據(jù)本合同的約定解除本合同。因不可抗力而解除本合同或者雙方當事人協(xié)商一致解除本合同的。依法律、法規(guī)規(guī)定的情形而終止。
5.2.4本合同到期后,如果甲方?jīng)]有按時支付續(xù)約款項,則雙方認同本合同執(zhí)行終止,乙方屆時將關(guān)閉服務。
5.2.5由于一方不履行協(xié)議約定的義務,或嚴重違反本合同約定的義務,造成本合同無法履行或履行不必要時,視作違約方片面終止本合同,守約方除有權(quán)向違約方索賠外,并有權(quán)終止本合同。
第六條責任限制。
6.1乙方在進行服務器配置,維護時需要短時間中斷服務,或者由于internet上通路的阻塞造成甲方服務器訪問速度下降,甲方均認同是正常情況,不屬于乙方違約。鑒于計算機及互聯(lián)網(wǎng)的特殊性,因y2k問題、黑客、病毒、電信部門技術(shù)調(diào)整等引起的事件,甲方亦認同不屬于乙方違約。
6.2在履行本合同時,乙方對因第三方的過錯或者延誤而給甲方或者其他第三方造成的損失不負責任。乙方對通過甲方間接接受乙方服務的第三方的損失不負責任。
第七條爭議解決。
在合同執(zhí)行期間如果雙方發(fā)生爭議,雙方應友好協(xié)商解決。如果協(xié)商不成,雙方同意提交_________仲裁委員會進行仲裁。
第八條不可抗力。
8.1任何一方遇有不能預見,不能避免或不能克服的客觀事件(包括但不限于自然災害如洪水、火災、爆炸、雷電、地震和風暴等以及社會事件如戰(zhàn)爭、動亂、政府管制、國家政策的突然變動和罷工等。)而全部或部分不能履行本合同或遲延履行本合同,應自不可抗力事件發(fā)生之日起五日內(nèi),將事件情況以書面形式通知另一方,并于事件發(fā)生之日起二十日內(nèi),向另一方提交導致其全部或部分不能履行或遲延履行的證明。
8.2遭受不可抗力的一方應采取一切必要措施減少損失,并在事件消除后協(xié)商恢復本合同的履行,除非此等履行已不可能或者不必要。
第九條保密義務。
任何一方對在本合同履行過程中以任何方式獲知的另一方商業(yè)秘密或其他技術(shù)及經(jīng)營信息均負有保密義務,并有義務盡快通知對方,并協(xié)助對方采取適當?shù)难a救措施,不得向任何其他第三方透露或泄露,但中國現(xiàn)行法律,法規(guī)另有規(guī)定或經(jīng)另一方書面同意的除外。
第十條其他。
本合同一式_________份,甲乙雙方各執(zhí)_________份。
本合同簽訂后,雙方如需修改,經(jīng)雙方協(xié)商后,可以增加補充條款。
甲方(蓋章)_______________。
法定代表人(簽字)_________。
__________年_______月______日。
簽訂地點:___________________。
乙方(蓋章)_______________。
法定代表人(簽字)_________。
__________年_______月______日。
簽訂地點:___________________。
傳輸層的協(xié)議書簡短篇二
經(jīng)雙方友好協(xié)商,本著互惠互利的原則就貴公司委托代發(fā)網(wǎng)上直投廣告事宜,達成如下協(xié)議:
1.甲方委托代發(fā)網(wǎng)上直投廣告。
2.數(shù)量:(____萬封)價格:____元(人民幣)/拾萬封。
費用總計:____元整(注:先付款,后發(fā)送)。
3.甲方需預先設定聯(lián)系業(yè)務信箱:
(注意:請不要使用常用工作信箱,以免堵塞!)。
4.發(fā)送對象:
a:(1)國內(nèi)(_________省/市)。
(2)港澳臺地區(qū)。
(3)國外。
b:行業(yè)。
c:(1)企業(yè)。
(2)個人。
d:備注_______________________。
5.付款:甲方通過(1.銀行匯款;2.郵局匯款;3.信用卡劃款;4.其他方式)將費用支付給乙方。
6.乙方應采取一切必要措施保護甲方的文件不致丟失或泄露。廣告信息的真實性由甲方負責,由于使用代理服務器而引起的其他糾紛,由乙方承擔責任。
7.本協(xié)議一式兩份;簽字蓋章后生效。雙方各持一份。本協(xié)議有效期一年。期滿雙方根據(jù)合作意愿續(xù)簽或終止。傳真件與協(xié)議書正本一樣有效。
傳輸層的協(xié)議書簡短篇三
首先我們有兩種基本的加解密算法類型:對稱加密,非對稱加密(公私鑰加密),現(xiàn)在介紹一下這兩種加密算法的特點:
對稱加密:密鑰只有一個,加密解密為同一個密碼,且加解密速度快,典型的對稱加密算法有des、aes等,示意圖如下:
圖1對稱加密。
非對稱加密:密鑰成對出現(xiàn)(且根據(jù)公鑰無法推知私鑰,根據(jù)私鑰也無法推知公鑰),加密解密使用不同密鑰(公鑰加密需要私鑰解密,私鑰加密需要公鑰解密),相對對稱加密速度較慢,典型的非對稱加密算法有rsa、dsa等,示意圖如下:
圖2非對稱加密。
根據(jù)上面的兩種加密方法,現(xiàn)在我們就可以設計一種無法讓他人在互聯(lián)網(wǎng)上知道你的通訊信息的加密方法:
在服務器端存在一個公鑰及私鑰。
客戶端從服務器取得這個公鑰。
客戶端產(chǎn)生一個隨機的密鑰。
客戶端通過公鑰對密鑰加密(非對稱加密)。
客戶端發(fā)送到服務器端。
服務器端接受這個密鑰并且以后的服務器端和客戶端的數(shù)據(jù)全部通過這個密鑰加密(對稱加密)。
https通信過程的時序圖如下:
圖3https通信時序圖。
正如上圖所示,我們能保證下面幾點:
客戶端產(chǎn)生的密鑰只有客戶端和服務器端能得到。
加密的數(shù)據(jù)只有客戶端和服務器端才能得到明文。
客戶端到服務端的通信是安全的。
傳輸層的協(xié)議書簡短篇四
甲方:
法定代表人:
住所:
聯(lián)系電話:
統(tǒng)一社會信用代碼:
乙方:
法定代表人:
住所:
聯(lián)系電話:
統(tǒng)一社會信用代碼:
一、定義。
短消息(單位:萬條):由文字組成的信息,通過中國移動gsm網(wǎng)絡傳送。每條短消息最大長度為字符(英文/數(shù)字:字;漢字:字)。
二、甲方義務。
(1)負責提供發(fā)送短信息所需要的一切短信息發(fā)送平臺、系統(tǒng),一切硬軟件資源,網(wǎng)絡環(huán)境及所需要人員。
(2)甲方將保證實際發(fā)送的數(shù)量與承諾的相符合。
(3)由于甲方原因?qū)е滦畔l(fā)送至錯誤對象,則甲方承擔其發(fā)送錯誤的短信資費,并重新發(fā)送補足發(fā)送數(shù)量。
(4)如發(fā)生移動網(wǎng)絡故障導致發(fā)送遲延,甲方應提供電信運營商出具的有效證明。
(5)甲方在數(shù)據(jù)傳輸、控制方面對乙方有影響的變動時需提前通知乙方。
(6)如甲方由于自身原因無法繼續(xù)提供短消息發(fā)送平臺給乙方使用,應及時通知乙方并將乙方預付的短消息發(fā)送費用中尚未使用的金額全部退還乙方,并承擔相應的違約責任。
(7)甲方必須保證其所從事的短消息發(fā)送業(yè)務的合法性,并承擔與此相關(guān)的一切風險及責任。
(8)甲方有義務給乙方開一個監(jiān)控短信發(fā)送的端口,可以實時看到發(fā)送的到達情況。
三、乙方義務。
(1)乙方支付的發(fā)送費用在發(fā)送前結(jié)算,元/條,大寫:。
(2)甲方提供的僅限于短信息系統(tǒng)硬件及技術(shù)支持和提供短信息通信傳輸服務,發(fā)送的短信息內(nèi)容和發(fā)送的號碼需要由乙方自行提交。按照有關(guān)的規(guī)定,乙方發(fā)送前請先獲得手機終端用戶許可,乙方所有下發(fā)短消息的端口號都必須為(地理區(qū)號+特定卡號),乙方不得利用該端口向用戶或會員散布和傳播反動、色情等違反國家法律的信息。如乙方違反本條款規(guī)定義務,甲方有權(quán)單方解除協(xié)議,對于以上幾個方面造成的后果,甲方不負擔任何責任。
四、業(yè)務流程。
乙方在發(fā)送短信息前通過互聯(lián)網(wǎng)的方式向甲方短信平臺提交發(fā)送內(nèi)容和號碼。甲方成功發(fā)送完畢后,應立即向乙方客戶端口提供發(fā)送統(tǒng)計報告,包括發(fā)送的數(shù)量,成功的接收統(tǒng)計。
五、付款方式。
發(fā)送前乙方付給甲方發(fā)送費用人民幣元整,大寫:?。
六、共同義務。
(1)為保證協(xié)議順利實施,甲乙雙方指定專人負責協(xié)調(diào)解決在業(yè)務運作過程中可能發(fā)生的問題。
(2)甲、乙雙方對業(yè)務開展中出現(xiàn)的各種問題,應及時相互通報、協(xié)商處理解決。
(3)甲、乙雙方開展業(yè)務均應依法辦理。
(4)對于業(yè)務開發(fā)和運行過程中對方提供的所有資料(包括技術(shù)、用戶信息等),雙方均有保密義務。未經(jīng)對方書面同意,任何一方不得向第三方泄露或用作合作項目開發(fā)以外之用途,否則須向?qū)Ψ匠袚鄳姆韶熑巍?/p>
(5)本協(xié)議未盡事宜由甲乙雙方友好協(xié)商解決或簽訂補充協(xié)議予以明確。本協(xié)議履行過程中,如因甲方上級單位政策原因或市場環(huán)境變化等因素需要對本協(xié)議內(nèi)容進行調(diào)整,甲乙雙方應友好協(xié)商解決。
七、違約責任。
(1)如甲方逾期發(fā)送短信息,每逾期一日,按合同總金額的%支付違約金。
(2)甲方成功發(fā)送數(shù)量不足合同約定的,應按乙方要求重新發(fā)送補足發(fā)送數(shù)量。
八、其他。
本合同一式二份,雙方各執(zhí)一份,具有同等法律效力。
如雙方因本合同產(chǎn)生爭議,應友好協(xié)商解決,協(xié)商不成,任何一方皆有權(quán)向乙方所在地法院起訴。
甲方(蓋章):乙方(蓋章):
甲方代表簽名:
簽訂地點:乙方代表簽名:
簽訂地點:
年月日年月日。
傳輸層的協(xié)議書簡短篇五
甲方:_________。
乙方:_________。
第一條?合同定義與合同項目。
1.1?甲方租用屬于乙方網(wǎng)絡環(huán)境的服務器,乙方為甲方提供“服務器端流媒體視頻文件存放空間”,并將之接入到國際互聯(lián)網(wǎng)(_____er_____),為甲方提供_____er_____視頻廣告點播服務。乙方負責該服務器的硬件配置與軟件安裝,及日常維護和服務器故障的排除,甲方按照本合同的約定購買相應空間使用權(quán)。
1.3?標準服務:品質(zhì)機房環(huán)境及設備;乙方選定之主機及設備;恒溫恒濕控制系統(tǒng);通過高速光纖直接接入china_____骨干網(wǎng);間斷、無休日網(wǎng)絡系統(tǒng)管理維護與技術(shù)支持;服務器應用監(jiān)測。
第二條?雙方的權(quán)利和義務。
2.1?甲方的權(quán)利和義務。
2.1.1?甲方有權(quán)對所租用的服務器流媒體視頻文件存放空間進行內(nèi)容的修改,增加,刪除。
2.1.2?甲方的信息經(jīng)營必須遵守《中華人民共和國計算機信息網(wǎng)絡國際聯(lián)網(wǎng)暫行規(guī)定》和國家的有關(guān)法律,法令,法規(guī),不得做任何違法經(jīng)營活動(包括但不限于黑客行為,侵權(quán)行為,發(fā)布色情或_____的內(nèi)容,舉辦博彩/賭博游戲,進行違反國家規(guī)定的政治或宗教宣傳,發(fā)布涉及_____和安全的信息,發(fā)布危害社會秩序和治安,社會公共道德和侵害他人合法權(quán)益的信息等?)。否則,乙方在通知甲方后,有權(quán)要求甲方就不適當內(nèi)容進行刪除或修改。
2.1.3?甲方對其經(jīng)營的信息而引起的政治責任,法律責任和經(jīng)濟糾紛負全部責任。
2.1.4?甲方利用所租用的空間進行以_________為主的信息服務。同時可以配置和使用ftp等?_____er_____功能和數(shù)據(jù)庫??梢宰孕邪l(fā)布任何所需要的合法_____。
2.1.5?如果甲方利用本合同服務進行的經(jīng)營,活動需要獲得國家有關(guān)部門認可或批準的,甲方應獲得該有關(guān)認可或批準。但乙方?jīng)]有義務審查甲方是否具有該認可或批準,出現(xiàn)問題也由甲方自行解決或者承擔相關(guān)責任,與乙方無關(guān)。
2.2?乙方的權(quán)利和義務。
2.2.1?簽訂合同與繳納費用后,乙方應為甲方提供流媒體視頻文件存放空間,并確保服務器穩(wěn)定運行。
2.2.3?甲方租用本業(yè)務,如不屬于乙方之原因,造成電路或系統(tǒng)故障不能通信時,甲方應采取合作的態(tài)度等待互聯(lián)網(wǎng)基礎業(yè)務供應商(如電信部門)來處理。
2.2.4?乙方為甲方提供機房物理環(huán)境以100兆共享帶寬不限流量與_____er_____連接,并保證服務器與外部連接的安全性,穩(wěn)定性,及時性,使甲方可以通過ftp等對所租用空間進行管理。
2.2.5?乙方對服務器進行日常維護和監(jiān)控,以保證甲方信息服務器的正常運行。除非雙方另有書面約定,乙方承認甲方自己存放在服務器上的任何資料,軟件,數(shù)據(jù)等的知識產(chǎn)權(quán)均與乙方無關(guān),乙方無權(quán)復制,傳播,轉(zhuǎn)讓,許可或提供他人使用這些資源,否則應承擔相應的責任。
2.2.6?因乙方原因,造成服務器的正常工作中斷,乙方以小時為單位,以月費為基數(shù),按平均每小時費用的二倍向甲方賠償。但以當月的月費為賠償?shù)淖罡呦蕖?/p>
2.2.7?甲方自行安裝軟件或進行系統(tǒng)配置如導致系統(tǒng)無法使用,需要乙方進行恢復的,乙方有權(quán)要求甲方支付相應的服務費用。
第三條?合同金額及付款方式(本條內(nèi)容依甲方所租用主機的類型而不同)。
3.1?本合同所涉及的費用包括一次性費用。其涉及的金額一律以人民幣元為單位。
3.2?本合同涉及的一次性費用共計人民幣_________元整(rmb:_________元)。
第四條?合同期限。
4.1?合同有效期為12個月。自甲方付款,并由乙方開通相關(guān)服務之日起生效。由乙方出具書面通知為準。
4.2?在合同到期時,雙方如需要繼續(xù)合作并對本合同無異議,則本合同自動順延。如雙方認為某些條款需要修改,屆時雙方另簽合同。如果在合同期間或期滿之后甲方需要乙方的其他服務,雙方另簽合同。
第五條?合同中止及違約責任。
5.1?甲方違約責任。
5.1.1?如果甲乙雙方無異議并且甲方在本合同結(jié)束期七日前按時付款續(xù)約,則本合同自動延續(xù)一年,如果甲方?jīng)]有按時支付續(xù)約款項,則在甲方前一次付款款項的有效期結(jié)束后,本合同即告終止。乙方屆時將關(guān)閉甲方的使用帳號。如果甲方違約,乙方有權(quán)關(guān)閉甲方的使用帳號,由此造成的損失由甲方負責。
5.1.2?乙方在進行維護時有時需要短時間中斷服務,或因_____er_____上的通路的偶然阻塞造成甲方虛擬主機訪問速度下降,甲方認同這是屬于正常情況,不屬于乙方違約。
5.2?乙方的違約責任。
5.2.1?乙方不得無故破壞或干擾為甲方提供的服務。乙方保證甲方所租用的服務正常運行,供電穩(wěn)定可靠,與_____er_____連接的正常,如確實必須暫時停機或與_____er_____斷開連接,乙方應及時通知甲方。如乙方無故停機或未及時通知甲方,將以所列罰款款項的雙倍對甲方進行賠償。
5.2.2?如果乙方違約,甲方有權(quán)要求乙方在限定時間內(nèi)為甲方的退出或轉(zhuǎn)移服務,其違約造成的損失由乙方負責。
5.2.3?本合同在下述情形下終止,雙方互不負責,但終止方應書面通知另一方:一方當事人主體資格消失,如破產(chǎn)。但進行重組、名稱變更或者與第三方合并等不在此列。一方嚴重違反本合同,另一方根據(jù)本合同的約定解除本合同。因不可抗力而解除本合同或者雙方當事人協(xié)商一致解除本合同的。依法律、法規(guī)規(guī)定的情形而終止。
5.2.4?本合同到期后,如果甲方?jīng)]有按時支付續(xù)約款項,則雙方認同本合同執(zhí)行終止,乙方屆時將關(guān)閉服務。
5.2.5?由于一方不履行協(xié)議約定的義務,或嚴重違反本合同約定的義務,造成本合同無法履行或履行不必要時,視作違約方片面終止本合同,守約方除有權(quán)向違約方索賠外,并有權(quán)終止本合同。
第六條?責任限制。
6.1?乙方在進行服務器配置,維護時需要短時間中斷服務,或者由于_____er_____上通路的阻塞造成甲方服務器訪問速度下降,甲方均認同是正常情況,不屬于乙方違約。鑒于計算機及互聯(lián)網(wǎng)的特殊性,因y2k問題、黑客、_____、電信部門技術(shù)調(diào)整等引起的事件,甲方亦認同不屬于乙方違約。
6.2?在履行本合同時,乙方對因第三方的過錯或者延誤而給甲方或者其他第三方造成的損失不負責任。乙方對通過甲方間接接受乙方服務的第三方的損失不負責任。
第七條?爭議解決。
在合同執(zhí)行期間如果雙方發(fā)生爭議,雙方應友好協(xié)商解決。如果協(xié)商不成,雙方同意提交______________委員會進行_____。
第八條?不可抗力。
8.1?任何一方遇有不能預見,不能避免或不能克服的客觀事件(包括但不限于自然災害如洪水、火災、爆炸、雷電、地震和風暴等以及社會事件如戰(zhàn)爭、_____、政府管制、國家政策的突然變動和_____等。)而全部或部分不能履行本合同或遲延履行本合同,應自不可抗力事件發(fā)生之日起五日內(nèi),將事件情況以書面形式通知另一方,并于事件發(fā)生之日起二十日內(nèi),向另一方提交導致其全部或部分不能履行或遲延履行的證明。
8.2?遭受不可抗力的一方應采取一切必要措施減少損失,并在事件消除后協(xié)商恢復本合同的履行,除非此等履行已不可能或者不必要。
第九條?保密義務。
任何一方對在本合同履行過程中以任何方式獲知的另一方商業(yè)秘密或其他技術(shù)及經(jīng)營信息均負有保密義務,并有義務盡快通知對方,并協(xié)助對方采取適當?shù)难a救措施,不得向任何其他第三方透露或泄露,但中國現(xiàn)行法律,法規(guī)另有規(guī)定或經(jīng)另一方書面同意的除外。
第十條?其他。
本合同一式_________份,甲乙雙方各執(zhí)_________份。
本合同簽訂后,雙方如需修改,經(jīng)雙方協(xié)商后,可以增加補充條款。
甲方(蓋章):_________乙方(蓋章):_________。
法定代表人(簽字):_________法定代表人(簽字):_________。
_________年____月____日_________年____月____日。
簽訂地點:_________簽訂地點:_________。
傳輸層的協(xié)議書簡短篇六
發(fā)包方(以下簡稱甲方):
承包方(以下簡稱乙方):
根據(jù)xxx《合同法》的有關(guān)規(guī)定,結(jié)合本工程具體情況,經(jīng)雙方協(xié)商一致,制定本合同。
第一條工程概況。
第二條工程主要內(nèi)容。
第三條工程期限。
2,如因自然災害或不可抗拒的外界影響不能按期完工,乙方需書面報甲方,并由雙方共同協(xié)商確定新的完工日期。
第四條雙方職責。
甲方權(quán)利和義務。
1、組織工程建設項目的技術(shù)交底,向乙方明確施工任務;。
2、提供必要的施工條件;。
3、負責主材的供應,詳見發(fā)包人供應材料、設備一覽表;。
4、指派甲方代表對建設工程項目進行全面協(xié)調(diào)和監(jiān)督檢查;。
5、在乙方提供全套竣工資料和書面竣工驗收報告后會同有關(guān)部門及時組織驗收;。
6、按合同約定按時向乙方支付工程款。乙方權(quán)利和義務。
2、應編制《工程施工概、預算》,經(jīng)甲方書面認可后作為簽訂本合同暫定工程款的依據(jù);。
4、非經(jīng)甲方同意,乙方不得將承包工程的任何部分分包;。
5、精心組織施工管理人員、施工人員、材料、施工機械進場施工;。
9、線路工程的施工,乙方同時承擔電話機及數(shù)據(jù)終端的安裝任務。在施工過程中和工程竣工后半年內(nèi),乙方應服從甲方的要求進行該項目范圍內(nèi)的電話機及數(shù)據(jù)終端的安裝工作。安裝費用由甲乙雙方商議決定。
10、施工過程中必須嚴格遵守安全操作規(guī)程,采取必要的安全防護措施,消除事故隱患,切實做好安全生產(chǎn)工作。乙方在施工中所發(fā)生的一切人身傷亡事故和施工單位原因造成的設備事故,事故的責任和因此發(fā)生的費用由乙方承擔,并不得因此影響工程進度。
第五條:竣工驗收。
1、工程竣工后,乙方應向甲方提交竣工驗收報告。同時乙方應在一周內(nèi)按《工程竣工文件編制規(guī)定》的要求編制完整的竣工文件。
2、甲方收到乙方提供的全套竣工資料和書面竣工驗收報告后會同有關(guān)部門及時組織驗收,驗收以施工圖紙、圖說、技術(shù)交底紀要、設計更改通知、國家頒發(fā)的施工驗收規(guī)范和質(zhì)量檢驗標準為依據(jù)。
3、驗收合格后,雙方簽署竣工驗收通過的文件,并將工程移交給甲方管理。驗收中如發(fā)現(xiàn)有不符質(zhì)量要求的,由乙方負責修改再進行驗收。竣工日期以驗收通過的日期為準。
第六條質(zhì)量保證。
1、保修期限:工程竣工驗收通過后十二個月;。
2、保修責任:乙方對交付的工程在質(zhì)量保修期內(nèi)承擔質(zhì)量保修責任,由于乙方施工原因造成的質(zhì)量問題,乙方負責無償修復。
第七條工程價款的結(jié)算與支付。
1、本工程采用包工部分包料方式,根據(jù)乙方編制的施工預算,合同價暫定為。:元整。
2、工程竣工后,由乙方按照郵電部(1995)626號文件《通信建設工程概算、預算編制辦法及費用定額》的規(guī)定據(jù)實編制竣工決算報告,經(jīng)甲方指定的具有通信工程審計資質(zhì)的第三方審計。
3、工程最終結(jié)算款的確定:工程最終結(jié)算款由以下兩部分組成:
(1)審計審定價款中乙方采購的材料款和其他費用不作調(diào)整,按審計的價款確定;。
(2)審計審定價款中的建筑安裝工程費部分(扣除材料費以外的部分),乙方同意按規(guī)定調(diào)整相關(guān)費率后下浮%。
4、乙方向甲方開具建安和材料統(tǒng)一發(fā)票后,甲方先行支付工程最終結(jié)算價款的98%(甲方有權(quán)在該款項中扣除乙方應支付的違約金),待十二個月保修期滿后,若無工程質(zhì)量遺留問題,甲方付清剩余工程價款。
第七條合同解除。
1、雙方協(xié)商同意可解除本合同。
2、未經(jīng)甲方同意,乙方將承包工程的任何部分分包給他人的,甲方有權(quán)解除本合同。
3、乙方將其承包的全部工程轉(zhuǎn)包給他人或者肢解以后以分包的包義分別轉(zhuǎn)包給他人的,甲方有權(quán)解除本合同。
4、有下列情形之一的,甲方、乙方可以解除合同:
(1)因不可抗力致使合同無法履行;。
(2)因一方嚴重違約致使合同無法履行。
5、一方依據(jù)本條2、3、4款約定要求解除合同的,應以書面形式向?qū)Ψ桨l(fā)出解除合同的通知,通知到達對方時合同解除,合同解除后乙方應做好已完工程的保護和移交工作,并按甲方要求將自有機械設備和人員撤出施工場地。有過錯的一方應當賠償因合同解除給對方造成的損失。
第八條爭議解決方式。
在履行合同時發(fā)生爭議,雙方協(xié)商解決,或向有管轄權(quán)的人民法院起訴。
第九條其他。
1、本協(xié)議未盡事項,雙方另行簽訂補充協(xié)議,補充協(xié)議與本協(xié)議具有同等效力;。
2、本協(xié)議一式六份,甲乙雙方各執(zhí)三份,協(xié)議經(jīng)雙方簽字、蓋章后生效。
甲方(公章):_________乙方(公章):_________。
法定代表人(簽字):_________法定代表人(簽字):_________。
_________年____月____日_________年____月____日。
傳輸層的協(xié)議書簡短篇七
第一條根據(jù)《中華人民共和國公司法》和其它有關(guān)法律、法規(guī)的規(guī)定由_________和_________共同出資設立_________公司,特制定本章程。
第二條公司名稱為:_________公司(以下簡稱公司)。
第三條公司住所:_________。
第四條公司的組織形式為有限責任公司,具有企業(yè)法人資格,股東以其出資額為限對公司承擔責任,公司以其全部資產(chǎn)對公司的債務承擔責任。
第二章經(jīng)營范圍。
第五條公司經(jīng)營范圍為:設計、制作、發(fā)布、代理國內(nèi)外各類廠廣告;商標、標識、包裝;裝演及其它印刷品等設計制作、影視制作、中介服務等市場調(diào)查及信息咨詢。
第三章注冊資本、股東出資方式與出資額。
第六條公司注冊資本人民幣_________元。
第七條股東名稱。
甲方:_________,法定代表人_________。
乙方:_________,法定代表人_________。
第八條股東以現(xiàn)金方式出資。
其中:甲方出資_________元人民幣占注冊資本的_________%。乙方出資_________元人民幣占注冊資本的_________%。
第四章股東的權(quán)利與義務。
第九條股東享有以下權(quán)利:
1.參加股東會、并按出資比例行使表決權(quán);。
2.選舉和被選舉、執(zhí)行董事會和監(jiān)事會成員的權(quán)利;。
3.按出資比例分取紅利;。
4.公司新增資本時,優(yōu)先認繳出資權(quán);。
5.依法轉(zhuǎn)讓出資權(quán);。
6.對公司其他股東轉(zhuǎn)讓出資的優(yōu)先購買權(quán);。
7.公司終止清算后,依法分得剩余財產(chǎn)權(quán);。
8.查閱股東會會議記錄和公司財務會計狀況權(quán)。
第十條股東之間可以轉(zhuǎn)讓全部或部分出資。
第十一條股東應履行以下義務:
1.按規(guī)定繳納所認繳的出資;。
2.以認繳的出資額對公司承擔責任;。
3.在公司登記后,不得抽回出資;。
4.遵守公司章程;。
5.自覺維護公司合法權(quán)益;。
第五章股東轉(zhuǎn)讓出資的條件。
第十二條股東向股東以外的人轉(zhuǎn)讓其出資時,必須經(jīng)全體股東過半數(shù)同意,不同意轉(zhuǎn)讓的股東應當購買該轉(zhuǎn)讓的出資,如果不購買該轉(zhuǎn)讓的出資,視為同意轉(zhuǎn)讓,經(jīng)股東同意轉(zhuǎn)讓的出資,在同等條件下,其他股東對該出資有優(yōu)先購買權(quán)。
第六章公司機構(gòu)及其產(chǎn)生辦法、職權(quán)、議事規(guī)則。
第十三條公司股東會由全體股東組成,股東會是公司的權(quán)力機構(gòu)。
第十四條公司股東會行使下列職權(quán):
1.決定公司的經(jīng)營方針和投資計劃;。
2.選舉和更換執(zhí)行董事、決定有關(guān)執(zhí)行董事的報酬事項;。
3.選舉和更換由股東代表出任的監(jiān)事,決定有關(guān)監(jiān)事的報酬事項;。
4.審議批準執(zhí)行董事的報告;。
5.審議批準監(jiān)事的報告;。
6.審議批準公司的年度財務預算方案、決算方案;。
7.審議批準公司的利潤分配和彌補虧損方案;。
8.對公司增加或者減少注冊資本作出決議;。
9.對發(fā)行公司債券作出決議;。
10.對股東向股東以外的人轉(zhuǎn)讓出資作出決議;。
11.對公司合并、分立、變更公司形式、解散和清算等事項作出決議;。
12.修改公司章程。
第十五條公司股東會的議事方式和表決程序:
2.修改公司章程的決議必須代表三分之二以上表決權(quán)的股東通過;。
3.股東會會議由股東按照出資比例行使表決權(quán);。
4.股東會的首次會議由出資最多的股東召集和主持,依照《公司法》規(guī)定行使職權(quán);。
6.召開股東會會議,應于會議召開十五日前通知全體股東,股東會應當對所議事項的決定作出會議記錄,出席會議的股東應當在會議記錄上簽名。
第十六條公司不設董事會,只設執(zhí)行董事一名,執(zhí)行董事任期三年,任期屆滿,連選連任。
第十七條執(zhí)行董事為公司的法定代表人。
第十八條執(zhí)行董事對股東會負責,行使下列職權(quán):
1.負責股東會,向股東會報告工作;。
2.執(zhí)行股東會決議;。
3.代表公司簽署有關(guān)文件;。
4.決定公司的經(jīng)營計劃、投資方案;。
5.制訂公司的年度財務預算方案、決算方案;。
6.制訂公司的利潤分配方案和補虧損方案;。
7.制訂公司增加或者減少注冊資本的方案;。
8.擬定公司合并、分立變更、公司解散的方案;。
9.決定公司內(nèi)部管理機構(gòu)的設置;。
11.制定公司的基本管理制度。
第十九條公司設總經(jīng)理,由執(zhí)行董事聘任或解聘。
第二十條如果執(zhí)行董事兼任總經(jīng)理,由股東會聘任或解聘。
第二十一條總經(jīng)理對執(zhí)行董事負責,行使下列職權(quán):
1.主持公司的生產(chǎn)經(jīng)營管理工作、組織實施股東會決議;。
2.組織實施公司年度經(jīng)營計劃和投資方案;。
3.擬訂公司內(nèi)部管理機構(gòu)設置方案;。
4.擬訂公司的基本管理制度;。
5.制定公司的具體規(guī)章;。
6.提請聘任或者解聘公司副總經(jīng)理、財務負責人;。
7.聘任或者解聘除應由執(zhí)行董事聘任或者解聘以外的人員;。
8.經(jīng)執(zhí)行鎮(zhèn)農(nóng)授權(quán)代表公司簽署有關(guān)文件;。
9.公司章程和執(zhí)行董事授予的其他職權(quán)。
第二十二條公司設監(jiān)事一人。由股東會選舉和更換,職工代表任監(jiān)事,由公司職工大會民主選舉產(chǎn)生。
第二十三條監(jiān)事行使下列職權(quán):
1.檢查公司財務;。
2.對執(zhí)行董事、總經(jīng)理執(zhí)行公司職務時違反法律、法規(guī)或者公司章程的行為進行監(jiān)督;。
3.當執(zhí)行董事和總經(jīng)理的行為損害公司的利益時,要求執(zhí)行董事和總經(jīng)理予以糾正;。
4.提議召開臨時股東會;。
5.公司章程規(guī)定的其他職權(quán)。
第七章公司的利潤分配。
第二十四條公司利潤按照股東的出資額占公司注冊資本的比例進行分配。
第二十五條公司每年分配利潤一次。公司的虧損未彌補前不進行利潤分配。
第八章財務會計和勞動用工制度。
第二十六條公司根據(jù)我國有關(guān)法律、法規(guī)建立、健全財務會計制度。公司應在每一會計年度終了時制作財務會計報告,并于下一會計年的2個月內(nèi)送交各股東。
第二十七條公司應依國家有關(guān)法律交納各項稅收。
第二十八條公司嚴格按照國家有關(guān)勞動用工的法律、法規(guī)、執(zhí)行勞動用工制度。
第九章公司的解散事由與清算辦法。
第二十九條公司因不能清償?shù)狡趥鶆?,被依法宣告破產(chǎn)時,由人民法院依照法律的規(guī)定,組織股東、有關(guān)機關(guān)及專業(yè)人員成立清算組,對公司進行財產(chǎn)清算。
第三十條公司有下列情形之一的,可以解散:
1.公司章程規(guī)定的營業(yè)期限滿后或者公司章程規(guī)定的其他解散事由出現(xiàn)時;。
2.股東會決議解散;。
3.因公司合并或者分立需要解散的。
第三十一條公司依照前條第1項、第2項規(guī)定解散的應當在十五日內(nèi)成立清算組,清算組由股東組成,逾期不成立清算組進行清算的,債權(quán)人可以申請人民法院指定有關(guān)人員組成清算組進行清算。
第三十二條清算組在清算期間按《公司法》規(guī)定行使職權(quán)。
第三十三條公司清算結(jié)束后,清算組應當制作清算報告,報股東會確定,并報公司登記機關(guān)備案,做注銷公司登記公告。
第十章其它規(guī)定。
第三十四條公司根據(jù)需要或涉及公司登記事項變更的可修改公司章程,修改后的公司章程不得與法律、法規(guī)相抵觸,修改公司章程應由股東會代表2/3以上表決權(quán)的股東表決通過。修改后的公司章程應送原公司登記機關(guān)備案,涉及變更登記事項的,同時應向公司登記機關(guān)做變更登記。
第三十五條公司章程的解釋權(quán)屬于公司股東會。
第三十六條公司登記事項以公司登記機關(guān)核定的事項為準。
第三十七條本章程經(jīng)各股東方共同訂立,自公司成立之日起生效。
第三十八條本章程一式_________份,并報公司登記機關(guān)備案一份。
股東(蓋章):_________股東(蓋章):_________。
法定代表人(簽字):_________法定代表人(簽字):_________。
_________年____月____日_________年____月____日。
簽訂地點:_________簽訂地點:_________。
傳輸層的協(xié)議書簡短篇八
說明:
1).本文以tcp的發(fā)展歷程解析容易引起混淆,誤會的方方面面。
5).本文給出一個提綱,如果想了解細節(jié),請直接查閱rfc。
6).翻來覆去,終于找到了這篇備忘,本文基于這篇備忘文檔修改。
1.網(wǎng)絡協(xié)議設計。
iso提出了osi分層網(wǎng)絡模型,這種分層模型是理論上的,tcp/ip最終實現(xiàn)了一個分層的協(xié)議模型,每一個層次對應一組網(wǎng)絡協(xié)議完成一組特定的功能,該組網(wǎng)絡協(xié)議被其下的層次復用和解復用。這就是分層模型的本質(zhì),最終所有的邏輯被編碼到線纜或者電磁波。
分層模型是很好理解的,然而對于每一層的協(xié)議設計卻不是那么容易。tcp/ip的漂亮之處在于:協(xié)議越往上層越復雜。我們把網(wǎng)絡定義為互相連接在一起的設備,網(wǎng)絡的本質(zhì)作用還是“端到端”的通信,然而希望互相通信的設備并不一定要“直接”連接在一起,因此必然需要一些中間的設備負責轉(zhuǎn)發(fā)數(shù)據(jù),因此就把連接這些中間設備的線纜上跑的協(xié)議定義為鏈路層協(xié)議,實際上所謂鏈路其實就是始發(fā)與一個設備,通過一根線,終止于另一個設備。我們把一條鏈路稱為“一跳”。因此一個端到端的網(wǎng)絡包含了“很多跳”。
終止于ip協(xié)議,我們已經(jīng)可以完成一個端到端的通信,為何還需要tcp協(xié)議?這是一個問題,理解了這個問題,我們就能理解tcp協(xié)議為何成了現(xiàn)在這個樣子,為何如此“復雜”,為何又如此簡單。
首先我們認識一下為何ip協(xié)議是沙漏的細腰部分。它的下層是繁多的鏈路層協(xié)議,這些鏈路提供了相互截然不同且相差很遠的語義,為了互聯(lián)這些異構(gòu)的網(wǎng)絡,我們需要一個網(wǎng)絡層協(xié)議起碼要提供一些適配的功能,另外它必然不能提供太多的“保證性服務”,因為上層的保證性依賴下層的約束性更強的保證性,你永遠無法在一個100m吞吐量的鏈路之上實現(xiàn)的ip協(xié)議保證1000m的吞吐量...
ip協(xié)議設計為分組轉(zhuǎn)發(fā)協(xié)議,每一跳都要經(jīng)過一個中間節(jié)點,路由的設計是tcp/ip網(wǎng)絡的另一大創(chuàng)舉,這樣,ip協(xié)議就無需方向性,路由信息和協(xié)議本身不再強關(guān)聯(lián),它們僅僅通過ip地址來關(guān)聯(lián),因此,ip協(xié)議更加簡單。路由器作為中間節(jié)點也不能太復雜,這涉及到成本問題,因此路由器只負責選路以及轉(zhuǎn)發(fā)數(shù)據(jù)包。
因此傳輸控制協(xié)議必然需要在端點實現(xiàn)。在我們詳談tcp協(xié)議之前,首先要看一下它不能做什么,由于ip協(xié)議不提供保證,tcp也不能提供依賴于ip下層鏈路的這種保證,比如帶寬,比如時延,這些都是鏈路層決定的,既然ip協(xié)議無法修補,tcp也不能,然而它卻能修正始于ip層的一些“不可保證性質(zhì)”,這些性質(zhì)包括ip層的不可靠,ip層的不按順序,ip層的無方向/無連接。
將該小節(jié)總結(jié)一下,tcp/ip模型從下往上,功能增加,需要實現(xiàn)的設備減少,然而設備的復雜性卻在增加,這樣保證了成本的最小化,至于性能或者因素,靠軟件來調(diào)節(jié)吧,tcp協(xié)議就是這樣的軟件,實際上最開始的時候,tcp并不考慮性能,效率,公平性,正是考慮了這些,tcp協(xié)議才復雜了起來。
協(xié)議。
這是一個純軟件協(xié)議,為何將其設計上兩個端點,參見上一小節(jié),本節(jié)詳述tcp協(xié)議,中間也穿插一些簡短的論述。
協(xié)議。
確切的說,tcp協(xié)議有兩重身份,作為網(wǎng)絡協(xié)議,它彌補了ip協(xié)議盡力而為服務的不足,實現(xiàn)了有連接,可靠傳輸,報文按序到達。作為一個主機軟件,它和udp以及左右的傳輸層協(xié)議隔離了主機服務和網(wǎng)絡,它們可以被看做是一個多路復用/解復用器,將諸多的主機進程數(shù)據(jù)復用/解復用到ip層??梢钥闯?,不管從哪個角度,tcp都作為一個接口存在,作為網(wǎng)絡協(xié)議,它和對端的tcp接口,實現(xiàn)tcp的控制邏輯,作為多路復用/解復用器,它和下層ip協(xié)議接口,實現(xiàn)協(xié)議棧的功能,而這正是分層網(wǎng)絡協(xié)議模型的基本定義(兩類接口,一類和下層接口,另一類和對等層接口)。
我們習慣于將tcp作為協(xié)議棧的最頂端,而不把應用層協(xié)議當成協(xié)議棧的一部分,這部分是因為應用層被tcp/udp解復用了之后,呈現(xiàn)出了一種太復雜的局面,應用層協(xié)議用一種不同截然不同的方式被解釋,應用層協(xié)議習慣于用類似asn.1標準來封裝,這正體現(xiàn)了tcp協(xié)議作為多路復用/解復用器的重要性,由于直接和應用接口,它可以很容易直接被應用控制,實現(xiàn)不同的傳輸控制策略,這也是tcp被設計到離應用不太遠的地方的原因之一。
總之,tcp要點有四,一曰有連接,二曰可靠傳輸,三曰數(shù)據(jù)按照到達,四曰端到端流量控制。注意,tcp被設計時只保證這四點,此時它雖然也有些問題,然而很簡單,然而更大的問題很快呈現(xiàn)出來,使之不得不考慮和ip網(wǎng)絡相關(guān)的東西,比如公平性,效率,因此增加了擁塞控制,這樣tcp就成了現(xiàn)在這個樣子。
3.2.有連接,可靠傳輸,數(shù)據(jù)按序到達的tcp。
ip協(xié)議是沒有方向的,數(shù)據(jù)報傳輸能到達對端全靠路由,因此它是一跳一跳地到達對端的,只要有一跳沒有到達對端的路由,那么數(shù)據(jù)傳輸將失敗,其實路由也是互聯(lián)網(wǎng)的核心之一,實際上ip層提供的核心基本功能有兩點,第一點是地址管理,第二點就是路由選路。tcp利用了ip路由這個簡單的功能,因此tcp不必考慮選路,這又一個它被設計成端到端協(xié)議的原因。
既然ip已經(jīng)能盡力讓單獨的數(shù)據(jù)報到達對端,那么tcp就可以在這種盡力而為的網(wǎng)絡上實現(xiàn)其它的更加嚴格的控制功能。tcp給無連接的ip網(wǎng)絡通信增加了連接性,確認了已經(jīng)發(fā)送出去的數(shù)據(jù)的狀態(tài),并且保證了數(shù)據(jù)的順序。
3.2.1.有連接。
這是tcp的基本,因為后續(xù)的傳輸?shù)目煽啃砸约皵?shù)據(jù)順序性都依賴于一條連接,這是最簡單的實現(xiàn)方式,因此tcp被設計成一種基于流的協(xié)議,既然tcp需要事先建立連接,之后傳輸多少數(shù)據(jù)就無所謂了,只要是同一連接的數(shù)據(jù)能識別出來即可。
疑難雜癥1:3次握手和4次揮手。
tcp使用3次握手建立一條連接,該握手初始化了傳輸可靠性以及數(shù)據(jù)順序性必要的信息,這些信息包括兩個方向的初始序列號,確認號由初始序列號生成,使用3次握手是因為3次握手已經(jīng)準備好了傳輸可靠性以及數(shù)據(jù)順序性所必要的信息,該握手的第3次實際上并不是需要單獨傳輸?shù)?,完全可以和?shù)據(jù)一起傳輸。
tcp使用4次揮手拆除一條連接,為何需要4次呢?因為tcp是一個全雙工協(xié)議,必須單獨拆除每一條信道。注意,4次揮手和3次握手的意義是不同的,很多人都會問為何建立連接是3次握手,而拆除連接是4次揮手。3次握手的目的很簡單,就是分配資源,初始化序列號,這時還不涉及數(shù)據(jù)傳輸,3次就足夠做到這個了,而4次揮手的目的是終止數(shù)據(jù)傳輸,并回收資源,此時兩個端點兩個方向的序列號已經(jīng)沒有了任何關(guān)系,必須等待兩方向都沒有數(shù)據(jù)傳輸時才能拆除虛鏈路,不像初始化時那么簡單,發(fā)現(xiàn)syn標志就初始化一個序列號并確認syn的序列號。因此必須單獨分別在一個方向上終止該方向的數(shù)據(jù)傳輸。
疑難雜癥2:time_wait狀態(tài)。
為何要有這個狀態(tài),原因很簡單,那就是每次建立連接的時候序列號都是隨機產(chǎn)生的,并且這個序列號是32位的,會回繞?,F(xiàn)在我來解釋這和time_wait有什么關(guān)系。
任何的tcp分段都要在盡力而為的ip網(wǎng)絡上傳輸,中間的路由器可能會隨意的緩存任何的ip數(shù)據(jù)報,它并不管這個ip數(shù)據(jù)報上被承載的是什么數(shù)據(jù),然而根據(jù)經(jīng)驗和互聯(lián)網(wǎng)的大小,一個ip數(shù)據(jù)報最多存活msl(這是根據(jù)地球表面積,電磁波在各種介質(zhì)中的傳輸速率以及ip協(xié)議的ttl等綜合推算出來的,如果在火星上,這個msl會大得多...)。
現(xiàn)在我們考慮終止連接時的被動方發(fā)送了一個fin,然后主動方回復了一個ack,然而這個ack可能會丟失,這會造成被動方重發(fā)fin,這個fin可能會在互聯(lián)網(wǎng)上存活msl。
如果沒有time_wait的話,假設連接1已經(jīng)斷開,然而其被動方最后重發(fā)的那個fin(或者fin之前發(fā)送的任何tcp分段)還在網(wǎng)絡上,然而連接2重用了連接1的所有的5元素(源ip,目的ip,tcp,源端口,目的端口),剛剛將建立好連接,連接1遲到的fin到達了,這個fin將以比較低但是確實可能的概率終止掉連接2.
為何說是概率比較低呢?這涉及到一個匹配問題,遲到的fin分段的序列號必須落在連接2的一方的期望序列號范圍之內(nèi)。雖然這種巧合很少發(fā)生,但確實會發(fā)生,畢竟初始序列號是隨機產(chǎn)生了。因此終止連接的主動方必須在接受了被動方且回復了ack之后等待2*msl時間才能進入close狀態(tài),之所以乘以2是因為這是保守的算法,最壞情況下,針對被動方的ack在以最長路線(經(jīng)歷一個msl)經(jīng)過互聯(lián)網(wǎng)馬上到達被動方時丟失。
為了應對這個問題,rfc793對初始序列號的生成有個建議,那就是設定一個基準,在這個基準之上搞隨機,這個基準就是時間,我們知道時間是單調(diào)遞增的。然而這仍然有問題,那就是回繞問題,如果發(fā)生回繞,那么新的序列號將會落到一個很低的值。因此最好的辦法就是避開“重疊”,其含義就是基準之上的隨機要設定一個范圍。
要知道,很多人很不喜歡看到服務器上出現(xiàn)大量的time_wait狀態(tài)的連接,因此他們將time_wait的值設置的很低,這雖然在大多數(shù)情況下可行,然而確實也是一種冒險行為。最好的方式就是,不要重用一個連接。
疑難雜癥3:重用一個連接和重用一個套接字。
這是根本不同的,單獨重用一個套接字一般不會有任何問題,因為tcp是基于連接的。比如在服務器端出現(xiàn)了一個time_wait連接,那么該連接標識了一個五元素,只要客戶端不使用相同的源端口,連接服務器是沒有問題的,因為遲到的fin永遠不會到達這個連接。記住,一個五元素標識了一個連接,而不是一個套接字(當然,對于bsd套接字而言,服務端的accept套接字確實標識了一個連接)。
3.2.2.傳輸可靠性。
基本上傳輸可靠性是靠確認號實現(xiàn)的,也就是說,每發(fā)送一個分段,接下來接收端必然要發(fā)送一個確認,發(fā)送端收到確認后才可以發(fā)送下一個字節(jié)。這個原則最簡單不過了,教科書上的“停止-等待”協(xié)議就是這個原則的字節(jié)版本,只是tcp使用了滑動窗口機制使得每次不一定發(fā)送一個字節(jié),但是這是后話,本節(jié)僅僅談一下確認的超時機制。
怎么知道數(shù)據(jù)到達對端呢?那就是對端發(fā)送一個確認,但是如果一直收不到對端的確認,發(fā)送端等多久呢?如果一直等下去,那么將無法發(fā)現(xiàn)數(shù)據(jù)的丟失,協(xié)議將不可用,如果等待時間過短,可能確認還在路上,因此等待時間是個問題,另外如何去管理這個超時時間也是一個問題。
疑難雜癥4:超時時間的計算。
絕對不能隨意去揣測超時的時間,而應該給出一個精確的算法去計算。毫無疑問,一個tcp分段的回復到達的時間就是一個數(shù)據(jù)報往返的時間,因此標準定義了一個新的名詞rtt,代表一個tcp分段的往返時間。然而我們知道,ip網(wǎng)絡是盡力而為的,并且路由是動態(tài)的,且路由器會毫無先兆的緩存或者丟棄任何的數(shù)據(jù)報,因此這個rtt是需要動態(tài)測量的,也就是說起碼每隔一段時間就要測量一次,如果每次都一樣,萬事大吉,然而世界并非如你所愿,因此我們需要找到的恰恰的一個“平均值”,而不是一個準確值。
這個平均值如果僅僅直接通過計算多次測量值取算術(shù)平均,那是不恰當?shù)?,因為對于?shù)據(jù)傳輸延時,我們必須考慮的路徑延遲的瞬間抖動,否則如果兩次測量值分別為2和98,那么超時值將是50,這個值對于2而言,太大了,結(jié)果造成了數(shù)據(jù)的延遲過大(本該重傳的等待了好久才重傳),然而對于98而言,太小了,結(jié)果造成了過度重傳(路途遙遠,本該很慢,結(jié)果大量重傳已經(jīng)正確確認但是遲到的tcp分段)。
因此,除了考慮每兩次測量值的偏差之外,其變化率也應該考慮在內(nèi),如果變化率過大,則通過以變化率為自變量的函數(shù)為主計算rtt(如果陡然增大,則取值為比較大的正數(shù),如果陡然減小,則取值為比較小的負數(shù),然后和平均值加權(quán)求和),反之如果變化率很小,則取測量平均值。這是不言而喻的,這個算法至今仍然工作的很好。
疑難雜癥5:超時計時器的管理-每連接單一計時器。
很顯然,對每一個tcp分段都生成一個計時器是最直接的方式,每個計時器在rtt時間后到期,如果沒有收到確認,則重傳。然而這只是理論上的合理,對于大多數(shù)操作系統(tǒng)而言,這將帶來巨大的內(nèi)存開銷和調(diào)度開銷,因此采取每一個tcp連接單一計時器的設計則成了一個默認的選擇??墒菃我坏挠嫊r器怎么管理如此多的發(fā)出去的tcp分段呢?又該如何來設計單一的計時器呢。
設計單一計時器有兩個原則:1.每一個報文在長期收不到確認都必須可以超時;2.這個長期收不到中長期不能和測量的rtt相隔太遠。因此rfc2988定義一套很簡單的原則:
a.發(fā)送tcp分段時,如果還沒有重傳定時器開啟,那么開啟它。
b.發(fā)送tcp分段時,如果已經(jīng)有重傳定時器開啟,不再開啟它。
c.收到一個非冗余ack時,如果有數(shù)據(jù)在傳輸中,重新開啟重傳定時器。
d.收到一個非冗余ack時,如果沒有數(shù)據(jù)在傳輸中,則關(guān)閉重傳定時器。
我們看看這4條規(guī)則是如何做到以上兩點的,根據(jù)a和c(在c中,注意到ack是非冗余的),任何tcp分段只要不被確認,超時定時器總會超時的。然而為何需要c呢?只有規(guī)則a存在的話,也可以做到原則1。實際上確實是這樣的,但是為了不會出現(xiàn)過早重傳,才添加了規(guī)則c,如果沒有規(guī)則c,那么萬一在重傳定時器到期前,發(fā)送了一些數(shù)據(jù),這樣在定時器到期后,除了很早發(fā)送的數(shù)據(jù)能收到ack外,其它稍晚些發(fā)送的數(shù)據(jù)的ack都將不會到來,因此這些數(shù)據(jù)都將被重傳。有了規(guī)則c之后,只要有分段ack到來,則重置重傳定時器,這很合理,因此大多數(shù)正常情況下,從數(shù)據(jù)的發(fā)出到ack的到來這段時間以及計算得到的rtt以及重傳定時器超時的時間這三者相差并不大,一個ack到來后重置定時器可以保護后發(fā)的數(shù)據(jù)不被過早重傳。
這里面還有一些細節(jié)需要說明。一個ack到來了,說明后續(xù)的ack很可能會依次到來,也就是說丟失的可能性并不大,另外,即使真的有后發(fā)的tcp分段丟失現(xiàn)象發(fā)生,也會在最多2倍定時器超時時間的范圍內(nèi)被重傳(假設該報文是第一個報文發(fā)出啟動定時器之后馬上發(fā)出的,丟失了,第一個報文的ack到來后又重啟了定時器,又經(jīng)過了一個超時時間才會被重傳)。雖然這里還沒有涉及擁塞控制,但是可見網(wǎng)絡擁塞會引起丟包,丟包會引起重傳,過度重傳反過來加重網(wǎng)絡擁塞,設置規(guī)則c的結(jié)果可以緩解過多的重傳,畢竟將啟動定時器之后發(fā)送的數(shù)據(jù)的重傳超時時間拉長了最多一倍左右。最多一倍左右的超時偏差做到了原則2,即“這個長期收不到中長期不能和測量的rtt相隔太遠”。
還有一點,如果是一個發(fā)送序列的最后一個分段丟失了,后面就不會收到冗余ack,這樣就只能等到超時了,并且超時時間幾乎是肯定會比定時器超時時間更長。如果這個分段是在發(fā)送序列的靠后的時間發(fā)送的且和前面的發(fā)送時間相隔時間較遠,則其超時時間不會很大,反之就會比較大。
疑難雜癥6:何時測量rtt。
目前很多tcp實現(xiàn)了時間戳,這樣就方便多了,發(fā)送端再也不需要保存發(fā)送分段的時間了,只需要將其放入?yún)f(xié)議頭的時間戳字段,然后接收端將其回顯在ack即可,然后發(fā)送端收到ack后,取出時間戳,和當前時間做算術(shù)差,即可完成一次rtt的測量。
3.2.3.數(shù)據(jù)順序性。
基本上傳輸可靠性是靠序列號實現(xiàn)的。
疑難雜癥7:確認號和超時重傳。
確認號是一個很詭異的東西,因為tcp的發(fā)送端對于發(fā)送出去的一個數(shù)據(jù)序列,它只要收到一個確認號就認為確認號前面的數(shù)據(jù)都被收到了,即使前面的某個確認號丟失了,也就是說,發(fā)送端只認最后一個確認號。這是合理的,因為確認號是接收端發(fā)出的,接收端只確認按序到達的最后一個tcp分段。
另外,發(fā)送端重發(fā)了一個tcp報文并且接收到該tcp分段的確認號,并不能說明這個重發(fā)的報文被接收了,也可能是數(shù)據(jù)早就被接收了,只是由于其ack丟失或者其ack延遲到達導致了超時。值得說明的是,接收端會丟棄任何重復的數(shù)據(jù),即使丟棄了重復的數(shù)據(jù),其ack還是會照發(fā)不誤的。
標準的早期tcp實現(xiàn)為,只要一個tcp分段丟失,即使后面的tcp分段都被完整收到,發(fā)送端還是會重傳從丟失分段開始的所有報文,這就會導致一個問題,那就是重傳風暴,一個分段丟失,引起大量的重傳。這種風暴實則不必要的,因為大多數(shù)的tcp實現(xiàn)中,接收端已經(jīng)緩存了亂序的分段,這些被重傳的丟失分段之后的分段到達接收端之后,很大的可能性是被丟棄。關(guān)于這一點在擁塞控制被引入之后還會提及(問題先述為快:本來報文丟失導致超時就說明網(wǎng)絡很可能已然擁塞,重傳風暴只能加重其擁塞程度)。
疑難雜癥8:亂序數(shù)據(jù)緩存以及選擇確認。
tcp是保證數(shù)據(jù)順序的,但是并不意味著它總是會丟棄亂序的tcp分段,具體會不會丟棄是和具體實現(xiàn)相關(guān)的,rfc建議如果內(nèi)存允許,還是要緩存這些亂序到來的分段,然后實現(xiàn)一種機制等到可以拼接成一個按序序列的時候?qū)⒕彺娴姆侄纹唇?,這就類似于ip協(xié)議中的分片一樣,但是由于ip數(shù)據(jù)報是不確認的,因此ip協(xié)議的實現(xiàn)必須緩存收到的任何分片而不能將其丟棄,因為丟棄了一個ip分片,它就再也不會到來了。
現(xiàn)在,tcp實現(xiàn)了一種稱為選擇確認的方式,接收端會顯式告訴發(fā)送端需要重傳哪些分段而不需要重傳哪些分段。這無疑避免了重傳風暴。
疑難雜癥9:tcp序列號的回繞的問題。
tcp的序列號回繞會引起很多的問題,比如序列號為s的分段發(fā)出之后,m秒后,序列號比s小的序列號為j的分段發(fā)出,只不過此時的j比上一個s多了一圈,這就是回繞問題,那么如果這后一個分段到達接收端,這就會引發(fā)徹底亂序-本來j該在s后面,結(jié)果反而到達前面了,這種亂序是tcp協(xié)議檢查不出來的。我們仔細想一下,這種情況確實會發(fā)生,數(shù)據(jù)分段并不是一個字節(jié)一個字節(jié)發(fā)送出去的,如果存在一個速率為1gbps的網(wǎng)絡,tcp發(fā)送端1秒會發(fā)送125mb的數(shù)據(jù),32位的序列號空間能傳輸2的32次方個字節(jié),也就是說32秒左右就會發(fā)生回繞,我們知道這個值遠小于msl值,因此會發(fā)生的。
有個細節(jié)可能會引起誤會,那就是tcp的窗口大小空間是序列號空間的一半,這樣恰好在滿載情況下,數(shù)據(jù)能填滿發(fā)送窗口和接收窗口,序列號空間正好夠用。然而事實上,tcp的初始序列號并不是從0開始的,而是隨機產(chǎn)生的(當然要輔助一些更精妙的算法),因此如果初始序列號比較接近2的32次方,那么很快就會回繞。
當然,如今可以用時間戳選項來輔助作為序列號的一個識別的部分,接收端遇到回繞的情況,需要比較時間戳,我們知道,時間戳是單調(diào)遞增的,雖然也會回繞,然而回繞時間卻要長很多。這只是一種策略,在此不詳談。還有一個很現(xiàn)實的問題,理論上序列號會回繞,但是實際上,有多少tcp的端點主機直接架設在1g的網(wǎng)絡線纜兩端并且接收方和發(fā)送方的窗口還能恰好被同時填滿。另外,就算發(fā)生了回繞,也不是一件特別的事情,回繞在計算機里面太常見了,只需要能識別出來即可解決,對于tcp的序列號而言,在高速網(wǎng)絡(點對點網(wǎng)絡或者以太網(wǎng))的兩端,數(shù)據(jù)發(fā)生亂序的可能性很小,因此當收到一個序列號突然變?yōu)?或者終止序列號小于起始序列號的情況后,很容易辨別出來,只需要和前一個確認的分段比較即可,如果在一個經(jīng)過路由器的網(wǎng)絡兩端,會引發(fā)ip數(shù)據(jù)報的順序重排,對于tcp而言,雖然還會發(fā)生回繞,也會慢得多,且考慮到擁塞窗口(目前還沒有引入)一般不會太大,窗口也很難被填滿到65536。
3.2.4.端到端的流量控制。
疑難雜癥10:流量控制的真實意義。
很多人以為流量控制會很有效的協(xié)調(diào)兩端的流量匹配,確實是這樣,但是如果你考慮到網(wǎng)絡的利用率問題,tcp的流量控制機制就不那么完美了,造成這種局面的原因在于,滑動窗口只是限制了最大發(fā)送的數(shù)據(jù),卻沒有限制最小發(fā)送的數(shù)據(jù),結(jié)果導致一些很小的數(shù)據(jù)被封裝成tcp分段,報文協(xié)議頭所占的比例過于大,造成網(wǎng)絡利用率下降,這就引出了接下來的內(nèi)容,那就是端到端意義的tcp協(xié)議效率。
~~~~~~~~~~~~~~~~~~~~。
承上啟下。
終于到了闡述問題的時候了,以上的tcp協(xié)議實現(xiàn)的非常簡單,這也是tcp的標準實現(xiàn),然而很快我們就會發(fā)現(xiàn)各種各樣的問題。這些問題導致了標準化協(xié)會對tcp協(xié)議進行了大量的修補,這些修補雜糅在一起讓人們有些云里霧里,不知所措。本文檔就旨在分離這些雜亂的情況,實際上,根據(jù)rfc,這些雜亂的情況都是可以找到其單獨的發(fā)展軌跡的。
~~~~~~~~~~~~~~~~~~~~。
4.端到端意義上的tcp協(xié)議效率。
4.1.三個問題以及解決。
問題1描述:接收端處理慢,導致接收窗口被填滿。
這明顯是速率不匹配引發(fā)的問題,然而即使速率不匹配,只要滑動窗口能協(xié)調(diào)好它們的速率就好,要快都快,要慢都慢,事實上滑動窗口在這一點上做的很好。但是如果我們不得不從效率上來考慮問題的話,事實就不那么樂觀了??紤]此時接收窗口已然被填滿,慢速的應用程序慢騰騰的讀取了一個字節(jié),空出一個位置,然后通告給tcp的發(fā)送端,發(fā)送端得知空出一個位置,馬上發(fā)出一個字節(jié),又將接收端填滿,然后接收應用程序又一次慢騰騰...這就是糊涂窗口綜合癥,一個大多數(shù)人都很熟悉的詞。這個問題極大的浪費了網(wǎng)絡帶寬,降低了網(wǎng)絡利用率。好比從大同拉100噸煤到北京需要一輛車,拉1kg煤到北京也需要一輛車(超級夸張的一個例子,請不要相信),但是一輛車開到北京的開銷是一定的...
問題1解決:窗口通告。
對于問題1,很顯然問題出在接收端,我們沒有辦法限制發(fā)送端不發(fā)送小分段,但是卻可以限制接收端通告小窗口,這是合理的,這并不影響應用程序,此時經(jīng)典的延遲/吞吐量反比律將不再適用,因為接收窗口是滿的,其空出一半空間表示還有一半空間有數(shù)據(jù)沒有被應用讀取,和其空出一個字節(jié)的空間的效果是一樣的,因此可以限制接收端當窗口為0時,直接通告給發(fā)送端以阻止其繼續(xù)發(fā)送數(shù)據(jù),只有當其接收窗口再次達到mss的一半大小的時候才通告一個不為0的窗口,此前對于所有的發(fā)送端的窗口probe分段(用于探測接收端窗口大小的probe分段,由tcp標準規(guī)定),全部通告窗口為0,這樣發(fā)送端在收到窗口不為0的通告,那么肯定是一個比較大的窗口,因此發(fā)送端可以一次性發(fā)出一個很大的tcp分段,包含大量數(shù)據(jù),也即拉了好幾十噸的煤到北京,而不是只拉了幾公斤。
即,限制窗口通告時機,解決糊涂窗口綜合癥。
問題2描述:發(fā)送端持續(xù)發(fā)送小包,導致窗口閑置。
這明顯是發(fā)送端引起的問題,此時接收端的窗口開得很大,然而發(fā)送端卻不積累數(shù)據(jù),還是一味的發(fā)送小塊數(shù)據(jù)分段。只要發(fā)送了任和的分段,接收端都要無條件接收并且確認,這完全符合tcp規(guī)范,因此必然要限制發(fā)送端不發(fā)送這樣的小分段。
問題2解決:nagle算法。
nagel算法很簡單,標準的nagle算法為:
if數(shù)據(jù)的大小和窗口的大小都超過了mss。
then發(fā)送數(shù)據(jù)分段。
else。
if還有發(fā)出的tcp分段的確認沒有到來。
then積累數(shù)據(jù)到發(fā)送隊列的末尾的tcp分段。
else。
發(fā)送數(shù)據(jù)分段。
endif。
endif。
可是后來,這個算法變了,變得更加靈活了,其中的:
if還有發(fā)出的tcp分段的確認沒有到來。
變成了。
if還有發(fā)出的不足mss大小的tcp分段的確認沒有到來。
這個算法體現(xiàn)了一種自適應的策略,越是確認的快,越是發(fā)送的快,雖然nagle算法看起來在積累數(shù)據(jù)增加吞吐量的同時也加大的時延,可事實上,如果對于類似交互式的應用,時延并不會增加,因為這類應用回復數(shù)據(jù)也是很快的,比如telnet之類的服務必然需要回顯字符,因此能和對端進行自適應協(xié)調(diào)。
注意,nagle算法是默認開啟的,但是卻可以關(guān)閉。如果在開啟的情況下,那么它就嚴格按照上述的算法來執(zhí)行。
問題3.確認號(ack)本身就是不含數(shù)據(jù)的分段,因此大量的確認號消耗了大量的帶寬。
這是tcp為了確保可靠性傳輸?shù)囊?guī)范,然而大多數(shù)情況下,ack還是可以和數(shù)據(jù)一起捎帶傳輸?shù)?。如果沒有捎帶傳輸,那么就只能單獨回來一個ack,如果這樣的分段太多,網(wǎng)絡的利用率就會下降。從大同用火車拉到北京100噸煤,為了確認煤已收到,北京需要派一輛同樣的火車空載開到大同去復命,因為沒有別的交通工具,只有火車。如果這位復命者剛開著一列火車走,又從大同來了一車煤,這拉煤的哥們兒又要開一列空車去復命了。
問題3的解決:
rfc建議了一種延遲的ack,也就是說,ack在收到數(shù)據(jù)后并不馬上回復,而是延遲一段可以接受的時間,延遲一段時間的目的是看能不能和接收方要發(fā)給發(fā)送方的數(shù)據(jù)一起回去,因為tcp協(xié)議頭中總是包含確認號的,如果能的話,就將ack一起捎帶回去,這樣網(wǎng)絡利用率就提高了。往大同復命的確認者不必開一輛空載火車回大同了,此時北京正好有一批貨物要送往大同,這位復命者搭著這批貨的火車返回大同。
如果等了一段可以接受的時間,還是沒有數(shù)據(jù)要發(fā)往發(fā)送端,此時就需要單獨發(fā)送一個ack了,然而即使如此,這個延遲的ack雖然沒有等到可以被捎帶的數(shù)據(jù)分段,也可能等到了后續(xù)到來的tcp分段,這樣它們就可以取最大者一起返回了,要知道,tcp的確認號是收到的按序報文的最后一個字節(jié)的后一個字節(jié)。最后,rfc建議,延遲的ack最多等待兩個分段的積累確認。
4.2.分析三個問題之間的關(guān)聯(lián)。
三個問題導致的結(jié)果是相同的,但是要知道它們的原因本質(zhì)上是不同的,問題1幾乎總是出現(xiàn)在接收端窗口滿的情況下,而問題2幾乎總是發(fā)生在窗口閑置的情況下,問題3看起來是最無聊的,然而由于tcp的要求,必須要有確認號,而且一個確認號就需要一個tcp分段,這個分段不含數(shù)據(jù),無疑是很小的。
三個問題都導致了網(wǎng)絡利用率的降低。雖然兩個問題導致了同樣的結(jié)果,但是必須認識到它們是不同的問題,很自然的將這些問題的解決方案匯總在一起,形成一個全局的解決方案,這就是如今的操作系統(tǒng)中的解決方案。
4.3.問題的雜糅情況。
疑難雜癥11:糊涂窗口解決方案和nagle算法。
糊涂窗口綜合癥患者希望發(fā)送端積累tcp分段,而nagle算法確實保證了一定的tcp分段在發(fā)送端的積累,另外在延遲ack的延遲的那一會時間,發(fā)送端會利用這段時間積累數(shù)據(jù)。然而這卻是三個不同的問題。nagle算法可以緩解糊涂窗口綜合癥,卻不是治本的良藥。
疑難雜癥12:nagle算法和延遲ack。
延遲ack會延長ack到達發(fā)送端的時間,由于標準nagle算法只允許一個未被確認的tcp分段,那無疑在接收端,這個延遲的ack是毫無希望等待后續(xù)數(shù)據(jù)到來最終進行積累確認的,如果沒有數(shù)據(jù)可以捎帶這個ack,那么這個ack只有在延遲確認定時器超時的時候才會發(fā)出,這樣在等待這個ack的過程中,發(fā)送端又積累了一些數(shù)據(jù),因此延遲ack實際上是在增加延遲的代價下加強了nagle算法。在延遲ack加nagle算法的情況下,接收端只有不斷有數(shù)據(jù)要發(fā)回,才能同時既保證了發(fā)送端的分段積累,又保證了延遲不增加,同時還沒有或者很少有空載的ack。
要知道,延遲ack和nagle是兩個問題的解決方案。
疑難雜癥13:到底何時可以發(fā)送數(shù)據(jù)。
到底何時才能發(fā)送數(shù)據(jù)呢?如果單從nagle算法上看,很簡單,然而事實證明,情況還要更復雜些。如果發(fā)送端已經(jīng)排列了3個tcp分段,分段1,分段2,分段3依次被排入,三個分段都是小分段(不符合nagle算法中立即發(fā)送的標準),此時已經(jīng)有一個分段被發(fā)出了,且其確認還沒有到來,請問此時能發(fā)送分段1和2嗎?如果按照nagle算法,是不能發(fā)送的,但實際上它們是可以發(fā)送的,因為這兩個分段已經(jīng)沒有任何機會再積累新的數(shù)據(jù)了,新的數(shù)據(jù)肯定都積累在分段3上了。問題在于,分段還沒有積累到一定大小時,怎么還可以產(chǎn)生新的分段?這是可能的,但這是另一個問題,在此不談。
linux的tcp實現(xiàn)在這個問題上表現(xiàn)的更加靈活,它是這么判斷能否發(fā)送的(在開啟了nagle的情況下):
數(shù)據(jù)分段沒有超越窗口邊界。
then。
if分段在中間(上述例子中的分段1和2)||。
分段是緊急模式||。
通過上述的nagle算法(改進后的nagle算法)。
then發(fā)送分段。
endif。
endif。
曾經(jīng)我也改過nagle算法,確切的說不是修改nagle算法,而是修改了“到底何時能發(fā)送數(shù)據(jù)”的策略,以往都是發(fā)送端判斷能否發(fā)送數(shù)據(jù)的,可是如果此時有延遲ack在等待被捎帶,而待發(fā)送的數(shù)據(jù)又由于積累不夠或者其它原因不能發(fā)送,因此兩邊都在等,這其實在某些情況下不是很好。我所做的改進中對待何時能發(fā)送數(shù)據(jù)又增加了一種情況,這就是“ack拉”的情況,一旦有延遲ack等待發(fā)送,判斷一下有沒有數(shù)據(jù)也在等待發(fā)送,如果有的話,看看數(shù)據(jù)是否大到了一定程度,在此,我選擇的是mss的一半:
數(shù)據(jù)分段沒有超越窗口邊界。
then。
if分段在中間(上述例子中的分段1和2)||。
分段是緊急模式||。
通過上述的nagle算法(改進后的nagle算法)。
then發(fā)送分段。
endif。
elseif有延遲ack等待傳輸&&。
發(fā)送隊列中有待發(fā)送的tcp分段&&。
發(fā)送隊列的頭分段大小大于mss的一半。
then發(fā)送隊列頭分段且捎帶延遲ack。
endif。
另外,發(fā)送隊列頭分段的大小是可以在統(tǒng)計意義上動態(tài)計算的,也不一定非要是mss大小的一半。我們發(fā)現(xiàn),這種算法對于交互式網(wǎng)路應用是自適應的,你打字越快,特定時間內(nèi)積累的分段就越長,對端回復的越快(可以捎帶ack),本端發(fā)送的也就越快(以echo舉例會更好理解)。
疑難雜癥14:《tcp/ip詳解(卷一)》中nagle算法的例子解讀。
這個問題在網(wǎng)上搜了很多的答案,有的說rfc的建議,有的說別的??墒菍嶋H上這就是一個典型的“競態(tài)問題”:
首先服務器發(fā)了兩個分段:
數(shù)據(jù)段12:ack14。
數(shù)據(jù)段13:ack14,54:56。
然后客戶端發(fā)了兩個分段:
數(shù)據(jù)段14:ack54,14:17。
數(shù)據(jù)段15:ack56,17:18。
可以看到數(shù)據(jù)段14本來應該確認56的,但是確認的卻是54。也就是說,數(shù)據(jù)段已經(jīng)移出隊列將要發(fā)送但還未發(fā)送的時候,數(shù)據(jù)段13才到來,軟中斷處理程序搶占了數(shù)據(jù)段14的發(fā)送進程,要知道此時只是把數(shù)據(jù)段14移出了隊列,還沒有更新任何的狀態(tài)信息,比如“發(fā)出但未被確認的分段數(shù)量”,此時軟中斷處理程序順利接收了分段13,然后更新窗口信息,并且檢查看有沒有數(shù)據(jù)要發(fā)送,由于分段14已經(jīng)移出隊列,下一個接受發(fā)送檢查的就是分段15了,由于狀態(tài)信息還沒有更新,因此分段15順利通過發(fā)送檢測,發(fā)送完成。
可以看linux的源代碼了解相關(guān)信息,tcp_write_xmit這個函數(shù)在兩個地方會被調(diào)用,一個是tcp的發(fā)送進程中,另一個就是軟中斷的接收處理中,兩者在調(diào)用中的競態(tài)就會引起《詳解》中的那種情況。注意,這種不加鎖的發(fā)送方式是合理的,也是最高效的,因此tcp的處理語義會做出判斷,丟棄一切不該接收或者重復接收的分段的。
~~~~~~~~~~~~~~~~~~~~。
承上啟下。
又到了該承上啟下,到此為止,我們敘述的tcp還都是簡單的tcp,就算是簡單的tcp,也存在上述的諸多問題,就更別提繼續(xù)增加tcp的復雜性了。到此為止,我們的tcp都是端到端意義上的,然而實際上tcp要跑在ip網(wǎng)絡之上的,而ip網(wǎng)絡的問題是很多的,是一個很擁堵網(wǎng)絡。不幸的是,tcp的有些關(guān)于確認和可靠性的機制還會加重ip網(wǎng)絡的擁堵。
~~~~~~~~~~~~~~~~~~~~。
網(wǎng)絡之上的tcp。
5.1.端到端的tcp協(xié)議和ip協(xié)議之間的矛盾。
端到端的tcp只能看到兩個節(jié)點,那就是自己和對方,它們是看不到任何中間的路徑的??墒莍p網(wǎng)絡卻是一跳一跳的,它們的矛盾之處在于tcp的端到端流量控制必然會導致網(wǎng)絡擁堵。因為每條tcp連接的一端只知道它對端還有多少空間用于接收數(shù)據(jù),它們并不管到達對端的路徑上是否還有這么大的容量,事實上所有連接的這些空間加在一起將瞬間超過ip網(wǎng)絡的容量,因此tcp也不可能按照滑動窗口流量控制機制很理想的運行。
勢必需要一種擁塞控制機制,反應路徑的擁塞情況。
疑難雜癥15:擁塞控制的本質(zhì)。
由于tcp是端到端協(xié)議,因此兩端之間的控制范疇屬于流量控制,ip網(wǎng)絡的擁塞會導致tcp分段的丟失,由于tcp看不到中間的路由器,因此這種丟失只會發(fā)生中間路由器,當然兩個端點的網(wǎng)卡或者ip層丟掉數(shù)據(jù)分段也是tcp看不到的。因此擁塞控制必然作用于ip鏈路。事實上我們可以得知,只有在以下情況下?lián)砣刂撇艜鹱饔茫?/p>
b.只有一個tcp連接,然而它經(jīng)過了一個路由器時。
其它情況下是不會擁塞的。因為一個tcp總是希望獨享整條網(wǎng)絡通路,而這對于多個連接而言是不可能的,必須保證tcp的公平性,這樣這種擁塞控制機制才合理。本質(zhì)上,擁塞的原因就是大家都想獨享全部帶寬資源,結(jié)果導致?lián)砣?,這也是合理的,畢竟tcp看不到網(wǎng)絡的狀態(tài),同時這也決定了tcp的擁塞控制必須采用試探性的方式,最終到達一個足以引起其“反應”的“刺激點”。
擁塞控制需要完成以下兩個任務:1.公平性;2.擁塞之后退出擁塞狀態(tài)。
疑難雜癥16:影響擁塞的因素。
我們必須認識到擁塞控制是一個整體的機制,它不偏向于任何tcp連接,因此這個機制內(nèi)在的就包含了公平性。那么影響擁塞的因素都有什么呢?具有諷刺意味的是,起初tcp并沒有擁塞控制機制,正是tcp的超時重傳風暴(一個分段丟失造成后續(xù)的已經(jīng)發(fā)送的分段均被重傳,而這些重傳大多數(shù)是不必要的)加重了網(wǎng)絡的擁塞。因此重傳必然不能過頻,必須把重傳定時器的超時時間設置的稍微長一些,而這一點在單一重傳定時器的設計中得到了加強。除此tcp自身的因素之外,其它所有的擁塞都可以靠擁塞控制機制來自動完成。
另外,不要把路由器想成一種線速轉(zhuǎn)發(fā)設備,再好的路由器只要接入網(wǎng)絡,總是會拉低網(wǎng)絡的總帶寬,因此即使只有一個tcp連接,由于tcp的發(fā)送方總是以發(fā)送鏈路的帶寬發(fā)送分段,這些分段在經(jīng)過路由器的時候排隊和處理總是會有時延,因此最終肯定會丟包的。
最后,丟包的延后性也會加重擁塞。假設一個tcp連接經(jīng)過了n個路由器,前n-1個路由器都能順利轉(zhuǎn)發(fā)tcp分段,但是最后一個路由器丟失了一個分段,這就導致了這些丟失的分段浪費了前面路由器的大量帶寬。
5.2.擁塞控制的策略。
在介紹擁塞控制之前,首先介紹一下?lián)砣翱?,它實際上表示的也是“可以發(fā)送多少數(shù)據(jù)”,然而這個和接收端通告的接收窗口意義是不一樣的,后者是流量控制用的窗口,而前者是擁塞控制用的窗口,體現(xiàn)了網(wǎng)絡擁塞程度。
擁塞控制整體上分為兩類,一類是試探性的擁塞探測,另一類則是擁塞避免(注意,不是常規(guī)意義上的擁塞避免)。
5.2.1.試探性的擁塞探測分為兩類,之一是慢啟動,之二是擁塞窗口加性擴大(也就是熟知的擁塞避免,然而這種方式是避免不了擁塞的)。
5.2.2.擁塞避免方式擁塞控制旨在還沒有發(fā)生擁塞的時候就先提醒發(fā)送端,網(wǎng)絡擁塞了,這樣發(fā)送端就要么可以進入快速重傳/快速恢復或者顯式的減小擁塞窗口,這樣就避免網(wǎng)絡擁塞的一沓糊涂之后出現(xiàn)超時,從而進入慢啟動階段。
5.2.3.快速重傳和快速恢復。所謂快速重傳/快速恢復是針對慢啟動的,我們知道慢啟動要從1個mss開始增加擁塞窗口,而快速重傳/快速恢復則是一旦收到3個冗余ack,不必進入慢啟動,而是將擁塞窗口縮小為當前閥值的一半加上3,然后如果繼續(xù)收到冗余ack,則將擁塞窗口加1個mss,直到收到一個新的數(shù)據(jù)ack,將窗口設置成正常的閥值,開始加性增加的階段。
當進入快速重傳時,為何要將擁塞窗口縮小為當前閥值的一半加上3呢?加上3是基于數(shù)據(jù)包守恒來說的,既然已經(jīng)收到了3個冗余ack,說明有三個數(shù)據(jù)分段已經(jīng)到達了接收端,既然三個分段已經(jīng)離開了網(wǎng)絡,那么就是說可以在發(fā)送3個分段了,只要再收到一個冗余ack,這也說明1個分段已經(jīng)離開了網(wǎng)絡,因此就將擁塞窗口加1個mss。直到收到新的ack,說明直到收到第三個冗余ack時期發(fā)送的tcp分段都已經(jīng)到達對端了,此時進入正常階段開始加性增加擁塞窗口。
疑難雜癥17:超時重傳和收到3個冗余ack后重傳。
這兩種重傳的意義是不同的,超時重傳一般是因為網(wǎng)絡出現(xiàn)了嚴重擁塞(沒有一個分段到達,如果有的話,肯定會有ack的,若是正常ack,則重置重傳定時器,若是冗余ack,則可能是個別報文丟失或者被重排序,若連續(xù)3個冗余ack,則很有可能是個別分段丟失),此時需要更加嚴厲的縮小擁塞窗口,因此此時進入慢啟動階段。而收到3個冗余ack后說明確實有中間的分段丟失,然而后面的分段確實到達了接收端,這因為這樣才會發(fā)送冗余ack,這一般是路由器故障或者輕度擁塞或者其它不太嚴重的原因引起的,因此此時擁塞窗口縮小的幅度就不能太大,此時進入快速重傳/快速恢復階段。
疑難雜癥18:為何收到3個冗余ack后才重傳。
這是一種權(quán)衡的結(jié)構(gòu),收到兩個或者一個冗余ack也可以重傳,但是這樣的話可能或造成不必要的重傳,因為兩個數(shù)據(jù)分段發(fā)生亂序的可能性不大,超過三個分段發(fā)生亂序的可能性才大,換句話說,如果僅僅收到一個亂序的分段,那很可能被中間路由器重排了,那么另一個分段很可能馬上就到,然而如果連續(xù)收到了3個分段都沒能彌補那個缺漏,那很可能是它丟失了,需要重傳。因此3個冗余ack是一種權(quán)衡,在減少不必要重傳和確實能檢測出單個分段丟失之間所作的權(quán)衡。
注意,冗余ack是不能捎帶的。
疑難雜癥19:乘性減和加性增的深層含義。
為什么是乘性減而加性增呢?擁塞窗口的增加受惠的只是自己,而擁塞窗口減少受益的大家,可是自己卻受到了傷害。哪一點更重要呢?我們知道tcp的擁塞控制中內(nèi)置了公平性,恰恰就是這種乘性減實現(xiàn)了公平性。擁塞窗口的1個mss的改變影響一個tcp發(fā)送者,為了使得自己擁塞窗口的減少影響更多的tcp發(fā)送者-讓更多的發(fā)送者受益,那么采取了乘性減的策略。
當然,bic算法提高了加性增的效率,不再一個一個mss的加,而是一次加比較多的mss,采取二分查找的方式逐步找到不丟包的點,然后加性增。
疑難雜癥20:tcp連接的傳輸穩(wěn)定狀態(tài)是什么。
首先,先說一下發(fā)送端的發(fā)送窗口怎么確定,它取的是擁塞窗口和接收端通告窗口的最小值。然后,我們提出三種發(fā)送窗口的穩(wěn)定狀態(tài):
互聯(lián)網(wǎng)絡上接收端擁有大窗口的經(jīng)典鋸齒狀。
互聯(lián)網(wǎng)絡上接收端擁有小窗口的直線狀態(tài)。
c.直連網(wǎng)絡端點間的滿載狀態(tài)下的直線狀態(tài)。
其中a是大多數(shù)的狀態(tài),因為一般而言,tcp連接都是建立在互聯(lián)網(wǎng)上的,而且是大量的,比如web瀏覽,電子郵件,網(wǎng)絡游戲,ftp下載等等。tcp發(fā)送端用慢啟動或者擁塞避免方式不斷增加其擁塞窗口,直到丟包的發(fā)生,然后進入慢啟動或者擁塞避免階段(要看是由于超時丟包還是由于冗余ack丟包),此時發(fā)送窗口將下降到1或者下降一半,這種情況下,一般接收端的接收窗口是比較大的,畢竟ip網(wǎng)絡并不是什么很快速的網(wǎng)絡,一般的機器處理速度都很快。
但是如果接收端特別破,處理速度很慢,就會導致其通告一個很小的窗口,這樣的話,即使擁塞窗口再大,發(fā)送端也還是以通告的接收窗口為發(fā)送窗口,這樣就不會發(fā)生擁塞。最后,如果唯一的tcp連接運行在一個直連的兩臺主機上,那么它將獨享網(wǎng)絡帶寬,這樣該tcp的數(shù)據(jù)流在最好的情況下將填滿網(wǎng)絡管道(我們把網(wǎng)絡管道定義為帶寬和延時的乘積),其實在這種情況下是不存在擁塞的,就像你一個人獨自徘徊在飄雨黃昏的街頭一樣...
5.2.4.主動的擁塞避免。
前面我們描述的擁塞控制方式都是試探性的檢測,然后擁塞窗口被動的進行乘性減,這樣在接收端窗口很大的情況下(一般都是這樣,網(wǎng)絡擁堵,分段就不會輕易到達接收端,導致接收端的窗口大量空置)就可能出現(xiàn)鋸齒形狀的“時間-窗口”圖,類似在一個擁堵的北京x環(huán)上開車,發(fā)送機發(fā)動,車開動,停止,等待,發(fā)動機發(fā)動,車開動...聽聲音也能聽出來。
雖然tcp看不到下面的ip網(wǎng)絡,然而它還是可以通過檢測rtt的變化以及擁塞窗口的變化推算出ip網(wǎng)絡的擁堵情況的。就比方說北京東四環(huán)一家快遞公司要持續(xù)送快遞到西四環(huán),當發(fā)件人發(fā)現(xiàn)貨到時間越來越慢的時候,他會意識到“下班高峰期快到了”...
可以通過持續(xù)觀測rtt的方式來主動調(diào)整擁塞窗口的大小而不是一味的加性增。然而還有更猛的算法,那就是計算兩個差值的乘積:
(當前擁塞窗口-上一次擁塞窗口)x(當前的rtt-上一次的rtt)。
如果結(jié)果是正數(shù),則擁塞窗口減少1/8,若結(jié)果是負數(shù)或者0,則窗口增加一個mss。注意,這回不再是乘性減了,可以看出,減的幅度比乘性減幅度小,這是因為這種擁塞控制是主動的,而不是之前的那種被動的試探方式。在試探方式中,乘性減以一種懲罰的方式實現(xiàn)了公平性,而在這里的主動方式中,當意識到要擁塞的時候,tcp發(fā)送者主動的減少了擁塞窗口,為了對這種自首行為進行鼓勵,采用了小幅減少擁塞窗口的方式。需要注意的是,在擁塞窗口減小的過程中,乘積的前一個差值是負數(shù),如果后一個差值也是負數(shù),那么結(jié)果就是繼續(xù)縮減窗口,直到擁塞緩解或者窗口減少到了一定程度,使得后一個差值成了正數(shù)或者0,這種情況下,其實后一個差值只能變?yōu)?。
疑難雜癥21:路由器和tcp的互動。
雖然有了5.2.4節(jié)介紹的主動的擁塞檢測,那么路由器能不能做點什么幫助檢測擁塞呢?這種對路由器的擴展是必要的,要知道,每天有無數(shù)的tcp要通過路由器,雖然路由器不管tcp協(xié)議的任何事(當然排除連接跟蹤之類的,這里所說的是標準的ip路由器),但是它卻能以一種很簡單的方式告訴tcp的兩端ip網(wǎng)絡發(fā)生了擁堵,這種方式就是當路由器檢測到自己發(fā)生輕微擁堵的時候隨機的丟包,隨機丟包而不是連續(xù)丟包對于tcp而言是有重大意義的,隨機丟包會使tcp發(fā)現(xiàn)丟棄了個別的分段而后續(xù)的分段仍然會到達接收端,這樣tcp發(fā)送端就會接收到3個冗余ack,然后進入快速重傳/快速恢復而不是慢啟動。
這就是路由器能幫tcp做的事。
6.其它。
疑難雜癥22:如何學習tcp。
很多人發(fā)帖問tcp相關(guān)的內(nèi)容,接下來稀里嘩啦的就是讓看《tcp/ip詳解》和《unix網(wǎng)絡編程》里面的特定章節(jié),我覺得這種回答很不負責任。因為我并不認為這兩本書有多大的幫助,寫得確實很不錯,然而可以看出richardstevens是一個實用主義者,他喜歡用實例來解釋一切,《詳解》通篇都是用tcpdump的輸出來講述的,這種方式只是適合于已經(jīng)對tcp很理解的人,然而大多數(shù)的人是看不明白的。
如果想從設計的角度來說,這兩本書都很爛。我覺得應該先看點入門的,比如wiki之類的,然后看rfc文檔,793,896,1122等),這樣你就明白tcp為何這么設計了,而這些你永遠都不能在richardstevens的書中得到。最后,如果你想,那么就看一點richardstevens的書,最重要的還是寫點代碼或者敲點命令,然后抓包自己去分析。
疑難雜癥23:linux,windows和網(wǎng)絡編程。
6.1.總結(jié)。
tcp協(xié)議是一個端到端的協(xié)議,雖然話說它是一個帶流量控制,擁塞控制的協(xié)議,然而正是因為這些所謂的控制才導致了tcp變得復雜。同時這些特性是互相雜糅的,流量控制帶來了很多問題,解決這些問題的方案最終又帶來了新的問題,這些問題在解決的時候都只考慮了端到端的意義,但實際上tcp需要盡力而為的ip提供的網(wǎng)絡,因此擁塞成了最終的結(jié)癥,擁塞控制算法的改進也成了一個單獨的領(lǐng)域。
在學習tcp的過程中,切忌一鍋粥一盤棋的方式,一定要分清楚每一個算法到底是解決什么問題的,每一個問題和其他問題到底有什么關(guān)聯(lián),這些問題的解決方案之間有什么關(guān)聯(lián),另外tcp的發(fā)展歷史也最好了解一下,這些都搞明白了,tcp協(xié)議就徹底被你掌控了。接下來你就可以學習socketapi了,然后高效的tcp程序出自你手!
文檔為doc格式。
您可能關(guān)注的文檔
- 煤炭企業(yè)節(jié)能評估報告范文范本(精選9篇)
- 女婿給丈母娘道歉范文簡短 寫給丈母娘的道歉信(二篇)
- 最新建材店轉(zhuǎn)讓協(xié)議書范本(匯總17篇)
- 同意進入申請書(模板12篇)
- 申請口罩申請書格式鎮(zhèn)江如何寫(精選20篇)
- 最新學生補差申請書通用(優(yōu)秀18篇)
- 日記的題目的格式及范文如何寫 日記題目的格式怎么寫(8篇)
- 最新法院申請恢復執(zhí)行申請書(匯總11篇)
- 2023年設備借用申請報告范文通用(精選18篇)
- 安全生產(chǎn)分析會范文5(精選8篇)
- 探索平面設計師工作總結(jié)的重要性(匯總14篇)
- 平面設計師工作總結(jié)體會與收獲大全(20篇)
- 平面設計師工作總結(jié)的實用指南(熱門18篇)
- 免費個人簡歷電子版模板(優(yōu)秀12篇)
- 個人簡歷電子版免費模板推薦(通用20篇)
- 免費個人簡歷電子版制作教程(模板17篇)
- 學校貧困補助申請書(通用23篇)
- 學校貧困補助申請書的重要性范文(19篇)
- 學校貧困補助申請書的核心要點(專業(yè)16篇)
- 學校貧困補助申請書的申請流程(熱門18篇)
- 法制教育講座心得體會大全(17篇)
- 教育工作者的超市工作總結(jié)與計劃(模板18篇)
- 教學秘書的工作總結(jié)案例(專業(yè)13篇)
- 教師的超市工作總結(jié)與計劃(精選18篇)
- 單位趣味運動會總結(jié)(模板21篇)
- 禮品店創(chuàng)業(yè)計劃書的重要性(實用16篇)
- 消防隊月度工作總結(jié)報告(熱門18篇)
- 工藝技術(shù)員工作總結(jié)(專業(yè)18篇)
- 大學學生會秘書處工作總結(jié)(模板22篇)
- 醫(yī)院科秘書工作總結(jié)(專業(yè)14篇)