資源描述:
《tcp-ip協(xié)議詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、TCP/IP協(xié)議詳解內(nèi)容提要TCP/UDPDNSSNMPIPv6TCP/UDP面向連接與面向無連接端口三次握手TCP報文格式UDP報文格式端口端口將應(yīng)用進(jìn)程與IP網(wǎng)絡(luò)相關(guān)聯(lián),是應(yīng)用進(jìn)程的地址標(biāo)識。一個端口是一個16位號碼。端口分為公用和臨時兩種:公用端口:屬于標(biāo)準(zhǔn)服務(wù)器,由權(quán)威機(jī)構(gòu)IANA統(tǒng)一分配,從1~1023。臨時端口:用于客戶,從1024~65535。協(xié)議端口號關(guān)鍵字描述UDP42NAMESERVER主機(jī)名字服務(wù)器UDP53DOMAIN域名服務(wù)器UDP67BOOTPClient客戶端啟動協(xié)議服務(wù)UDP68BOO
2、TPServer服務(wù)器端啟動協(xié)議服務(wù)UDP69TFTP簡單文件傳輸協(xié)議UDP111RPC微系統(tǒng)公司RPCTCP20FTPData文件傳輸服務(wù)器(數(shù)據(jù)連接)TCP21FTPControl文件傳輸服務(wù)器(控制連接)TCP23Telnet遠(yuǎn)程終端服務(wù)器TCP25SMTP簡單郵件傳輸協(xié)議TCP80HTTP超文本傳輸協(xié)議Socket套接字為了使得多主機(jī)多進(jìn)程通信時,不至于發(fā)生混亂情況,必須把端口號和主機(jī)的IP地址結(jié)合起來使用,稱為插口或套接字(Socket)。由于主機(jī)的IP地址是唯一的,這樣目的主機(jī)就可以區(qū)分收到的數(shù)據(jù)報的源端
3、機(jī)了。套接字包括IP地址(32位)和端口號(16位),共48位。例如(124.33.13.55,200)和(126.45.21.51,25)就是一對套接字,在整個Internet中,在傳輸層上進(jìn)行通信的一對套接字都必須是唯一的。Netstat-an查看主機(jī)網(wǎng)絡(luò)連接狀態(tài)TCP連接的建立第一次握手:客戶端TCP首先給服務(wù)器端TCP發(fā)送一個特殊的TCP數(shù)據(jù)段。該數(shù)據(jù)段不包含應(yīng)用層數(shù)據(jù),并將頭部中的SYN位設(shè)置為1,所以該數(shù)據(jù)段被稱為SYN數(shù)據(jù)段。另外,客戶選擇一個初始序列號SEQ,設(shè)SEQ=x并將這個編號放到初始的TCPS
4、YN數(shù)據(jù)段的序列號字段中。該數(shù)據(jù)段被封裝到一個IP數(shù)據(jù)報中,并發(fā)送給服務(wù)器。第二次握手:一旦裝有TCPSYN數(shù)據(jù)段的IP數(shù)據(jù)報到達(dá)了服務(wù)器主機(jī),服務(wù)器將從該數(shù)據(jù)報中提取出TCPSYN數(shù)據(jù)段,給該連接分配TCP緩沖區(qū)和變量,并給客戶TCP發(fā)送一個允許連接的數(shù)據(jù)段。這個允許連接的數(shù)據(jù)段也不包含任何應(yīng)用層數(shù)據(jù)。但是,它的頭部中裝載著3個重要信息。首先,SYN被設(shè)置為1;其次,TCP數(shù)據(jù)段頭部的確認(rèn)字段被設(shè)置為x+1;最后,服務(wù)器選擇自己的初始順序號,SEQ=y,并將該值放到TCP數(shù)據(jù)段頭部的序列號字段中。第三次握手:在接收
5、到允許連接數(shù)據(jù)段之后,客戶也會給連接分配緩沖區(qū)和變量??蛻舳酥鳈C(jī)還會給服務(wù)器發(fā)送另一個數(shù)據(jù)段,對服務(wù)器的允許連接數(shù)據(jù)段給出確認(rèn)。三次握手TCP協(xié)議中連接建立的過程SYN(SEQ=x)SYN(SEQ=y)ACK=x+1REJECTSYN(SEQ=x)SYN(SEQ=y)ACK=x+1ACK=zREJECT異常情況主機(jī)1主機(jī)2主機(jī)1主機(jī)2呼叫碰撞的情況主機(jī)1主機(jī)2SYN(SEQ=x)SYN(SEQ=y)SYN(SEQ=y,ACK=x+1)SYN(SEQ=x,ACK=y+1)連接的釋放第一次握手:由進(jìn)行數(shù)據(jù)通信的任意一方提
6、出要求釋放連接的請求報文段。第二次握手:接收端收到此請求后,會發(fā)送確認(rèn)報文段,同時當(dāng)接收端的所有數(shù)據(jù)也都已經(jīng)發(fā)送完畢后,接收端會向發(fā)送端發(fā)送一個帶有其自己序號的報文段。第三次握手:發(fā)送端收到接收端的要求釋放連接的報文段后,發(fā)送反向確認(rèn)。TCP連接的釋放過程TCP數(shù)據(jù)報文TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字節(jié)。標(biāo)識了發(fā)送方和接收方的應(yīng)用進(jìn)程。TCP首部20字節(jié)固定首部目
7、的端口數(shù)據(jù)偏移檢驗(yàn)和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG比特08162431填充序號字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG比特08162431填充確認(rèn)號字段——占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。TCP首部20字節(jié)固定首
8、部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKURG比特08162431填充數(shù)據(jù)偏移——占4bit,它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠(yuǎn)。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FINSYNRSTPSHACKU