1、TCP/IP通訊協定與網路架構2021/7/131nTCP/IP背景nTCP/IP層級式架構nTCP/IP訊息的傳送與處理n網際網路層n主機傳輸層大 綱2021/7/132TCP/IP背景n1967年DARPA(Defense Advanced Research Project Agency)推動ARPANET(Advanced Research Project Agency NETwork)電腦網路n1983年推廣網際網路(Internet)n1985年成立NSFNET(National Science Foundation NETwork)2021/7/133TCP/IP背景(Cont.)
2、n網路管理協定的產生,SNMP(Simple Network Management Protocol)n成立 ISO(International Organization for Standardization)組織,負責標準化工作nIAB(Internet Activities Board)負責網路研究與實驗之管理2021/7/134TCP/IP背景(Cont.)nIETF(Internet Engineering Task Force)負責網際網路問題的討論n網際網路的相關報告與協定等文件,稱之為RFC(Request for Comments)nNIC(network Informati
3、on Center)負責管理RFC文件2021/7/135應用層Appl i cat i on展現層Present at i on會議層Sessi on傳輸層Transport網路層Net work資料連結層Dat a Li nk實體層Physi cal應用層Appl i cat i on主機傳輸層Transport網際網路層Int ernet網路介面層Net workInt erfaceOSITCP/IPTCP/IP協定架構圖2021/7/136TCP/IP協定架構n網路介面層(Network Interface Layer)n網際網路層(Internet Layer)n主機傳輸層(Tran
4、sport Layer)n應用層(Application Layer)2021/7/137網路介面層n包含OSI協定的實體層與資料連結層n此層級並未標準化n此層級使用各區域網路的原有協定2021/7/138網際網路層n建立來源端與目的端間的通道n規定網際網路的定址方式n處理資料在不同網路間傳遞方式n處理子網路之間的傳遞n選擇資料傳輸路徑2021/7/139主機傳輸層n提供傳輸控制協定(TCP)與使用者資料流協定(UDP)nTCP以連結為導向的協定nTCP負責端點間的資料傳送與回應確認nTCP負責流量控制nUDP以非連結為導向的協定2021/7/1310應用層n包含較高層次的協定n提供應用程式間
5、的溝通nTELNETnFTPnSMTPnDNS2021/7/1311Int ernet網際網路主機A主機B應用層Appl i cat i on應用層Appl i cat i on主機傳輸層Transport網際網路層Int ernet網路介面層Net workInt erface網路介面層Net workInt erface網際網路層Int ernet主機傳輸層Transport主機間的資料傳輸2021/7/1312訊 息訊息的傳送(1)Segm ent -1Segm ent -3Segm ent -2.2021/7/1313訊息的傳送(2)Segm ent -1Segm ent -3Segm
6、 ent -2.TTTSegm ent -1Segm ent -3Segm ent -2.TTTIII2021/7/1314網際網路協定(IP)n提供非連結式服務(Connectionless Service)n盡力傳送資料(Best-effort Delivery)n位址處理n送端n收端n資料段的分割與再彙集2021/7/1315VersionTime to LiveProtocolHeaderLengthType of ServiceTotal LengthIdentifierFragmented OffsetOptionsFlagsPaddingHeader ChecksumDestin
7、ation AddressSource Address888832 BITSIP Header格式2021/7/1316IP HeadernVersion:IP版本nHeader Length:IP header長度nType of Service:表示資料傳送的品質要求nTotal Length:顯示資料段的大小nIdentifier:提供資料段被切割後的識別號碼2021/7/1317PRECEDENCEDR00345T67012TOS 格式Bits 0-2:Precedence.07.資料傳送的優先順序Bits 3:0=Normal Delay,1=Low DelayBits 4:0=No
8、rmal Throughput,1=High ThroughputBits 5:0=Normal Reliability 1=High ReliabilityBits 6-7:保留未來使用2021/7/1318IP Header(Cont.)nFlags:資料分割的控制n位元 0:保留n位元 1:0表示可以分割,1表示不可分割n位元 2:0表示是最後一個fragment,1表示後面還有資料nFragmented Offset:表示分割後的fragment在原來segment中的相對位置,以8個位元組為offset的單位2021/7/1319IP Header(Cont.)nTime to Li
9、ve:segment在網路中保留的時間nProtocol:IP上一層的網路協定nHeader Checksum:IP header的總和檢查nSource Address:來源端的IP位址nDestination Address:目的端的IP位址2021/7/1320IP Header(Cont.)nOptions:Segment測試或除錯之用nPadding:使header長度以32個位元結束2021/7/1321IP 定址nIP位址是32位元的二進位資料nIP位址格式:nIP位址表示法:dotted-decimal表示法(打點十進位法)2021/7/13221000110001110000
10、1111111000000100140.112.254.4打點十進位表示法與32位元資料型態2021/7/1323IP位址等級n等級A,B,C是用來代表主機與網路位址n等級D是以群組位址方式傳送的特別型態位址n等級E為保留用途2021/7/1324NHHHNNHHNNHN等級A:等級C:等級B:IP位址=網路編號,主機編號常用的IP位址等級2021/7/1325規則最大值與最小值十進位範圍等級A:第一個位元為0等級B:前兩個位元為10等級C:前三個位元為11000000000=001111111=12710000000=12810111111=19111000000=19211011111=2
11、231-126(0與127保留)128-191192-223等級D:前四個位元為1110等級E:前五個位元為11110M ul t i castResearchIP位址等級2021/7/1326網路遮罩n網路位址:IP位址的網路部分,主機部分為0n例如,140.112.254.4,是一個等級B的主機位址,網路位址為140.112.0.0n可以利用“網路遮罩”對應出網路位址2021/7/1327等級網路遮罩打點十進位ACB1111111100000000000000000000000011111111111111110000000000000000111111111111111111111111
12、00000000255.0.0.0255.255.0.0255.255.255.0等級A,B,C的網路遮罩2021/7/132810001100011100001111111000000100=140.112.254.41111111111111111000000000000000010001100011100000000000000000000=140.112.0.0=255.255.0.0AND網路位址的推算2021/7/1329子網路(subnet)n子網路:將IP位址中的主機部分,切割一部份作為網路部分之用nIP位址:網路部分,子網路部分,主機部分n例如,等級B的140.112.0.0
13、,主機部分切出8的位元為子網路,140.112.1.0 140.112.254.0,有254個子網路2021/7/1330子網路(Cont.)n可以利用“子網路遮罩”(subnet mask)對應出網路位址n子網路遮罩中的位元為1時,對應的是網路位址n子網路遮罩中的位元為0時,對應的是主機位址2021/7/1331子網路(Cont.)1000110001110000 11111110 00000100=140.112.254.41111111111111111 11111111 000000001000110001110000 11111110 00000000=140.112.254.0=2
14、55.255.255.0AND2021/7/1332子網路(Cont.)nIP位址中的子網路部分與主機部分,有兩個位址不可使用n所有位元全為0,代表該網路或子網路n所有位元全為1,作為broadcast位址之用n一個IP位址可使用的子網路數目與主機數目:2n 2,n代表子網路或主機部分的位元數目 2021/7/1333子網路(Cont.)n例如,140.112.0.0(255.255.255.0),可使用的子網路位址個數是28 2=254,可使用的主機位址個數是28 2=254 2021/7/1334IP PrefixnCIDR(Classless Interdomain Routing):由
15、傳統的IP等級(等級A,等級B,等級C)進一步到IP PrefixnIP Prefix表示法:IP位址/網路位址的位元數目n例如,140.112.3.0/242021/7/1335140.112.160.0/1910001100 01110000 101 00000 0000000011111111 11111111 111 00000 00000000l engt h=19bi t sDeci m alBi naryIP Prefix2021/7/1336主機A140.112.3.200主機B140.112.3.1主機C140.112.1.2主機D140.112.1.30路由器X路由器Y14
16、0.112.3.254140.112.1.254140.112.3.128140.112.2.254網路140.112.3.0網路140.112.1.0網路140.112.2.0路由器的介面2021/7/1337ARP Address Resolution ProtocolnIP segment在下層加上實體位址(網路卡的硬體位址)nARP是建立IP位址與實體位址對應關係的協定n利用區域網路的廣播功能取得實體位址2021/7/1338主機傳輸層n負責建立兩台主機間的虛擬路徑n提供的主要服務:n傳輸控制協定(TCP)n使用者資料協定(UDP)2021/7/1339TCP的基本機制n為每個資料段編
17、上序號,可以利用序號調整亂掉的資料段n接收端的確認回應(ACK),總和檢查碼(Checksum),計時器(Timer)的配合使用,提供穩定的服務品質n利用Window Control控制資料流量2021/7/1340Destination PortSequence NumberOptions and PaddingAcknowledgment NumberUrgent PointerWindow Size888832 BITSSource PortChecksumHLenReserved(6 bi t s)Fl ags(6 bi t s)TCP Header 格式(Transmission C
18、ontrol Protocol)2021/7/1341TCP HeadernSource Port&Destination Port:來源端與目的端通訊埠號碼nSequence Number:表示此資料段在訊息中的序號,接收端依序組合資料段nAcknowledgment Number:接收端希望下次收到的序號,也是回應已收到封包nHeader Length:TCP Header的長度2021/7/1342TCP Header(Cont.)nReserved:保留給未來使用nFlags:由6個bits所組成,控制資料的傳輸與連結nURG:緊急指標nACK:如果設定,表示此封包有一個回應nPSH:
19、push functionnRST:重設連結2021/7/1343TCP Header(Cont.)nSYN:建立順序號碼nFIN:傳送資料到此為止nWindow Size:使用於流量控制,表示能接收資料的數目(以8個位元組為單位)nChecksum:錯誤偵測號碼nUrgent Pointer:緊急指標。URG flag為1時,此欄位才生效2021/7/1344TCP Header(Cont.)nOptions:此資料段的發送者告訴對方能接受的最大資料段長度nPadding:使header長度以32個位元結束2021/7/1345TCP提供的主要服務n建立,維護及終止兩個程序間之連結n順序號碼
20、及回應,提供可靠的資料傳輸n控制流量的方法n藉由通訊埠分辨連結2021/7/1346Cl i entServerSY NSY N/A CKA CKThree-Way Handshack2021/7/1347Cl i entServer發送SY N序列號碼(SEQ)為100連結建立收到SY N 並回應控制訊號回應號碼(A CK)為201序列號碼(SEQ)為101發送資料收到SY N發送SY N序列號碼(SEQ)為200回應號碼(A CK)為100+1連結建立回應已收到資料Three-Way Handshack2021/7/1348Destination PortUDP Length888832 BITSSource PortChecksumUDP Header 格式(User Datagram Protocol)2021/7/1349UDP HeadernSource Port:來源端通訊埠號碼nDestination Port:發送端通訊埠號碼nUDP Length:整個資料段的長度nChecksum:選擇性的選項 2021/7/1350问题?问题?