1. 三次握手協議
在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。
第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。
2. tcp/ip 四層
應用層:http,ftp,dns,telnet
傳輸層:tcp,udp
網路互連層:ip
網路介面層:乙太網,wifi等
osi 的七層模型:
7應用層
6表示層
5會話層
asap、tls、ssh、iso 8327 / ccitt x.225、
4傳輸層
3網路層
ip、icmp、igmp、ipx、bgp、ospf、rip、igrp、eigrp、arp、rarp、x.25
2資料鏈路層
乙太網、令牌環、hdlc、幀中繼、isdn、atm、ieee 802.11、fddi、ppp
1物理層
線路、無線電、光纖
3. ip 位址分類
ip位址是四段八位的二進位制數組成的,ip分為a,b,c,d,e五類位址
a類高階為0,從1.x.y.z-126.x.y.z;
b類高階為10,從128.x.y.z-191.x.y.z;
c類高階為110,從192.x.y.z-223.x.y.z;
d類高階為1110是保留的ip位址;
e類高階為1111,是科研用的ip位址
其中255是廣播位址,127是內部回送函式
4. 子網掩碼等知識
ip address:你的物理ip位址;
subnet mask:是」子網掩碼」的意思
default gateway:預設閘道器;
什麼是子網掩碼?你一定對ip位址有所了解吧?我們知道在internet中廣泛使用的tcp/ip協議就是利用ip位址來區別不同的主機的。如果你曾經進行過tcp/ip協議設定,那麼你一定會遇到子網掩碼(subnetmask)這一名詞,那麼你知道什麼是子網掩碼嗎?它有什麼作用呢?
我們知道ip位址是乙個4位元組(共32bit)的數字,被分為4段,每段8位,段與段之間用句點分隔。為了便於表達和識別,ip位址是以十進位制形式表示的如210.52.207.2,每段所能表示的十進位制數最大不超過255。ip位址由兩部分組成,即網路號(netgworkid)和主機號(hostid)。網路號標識的是internet上的乙個子網,而主機號標識的是子網中的某台主機。網際位址分解成兩個域後,帶來了乙個重要的優點:ip資料報從網際上的乙個網路到達另乙個網路時,選擇路徑可以基於網路而不是主機。在大型的網際中,這一點優勢特別明顯,因為路由表中只儲存網路資訊而不是主機資訊,這樣可以大大簡化路由表。ip位址根據網路號和主機號的數量而分為a、b、c三類:
從上面的介紹我們知道,ip位址是以網路號和主機號來標示網路上的主機的,只有在乙個網路號下的計算機之間才能」直接」互通,不同網路號的計算機要通過閘道器(gateway)才能互通。但這樣的劃分在某些情況下顯得並十分不靈活。為此ip網路還允許劃分成更小的網路,稱為子網(subnet),這樣就產生了子網掩碼。子網掩碼的作用就是用來判斷任意兩個ip位址是否屬於同一子網路,這時只有在同一子網的計算機才能」直接」互通。那麼怎樣確定子網掩碼呢?
前面講到ip位址分網路號和主機號,要將乙個網路劃分為多個子網,因此網路號將要占用原來的主機位,如對於乙個c類位址,它用21位來標識網路號,要將其劃分為2個子網則需要占用1位原來的主機標識位。此時網路號位變為22位為主機標示變為7位。同理借用2個主機位則可以將乙個c類網路劃分為4個子網……那計算機是怎樣才知道這一網路是否劃分了子網呢?這就可以從子網掩碼中看出。子網掩碼和ip位址一樣有32bit,確定子網掩碼的方法是其與ip位址中標識網路號的所有對應位都用」1″,而與主機號對應的位都是」0″。如分為2個子網的c類ip位址用22位來標識網路號,則其子網掩碼為:1111111111111111 1111111110000000即255.255.255.128。於是我們可以知道,a類位址的預設子網掩碼為255.0.0.0,b類為255.255.0.0,c類為255.255.255.0。下表是c類位址子網劃分及相關子網掩碼:
子網位數 子網掩碼 主機數 可用主機數
1 255.255.255.128 128 126
2 255.255.255.192 64 62
3 255.255.255.224 32 30
4 255.255.255.240 16 14
5 255.255.255.248 8 6
6 255.255.255.252 4 2
你可能注意到上表分了主機數和可用主機數兩項,這是為什麼呢?因為但當位址的所有主機位都為」0″時,這一位址為線路(或子網)位址,而當所有主機位都為」1″時為廣播位址(255)。
同時我們還可以使用可變長掩碼(vlsm)就是指乙個網路可以用不同的掩碼進行配置。這樣做的目的是為了使把乙個網路劃分成多個子網更加方便。在沒有vlsm的情況下,乙個網路只能使用一種子網掩碼,這就限制了在給定的子網數目條件下主機的數目。例如你被分配了乙個c類位址,網路號為192.168.10.0,而你現在需要將其劃分為三個子網,其中乙個子網有100臺主機,其餘的兩個子網有50臺主機。我們知道乙個c類位址有254個可用位址,那麼你如何選擇子網掩碼呢?從上表中我們發現,當我們在所有子網中都使用乙個子網掩碼時這一問題是無法解決的。此時vlsm就派上了用場,我們可以在100個主機的子網使用255.255.255.128這一掩碼,它可以使用192.168.10.0到192.168.10.127這128個ip位址,其中可用主機號為126個。我們再把剩下的192.168.10.128到192.168.10.255這128個ip位址分成兩個子網,子網掩碼為255.255.255.192。其中乙個子網的位址從192.168.10.128到192.168.10.191,另一子網的位址從192.168.10.192到192.168.10.255。子網掩碼為255.255.255.192每個子網的可用主機位址都為62個,這樣就達到了要求。可以看出合理使用子網掩碼,可以使ip位址更加便於管理和控制。
(1)首先,每個主機都會在自己的arp緩衝區中建立乙個arp列表,以表示ip位址和mac位址之間的對應關係。
(2)當源主機要傳送資料時,首先檢查arp列表中是否有對應ip位址的目的主機的mac位址,如果有,則直接傳送資料,如果沒有,就向本網段的所有主機傳送arp資料報,該資料報包括的內容有:源主機ip位址,源主機mac位址,目的主機的ip位址。
(3)當本網路的所有主機收到該arp資料報時,首先檢查資料報中的ip位址是否是自己的ip位址,如果不是,則忽略該資料報,如果是,則首先從資料報中取出源主機的ip和mac位址寫入到arp列表中,如果已經存在,則覆蓋,然後將自己的mac位址寫入arp響應包中,告訴源主機自己是它想要找的mac位址。
(4)源主機收到arp響應包後。將目的主機的ip和mac位址寫入arp列表,並利用此資訊傳送資料。如果源主機一直沒有收到arp響應資料報,表示arp查詢失敗。
TCP IP相關函式
1.socket 函式原型 int socket int domain,int type,int protocol 函式作用 建立乙個新的socket套接字 函式引數 domain 建立何種位址型別 af inet,ipv4的 網路協議 af inet6,ipv6的網路協議 type sock st...
tcp ip協議等相關知識
先扒一扒http協議背景?因為http協議是屬於tcp ip協議簇的,所以先簡單介紹下與http相關的tcp ip知識。tcp ip簡介。tcp ip四層模型。確保可靠性的tcp協議。傳送端在層與層之間傳輸資料時,每經過一層時必定會被打上乙個該層所屬的首部資訊。反之,接收端在層與層傳輸資料時,每經過...
TCP IP協議簇總結
各協議對應osi層次如下 osi中的層 功能 tcp ip協議族 應用層檔案傳輸,電子郵件,檔案服務,虛擬終端 tftp,http,snmp,ftp,smtp,dns,telnet 等等 表示層資料格式化,轉換,資料加密 沒有協議 會話層解除或建立與別的接點的聯絡 沒有協議 傳輸層提供 端對端的介面...