*****
**TCP/IP協議擴展**
[TOC=6]
# 1. TCP/UDP/IP的分層

**說明:**
(1)TCP和UDP是運輸層協議,二者都使用IP作為網絡層協議。雖然TCP使用不可靠的IP服務,但它卻提供一種可靠的運輸層服務。UDP為應用程序發送和接收數據報。一個數據報是指從發送方傳輸到接收方的一個信息單元。UDP是不可靠的,它不能保證數據報能安全無誤地到達最終目的。
(2)IP是網絡層上的主要協議,同時被TCP和UDP使用。TCP和UDP的每組數據都通過端系統和每個中間路由器中的IP層在互聯網中進行傳輸。
(3)CMP是IP協議的附屬協議,IP層用它來與其他主機或路由器交換錯誤報文和其他重要信息。IGMP是Internet組管理協議,它用來把一個UDP數據報多播到多個主機。
(4)ARP(地址解析協議)和RARP(逆地址解析協議)是某些網絡接口(如以太網和令牌環網)使用的特殊協議,用來轉換IP層和網絡接口層使用的地址。
# 2. 三次握手四次揮手
## 2.1 三次握手

**舉個打電話的例子**:
A : 你好我是A,你聽得到我在說話嗎
B : 聽到了,我是B,你聽到我在說話嗎
A : 嗯,聽到了
建立連接,開始聊天!
## 2.2 四次揮手

1、當主機A確認發送完數據且知道B已經接受完了,想要關閉發送數據口(當然確認信號還是可以發),就會發FIN給主機B。
2、主機B收到A發送的FIN,表示收到了,就會發送ACK回復。
3、但這是B可能還在發送數據,沒有想要關閉數據口的意思,所以FIN與ACK不是同時發送的,而是等到B數據發送完了,才會發送FIN給主機A。
4、A收到B發來的FIN,知道B的數據也發送完了,回復ACK, A等待2MSL(MSL是Maximum Segment Lifetime英文的縮寫,中文可以譯為“報文最大生存時間”)以后,沒有收到B傳來的任何消息,知道B已經收到自己的ACK了,A就關閉鏈接,B也關閉鏈接了。
## 3.3 三次握手四次揮手經典例子
**三次握手:**
A:“喂,你聽得到嗎?”A->SYN\_SEND
B:“我聽得到呀,你聽得到我嗎?”應答與請求同時發出 B->SYN\_RCVD | A->ESTABLISHED
A:“我能聽到你,今天balabala……”B->ESTABLISHED
**四次揮手:**
A:“喂,我不說了。”A->FIN\_WAIT1
B:“我知道了。等下,上一句還沒說完。Balabala…..”B->CLOSE\_WAIT | A->FIN\_WAIT2
B:”好了,說完了,我也不說了。”B->LAST\_ACK
A:”我知道了。”A->TIME\_WAIT | B->CLOSED A等待2MSL,保證B收到了消息,否則重說一次”我知道了”,A->CLOSED
- 咨詢項目實戰
- 第一單元 HTTP協議
- 1.1 OSI七層模型
- 1.2 HTTP協議(重點)
- 1.3 HTTPS協議(了解)
- 1.4 TCP/IP協議擴展
- 1.5 WebService簡介及實戰(無接口)
- 1.6 課后練習
- 第二單元 HTTPURLConnection
- 2.1 ANR
- 2.2 網絡判斷
- 2.3 HTTPURLConnection
- 2.4 課后練習
- 第三單元 AsyncTask
- 3.1 AsyncTask概述
- 3.2 AsyncTask基本使用
- 3.3 課后練習
- 第四單元 圖片異步加載
- 4.1 圖片異步加載概述
- 4.2 LruCache
- 4.3 DiskLRUCache
- 4.4 圖片三級緩存概述
- 4.5 封裝圖片加載緩存框架
- 第五單元 ListView多條目
- 5.1 ListView多條目概述
- 5.2 ListView多條目的使用
- 第六單元 ListView實現下拉刷新上拉加載
- 6.1 下拉刷新和上拉加載更多
- 6.2 XListView概述
- 6.3 XListView的使用
- 第七單元 封裝網絡框
- 7.1 封裝網絡框架概述
- 7.2 網絡框架的封裝
- 第八單元 項目介紹
- 8.1 公司項目團隊架構簡介
- 8.2 項目文檔及項目流程介紹
- 8.3 項目管理
- 8.4 項目開發
- 第九單元 項目框架搭建
- 9.1 基類封裝概述
- 9.2 Application中初始化配置
- 9.3 項目中的工具類
- 9.4 封裝網絡請求框架
- 9.5 封裝圖片異步緩存框架
- 第十單元 搭建UI框架1
- 10.1 側滑菜單概述
- 10.2 主界面框架搭建
- 第十一單元 搭建UI框架2
- 11.1 TabLayout的概述
- 11.2 TabLayout的使用
- 第十二單元 圖片上傳
- 12.1 圖片上傳概述
- 12.2 圖片上傳的實現
- 第十三單元 PullToRefresh
- 13.1 PullToRefresh概述
- 13.2 PullToRefresh的使用
- 13.3 緩存業務實現思路
- 第十四單元 事件分發及滑動沖突
- 14.1 事件分發概述
- 14.2 事件分發流程
- 14.3 事件分發的使用
- 第十五單元 傳感器的基本使用
- 15.1 傳感器概述
- 15.2 傳感器的使用
- 第十六單元 HTML與CSS復習
- 16.1 HTML
- 16.2 CSS
- 第十七單元 js復習
- 17.1 js基礎語法
- 17.2 js數組和內置對象
- 17.3 js常用事件
- 17.4 js對象模型
- 17.5 js 正則表達式
- 第十八單元 WebView
- 18.1 WebView 概述
- 18.2 WebView的使用
- 18.3 WebView與js交互
- 第十九單元 項目案例
- 項目概述
- 第二十單元 項目答辯
- 周考
- 第一周周考
- 第二周周考
- 第三種周考
- 月考
- 接口文檔