##計算機網絡(tcpip)面試筆試考研應用實踐

https://note.youdao.com/share... 含圖解html


看到擁塞控制和差錯控制。c++

資料面試

計算機網絡(謝希仁)第五版課件.ppt ,章節一層沒有目錄,可做爲以上資料的輔助資料。
再看不懂就作題輔助理解和記憶。
       牛客網上沒有答案的題目能夠:
    http://www.ppkao.com/   搜索題目的答案和解析
    
    不在面經裏的題目屬於超綱 沒必要看

文本資料(考研書、知乎)
天勤計算機網絡高分筆記(偏口語化,適合轉專業和跟面試官聊天)
王道計算機網絡高分筆記 適合本專業
計算機網絡高分筆記 - 掃描版.pdf
18.6MB
第一章非掃描版:
計算機網絡高分筆記(打印版) - 第一章.pdf
2.7MB
計算機網絡面試(tcpip)筆試必考與實踐總結算法

https://www.nowcoder.com/disc... 計算機網絡部分的面試常考點 牛客網編程

怎麼寫教學PPT:
主要內容
學習目標:瞭解 理解 掌握segmentfault

考試技巧 -感悟:以此次複習《TCPIP網絡編程技術.pdf》爲例大部分都不是重點能夠粗略帶過,一章裏主要有那麼幾句話是重點。 這個結合別人的考試重點能夠看出來,再進一步的看先後PPT來理解這些考點。centos

經過教材 再把本身積累的一些其餘應用知識串起來。瀏覽器

單獨看PPT中的某一段看不懂,必須從頭至尾聯起來看,反覆推敲。緩存

仍是由於計算機網絡的理論學得不夠紮實,網友的筆記沒法辨別它們本身理解錯的地方。
因此命令使用理解起來費勁。安全

本文檔使用說明
一、從每小節(##標誌)下的次級小標題中能夠知道《TCPIP網絡編程技術.pdf》(附連接)必定有的內容,進而能夠決定是否須要打開《TCPIP網絡編程技術.pdf》進行進一步查閱。
二、第1章到第N章/每小節(##標誌)下的/ 次級小標題下 /列出的內容 /爲筆試面試必考。
三、第2章IP地址的實踐筆記(內網IP、公網IP)後
arp、ping(基於ICMP)命令的實踐筆記,補充:《計算機網絡學習筆記1-網絡命令詳解ping、arp、ipconfig、tracert、route詳解https://segmentfault.com/a/11...
四、第7章套接字編程後有 Java TCP/IP Socket編程

網絡體系結構、OSI分層、TCPIP協議簇 。 第一章 計算機網絡基礎

一、網絡體系結構的關鍵要素是協議和拓撲結構。
五、網絡應用程序通常是以客戶機/服務器模型( Client/Server, C/S)工做。
四、瞭解其與OSI參考模型之間的關係。

網絡層也稱IP層。
二、OSI分層 (7層):物理層、數據鏈路層、網絡層(也稱IP層)、傳輸層、會話層、表示層、應用層。
三、掌握TCP/IP協議族的結構,理解其工做原理。
TCP/IP(協議簇)(4層):網絡接口層、 網際層、運輸層、 應用層。
TCP/IP(協議簇)五層協議 (5層):物理層、數據鏈路層、網絡層、運輸層、 應用層。
每一層的做用以下:
物理層:經過媒介傳輸比特,肯定機械及電氣規範(比特Bit)
數據鏈路層:將比特組裝成幀,提供相鄰兩個端點之間的(相鄰的點到點,點不僅是是主機,還包括其餘設備)(幀Frame)
網絡層:它在數據鏈路層提供的兩個相鄰端點之間的數據幀的傳送功能上,將數據組裝成包,將包設法從信源通過若干個中間節點傳送到目的設備(信宿)上,點到點通訊。(包PackeT)
傳輸層:提供的就是應用程序間的通訊。提供端到端(端指的是端口)的可靠報文傳遞和錯誤恢復(段Segment)
會話層:創建、管理和終止會話(會話協議數據單元SPDU)
表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU)
應用層:提供一組經常使用的應用程序。容許訪問OSI環境的手段(應用協議數據單元APDU)

以上可能有錯。
封裝複用思想。 下層向上層提供服務,上層封裝下層的數據結構

各層之間如何相互做用(數據傳輸從應用層到鏈路層有哪些變化)?

在瀏覽器中輸入www.baidu.com後執行的所有過程
主要是分析TCP/IP各協議層的變化。
一、從應用層到傳輸層到網絡層: 客戶端瀏覽器 經過DNS 解析到www.baidu.com的IP地址220.181.27.48,經過這個IP地址找到客戶端到服務器220.161.27.48的路徑。客戶端瀏覽器發起一個HTTP會話到220.161.27.48 服務器,而後經過TCP進行封裝數據包,輸入到網絡層。
二、在客戶端的傳輸層發送報文段Segment,把HTTP會話請求分紅報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。而後使用IP層的IP地址查找目的端。
三、網絡層發送包Packet,客戶端的網絡層不用關心應用層或者傳輸層的東西,主要作的是經過查找路由表肯定如何到達服務器的路徑,期間可能通過多個路由器。
四、客戶端的鏈路層,包經過鏈路層發送到路由器,經過鄰居協議查找給定IP地址的MAC地址,而後發送ARP請求查找目的地址,若是獲得迴應後就可使用ARP的請求應答交換的IP數據包如今就能夠傳輸了,而後發送IP數據包到達服務器的地址。 (感受有錯)
先這樣記吧,不過 ARP、RARP、IP、ICMP都是網際層的協議。
更多答案:https://www.nowcoder.com/ta/review-network/review?tpId=33&tqId=21195&query=&asc=true&order=&page=7

1八、計算機網絡中不一樣層有用到哪些協議?

物理層:物理層定義的是規範,不能說是協議,規範有:RJ4五、EIA/TIA(機構名) RS-23二、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 數據的壓縮 和編碼
應用層:超文本傳輸協議( HTTP),簡單網絡管理協議( SNMP),文件傳輸協議( FTP),簡單郵件傳輸協議( SMTP),域名系統( DNS),遠程登陸協議( Telnet)

第2章 IP地址

一、掌握IPv4地址的分類和尋址規則。
IP地址的分類(IPv4地址分爲A、B、C、D、E五類,出去特殊做用的D、E兩類,剩下的A、B、C三類地址是咱們常見的IP地址段。)(具體見PPT)
A類地址:以0開頭, 第一個字節範圍:0~127(1.0.0.0 - 126.255.255.255);
B類地址:以10開頭, 第一個字節範圍:128~191(128.0.0.0 - 191.255.255.255);
C類地址:以110開頭, 第一個字節範圍:192~223(192.0.0.0 - 223.255.255.255);
二、IPv4地址的【實踐】經驗補充,內網IP、公網IP:

A類地址的容量最大,能夠容納16777214個主機,B類地址能夠容納65534個主機,C類地址能夠容納254個主機。 在這三類地址中,絕大多數的IP地址都是公有地址(=外網IP=外部IP),須要向國際互聯網信息中心申請註冊。可是在IPv4地址協議中預留了3個IP地址段,做爲私有地址(保留地址=內網IP=內部IP),供組織機構內部使用。 這三個地址段分別位於A、B、C三類地址內: 
A類地址:10.0.0.0–10.255.255.255 
    B類地址:172.16.0.0–172.31.255.255 
    C類地址:192.168.0.0–192.168.255.255 
因此局域網在選取使用私有地址時,通常會按照實際須要容納的主機數來選擇私有地址段。常見的局域網因爲容量小,通常選擇C類的192.168.0.0做爲地址段使用,因此大多數局域網選擇192.168.0.0/24或者192.168.1.0/24做爲本身的IP地址段 ,一些大型企業就須要使用B類甚至A類地址段做爲內部網絡的地址段。 
公網地址不一樣,內網IP可能同樣。
利用 curl ifconfig.me 查詢外部IP、查詢外網IP。
最後須要補充說明的是,因爲NAT和子網掩碼的存在,實際在使用中,一個C類大小的局域網也能夠選擇A類的10.0.0.0網段做爲本身的IP地址段。大多數局域網之因此仍然選擇192.168.0.0/24或者192.168.1.0/24做爲本身的IP地址段,更多的是由於約定成俗或者說網管我的習慣的關係。

子網局域網的廣播地址一般以255結尾

三、子網、超網,進而掌握掩碼的概念及其配置方法。

IP地址 = 網絡地址 + 主機地址。

IP地址與子網掩碼相與獲得子網地址

四、地址解析的概念,ARP和RARP(反向地址解析協議),瞭解它們的數據報格式,瞭解代理ARP的
概念。

ARP是地址解析協議是根據給定的IP地址獲取對應的物理地址,簡單語言解釋一下工做原理。

主機A將詢問「ip對應的mac地址是多少」廣播到網絡內,正確的主機單播返回結果。廣播發送ARP請求,單播發送ARP響應。
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查詢失敗。
廣播發送ARP請求,單播發送ARP響應。
五、 【實踐筆記】arp命令的應用

經常使用參數

-a 用於查看全部網絡接口緩存(本身的ARP緩衝區中創建一個ARP列表)中的項目。本地局域網中的全部已經加入緩存的與本機通訊的計算機IP地址。包括IP地址mac地址和類型 例:c:>arp -a

-a ip 用於查看指定目的ip緩存中的項目。例:c:>arp -a 160.219.0.3
-d 用於清除全部網絡接口的arp緩存。例:c:>arp -d
-d ip 用於清除指定目的IP的arp緩存。例:c:>arp -d 160.219.0.3
-s 增長一條靜態arp項。例:c:>arp -s 157.55.85.212 00-aa-00-62-c6-09
以上僅爲arp命令的經常使用參數更多參數能夠輸入apr /?查看

意思是每次A機使用ping命令ping一個IP, 這個IP和對應的mac就會加入到A機的ARP緩存表中。**

第3章 網際協議(Internet Protocol,IP)

第3章 網際協議.pptx
1.09MB
•理解IP的概念、做用以及在TCP/IP協議族中的位置。

網際協議( Internet Protocol, IP)做爲TCP/IP協議族中的核心協議,提供了網絡數據傳送的最基本服務,同時也是實現網絡互連的基本協議。特色:點對點(這裏的點是主機、手機登終端的意思),不可靠,無鏈接。
無鏈接, 不會一直鏈接。

•掌握IP數據報格式的構成,瞭解IP數據報選項的做用。

IP數據報分片與重組
•熟悉IPv6的地址結構、數據報格式以及從IPv4過渡到IPv6的經常使用方法。
•理解移動IP的工做原理,熟悉與移動IP相關的重要概念。

第4章 網際控制報文協議(ICMP)

一、理解ICMP的概念和做用。

由上一章可知,網際協議IP是一種不可靠的,無鏈接的數據報傳輸協議,提供了一種盡力而爲的點到點數據傳輸服務,但

不能保證全部數據報均可以成功地從信源到達信宿(不可靠)。爲此人們在網絡層(也稱爲IP層)引入了另一種協議——網際控制報文協議( InternetControl Message Protocol, ICMP)ICMP是IP的補充,用於IP層的差錯報告、擁塞控制、路徑控制以及路由器或主機信息的獲取。
二、掌握ICMP報文的格式和各類報文類型的做用。

ICMP報文分爲兩大類,即ICMP差錯報告報文和ICMP查詢報告報文。

三、瞭解ICMP報文的封裝過程。
四、實例分析
五、Ping實用程序(實踐)
ping 命令後,返回各參數的意義?

Ping程序用來測試兩臺主機之間在IP層(網絡層)是否聯通的工具。它使用ICMP迴應請求和迴應應答報告來測試信宿是否可達。基本語法 ping 目標IP地址 。
一、「ping一下某機器,看是否是開着」
個人理解:約等於查看某個ip的機子是否是在線(非關機且連入局域網狀態),固然也有其餘緣由致使它ping不通:防火牆因素。另外有些服務器爲了防止經過ping探測到,經過防火牆設置了禁止ping或者在內核參數中禁止ping,這樣就不能經過ping肯定該主機是否還處於開啓狀態。

防火牆技術

centos/RH 6.x  對應的防火牆技術:
service iptable status
centos/RH 7.x 對應的防火牆技術:
firewall-cmd --state
:

你知道咱們二部的服務器用的是iptables仍是farewell嗎
:
咱們服務器通常都沒配防火牆吧
:
外網那臺 我不知道
我:
我說我怎麼按常規方法啥也查不到

二、不能打開網頁時會說「你先ping網關地址192.168.1.1試試」。

常見路由器的網關默認 IP 都是 192.168.1.1。

三、不能ping通本機ip地址 127.0.0.1 說明了什麼?

測試Windows主機IP軟件安裝是否正確,使用Ping 127.0.0.1。

四、ping廣播地址

查看網段內在線的ip。

五、怎麼ping外網?

ping www.baidu.com

因此使用用ping命令檢測網絡故障的典型次序爲:
① ping 127.0.0.1:該命令被送到本地計算機而不會離開本機,若是沒有收到應答包,就表示TCP/IP的安裝或運行存在某些最基本的問題。
② ping 本機IP:該命令多用於手工配置IP地址的局域網用戶,用戶計算機始終都應該對該命令作出應答,若是沒有收到應答,局域網用戶應斷開網絡電纜,而後從新發送此命令,若是運行正確,則有多是網絡中有另外一臺計算機配置了相同的IP地址。若仍然有錯,則表示本地配置或安裝有問題。
③ ping 局域網內其它IP:該命令離開用戶計算機,通過網卡和網絡電纜到達其餘計算機,再返回。收到應答代表本地網絡的網卡和載體運行正確。若沒有收到應答,則多是子網掩碼錯誤、網卡配置錯誤、或網絡電纜不通。
同一個局域網內其它ip均可以被ping通嗎?
④ ping 網關IP:若錯誤,表示網關地址錯、或網關未啓動,或到網關的線路不通。 常見路由器的網關默認 IP 都是192.168.1.1。
怎樣查看本身的網關?
⑤ ping 遠程IP:若收到應答,表示網關運行正常,能夠成功訪問Internet。
⑥ ping localhost:localhost是127.0.0.1的別名,是操做系統的網絡保留名,系統應該可以將該名字轉換成該地址。若是有問題,則表示主機文件(/Windows/host)中存在問題。
⑦ ping 域名:執行此命令時,計算機會先將域名轉換爲IP地址,通常是經過DNS服務器。若是有問題,則可能DNS服務器地址配置錯誤或DNS服務器故障。該功能還可用於查看域名對應的IP地址。
若是以上全部ping命令都能正常運行,一般說明用戶計算機進行本地和遠程通訊的功能基本具有。
特別說明:ping不成功不意味着網絡必定有問題,有些路由器和防火牆設置了過濾ping數據包的功能,所以當收不到返回包時,不必定說明網絡有錯。一樣,ping命令的成功也不表示全部的網絡配置都沒有問題,例如,某些子網掩碼錯誤就可能沒法用這些方法檢測到。

TCPIP網絡編程技術.pdf 第五章 IP路由 導讀

一、理解IP路由的概念和路由表做用

經過路由器將數據從一個網絡傳輸到另外一個網絡稱之爲路由。


信息從信源向信宿(目的地)傳輸,信源和信宿分別在不一樣網絡時,信息須要通過一些中間環節(間接傳遞)才能傳遞到信宿的過程,這些中間環節通常是由一系列路由器組成。路由器放置在網絡與網絡之間。

二、路由選擇算法
距離向量路由算法考試例題(P101 、P102):

(b)度量值:A到信宿的距離
鏈路狀態路由算法考試例題(P108):

三、路由選擇協議

爲了簡化路由,因特網將整個互聯網劃分爲若干相互獨立部分的集合。這些獨立部分的集合經過統一的路由策略或路由協議相互交換信息,造成一個相對獨立的網絡,稱之爲自治系統( Autonomous System, AS)= 路由選擇域,自治系統內部路由選擇又稱爲域內路由選擇,而自治系統之間的路由選擇又稱爲域間路由選擇。

(1)內部網關協議IGP(Interior Gateway Protocol),即在一個自治系統內部使用的路由選擇協議(域內路由選擇協議)。有:

a、路由信息協議(Routing Information Protocol,RIP)是基於距離向量路由算法( Bellman-Ford算法)。
    b、開放最短路徑優先協議 (Open Shortest Path First, OSPF) 是基於鏈路狀態路由選擇算法( Dijkstra算法)( Shortest Path First,SPF)。

(2)外部網關協議EGP(External Gateway Protocol),即自治系統之間使用的路由選擇協議(=域間路由選擇協議)。

P148 邊界網關協議( BGP)是域間路由選擇協議,經過自治系統邊界路由器在自治系統之間交換路由信息,同時確保無環路。

四、補充:網關

網關:局域網內 轉發數據任務 的承擔者。       

對於普通用戶而言, 一般局域網的網關(計算機的默認網關地址) = 路由器的IP = 路由器LAN接口的IP = 路由器的管理頁面登錄地址

當你所在的局域網的計算機須要和其它局域網中的計算機,或者須要訪問互聯網的時候,你所在局域網的計算機會先把數據包傳輸到網關(路由器的LAN接口),而後再由網關進行轉發。
這就是爲何咱們在有路由器上網的時候,必需要把計算機中的默認網關地址設置成路由器LAN接口的地址的緣由,由於路由器的LAN接口就是你所在網絡的網關,你的電腦要上網,數據包必需要通過網關轉發出去。目前家用路由器通常使用192.168.1.1和192.168.0.1做爲LAN接口的地址,這兩個地址也是最多見的網關地址。

下面總結的不夠好 還需直接上網查

網關的英文名稱:gateway,又叫作網間鏈接器、協議轉換器。網關是在採用不一樣體系結構或協議的網絡之間進行互通時,用於提供協議轉換、路由選擇、數據交換等網絡兼容功能的設施。
網關在傳輸層上以實現網絡互連,是最複雜的網絡互連設備,僅用於兩個高層協議不一樣的網絡互連。網關既能夠用於廣域網互連,也能夠用於局域網互連。 網關是一種充當轉換重任的計算機系統或設備。在使用不一樣的通訊協議、數據格式或語言,甚至體系結構徹底不一樣的兩種系統之間,網關是一個翻譯器。與網橋只是簡單地傳達信息不一樣,網關對收到的信息要從新打包,以適應目的系統的需求。同時,網關也能夠提供過濾和安全功能。大多數網關運行在OSI 7層協議的頂層--應用層。
【說明:因爲歷史的緣由,許多有關TCP/IP的文獻曾經把網絡層使用的路由器稱爲網關,在今天不少局域網採用都是路由來接入網絡,所以一般指的網關就是路由器的IP!】

五、route命令的使用

路由選擇負責在網絡中選擇一段最優先的路徑將數據傳輸到目的網絡,路由選擇的基礎和依據是路由表,路由表由目的網絡ID、子網掩碼、網關、接口和計費組成,經過route print可查看計算機的路由表。

路由表規則怎麼起做用的我忘了
IPv4 Route Table
  ===========================================================================
  Interface List
  0x1 ........................... MS TCP Loopback interface
  0x10003 ...00 03 ff 25 88 8c ...... Intel 21140-Based PCI Fast Ethernet Adapter
  (Generic)
  ===========================================================================
  ===========================================================================
  Active Routes:
  Network Destination Netmask Gateway Interface Metric
  0.0.0.0 0.0.0.0 172.16.11.1 172.16.11.30 20
  127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
  172.16.11.0 255.255.255.0 172.16.11.30 172.16.11.30 20
  172.16.11.30 255.255.255.255 127.0.0.1 127.0.0.1 20
  172.16.255.255 255.255.255.255 172.16.11.30 172.16.11.30 20
  224.0.0.0 240.0.0.0 172.16.11.30 172.16.11.30 20
  255.255.255.255 255.255.255.255 172.16.11.30 172.16.11.30 1
  Default Gateway: 172.16.11.1
  ===========================================================================
  Persistent Routes:
  None
路由表中每個路由表項(或路由)都由五個字段組成:
  網絡目標地址(Network Destination):表明某個可能的目的地址,它是一個IP地址或子網,即表示IP數據包被轉發到何處的地址。好理解
  掩碼(Netmask):一個用於將某數據包中的IP地址中的目標地址字段與上面可能的網絡地址匹配起來的位模式。好理解,和目標地址配合使用
  網關(Gateway):下一跳的IP地址,數據包必須被轉發到此,才能到達特定的目的網絡。
  接口(Interface):下一跳的接口,這個接口必須用於將數據包進行轉發,以達到特定的目的網絡。
  跳數(metric):表示到達目的的過程當中通過了多少跳數(路由器數),即路由的成本。
有了網關及目標地址還要接口作什麼?
示例一:目標主機在本地子網上
  假設這個服務器(172.16.11.30)要將數據包發往同一子網內的另外一臺主機(IP地址爲172.16.11.80)。那麼這個數據包的源地址爲172.16.11.30,目標地址爲172.16.11.80。下面咱們將展現Windows是如何用其路由表來決定選擇使用哪條路由的:
  一、 Windows首先依次從路由表中取出每個路由,並將數據包的目標地址(172.16.11.80)與選中路由的掩碼執行邏輯「與」運算。下面展現結果,這裏,路由表中的每個路由是經過其網絡目的地址肯定的:
Route Netmask 172.16.11.80 AND Netmask
0.0.0.0 0.0.0.0 0.0.0.0
127.0.0.0 255.0.0.0 172.0.0.0
172.16.11.0 255.255.255.0 172.16.11.0
172.16.11.30 255.255.255.255 172.16.11.80
172.16.255.255 255.255.255.255 172.16.11.80
224.0.0.0 224.0.0.0 160.0.0.0
255.255.255.255 255.255.255.255 172.16.11.80
二、對每個路由來講,這個「與」運算的結果要與路由的網絡目標地址比較,兩者的一次匹配意味着這條路由可用於將數據包轉發到其目標地址。若是發現不僅有一個匹配,Windows就會選用擁有最長匹配的路由(即1的位數最高的路由)。若是這並無產生惟一的路由,Windows就職意地選用一個做爲路由。從上面的列表中,這個「與」運算的結果致使了兩個匹配(路由1和3),所以Windows選擇了擁有最長匹配的路由,即第三行的那個。其結果是Windows知道了使用哪一個路由將數據包傳送到目的地。下面是這條路由在服務器的路由表中看起來的樣子:
  Network Destination Netmask   Gateway  Interface Metric
  172.16.11.0 255.255.255.0 172.16.11.30   172.16.11.30 20
  三、 Windows如今要使用下面的算法來決定下一步作什麼:
  a) 若是路由的網關字段與服務器上的一個網絡接口的地址相匹配(或者若是網關是空的話),那麼Windows就會用在路由中指定的接口將數據包直接發送到目標地址。
  b) 若是路由的網關字段並不與服務器上網絡接口的任意地址相匹配,Windows將會把數據包轉發給路由中的網關字段的地址。
  很明顯,這裏符合條件a,路由的網關字段(172.16.11.30)即爲分配給服務器單個網卡的地址。Windows所以會做出決定認爲目標地址位於本地子網上,這也就是說Windows不須要將數據包發送到任何路由器,而是直接發送給其目的地址。在此例中,Windows使用服務器的172.16.11.30的網絡接口,簡單地將數據包發送給172.16.11.80,接收主機獲得了數據包。
示例二:目標主機在遠程子網上
  如今,讓咱們繼續一樣的過程,不過此次咱們假定服務器想把數據包發往一個不一樣子網上的一臺主機(IP地址爲172.16.10.200)。換句話說,數據包的源地址爲172.16.11.30,目標地址爲172.16.10.200。下面咱們看一下Windows是如何利用路由表決定選擇哪條路由的: 網管網bitsCN_com
  一、Windows從路由表中取出每一條路由,將數據包的目標地址(172.16.10.200)與路由中的掩碼進行「與」 運算。運算結果以下:

Route           Netmask                  172.16.10.200 AND Netmask
0.0.0.0         0.0.0.0                   0.0.0.0
127.0.0.0       255.0.0.0                 172.0.0.0 
172.16.11.0     255.255.255.0             172.16.10.0
172.16.11.30    255.255.255.255           172.16.10.200 
172.16.255.255  255.255.255.255           172.16.10.200
224.0.0.0       224.0.0.0                 160.0.0.0 
255.255.255.255 255.255.255.255           172.16.10.200

二、對於每一條路由來講,「與」運算的結果要與路由中網絡目標地址相比較,兩者匹配意味着這條路由可被用於將數據包轉發到其目標地址。從咱們上面的第二張路由表,你能夠看出此次只有一個匹配,也就是說是第一行,這個路由的網絡目地字段(0.0.0.0)與「與」運算的結果匹配。所以Windows用來將數據包轉發到其目標地址的路由即爲下面的路由:
  Network Destination    Netmask     Gateway     Interface Metric
  0.0.0.0           0.0.0.0    172.16.11.1   172.16.11.30 20
  3. 而後Windows就會使用前述的算法來決定下一步作什麼,此次符合條件b,由於路由的網關字段(172.16.11.1)與分配給服務器的單獨網卡的地址(172.16.11.30)並不匹配。Windows所以會決定目標地址位於一個遠程子網上,將數據包轉發給路由器,路由器經過繼續轉發數據包將其傳送到目的地。在此例中,Windows使用服務器的172.16.11.30網絡接口,將數據包發送到在網關字段中所顯示的地址。一旦位於172.16.11.1的路由器收到了數據包,它會決定下一步須要採起什麼步驟,才能將數據包轉發到其最後的目標地址172.16.10.200,而這又依賴於172.16.11.10/24網絡是172.16.11.11/24(由單個路由器鏈接)或一個遠程網絡的鄰近子網(由幾個中間網絡之間的路由器鏈接)。

第6章 傳輸層協議(端到端通訊) 必殺技面試的重點

滑動窗口的題目牛客網上沒有答案,高分筆記裏只有很簡單的一部分流量控制的介紹,沒有涉及到滑動窗口。
擁塞控制的題目都搞懂了。

理解端到端通訊的概念。

端口

TCP=面向鏈接=單播,不能多播,廣播=面向字節流 全雙工(通訊雙方可同時進行發送和接收數據)

• 瞭解UDP報文傳輸服務的特色、報文形式和封
裝形式。
• 瞭解TCP格式的主要字段及其含義和功能。

源端和目的端的端口號:每一個TCP報文段都包括,用於標識發送端和接收端的應用進程。
序列號:用來標識從TCP發送端向接收端發送的數據字節流,它表示在這個報文段中的第一個數據字節序號。
確認號:指指望接收的下一個報文段的第一個字節的序列號,也就是指望接收對方的下一個報文段首部的序列號字段的值。同時,確認號也代表在確認號以前的全部數據接收方都已經收到。
首部長度字段:佔4位,用來標識TCP報文段首部的長度共有多少個32位字塊構成,所以首部的長度必定是32位的整數倍。
保留字段:目前未用,供未來使用。
控制字段:用於TCP的流量控制、鏈接的創建和終止以及表示數據的傳送方式等。各位的具體含義以下:
緊急 URG:當該位爲1時,代表緊急指針有效,不然無效。
確認 ACK:當該位爲1時,代表確認序號有效,即該報文段是一個確認報文段,不然無效。
PSH(PuSH):其值爲1時表示接收方應儘快將這個報文段交給應用層處理。
復位 RST(ReSet):重建鏈接標誌。
同步 SYN:同步序號標誌,其值爲1時用來發起一個鏈接。
終止 FIN:其值爲1時表示發送端完成發送任務。
窗口大小:用來配合TCP中的流量控制算法實現流量控制,該字段的值用來定義通訊對方必須維持的以字節爲單位的窗口值,以實現對對方發送數據量的控制。
校驗和: 用來校驗整個TCP報文段的全部數據的正確性,包括TCP首部和數據。爲了校驗TCP數據報是否正確地傳遞到了信宿機,在計算校驗和時引入了僞首部的概念,其包括信源機IP地址和信宿機IP地址。

• 掌握TCP鏈接的創建與關閉過程,TCP鏈接(服務器/客戶機模式)管理包括創建時的三次握手和關閉時的四次握手

滑動窗口機制的工做原理和擁塞控制機制。

TCP流量控制

通常說來,咱們老是但願數據傳輸得更快一些。但若是發送方把數據發送得過快,接收方就可能來不及接收,這就會形成數據的丟失。流量控制(flow control)就是讓發送方的發送速率不要太快,既要讓接收方來得及接收,也不要使網絡發生擁塞。
緩存思想:

流量控制的緩存方案.vsdx
62.49KB

兩種極端狀況:發送方每發送一個字節都要等待接收方確認,通訊效率低; 發送方不關心接收方是否確認,不斷髮送數據,從而可能形成接收方緩衝區溢出,丟失數據。經過流量控制來定義發送方在收到接收方的確認報文以前。

這個緩存是一個窗口的形式。

能夠看出接收方B在發送指令告訴發送方A ,A可以傳輸什麼範圍內的數據,已達到控制的目的。

能夠發送的數據量。
(1)滑動窗口是實現流量控制的關鍵技術。

TCP滑動窗口是如何工做的 ?
利用可變窗口大小進行流量控制。在TCP的會話過程當中,容許動態協商窗口大小,從而更加有效地利用帶寬。

AN
WIN
如下來自謝希仁課件。

強調三點:
A 的發送窗口並不老是和 B 的接收窗口同樣大(由於有必定的時間滯後)。
TCP 標準沒有規定對不按序到達的數據應如何處理。一般是先臨時存放在接收窗口中,等到字節流中所缺乏的字節收到後,再按序交付上層的應用進程。
TCP 要求接收方必須有累積確認的功能,這樣能夠減少傳輸開銷。

滑動窗口的作用?(端到端的)流量控制。提升了整個網絡的吞吐率,可以提升傳輸效率,可以提升信道利用率,容許接收端在擁有容納足夠數據的緩衝以前對傳輸進行限制。不可以防止報文段順序出錯,這是序列號來保證的。

連接:https://www.nowcoder.com/ques...
來源:牛客網

滑動窗口本質上是描述接受方的 TCP 數據報緩衝區大小的數據,發送方根據這個數據來計算本身最多能發送多長的數據。若是發送方收到接受方的窗口大小爲 0 的 TCP 數據報,那麼發送方將中止發送數據,等到接受方發送窗口大小不爲 0 的數據報的到來。書中的 P211 和 P212 很好的解釋了這一點。
關於滑動窗口協議,書上還介紹了三個術語,分別是:
  1. 窗口合攏:當窗口從左邊向右邊靠近的時候,這種現象發生在數據被髮送和確認的時候。
  2. 窗口張開:當窗口的右邊沿向右邊移動的時候,這種現象發生在接受端處理了數據之後。
  3. 窗口收縮:當窗口的右邊沿向左邊移動的時候,這種現象不常發生。
    TCP 就是用這個窗口,慢慢的從數據的左邊移動到右邊,把處於窗口範圍內的數據發送出去(但不用發送全部,只是處於窗口內的數據能夠發送。)。這就是窗口的意義。圖 20-6 解釋了這一點。窗口的大小是能夠經過 socket 來制定的, 4096 並非最理想的窗口大小,而 16384 則可使吞吐量大大的增長。

如下有關TCP滑動窗口機制描述正確的是(A,D)
A、在TCP鏈接的兩端分別有滑動窗口,控制接受和發送
B、僅在TCP鏈接的發送端有滑動窗口便可很好實現流量控制
C、僅在TCP鏈接的接收端有滑動窗口便可很好實現流量控制
D、TCP鏈接兩端的滑動窗口大小能夠自由調節,沒必要徹底一致

牛客網搜索:滑動窗口

下面的主要概念:緩衝區、連續重發協議
停--等協議
選擇重發協議
爭用協議

滑動窗口協議中,發送窗口保存的是()
可發送的幀序號
可接收的幀序號
不可發送的幀序號
不可接收的幀序號

滑動窗口協議中發送窗口中的編號表明 1 .

數據鏈路層滑動窗口機制中發送窗口(已發送未確認)最大值主要依據( )。
發送緩衝區大小(大於發送窗口)
接受方緩衝區大小(最小爲1)
鏈路傳播時延
以上均是

TCP使用滑動窗口進行流量控制,流量控制其實是對( )的控制。
發送方數據流量
接收方數據流量
發送、接收方數據流量
鏈路上任意兩節點間的數據流量

Internet TCP 滑動窗口協議規定( )。

在發送方未被確認的報文數最多爲發送窗口的大小 應該是對的吧
固定的窗口大小
發送窗口大小隻和接收方的接收能力有關 跟雙方應該都有關
發送方根據本身的發送能力肯定窗口大小 跟雙方應該都有關

(   )是關於滑動窗口機制的錯誤描述。

發送窗口必須大於接受窗口 錯誤。發送窗口值不能超過接受窗口值。其餘三項不是很清楚,可是A確定是錯的
選擇重傳(SR)在TCP協議中沒法徹底實現
後退N幀(GBN)的接收窗口爲1
經過設定滑動窗口機制的發送、接收窗口能夠實現停等協議

在數據鏈路層的滑動窗口協議中,當發送窗口容許發送幀的最大順序號爲15時,接收窗口的最大尺寸應爲?

試根據發送滑動窗口變化過程,在下圖所示各發送窗口下標出「發送幀序號」或「接收確認幀序號」說明。(參照第一窗口說明)
4155837_1493453297743_9F84DCB65651112566954012CDB27F72
4155837_1493453297743_9F84DCB65651112566954012CDB27F72
A 發送四號幀 B 接收確認 3 號幀 C 發送 5 號幀 D 接收確認 4 號幀 E 中止

假設你受僱設計一個使用滑動窗口的可靠的字節流協議( TCP )。這個協議將運行在 100Mbps 的網絡上。網絡的 RTT 是 100ms ,並且數據段的最大生存週期是 60 秒。
( 1 )應該在協議首部的接受窗口字段包含多少比特?
( 2 )協議首部的序號字段大約佔多少比特?

在滑動窗口協議中,若是發送窗口大於一、接收窗口等於1時,就是()。
連續重發協議
停--等協議
選擇重發協議
爭用協議

滑動窗口的大小如何肯定?

中止等待協議中

P347

對於有序接收的滑動窗口協議,若序號位數爲3位,則發送窗口最大尺寸爲( 7)
難道是 2^n - 1
對於無序接收的滑動窗口協議 , 若序號位數爲 n, 則發送窗口最大尺寸爲
2^n-1
2^n
2^(n-1)
2n-1

在連續ARQ協議中,當滑動窗口序號位數爲n,則發送窗口最大尺寸爲( A )。
2的n次方-1
2的n次方
2n-1
2n

下面的主要概念:緩衝區、連續重發協議
停--等協議
選擇重發協議
爭用協議

(2)對滑動窗口傻瓜綜合症的進一步改進。

當發送應用進程產生數據很慢,或者接收應用進程接收處理數據很慢時,或者兩種狀況都存在時,在滑動窗口的操做中有可能出現發送方每次只發送包含一個字節(或較小字節數)的報文段,同時接收方每次也僅對接收到的包含一個字節(或較小字節數)的報文段進行確認。
這樣勢必大大下降網絡帶寬的使用效率,此時一般也稱爲出現了傻瓜窗口綜合症。爲此,在TCP中主要引入了3種策略予以改進。
Nagle算法

 Clark算法

延遲確認算法

TCP擁塞控制

擁塞控制有哪幾種方法?
(1)慢啓動算法

(2)擁塞避免算法
(3) 重傳定時器

縱座標時擁塞窗口大小 cwnd,單位 MSS(最大報文段長度MSS=1K字節); 橫座標是RTT(Round-Trip Time): 往返時延,擁塞窗口大小cwnd隨RTT變化。

【TCP擁塞控制的面試全攻略】
慢啓動曲線是怎樣的?

對於TCP Tahoe版本, 擁塞控制機制(指慢啓動和擁塞避免算法)中,擁塞發生後,慢啓動門限ssthresh被設置爲當前擁塞窗口cwnd大小的一半(圖中,T=13時發生擁塞,新的ssthresh=12,cwnd=1);當擁塞窗口小於閾值(ssthresh = 慢開始門限 = 慢啓動閾值)時,是慢啓動算法階段,擁塞窗口呈指數增加,T=T0時,cwnd=1(都是從1開始的,沒有從0開始的),cwnd = 2^(T - T0);到達閾值後,是擁塞避免算法階段,呈線線增加(應該是加法增大,每一個RTT,加1)直到網絡擁塞發生(超時或收到重複確認)。


  注意圖中的快恢復曲線。新版本的內核中,TCP 使用的是 Reno版本 , 發生擁塞以後,有兩種策略:一、IF 擁塞= 超時,   慢開始策略 ; IF 擁塞 = 重複確認 收到三個重複的ACK後, 快恢復+快重傳策略。

客戶端C和服務器S之間創建一個TCP鏈接,該鏈接老是以1KB的最大段長髮送TCP段,客戶端C有足夠的數據要發送。當擁塞窗口爲16KB的時候發生超時,若是接下來的4個RTT( = 往返時間)內的TCP段的傳輸是成功的,那麼當第4個RTT時間內發送的全部TCP段都獲得了ACK時,擁塞窗口大小是:
7KB
8KB
9KB
16KB
正確答案:C
16KB超時,閾值變爲8KB,客戶端從1KB開始穿(執行快開始算法)
1RTT 結束,1KB->2KB
2RTT 結束,2KB->4KB
3RTT 結束,4KB->8KB(到達閾值,執行擁塞避免算法)
4RTT 結束,8KB->9KB
結果C

• 掌握TCP中超時重發原理和差錯控制機制。

TCP/IP Socket編程 基礎理論 第7章套接字編程

第7章 套接字編程(終版).ppt
3.82MB
第七章 套接字socket編程基礎 PPT導讀
一、客戶機(客戶端)/服務器(服務器端)模型

客戶機/服務器的工做流程
服務器端程序的特色
客戶機端程序的特色

二、套接字概念。在TCP/IP中提供了3種不一樣套接字類型:流套接字(SOCK_STREAM)(面向鏈接=可靠的=TCP、適合傳輸大量數據、只能單播)、數據報套接字(SOCK_DGRAM)(無鏈接=不可靠=UDP)、原始套接字(SOCK_RAW)(能夠讀寫內核沒有處理的IP數據包)。
三、套接字編程基礎部分。

客戶機/服務器程序的工做模型分爲面向鏈接和無鏈接兩種。
經常使用的7個套接字API模型。
套接字編程的相關數據結構。
網絡字節順序:
    不一樣體系的CPU在內存中的數據存儲每每存在差別。如Intel的x86系列處理器將低序字節存儲在起始地址,而一些RISC架構的處理器,如IBM的370主機使用的PowerPC或Motorola公司生產的CPU,都將高序字節存儲在起始位置。這兩種不一樣的存儲方式被稱爲低位優先(little-endian)和高位優先(big-endian)。
    對於網絡上的字節表示法有一個標準——網絡字節順序,它與高位優先相同。以便於不一樣體系結構的計算機間的通訊。

四、 以winsock API(Microsoft Windows操做系統類中使用)(C++)爲例介紹socket編程

經常使用API。
基於TCP的程序設計方法:流程圖、客戶機程序、服務器程序。
基於UDP的程序設計方法:流程圖、客戶機程序、服務器程序。

Java TCP/IP Socket編程

爲了方便各位網友學習以及方便本身複習之用,將Java TCP/IP Socket編程系列內容按照由淺入深的學習順序總結以下,點擊相應的標題便可跳轉到對應的文章:
                    Java套接字編程簡單示例

【Java TCP/IP Socket】Java TCP Socket程編程 (簡單的線程)
【Java TCP/IP Socket】Java UDP Socket編程 (簡單的線程)
【Java TCP/IP Socket】應用程序協議中消息的成幀與解析
【Java TCP/IP Socket】構建和解析自定義協議消息
【Java TCP/IP Socket】基於線程池的TCP服務器
【Java TCP/IP Socket】TCP Socket通訊中由read返回值形成的的死鎖問題
【Java TCP/IP Socket】Java NIO Socket VS 標準IO Socket
【Java TCP/IP Socket】基於NIO的TCP通訊
【Java TCP/IP Socket】深刻剖析socket——數據傳輸的底層實現
【Java TCP/IP Socket】深刻剖析socket——TCP通訊中因爲底層隊列填滿而形成的死鎖問題
【Java TCP/IP Socket】深刻剖析socket——TCP套接字的生命週期
【Java TCP/IP Socket】Socket網絡編程知識點總結

應用:(視頻)聊天室、 郵件發送程序(代碼:https://wenku.baidu.com/view/...

第9章 IP多播和網際組管理協議 導讀

一、理解IP多播的基本原理。

二、掌握網際組管理協議IGMP。用於多播路由器和主機之間進行羣組關係的管理,其運行於主機和與主機直接相連的多播路由器之間。

主機經過此協議告訴本地路由器但願加入某個特定多播組,同時路由器經過此協議週期性地查詢局域網內某個已知組的成員是否處於活動狀態(即該局域網是否仍有屬於某個多播組的成員),進行所連網絡組成員關係的收集與維護。

[#]三、瞭解常見的多播路由選擇算法(基於前面的路由選擇算法)。網上並無多播路由選擇算法習題。

四、基於多播的應用程序編程:掌握基於WinSock 2的多播應用程序設計方法。
補充:Java廣播和多播簡單示例程序 http://www.cnblogs.com/xujian...

第10章 應用層經常使用協議與編程

• 熟悉MAPI編程接口,掌握基於SMAPI的郵件應用程序設計方法。

設計 開 發 了 一個 簡 單 的郵 件 收 發程 序 , 其中 在CMyEMail類中實現對SMAPI接口函數的功能封裝,實現了初始化、 登陸郵件系統、 發送郵件、 接收郵件和註銷登陸等操做。 並在該類的基礎上實現一個簡單的郵件收發程序。 ( 詳細設計參見代碼)

Java.mail.* 接收和發送郵件代碼 https://wenku.baidu.com/view/... 15頁(字體大),一個發送類,一個接收類。排版混亂

登陸郵件系統、 發送郵件、 接收郵件和註銷登陸 項目設計書 visual c++ http://dwz.cn/68wzcC 項目書40頁 代碼十幾頁(字體中)

上面這個題目我找到的代碼都特別長,你(們)那裏有什麼比較好的答案嗎?

其餘資料

相關文章
相關標籤/搜索