1.簡述osi七層模型和TCP/IP五層模型
1.1. OSI七層模型概述
物理層(Physical Layer):主要定義物理設(shè)備標準,如網(wǎng)線的接口類型较锡、光纖的接口類型、各種傳輸介質(zhì)的傳輸速率等辐董。它的主要作用是將數(shù)據(jù)轉(zhuǎn)換成比特流伐坏,對應(yīng)的是網(wǎng)線,光纖等击胜。
數(shù)據(jù)鏈路層(Data Link Layer):負責網(wǎng)絡(luò)尋址亏狰、錯誤偵測和改錯,這一層通常還提供錯誤檢測和糾正偶摔,以確保數(shù)據(jù)的可靠傳輸暇唾。當表頭和表尾被加至數(shù)據(jù)包時,會形成幀辰斋。數(shù)據(jù)鏈表頭(DLH)是包含了物理地址和錯誤偵測及改錯的方法策州。數(shù)據(jù)鏈表尾(DLT)是一串指示數(shù)據(jù)包末端的字符串,它的主要作用是將比特流封裝成數(shù)據(jù)幀宫仗,對應(yīng)集線器够挂,中繼器,交換機等藕夫。
網(wǎng)絡(luò)層(Network Layer):為不同局域網(wǎng)的主機通訊提供路由尋址孽糖,作用將數(shù)據(jù)幀封裝成數(shù)據(jù)報,對應(yīng)路由器毅贮,三層交換等办悟。
傳輸層(Transport Layer):定義傳輸協(xié)議TCP/UDP。TCP(傳輸控制協(xié)議滩褥,可靠的病蛉,面向連接的,全雙工的瑰煎,流式傳輸铺然。傳輸效率低。用于傳輸可靠性要求高丢间,數(shù)據(jù)量大的數(shù)據(jù))探熔。UDP(用戶數(shù)據(jù)報協(xié)議,與TCP特性恰恰相反烘挫,用于傳輸可靠性要求不高诀艰,數(shù)據(jù)量小的數(shù)據(jù),如QQ聊天數(shù)據(jù)就是通過這種方式傳輸?shù)模?主要是將從下層接收的數(shù)據(jù)進行分段和傳輸饮六,到達目的地址后再進行重組其垄,常常把這一層數(shù)據(jù)叫做段。
會話層(Session Layer):負責在數(shù)據(jù)傳輸中設(shè)置和維護計算機網(wǎng)絡(luò)中兩臺計算機之間的通信連接卤橄,通過傳輸層(端口號:傳輸端口與接收端口)建立數(shù)據(jù)傳輸?shù)耐仿搪饕谀愕南到y(tǒng)之間發(fā)起會話或者接受會話請求(設(shè)備之間需要互相認識可以是IP也可以是MAC或者是主機名)。
表示層(Presentation Layer):把數(shù)據(jù)轉(zhuǎn)換為能與接收者的系統(tǒng)格式兼容并適合傳輸?shù)母袷娇咂恕喇颁?纱_保一個系統(tǒng)的應(yīng)用層所發(fā)送的信息可以被另一個系統(tǒng)的應(yīng)用層讀取漏健。例如,PC程序與另一臺計算機進行通信橘霎,其中一臺計算機使用擴展二一十進制交換碼(EBCDIC)蔫浆,而另一臺則使用美國信息交換標準碼(ASCII)來表示相同的字符。如有必要姐叁,表示層會通過使用一種通格式來實現(xiàn)多種數(shù)據(jù)格式之間的轉(zhuǎn)換瓦盛。
應(yīng)用層(Application Layer): 提供為應(yīng)用軟件而設(shè)的接口,以設(shè)置與另一應(yīng)用軟件之間的通信是最靠近用戶的OSI層外潜,這一層是用戶的應(yīng)用程序(例如電子郵件原环、文件傳輸和終端仿真)。
1.2. TCP/IP五層模型
在TCP/IP分層中处窥,OSI的應(yīng)用層嘱吗、表示層、會話層全部統(tǒng)一為應(yīng)用層碧库,而底層的鏈路層和物理層又統(tǒng)一為接口層柜与。每個TCP/IP分層都對應(yīng)一些協(xié)議,這些協(xié)議組成了TCP/IP協(xié)議棧嵌灰。
名稱 | 協(xié)議 |
---|---|
應(yīng)用層 | HTTP協(xié)議 DNS協(xié)議 FTP協(xié)議 POP3協(xié)議等等 |
傳輸層 | TCP協(xié)議和UDP協(xié)議弄匕,在這一層中將指定通信端口 |
網(wǎng)絡(luò)層 | ARP協(xié)議 IP協(xié)議 ICMP協(xié)議 IGMP協(xié)議 網(wǎng)絡(luò)層有些協(xié)議并不完全屬于網(wǎng)絡(luò)層,有些可能向下跨越到鏈路層沽瞭,但總的來說迁匠,將它們都歸類到網(wǎng)絡(luò)層協(xié)議 |
網(wǎng)絡(luò)接口層 | 點對點的PPP協(xié)議 以太網(wǎng) 幀中繼等等 |
OSI七層和TCP/IP五層以及對應(yīng)網(wǎng)絡(luò)設(shè)備對比示例圖
2、總結(jié)描述TCP三次握手四次揮手
2.1. 建立TCP連接:三次握手
(1)當客戶端A想要和B建立 TCP連接時驹溃,首先會發(fā)送一個連接請求報文給服務(wù)端B城丧。在這個請求報文中,TCP 首部中的SYN位設(shè)置為1豌鹤,ACK位設(shè)置為0亡哄,假設(shè)此時的序號是x(序號不一定是1),即SYN=1布疙、ACK=0蚊惯、seq=x。這個包也常稱為SYN包灵临,當客戶端發(fā)送完SYN包后截型,它將進入SYN_SENT狀態(tài)。
(2)當B收到該報文后儒溉,發(fā)現(xiàn)其中的SYN=1宦焦、ACK=0,便知道這是一個TCP連接的請求包。如果B確認與A建立 TCP連接波闹,那么B需要回復(fù)A酝豪。回復(fù)時精堕,SYN=1寓调、ACK=1、ack=x+1锄码,seq=y。注意區(qū)分這里的ACK和ack晌涕,ACK表示的是占用一個比特位的ACK設(shè)置位滋捶,ack是確認號。這個包通常被稱為ACK包余黎,當服務(wù)端發(fā)送完ACK包之后重窟,它將進入SYN_RECV狀態(tài)。
(3)當A收到B的回復(fù)報文后惧财,發(fā)現(xiàn)里面的SYN=1巡扇、ACK=1,于是也會向B回復(fù)一個ACK包,回復(fù)時垮衷,SYN=0厅翔、ACK=1、seq=x+1搀突、ack=y+1刀闷。這里的SYN=0、ACK=1表示這不是建立連接的請求包仰迁,而是回復(fù)包甸昏。A發(fā)送完之后,就進入ESTABLISHED狀態(tài)徐许,表示連接在A這端己經(jīng)建立完成了施蜜。
(4)B最終收到A的ACK包之后,也將進入ESTABLISHED狀態(tài)雌隅。到此翻默,TCP連接就建立完成。
需注意的是澄步,B回復(fù)A的時候冰蘑,也發(fā)送了一個SYN=1的包,相當于也是在請求A去建立TCP連接村缸,所以A最后回復(fù)了一個ACK包祠肥。
2.2. 斷開TCP連接:四次揮手
(1)A首先發(fā)送一個TCP首部中FIN位置為1的包給B端,假設(shè)此時序號是u,即seq=u仇箱。FIN=1意味著這是一個請求關(guān)閉TCP連接的數(shù)據(jù)包县恕,這種包也稱為FIN包。當發(fā)送FIN包之后剂桥,A將從ESTABLISHED狀態(tài)轉(zhuǎn)變?yōu)镕IN-WAIT-1狀態(tài)忠烛。
(2)B收到FIN包之后,發(fā)現(xiàn)其中FIN=1权逗,知道A端請求關(guān)閉美尸,于是發(fā)一個回復(fù)包給A≌遛保回復(fù)時师坎,設(shè)置ACK=1,ack=u+1堪滨,同時還設(shè)置序號seq=v(假設(shè)B現(xiàn)在發(fā)送到的數(shù)據(jù)序號是v)胯陋,發(fā)送完這個回復(fù)包之后,服務(wù)端進入CLOSE-WAIT狀態(tài)袱箱。到了這個階段遏乔,A(主動請求關(guān)閉方)到B(被動方)方向的連接就己經(jīng)釋放了,A不能再發(fā)送傳輸數(shù)據(jù)給B发笔,但是B到A方向的連接還沒有關(guān)閉盟萨,它可以接續(xù)發(fā)送數(shù)據(jù)給A,A也會接收了讨。因為在這個階段只有一個方向的連接被釋放鸯旁,所以close-wait狀態(tài)也稱為半關(guān)閉(half-close)狀態(tài)。
(3)當A收到B的ACK包之后量蕊,它將進入FIN-WAIT-2铺罢,等待B發(fā)起從B到A方向的連接關(guān)閉請求。
(4)當B確認己經(jīng)沒有數(shù)據(jù)發(fā)送給A后残炮,B開始主動關(guān)閉從B到A方向的TCP連接韭赘,這時會發(fā)送一個FIN包,同時ACK設(shè)置為1势就,ack仍然保持不變泉瞻,是u+1,而seq則為一個新值w苞冯,因為進入CLOSE-WAIT之后袖牙,B可能還發(fā)送了一些數(shù)據(jù)。B發(fā)送完這個FIN+ACK包之后舅锄,將進入LAST-ACK(最后確認)狀態(tài)鞭达。
(5)當A收到B的FIN+ACK包之后,需要對B發(fā)送的關(guān)閉請求做出回復(fù)〕氩洌回復(fù)時坦仍,ACK=1,seq=u+1不變,ack=w+1叨襟。當發(fā)送完這個包之后繁扎,A不會立即就關(guān)閉,而是進入TIME-WAIT階段等待一段時間(2倍的MSL時長)糊闽。
(6)當B收到A的回復(fù)ACK包之后梳玫,意味著B到A方向的連接關(guān)閉己經(jīng)確認了,于是B端關(guān)閉連接右犹。
(7)當A等待了2MSL的時長之后汽纠,將真正關(guān)閉連接。
3傀履、描述TCP和UDP區(qū)別
選項 | TCP | UDP |
---|---|---|
相同點 | 工作在傳輸層 | 工作在傳輸層 |
不同點 | 面向連接協(xié)議 全雙工協(xié)議 半關(guān)閉 錯誤檢查 將數(shù)據(jù)打包成段,排序 確認機制 數(shù)據(jù)恢復(fù)莉炉,重傳 流量控制钓账,滑動窗口 擁塞控制,慢啟動和擁塞避免算法 |
非面向連接協(xié)議 提供不可靠的網(wǎng)絡(luò)訪問 有限的錯誤檢查 傳輸性能高 無數(shù)據(jù)恢復(fù)特性 |
4絮宁、總結(jié)ip分類以及每個分類可以分配的IP數(shù)量
Internet委員會定義了5種IP地址梆暮,分別是A-E類,其中D和E類為特殊地址绍昂。
(1)網(wǎng)絡(luò)地址最高位是0的地址為A類地址啦粹;
(2)網(wǎng)絡(luò)地址最高位是10的地址為B類地址;
(3)網(wǎng)絡(luò)地址最高位是110的地址為C類地址窘游;
(4)網(wǎng)絡(luò)地址最高位是1110的地址為D類地址唠椭;
(5)網(wǎng)絡(luò)地址最高位是11110的地址為E類地址。
其中D類地址被用于組播地址忍饰,E類地址用于科學研究
分類 | 主機位 | IP范圍 | 網(wǎng)段數(shù) | 每個網(wǎng)段的 合法地址數(shù)量 |
---|---|---|---|---|
A類 | 3個字節(jié) | 1-126.X.X.X | 126 | 256x256x256-2 =16777214 |
B類 | 2個字節(jié) | 128-191.X.X.X | 64x256 =16384 |
256x256-2 =65534 |
C類 | 1個字節(jié) | 192-223.X.X.X | 32x256x256 =2097152 |
256-2 =254 |
D類 | - | 224-239.X.X.X | - | - |
E類 | - | 240-255.X.X.X | - | - |
5贪嫂、總結(jié)IP配置方法
(1)ifconfig
命令臨時修改IP地址
[root@centos7 ~]# ifconfig eth0 192.168.23.133
(2)修改配置文件后重啟網(wǎng)絡(luò)服務(wù)
[root@centos6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 /*此配置文件應(yīng)用到的設(shè)備,也是顯示名稱艾蓝,必須/sys/class/net/目錄下的某個網(wǎng)卡名相同
TYPE=Ethernet /*設(shè)定接口類型力崇,常見的有Ethernet,bridge
UUID=9dc2be73-d4b2-4f52-85fe-437ca47dd3fb /*設(shè)備唯一標識
ONBOOT=yes /*在系統(tǒng)啟動時是否激活此設(shè)備
NM_CONTROLLED=yes /*表示此網(wǎng)卡是否接受NM管理
BOOTPROTO=dhcp /*激活此設(shè)備時使用的地址配置協(xié)議赢织,常用的dhcp,static,none,boottp
HWADDR=00:0C:29:DA:4A:51 /*對應(yīng)的設(shè)備的MAC地址
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
#由于我是使用DHCP亮靴,故沒設(shè)置以下變量
#IPADDR /*指明IP地址
#NETMASK /*設(shè)定默認網(wǎng)關(guān)
#GATEWAY /*設(shè)定默認網(wǎng)關(guān)
#DNS1 /*設(shè)定第一個DNS服務(wù)器指向
#DNS2 /*設(shè)定第二個DNS服務(wù)器指向