TCP/IP

學習大綱:

轉自http://www.nowcoder.com/discuss/3043

TCP/IP

1. OSI與TCP/IP各層的結構與功能,都有哪些協議。

2. TCP與UDP的區別。

3. TCP報文結構。

4. TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的作用。

5. TCP擁塞控制。

6. TCP滑動窗口與回退N針協議。

7. Http的報文結構。

8. Http的狀態碼含義。

9. Http request的幾種類型。

10. Http1.1和Http1.0的區別

11. Http怎麼處理長連接。

12. Cookie與Session的作用於原理。

13. 電腦上訪問一個網頁,整個過程是怎麼樣的:DNS、HTTP、TCP、OSPF、IP、ARP。

14. Ping的整個過程。ICMP報文是什麼。

15. C/S模式下使用socket通信,幾個關鍵函數。

16. IP地址分類。

17. 路由器與交換機區別。

18.IP地址的分類

19.ARP地址解析協議的工作原理

20.描述RARP逆地址解析協議

網絡其實大體分爲兩塊,一個TCP協議,一個HTTP協議,只要把這兩塊以及相關協議搞清楚,一般問題不大。

推薦書籍:《TCP/IP協議族》


更新中.....

一、OSI,TCP/IP,五層協議的體系結構,以及各層協議

來自牛客網:http://www.nowcoder.com/ta/review-network/review?tpId=33&tqId=21189&query=&asc=true&order=&page=1

OSI分層 (7層):物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。

TCP/IP分層(4層):網絡接口層、 網際層、運輸層、 應用層。
五層協議 (5層):物理層、數據鏈路層、網絡層、運輸層、 應用層。
每一層的協議如下:
物理層:RJ45、CLOCK、IEEE802.3 (中繼器,集線器)
數據鏈路:PPP、FR、HDLC、VLAN、MAC (網橋,交換機)
網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
傳輸層:TCP、UDP、SPX
會話層:NFS、SQL、NETBIOS、RPC
表示層:JPEG、MPEG、ASII
應用層:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一層的作用如下:
物理層:通過媒介傳輸比特,確定機械及電氣規範(比特Bit)
數據鏈路層:將比特組裝成幀和點到點的傳遞(幀Frame)
網絡層:負責數據包從源到宿的傳遞和網際互連(包PackeT)
傳輸層:提供端到端的可靠報文傳遞和錯誤恢復(段Segment)
會話層:建立、管理和終止會話(會話協議數據單元SPDU)
表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU)

應用層:允許訪問OSI環境的手段(應用協議數據單元APDU)


四、TCP三次握手和四次揮手的全過程


三次握手:

1、客戶端給服務器端發送SYN包(syn = j),處於SYN_SENT狀態,等待服務器確認。
     客戶端:“服務端,你準備好沒有(發送syn=j)?”
2、服務端接受到SYN包,由狀態LISTEN狀態變爲SYN_RCVD狀態,然後發送ACK包(ack=j+1)和SYN包(syn=k)
     服務端:“我準備好了(發送ack=j+1),你準備好沒有(發送syn=k)?”
3、客戶端接受到ACK包(ack=j+1)和SYN包(syn=k),轉爲ESTABLISHED狀態,然後向服務端發送ACK包(ack=k+1)
     客戶端:“我知道你準備好了(接受到ack=j+1),我也準備好了(發送ack=k+1)。”

四次揮手:(以客戶端主動關閉爲例)

1、客戶端發送FIN(fin=m)以告知服務端,“我準備關閉了”,客戶端進入FIN_WAIT1狀態。
2、服務端接受到FIN包後,發送ACK(ack=m+1),進入CLOST_WAIT狀態,但此時服務端數據可能還沒發完,不能立即給服務端發送FIN包。客戶端接受到ACK包之後,進入FIN_WAIT2狀態。
3、服務端發送數據完畢,給客戶端發送FIN包(fin=n),然後進入LAST_ACK狀態,等待客戶端響應。
4、客戶端接受到FIN包,給服務端發送ACK包(ack=n+1),進入TIME_WAIT狀態,如果2MLS之內沒有再收到FIN的包,則關閉。服務端收到ACK包(ack=n+1),關閉CLOSED。


十八、IP地址的分類


A類IP地址:


一個A類IP地址由1字節的網絡地址和3字節主機地址組成,網絡地址的最高位必須是“0”, 地址範圍從1.0.0.0 到126.255.255.255。可用的A類網絡有126個,每個網絡能容納1678萬多個主機。 


B類IP地址:


一個B類IP地址由2個字節的網絡地址和2個字節的主機地址組成,網絡地址的最高位必須是“10”,地址範圍從128.0.0.0到191.255.255.255。可用的B類網絡有16382個,每個網絡能容納6萬多個主機 。 

C類IP地址:


一個C類IP地址由3個字節的網絡地址和1個字節的主機地址組成,網絡地址最高位必須是“110”,地址範圍從192.0.0.0到223.255.255.255。可用的C類網絡有4194303個,每個網絡能容納254個主機。

D類E類用途比較特殊,不予贅述


十九、ARP地址解析協議的工作原理

1、首先,每個主機會在自己的ARP緩衝區中建立一個ARP列表,以表示MAC地址和IP地址之間的關係。
2、當源主機1(IP1,MAC1)要發送數據給目的主機2(IP2,MAC2)的時候,會查找ARP列表尋找目的主機IP2對應的MAC地址,如果有,則直接根據MAC2發送數據;如果沒有,則向同一網段所有主機發送ARP數據包,該數據包的內容包含源主機1的IP1、MAC1和目的主機IP2。
3、當所有該網段下的主機收到ARP數據包,解析之後分析ARP數據包中IP2是否爲自己的IP地址,如果不是,則忽略;如果是,則取出源主機的IP1和MAC1,寫入自己的ARP列表,然後將自己的MAC地址寫入ARP響應包發回源主機。
4、源主機收到並解析ARP響應包,將IP2和MAC2寫入自己的ARP列表,然後根據此信息發送數據。如果一直沒有收到ARP響應包,說明ARP查詢失敗。
PS:廣播發送ARP請求,單播發送ARP響應。

二十、描述RARP逆地址解析協議
顯然,這是由MAC硬件地址到IP地址的映射,主要用於無盤工作站,因爲其IP無法保存,因此需要廣播RARP請求包。只有RARP服務器纔可以接受請求包,一般網絡中會有多個RARP服務器,爲了避免多個RARP服務器同時回覆無盤工作站,都會爲主機分配主RARP服務,主RARP率先回應,其他服務器都要等待主RARP服務器發送響應之後纔開始發送,當然請求方一般都會接受最先的響應,當主RARP不作迴應,請求方會在此廣播,此時其他RARP服務器就會發送響應。RARP服務器會將MAC地址和IP地址都寫入列表,爲以後使用。請求方得到響應之後,會解析響應包,得到IP。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章