TCP協議:(3次連接,4次釋放)
TCP協議是面向連接,可靠的傳輸層協議,是基於全雙工通信,並且是基於字節流的。
(1)保證傳輸數據可靠性機制:
a:定時器:當TCP發出一個報文段,會啓動一個定時器,等待目的端確認收到報文段,若一段時間之後,沒有收到確認信息,就會重傳報文段。
b:確認:當TCP收到發自TCP連接另一端的數據,將會發送一個確認信息。
c:檢驗和:檢驗數據在傳輸的過程中任何變化,若收到報文段的檢驗和有錯,TCP將會丟棄報文段和不進行確認收到報文段。
d:流量控制:TCP連接的兩個地方都有固定大小的緩衝空間,TCP的接收端只能允許另一端發送接收端緩衝區所能容納的數據,防止緩衝區溢出。
e:擁塞控制:——加性增,乘性減
——慢啓動
——對超時事件做出反應
(2)TCP和UDP協議的區別:
1.TCP面向連接,UDP非連接(TCP3次握手,4次揮手)
2.TCP傳輸速度慢,UDP傳輸速度快(進行確認,擁塞控制)
3.TCP保證數據順序,UDP不保證傳輸順序(對接收的數據進行排序->IP)
4.TCP保證數據正確性,UDP不保證可能丟包(重傳,檢驗和)
5.TCP對系統資源要求多,UDP要求資源少(TCP檢驗必須,UDP檢驗可選,流量控制,需緩衝區)
(3)why不能兩次連接必須進行三次連接?
第1,2次連接是保證服務器端能夠接收到客戶端的信息,並能夠做出正確的應答,第2,3次連接爲了保證客戶端能夠接受到服務器的信息,並能夠做出正確的應答。
(4)TCP連接
(5)TCP釋放
(6)下面是常見的計算機中網絡相關設備:
ARP協議(地址解析協議)
在網絡通訊時,源主機的應用程序知道目的主機的IP地址和端口號,卻不知道目的主機的硬件地址,源主機會發出ARP請求,將這個請求廣播到本地網段,目的主機接收到廣播的ARP請求,發現其中的IP地址與本機相符,則發送一個ARP應答數據包給源主機,將自己的硬件地址填寫在應答包中。
(1)什麼是ARP緩存?
ARP cache是個用來儲存(IP、MAC)地址的緩衝區。當ARP被詢問一個已知IP地址節點的MAC地址時,先在ARP cache中查看,若存在,直接返回MAC地址,若不存在,才發送ARP請求。
(2)ARP和RARP都是屬於網絡層的協議。
(3)ARP與RARP協議的區別?
RARP是逆地址解析協議,將局域網中某個主機的物理地址轉換爲IP地址,比如局域網中有一臺主機只知道物理地址而不知道IP地址,那麼可以通過RARP協議發出徵求自身IP地址的廣播請求,然後由RARP服務器負責回答。
IP協議(互聯網絡協議)
(1)IP地址:A B C D E
(0) (10) (110) (1110) (11110)
0 128 192 224 240
特殊地址:本機地址:127.0.0.1
內部廣播:255.255.255.255
主機號全爲0的地址:如:192.168.10.0(子網掩碼:255.255.255.0)
(2)路由器:目的網絡地址、子網掩碼、下一跳地址、發送接口、缺省條目(都不匹配時)
(3)IP分片:
數據鏈路層,用MTU(最大傳輸單元)來限制所能傳輸的數據包大小,MTU是指一次傳送的數據最大長度,不包括數據鏈路層數據幀的幀頭,當發送的IP數據報的大小超過了MTU時,IP層就需要對數據進行分片,否則數據將無法發送成功。
(4)子網掩碼:
默認:A:255.0.0.0
B:255.255.0.0
C:255.255.255.0
HTTP協議(超文本傳輸協議)
HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型,HTTP是一個無狀態的協議,默認HTTP端口號位80。HTTPS端口號爲443.(HTTP協議承載於TCP協議之上,HTTP承載於TLS/SSL協議上(稱HTTPS))
(1)一次HTTP操作稱爲一個事務,過程如下:
a:客戶機與服務器需要建立連接
b:建立連接後,客戶機發送一個請求給服務器,請求格式爲:統一資源標識符(URL)協議版本號,請求修飾符,客戶機信息等。
c:服務器接到請求後,給予相應的響應信息,格式爲一個狀態行,包括信息的協議版本號,一個成功或者錯誤的代碼,服務器信息等。
d:客戶端接收服務器所返回的信息通過瀏覽量顯示在顯示屏上,然後斷開連接。
(2)HTTP1.0和HTTP1.1的區別?
a:可擴展性:HTTP1.1中增加了option方法,允許客戶端提取一個服務器支持的方法列表,在請求消息中包含了upgrade頭域,可以讓服務器知道支持其他備用通信協議。
b:cache HTTP1.1中在頭域增加cache特性。
c:寬帶優化:壓縮傳送數據。
d:持久連接:HTTP1.1中支持持久連接,一個連接可以發多個請求,而HTTP1.0的每次請求都需要與服務器建立一個TCP連接。
e:錯誤提示:HTTP1.1中引入一個warning域,增加對錯誤或者警告信息的描述。
(3)HTTP的請求方法(8種)
a:OPTIONS:返回服務器針對特定資源所支持的HTTP請求方法。
b:HEAD:向服務器索要與GET請求相一致的響應。
c:GET:向特定資源發出請求
d:POST:向指定資源提交數據進行處理請求
e:PUT:向指定資源位置上傳奇最新內容
f:DELETE:請求服務器刪除,Request_URI所標識的資源
g:CONNECT:HTTP1.1協議中預留能夠連接改爲管道方式的代理服務器
h:PATCH:用於將局部修改應用於某一資源
(4)GET和POST方法的區別?
a:GET提交的數據會放在URL之後,POST提交的數據放在HTTP包的Body中。
b:GET提交的數據大小有限制最多1024字節,POST提交數據沒有限制
c:GET需使用Request.QueryString來獲取變量值,POST通過Resquest.Form.
d:GET提交數據,用戶名和密碼會出現在URL上,會帶來安全問題。
(5)HTTPS傳輸協議原理
a:HTTPS的安全基礎是SSL
優點:客戶端產生的密鑰只有客戶端和服務器端能夠得到,加密的數據只有客戶端和服務端才能夠得到明文,客戶端到服務器的通信是安全的。
(6)I/O多路複用機制:select、poll、epoll(都是同步IO,讀寫事件就緒後,自己負責進行讀寫,讀寫過程是阻塞的)
select的幾大缺點:
a:每次調用select,都需要把fd集合從用戶態拷貝到內核態,開銷比較大。
b:每次調用select都需要在內核遍歷傳遞進來的所有fd,開銷比較大。
c:select支持的文件描述符數量太小了,默認是1024.