TCP基本知識(shí)
[TOC]
1. 定義
Transmission Control Protocol
剩彬,即 傳輸控制協(xié)議。
屬于 傳輸層通信協(xié)議矿卑,基于TCP
的應(yīng)用層協(xié)議有HTTP
喉恋、SMTP
、FTP
母廷、Telnet
和 POP3
2. 特點(diǎn)
- 面向連接轻黑、面向字節(jié)流、全雙工通信琴昆、可靠
- 具體介紹如下:
3. 優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn):數(shù)據(jù)傳輸可靠
- 缺點(diǎn):效率慢(因需建立連接氓鄙、發(fā)送確認(rèn)包等)
4. 應(yīng)用場(chǎng)景(對(duì)應(yīng)的應(yīng)用層協(xié)議)
要求通信數(shù)據(jù)可靠時(shí),即 數(shù)據(jù)要準(zhǔn)確無(wú)誤地傳遞給對(duì)方
如:傳輸文件:HTTP业舍、HTTPS抖拦、FTP等協(xié)議;傳輸郵件:POP勤讽、SMTP等協(xié)議
- 萬(wàn)維網(wǎng):
HTTP
協(xié)議 - 文件傳輸:
FTP
協(xié)議 - 電子郵件:
SMTP
協(xié)議 - 遠(yuǎn)程終端接入:
TELNET
協(xié)議
5. 報(bào)文段格式
- TCP雖面向字節(jié)流蟋座,但傳送的數(shù)據(jù)單元 = 報(bào)文段
- 報(bào)文段 = 首部 + 數(shù)據(jù) 2部分
- TCP的全部功能體現(xiàn)在它首部中各字段的作用,故下面主要講解TCP報(bào)文段的首部
- 首部前20個(gè)字符固定脚牍、后面有4n個(gè)字節(jié)是根據(jù)需而增加的選項(xiàng)
- 故 TCP首部最小長(zhǎng)度 = 20字節(jié)
[圖片上傳失敗...(image-e99c39-1560915047474)]
示意圖
[圖片上傳失敗...(image-e15436-1560915047474)]
示意圖
6. 建立連接過(guò)程
- TCP建立連接需 三次握手
- 具體介紹如下
[圖片上傳失敗...(image-b6e573-1560915047474)]
示意圖
[圖片上傳失敗...(image-4e7b4e-1560915047474)]
示意圖
[圖片上傳失敗...(image-f746b4-1560915047474)]
示意圖
成功進(jìn)行TCP的三次握手后向臀,就建立起一條TCP連接,即可傳送應(yīng)用層數(shù)據(jù)
注
- 因
TCP
提供的是全雙工通信诸狭,故通信雙方的應(yīng)用進(jìn)程在任何時(shí)候都能發(fā)送數(shù)據(jù)- 三次握手期間券膀,任何1次未收到對(duì)面的回復(fù),則都會(huì)重發(fā)
<font color="#ff0000">特別說(shuō)明:為什么TCP建立連接需三次握手驯遇?</font>
- 結(jié)論
防止服務(wù)器端因接收了早已失效的連接請(qǐng)求報(bào)文芹彬,從而一直等待客戶端請(qǐng)求,最終導(dǎo)致形成死鎖叉庐、浪費(fèi)資源 - 具體描述
[圖片上傳失敗...(image-c63a06-1560915047474)]
7. 釋放連接過(guò)程
- 在通信結(jié)束后舒帮,雙方都可以釋放連接,共需 四次揮手
- 具體如下
[圖片上傳失敗...(image-1bf9e4-1560915047474)]
示意圖
[圖片上傳失敗...(image-1c1e4d-1560915047474)]
示意圖
[圖片上傳失敗...(image-78eaa4-1560915047474)]
示意圖
<font color="#ff0000">特別說(shuō)明:為什么TCP釋放連接需四次揮手?</font>
- 結(jié)論
為了保證通信雙方都能通知對(duì)方 需釋放 & 斷開(kāi)連接
即釋放連接后玩郊,都無(wú)法接收 / 發(fā)送消息給對(duì)方
- 具體描述
[圖片上傳失敗...(image-10c686-1560915047474)]
無(wú)差錯(cuò)傳遞等其他知識(shí) 參考鏈接:TCP協(xié)議攻略