免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
網(wǎng)絡(luò)基礎(chǔ)學(xué)習(xí)

學(xué)習(xí)指導(dǎo)

1.Python 學(xué)習(xí)資料

1. 廖雪峰的官方網(wǎng)站

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

2. Python快速教程

http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html

3. python 幫助

2.TCPIP基礎(chǔ)學(xué)習(xí)

2.1 TCPIP協(xié)議分層2.1.1 分層原理

發(fā)送端:程序員編寫的應(yīng)用程序通過socket 函數(shù)庫的使用, 比如調(diào)sendto 或者send或者write , 這些函數(shù)在操作系統(tǒng)的用戶態(tài)空間,進入操作系統(tǒng)的系統(tǒng)調(diào)用,調(diào)操作系統(tǒng)的sys_xxx 函數(shù),進入操作系統(tǒng)的內(nèi)核態(tài)。

內(nèi)核態(tài)的網(wǎng)絡(luò)子系統(tǒng)(專門處理網(wǎng)卡、TCPIP協(xié)議的代碼), sys_sendto 判斷 是UDP還是TCP,如果是TCP,則調(diào) TCP_output 函數(shù),TCP_output負責(zé)填寫TCP首部的數(shù)據(jù),比如發(fā)送方的端口號和接收方的端口號、以及校驗和(簡單校驗,防止數(shù)據(jù)錯誤)。

緊接著進入IP層處理,調(diào)IP_output,查找路由(因為設(shè)備可能有多個網(wǎng)卡, 那怎么選擇? 根據(jù)目的IP地址來選路,類似于查地圖,找到哪個網(wǎng)卡), IP_output 填寫發(fā)送者的IP地址和接收者的IP地址信息。

IP層首部按固定格式填好之后,那么就進入鏈路層(由物理層所決定,早起有的設(shè)備并沒有網(wǎng)卡,有的是直連的電話線或者串口等設(shè)備, 而網(wǎng)卡的設(shè)備識別ID是MAC地址, 6個字節(jié)。)

不同的鏈路層處理函數(shù)是不同的,如果是網(wǎng)卡,則是ethernet_output, 鏈路層的處理則是需要填寫自己的MAC地址和對方的MAC地址。 對方的MAC地址從哪里來?后面會講到。

鏈路層獲取到對方的MAC地址后,就把報文按固定格式填好,這個時候,所有的數(shù)據(jù)都按固定格式組裝完畢, 調(diào)網(wǎng)卡的驅(qū)動程序的函數(shù) physic_send 發(fā)送(會觸發(fā)軟中斷或者加入隊列,寫一個消息,CPU后續(xù)從網(wǎng)卡獲取數(shù)據(jù)發(fā)送出去。)

接收端:

接收端網(wǎng)卡收到數(shù)據(jù)后,觸發(fā)了中斷, 報文的內(nèi)容被寫入一個隊列中,觸發(fā)一個軟中斷, 操作系統(tǒng)的內(nèi)核線程會去讀取隊列中的數(shù)據(jù)。讀到數(shù)據(jù)后,先解析是以太網(wǎng)的格式還是其他物理設(shè)備的格式。 以太網(wǎng) 的首部是14個字節(jié)(目的MAC是自己網(wǎng)卡的,報文才允許接收, 廣播報文也默認會接收)

內(nèi)核線程調(diào)ethernet_input函數(shù)處理,如果是IP報文,則調(diào) ip_input函數(shù),進行IP首部報文正確性檢查,如果目的IP地址屬于自己某個網(wǎng)卡的,則是屬于自己設(shè)備的報文,如果不是,要轉(zhuǎn)給其他設(shè)備(類似于路由器)(實際情況,判斷報文是不是自己設(shè)備,不是根據(jù)IP地址,而是根據(jù)路由表,后續(xù)再講)

IP_input 檢查報文中的 8位協(xié)議號 信息,如果是TCP 就調(diào)tcp_input函數(shù)處理,如果是udp,則調(diào)udp_input函數(shù)處理,如果是ping報文(準(zhǔn)備叫法是icmp),則調(diào)icmp_input函數(shù)處理。

最后tcp_input或者udp_input講報文入了tcp或者udp的數(shù)據(jù)隊列中,等程序員寫的socket程序 調(diào)recv或者recvfrom函數(shù)把數(shù)據(jù)讀走,繼續(xù)用于自己的數(shù)據(jù)解析,如,如果是HTTP報文,則進行http報文解析處理。

2.1.2 Ping 的原理說明

Ping 是一個應(yīng)用程序,是通過socket 編程實現(xiàn)的, 通過創(chuàng)建一個raw socket。

socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp)

通過代碼 構(gòu)造IP首部、ICMP首部,將報文發(fā)送出去。

ICMP 請求 報文 8位類型和8位代碼是8和0

而ping的應(yīng)答報文 的type code是0和0

舉例 PC1 192.168.2.1 執(zhí)行ping 的應(yīng)用程序,發(fā)送報文給 PC3 192.168.2.3

而實際上PC3 192.168.2.3上是沒有啟動應(yīng)用程序的,但是結(jié)果能ping 通? 原因是?

PC3 中 操作系統(tǒng)的內(nèi)核收到ICMP 請求報文后, 直接進行了ICMP應(yīng)答,即這個報文不會到達應(yīng)用程序(因為不需要?只需要知道這個IP地址真實存在就OK了) ,但是這個應(yīng)答報文需要 送給PC1 的應(yīng)用程序? 為什么? 因為ping 是應(yīng)用程序發(fā)送出來的,那么應(yīng)用程序必然需要知道到底是成功還是失敗或者超時了。

2.1.3 Wireshark抓取 www.huawei.com 的報文

打開 wireshark ,選擇真實的物理網(wǎng)卡

鼠標(biāo)選擇報文某個字段, 右鍵 選擇 apply as filter

可以選擇性報文,

同時也可以 && tcp 或者&& http 選擇報文類型抓包

2.1.4 上網(wǎng)的完整原理

1. 寬帶辦理

家庭A和家庭B 屬于一個小區(qū)的兩家用戶 ,分別辦理了寬帶。

家庭A的路由器和家庭B的路由器 通電后,會發(fā)送廣播報文(這個時候還沒有IP地址) 發(fā)送給電信的交換機(交換機轉(zhuǎn)給電信路由器) ,電信路由器對 家庭A/B路由器響應(yīng), 家庭A/B 將用戶名和密碼填寫到報文里面, 電信路由器收到報文后,根據(jù)密碼進行判斷,如果在自己的用戶名列表且密碼正確,則給每家分配一個IP地址,IP地址是201.1.1.10和201.1.1.20 ,同時在報文里面將DNS服務(wù)器 114.114.114.11的地址帶給A/B

結(jié)合實際家里的路由器舉例:

在瀏覽器輸入192.168.1.1 可以查看自己家路由器的信息

10.68.166.75 就是電信路由器給家庭分配的IP地址;

10.64.0.10 和10.64.0.100 是電信路由器在分配IP地址的過程中攜帶回來的DNS服務(wù)器IP, 相當(dāng)于組網(wǎng)圖中的114.114.114.114

2. 手機和電腦的IP地址從哪里來的?

手機和電腦的IP的地址是從自己的路由器分配的(當(dāng)然也可以手動配置IP地址,但是管理起來比較復(fù)雜),采用的是DHCP 自動分配IP地址。 比如,查看自己的電腦

點 開始 --à運行

輸入 ipconfig /all

備注: 通常情況下 自己家路由器的DNS server 也是192.168.1.1 ,這里的114.114.114.114是我修改的,有時候網(wǎng)頁訪問出現(xiàn)問題,和DNS 有關(guān)。

手機和電腦開機后,通過DHCP協(xié)議(后續(xù)再講)從家庭路由器 192.168.1.1 中獲取IP地址和DNS服務(wù)器的IP地址,得到192.168.1.10/192.168.1.20,并得到DNS 服務(wù)器192.168.1.1

3. DNS獲取

手機 開始上網(wǎng) 瀏覽器輸入www.google.com

互聯(lián)網(wǎng)訪問時基于IP地址的,這個時候需要獲取www.google.com對應(yīng)的真實IP地址。

手機檢查本地系統(tǒng)DNS緩存有沒有g(shù)oogle的歷史記錄,如果沒有,就向 自己的家庭路由器 192.168.1.1 這個IP地址發(fā)送DNS 請求查詢(請告訴我 google的IP) , 家庭路由器 看看自己的DNS緩存有沒有,如果沒有,就向電信的DNS服務(wù)器 114.114.114.114 查詢(請告訴我 google的IP), 如果電信DNS也沒有,即向國際頂級DNS 服務(wù)器8.8.8.8(備注: 8.8.8.8實際是google的DNS服務(wù)器,這里只是舉例), 只要開通了DNS注冊,交錢的國際企業(yè)在 頂級域名是有記錄的(除非只在某個范圍內(nèi)生效)。 最終手機就可以獲取到www.google.com IP地址是圖中9.9.9.20。

那么手機就可以將 192.168.1.1 發(fā)給 9.9.9.20 的http報文發(fā)送出去。

4 .報文通過路由器轉(zhuǎn)發(fā)

手機 訪問 9.9.9.20(google)的http報文 ,

手機 à 家庭路由器

源IP地址是192.168.1.10 ,目的IP地址是9.9.9.20 ; 這里有個問題: 別人家也有一個192.168.1.10,那么google的服務(wù)器怎么知道是誰家的 192.168.1.10?

數(shù)據(jù)在互聯(lián)網(wǎng)上傳輸,肯定是需要一個唯一的IP地址,那么對每家來說,唯一的IP地址是電信分配的。也就是說,每家只能用自己的IP地址作為源IP地址。

那么我家里有多臺手機和電腦,怎么辦?

手機1 192.168.1.10: 789 à 9.9.9.20: 80 被家庭路由器SNAT 成 201.1.1.10: 123à 9.9.9.20: 80

電腦1 192.168.1.20: 678 à 9.9.9.20: 80被家庭路由器SNAT 成 201.1.1.10: 124à 9.9.9.20: 80

也就是說,數(shù)據(jù)出了自己的路由器,整個過程源IP地址、目的IP地址、源端口號、目的端口號都是不變的,直到到達google, google返程 分別回給201.1.1.10:123和201.1.1.20:124

數(shù)據(jù)到達家庭路由器后,重新把目的IP地址換回192.168.1.10和192.168.1.20。最終完成數(shù)據(jù)的傳輸過程。

3 TCPIP學(xué)習(xí)

3.1 ARP學(xué)習(xí)基礎(chǔ)3.1.1 ARP報文

以太網(wǎng)是根據(jù)MAC地址識別的。

PC1 學(xué)習(xí)到了PC3 的MAC地址,才可以發(fā)送報文,否則無法ping通,比如把 PC3移除。

192.168.2.1 向 192.168.2.3 發(fā)送 ARP報文,根據(jù)ARP的報文格式

類型 0x0800表示 ARP報文 。

發(fā)送ARP請求,只知道 自己的MAC地址,自己的IP地址, 對方的IP地址,但是不知道對方的MAC地址。 相當(dāng)于 我要找人,這個人在我視線范圍,但是我不認識他。那么我喊一下(廣播),讓所有的人都能聽到。 目的MAC地址填 ff-ff-ff-ff-ff-ff 。

所有收到的人 判斷一下是不是自己的IP地址,如果是自己的IP地址,那么就單播應(yīng)答一下。

這樣一來,雙方都能知道對方的MAC地址。 記錄到內(nèi)存里面。因為下一個使用的時候不需要重新發(fā)送報文,提高效率。 但是如果一直不再給對方發(fā)送數(shù)據(jù),也不知道對方還在不再。那么又存在浪費內(nèi)存的情況。最好的方式是設(shè)置一個超時時間,默認20分鐘。 如果20分鐘到了,再重新發(fā)送一次,如果能學(xué)習(xí)到,說明還在,繼續(xù)保留這個表象。

在Windows7上 運行 開始 cmd 輸入 arp –a 可以觀察到這個表項

3.1.2Hub和交換機的區(qū)別

Hub組網(wǎng), PC1 ping PC3 ,在 PC2上可以抓到所有報文

但是把HUB換成交換機, PC1 ping PC3, 在PC2上只能抓到ARP請求報文(確切說是廣播報文)

為什么?

3.1.3 路由器組網(wǎng)下的ARP學(xué)習(xí)

組網(wǎng)如圖,啟動三個設(shè)備

雙擊 路由器

給路由器配置IP地址

<Huawei>sys

[Huawei]interface Ethernet 0/0/0

[Huawei-Ethernet0/0/0]ip address 192.168.1.1 24

[Huawei-Ethernet0/0/0]q

[Huawei]interface ethernet0/0/1

[Huawei-Ethernet0/0/1]ip address 192.168.2.1 24

在PC1 192.168.1.10 上ping PC2 192.168.2.20

如果沒有路由器, PC1和PC2是不同網(wǎng)段, 是ping 不通的。如果換成交換機或者HUB,也是ping 不通的。 跨網(wǎng)段必須需要一個路由器來轉(zhuǎn)發(fā)(備注:這里的交換機指二層交換機,三層交換機具備路由器的特征,可以三層轉(zhuǎn)發(fā); 二層表示是同一個網(wǎng)段)

觀察,為什么PC1 沒有PC2的MAC地址? 而只有路由器192.168.1.1的MAC地址?

3.2 觀察windows 上的路由表3.3路由的選路過程

3.4 DHCP 的過程3.3 TCP的報文交互

4 socket編程(python)

Server.py



Client.py


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ping的詳細過程
為何直連的路由器Ping不通對方?
Ping過程 原理 詳解(圖)
TCP/IP試題庫1
TCP/IP詳解學(xué)習(xí)筆記 這位仁兄寫得太好了
怎么設(shè)置路由器才能防止網(wǎng)絡(luò)掉線
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服