TCP/IP坯屿、IP油湖、TCP、UDP 協(xié)議--理論篇

協(xié)議(protocol):計(jì)算機(jī)之間進(jìn)行通信的格式約定领跛、標(biāo)準(zhǔn)乏德。

TCP/IP 協(xié)議

Transmission Control Protocol/Internet Protocol
傳輸控制協(xié)議/網(wǎng)絡(luò)互聯(lián)協(xié)議(又名:網(wǎng)絡(luò)通訊協(xié)議)

TCP/IP 定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在設(shè)備之間傳輸?shù)臉?biāo)準(zhǔn)吠昭。是Internet最基本的協(xié)議喊括、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成矢棚。

四層網(wǎng)絡(luò)架構(gòu)協(xié)議體系:每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求郑什。

層級(jí) 名稱 說明
1 應(yīng)用層 HTTP、FTP蒲肋、Telnet蘑拯、SMTP、SNMP
2 傳輸層 TCP兜粘、UDP
3 網(wǎng)絡(luò)層 IP强胰、ICMP、IGMP
4 鏈路層 定義物理設(shè)備標(biāo)準(zhǔn)妹沙,如網(wǎng)線的接口類型、光纖的接口類型熟吏、各種傳輸介質(zhì)的傳輸速率等距糖。它的主要作用是傳輸比特流玄窝。如何讓格式化數(shù)據(jù)以進(jìn)行傳輸,以及如何讓控制對(duì)物理介質(zhì)的訪問

1. 應(yīng)用層
負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)悍引。幾乎各種不同的TCP/IP實(shí)現(xiàn)都會(huì)提供下面這些通用的應(yīng)用程序:

  1. Telnet 遠(yuǎn)程登錄
  2. FTP 文件傳輸協(xié)議
  3. SMTP 簡單郵件傳送協(xié)議恩脂。
  4. SNMP 簡單網(wǎng)絡(luò)治理協(xié)議。

2. 傳輸層
主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信趣斤。在TCP/IP協(xié)議簇中俩块,有兩個(gè)互不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。
TCP協(xié)議的報(bào)文中包含端口信息(包裹IP報(bào)文)浓领。

報(bào)文(message):是網(wǎng)絡(luò)中交換與傳輸?shù)臄?shù)據(jù)單元玉凯,即站點(diǎn)一次性要發(fā)送的數(shù)據(jù)塊。報(bào)文包含了將要發(fā)送的完整的數(shù)據(jù)信息联贩,其長短很不一致漫仆,長度不限且可變。

3. 網(wǎng)絡(luò)層
也稱作互聯(lián)網(wǎng)層泪幌,處理分組在網(wǎng)絡(luò)中的活動(dòng)盲厌,例如分組的選路。在TCP/IP協(xié)議簇中祸泪,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)吗浩,ICMP協(xié)議(internet互聯(lián)網(wǎng)控制報(bào)文協(xié)議),以及IGMP協(xié)議(internet組治理協(xié)議)没隘。

4. 鏈路層
也稱數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層懂扼,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)升略。

IP協(xié)議

Internet Protocol 網(wǎng)絡(luò)互聯(lián)協(xié)議

是為計(jì)算機(jī)網(wǎng)絡(luò)相互連接進(jìn)行通信而設(shè)計(jì)的協(xié)議微王。在因特網(wǎng)中,能使連接到網(wǎng)上的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則品嚣,規(guī)定了計(jì)算機(jī)在因特網(wǎng)上進(jìn)行通信時(shí)應(yīng)當(dāng)遵守的規(guī)則炕倘。任何廠家生產(chǎn)的計(jì)算機(jī)系統(tǒng),只要遵守IP協(xié)議就可以與因特網(wǎng)互連互通翰撑。IP地址具有唯一性罩旋,根據(jù)用戶性質(zhì)的不同,可以分為5類眶诈。

TCP協(xié)議

Transmission Control Protocol 傳輸控制協(xié)議

是面向連接的通信協(xié)議涨醋,通過三次握手建立連接,通訊完成需四次斷開連接逝撬,只能用于端到端的通訊浴骂。
TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認(rèn)”技術(shù)來實(shí)現(xiàn)傳輸?shù)目煽啃浴?/p>

3次握手過程
條件:主機(jī)A宪潮、主機(jī)B

  1. A發(fā)送一個(gè)含有同步序列號(hào)的標(biāo)志位的數(shù)據(jù)段向B溯警,并請(qǐng)求建立連接趣苏,該數(shù)據(jù)段中,A告訴B兩件事:
  2. 我想要和你通信梯轻。
  3. 你可以用哪個(gè)序列號(hào)作為起始數(shù)據(jù)段來回應(yīng)我食磕。
  4. B收到A的請(qǐng)求后,用一個(gè)帶有確認(rèn)應(yīng)答(ACK)和同步序列號(hào)(SYN)標(biāo)志位的數(shù)據(jù)段響應(yīng)A喳挑,并告訴A兩件事:
  5. 我已收到你的請(qǐng)求彬伦,你可以傳輸數(shù)據(jù)了。
  6. 你要用哪個(gè)序列號(hào)作為起始數(shù)據(jù)段來回應(yīng)我伊诵。
  7. A收到數(shù)據(jù)段后单绑,再發(fā)送一個(gè)確認(rèn)應(yīng)答,確認(rèn)已收到B的數(shù)據(jù)段:“我已收到回復(fù)日戈,我現(xiàn)在要開始傳輸實(shí)際數(shù)據(jù)”询张。

如此完成3次握手,主機(jī)A和主機(jī)B 便可以傳輸數(shù)據(jù).

特點(diǎn):沒有應(yīng)用層的數(shù)據(jù)SYN這個(gè)標(biāo)志位只有在TCP建產(chǎn)連接時(shí)才會(huì)被置1握手完成后SYN標(biāo)志位被置0帖族。

4次斷開

  1. 當(dāng)A完成數(shù)據(jù)傳輸后史辙,將控制位FIN置1,提出停止TCP連接的請(qǐng)求诗茎。
  2. B收到FIN后對(duì)其作出響應(yīng)弯屈,確認(rèn)這一方向上的TCP連接將關(guān)閉蜗帜,將ACK置1。
  3. B再提出反方向的關(guān)閉請(qǐng)求资厉,將FIN置1厅缺。
  4. A對(duì)B的請(qǐng)求進(jìn)行確認(rèn),將ACK置1宴偿,雙方向的關(guān)閉結(jié)束湘捎。

通過三次握手和四次斷開可以看出,TCP使用面向連接的通信方式窄刘,提高了數(shù)據(jù)通信的可靠性窥妇,使發(fā)送數(shù)據(jù)端和接收端在數(shù)據(jù)正式傳輸前就有了交互,為數(shù)據(jù)正式傳輸打下了可靠的基礎(chǔ)娩践。

ACK TCP:報(bào)頭的控制位之一活翩,對(duì)數(shù)據(jù)進(jìn)行確認(rèn)。確認(rèn)由目的端發(fā)出翻伺,用它來告訴發(fā)送端這個(gè)序列號(hào)之前的數(shù)據(jù)段都收到了材泄。比如:確認(rèn)號(hào)為X,則表示前X-1個(gè)數(shù)據(jù)段都收到了吨岭,只有當(dāng)ACK=1時(shí)拉宗,確認(rèn)號(hào)才有效,當(dāng)ACK=0時(shí),確認(rèn)號(hào)無效旦事,這時(shí)會(huì)要求重傳數(shù)據(jù)空入,保證數(shù)據(jù)的完整性。

SYN:同步序列號(hào)族檬,TCP建立連接時(shí)將這個(gè)位置1。
FIN :發(fā)送端完成發(fā)送任務(wù)位化戳,當(dāng)TCP完成數(shù)據(jù)傳輸需要斷開時(shí)单料,提出斷開連接的一方將這位置1。

TCP包頭結(jié)構(gòu):最小長度点楼,為20字節(jié)

名稱 長度 名稱 長度
源端口 16位 目標(biāo)端口 16位
位序列號(hào) 32位 位回應(yīng)序號(hào) 32位
TCP頭長度 4位 reserved 6位
控制代碼 6位 窗口大小 16位
偏移量 16位 校驗(yàn)和 16位
選項(xiàng) 32位(可選)

UDP協(xié)議

User Data Protocol 用戶數(shù)據(jù)報(bào)協(xié)議

  1. 是一個(gè)非連接的協(xié)議扫尖,傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時(shí)就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù)掠廓,并盡可能快地把它扔到網(wǎng)絡(luò)上换怖。在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度蟀瞧、計(jì)算機(jī)的能力和傳輸帶寬的限制沉颂;在接收端,UDP把每個(gè)消息段放在隊(duì)列中悦污,應(yīng)用程序每次從隊(duì)列中讀一個(gè)消息段铸屉。
  2. 由于傳輸數(shù)據(jù)不建立連接,因此也就不需要維護(hù)連接狀態(tài)切端,包括收發(fā)狀態(tài)等彻坛,因此一臺(tái)服務(wù)機(jī)可同時(shí)向多個(gè)客戶機(jī)傳輸相同的消息。
  3. 信息包的標(biāo)題很短踏枣,只有8個(gè)字節(jié)昌屉,相對(duì)于TCP的20個(gè)字節(jié)信息包的額外開銷很小。
  4. 吞吐量不受擁擠控制算法的調(diào)節(jié)茵瀑,只受應(yīng)用軟件生成數(shù)據(jù)的速率间驮、傳輸帶寬、源端和終端主機(jī)性能的限制瘾婿。
  5. 使用盡最大努力交付蜻牢,即不保證可靠交付,因此主機(jī)不需要維持復(fù)雜的鏈接狀態(tài)表(這里面有許多參數(shù))偏陪。
  6. 面向報(bào)文的抢呆。發(fā)送方的UDP對(duì)應(yīng)用程序交下來的報(bào)文,在添加首部后就向下交付給IP層笛谦。既不拆分抱虐,也不合并,而是保留這些報(bào)文的邊界饥脑,因此恳邀,應(yīng)用程序需要選擇合適的報(bào)文大小懦冰。使用“ping”命令來測(cè)試兩臺(tái)主機(jī)之間TCP/IP通信是否正常,其實(shí)“ping”命令的原理就是向?qū)Ψ街鳈C(jī)發(fā)送UDP數(shù)據(jù)包谣沸,然后對(duì)方主機(jī)確認(rèn)收到數(shù)據(jù)包刷钢,如果數(shù)據(jù)包是否到達(dá)的消息及時(shí)反饋回來,那么網(wǎng)絡(luò)就是通的乳附。

UDP包頭結(jié)構(gòu)

名稱 長度 名稱 長度
源端口 16位 目標(biāo)端口 16位
長度 16位 校驗(yàn)和 16位

TCP内地、UDP的區(qū)別

  1. 基于連接與無連接;
  2. 對(duì)系統(tǒng)資源的要求(TCP較多赋除,UDP少)阱缓;
  3. UDP程序結(jié)構(gòu)較簡單;
  4. 流模式與數(shù)據(jù)報(bào)模式 举农;
  5. TCP保證數(shù)據(jù)正確性荆针,UDP可能丟包,TCP保證數(shù)據(jù)順序颁糟,UDP不保證航背。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滚停,隨后出現(xiàn)的幾起案子沃粗,更是在濱河造成了極大的恐慌,老刑警劉巖键畴,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件最盅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡起惕,警方通過查閱死者的電腦和手機(jī)涡贱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惹想,“玉大人问词,你說我怎么就攤上這事∴至唬” “怎么了激挪?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锋叨。 經(jīng)常有香客問我垄分,道長,這世上最難降的妖魔是什么娃磺? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任薄湿,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘豺瘤。我一直安慰自己吆倦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布坐求。 她就那樣靜靜地躺著蚕泽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪桥嗤。 梳的紋絲不亂的頭發(fā)上赛糟,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音砸逊,去河邊找鬼。 笑死掌逛,一個(gè)胖子當(dāng)著我的面吹牛师逸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豆混,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篓像,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了皿伺?” 一聲冷哼從身側(cè)響起员辩,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸵鸥,沒想到半個(gè)月后奠滑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妒穴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年宋税,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讼油。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杰赛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矮台,到底是詐尸還是另有隱情乏屯,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布瘦赫,位于F島的核電站辰晕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏耸彪。R本人自食惡果不足惜伞芹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧唱较,春花似錦扎唾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至汉形,卻和暖如春纸镊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背概疆。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工逗威, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岔冀。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓凯旭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親使套。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罐呼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容