1、課程知識html
1.互聯網相關概念,網絡協議基礎,網絡相關命令,環境配置編程
2.Socket網絡編程瀏覽器
3.tcp協議及其原理緩存
4.ip協議以及源碼分析服務器
5.dns域名解析以及dhcp服務網絡
TCP/IP協議族併發
要想理解socket首先得熟悉一下TCP/IP協議族, TCP/IP(Transmission Control Protocol/Internet Protocol)即傳輸控制協議/網間協議,定義了主機如何連入因特網及數據如何在它們之間傳輸的標準,從字面意思來看TCP/IP是TCP和IP協議的合稱,但實際上TCP/IP協議是指因特網整個TCP/IP協議族。不一樣於ISO模型的七個分層,TCP/IP協議參考模型把全部的TCP/IP系列協議歸類到四個抽象層中。socket
在Internet層,解析IP地址,尋找通往目標IP的目的地的下一個路由地址。在網絡接口層,則是尋找響應的硬件(MAC)地址。數據流以及網絡拓撲結構以下圖所示。tcp
Socket相關知識函數
socket起源於UNIX,在Unix一切皆文件哲學的思想下,socket是一種"打開—讀/寫—關閉"模式的實現,服務器和客戶端各自維護一個"文件",在創建鏈接打開後,能夠向本身文件寫入內容供對方讀取或者讀取對方內容,通信結束時關閉文件。
TCP的三次握手
第一次握手:客戶端嘗試鏈接服務器,向服務器發送syn包(同步序列編號Synchronize Sequence Numbers),syn=j,客戶端進入SYN_SEND狀態等待服務器確認
第二次握手:服務器接收客戶端syn包並確認(ack=j+1),同時向客戶端發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態
第三次握手:第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手
定睛一看,服務器socket與客戶端socket創建鏈接的部分其實就是大名鼎鼎的三次握手
其在socket中的三次握手
2、計算機網絡知識水平與編程能力測試
選擇題
1.數據鏈路層採用後退 N 幀(GBN)協議,發送方已經發送了編號爲 0~7 的幀。當計時器超時時,若發送方
3.在學校局域網上ping 其中一個服務器 沒有涉及到的網絡協議是?()
A、TCP B、DNS C、ICMP D、ARP
答案:A
解析:首先咱們須要dns協議,將網址轉爲IP地址,其次ping的原理是使用ICMP的迴響機制,因此必然用到了網絡層的ICMP協議,最後在到達對方局域網的時候須要使用RARP查找mac地址,在發送主機不知道本身IP的時候也會用到ARP協議,因此綜上ping的過程當中用到了 dns協議、ICMP協議、ARP協議、RARP協議。
4. 若主機甲與主機乙創建 TCP 鏈接時發送的 SYN 段中的序號爲 1000,在斷開鏈接時, 甲發送給乙的 FIN 段中的序號爲 5001,則在無任何重傳的狀況下,甲向乙已經發送的 應用層數據的字節數爲:
A、4002 B、4001 C、4000 D、3999
答案 C
【解析】 SYN=1000,則數據傳輸時的起始序號爲 1001,字節數 = FIN – 1001 = 4000
5. 假設下圖所示網絡中的本地域名服務器只提供遞歸查詢服務,其餘域名的服務器均只提 供迭代查詢服務;局域網內主機訪問 Internet 上各服務器的往返時間(RTT)均爲 10ms, 忽略其餘各類時延,若主機 H 經過超連接 http://www.abc.com/index.html,請求瀏覽純 文本 Web 頁 index.html,則從點擊超連接開始到瀏覽器接收到 index.html 頁面爲止, 所需最短、最長時間分別是:
A、10ms,40ms B、10ms,50ms C、20ms,40ms D、20ms,50ms
答案 D
【解析】 最短期:本地域名服務器存在域名與 IP 地址的映射 主機向本地域名服務器遞歸查詢 10s + 數據傳輸 10ms = 20ms 最長時間:本地域名服務器不存在映射,須要迭代查詢各級域名服務器 3 次 10ms + 迭代查詢 3 次 30ms + 數據傳輸 10ms = 50ms
六、DNS工做於( )
(A)網絡層
(B)傳輸層
(C)應用層
(D)表示層
答案:C
7,【百度文庫】在實現基於TCP的網絡應用程序時,服務器端正確的處理流程是( )
A、socket() -> bind() -> listen() -> connect() -> read()/write() -> close()
B、socket() -> bind() -> listen() -> read()/write() -> close()
C、socket() -> bind() -> listen() -> accept() -> read()/write() -> close()
D、socket() -> connect() -> read()/write() -> close()
答:C,socket基礎概念。
8,【原創】下面哪一個函數負責構造一個攜帶SYN標誌位的TCP頭併發送出去,同時還設置了計時器超時重發( )
A、tcp_transmit_skb
B、inet_csk_accept
C、tcp_v4_rcv
D、tcp_connect
答:D,考察對Linux網絡協議棧的瞭解。
簡答題
1.什麼是TCP的三次握手機制?TCP的三次握手機制過程簡述。
答:三次握手:
(1)Client先產生一個初始序列號seq,SYN標誌位置1,將該數據包發送給Server端,以後Client端進入SYN_SENT狀態,等待Client確認。
(2)Server收到數據包後也發送本身的SYN報文做爲響應,並初始化序列號seq,爲了確認Client的seq,Server將Client發送的seq加1做爲ACK發送給Client,Server進入SYN_RCVD狀態。
(3)爲了確認Server的SYN,Client將Server發送的seq加1做爲ACK發送給Server。Client和Server進入ESTABLISHED狀態,完成三次握手。
2.簡述交換機、集線器和路由器的區別,交換機和集線器的聯繫。
答:
1.集線器
集線器工做在物理層
共享帶寬
半雙工
廣播發送
2.交換機
以太網交換機工做在數據鏈路層
鏈接局域網中的主機
相互通訊的主機獨佔帶寬
依據MAC地址轉發,有目的發送
3.路由器
路由器工做在網絡層
是一個多輸入輸出端口的專用計算機
鏈接不一樣的網絡
共享帶寬
依據IP地址轉發,有目的發送
3.簡述UDP和TCP的協議的主要特色和它們的主要差異
答:UDP
(1)無鏈接
(2)盡最大努力交付,不可靠
(3)無擁塞控制,效率高,適合於IP電話,實時視頻等
(4)首部開銷小,只有四個字段(源端口,目的端口,長度,檢驗和)
(5)可一對一,一對多,多對一,多對多交互
(6)面向報文
TCP
(1)面向鏈接的傳輸層協議
(2)每一個TCP鏈接只能有兩個端點,一對一
(3)可靠交付
(4)全雙工通訊
(5)面向字節流,「流」指流入到進程或從進程流出的字節序列,將收到的分組組織成字節流提交給上層
綜合題
解析:
2.
某網絡拓撲以下圖所示,其中R爲路由器,主機H1~H4的IP地址配置以及R的各接口IP地址
配置如圖中所示。現有若干臺以太網交換機(無VLAN功能)和路由器兩類網絡互連設備可供選擇。
請回答下列問題:
(1) 設備一、設備2和設備3分別應選擇什麼類型網絡設備?
(2) 設備一、設備2和設備3中,哪幾個設備的接口須要配置IP地址?併爲對應的接口配置正確的IP地
址。
(3) 爲確保主機H1~H4可以訪問Internet,R須要提供什麼服務?
(4) 若主機H3發送一個目的地址爲192.168.1.127的IP數據報,網絡中哪幾個主機會接收該數據報?
參考答案:(1)設備1:路由器 設備2:以太網交換機 設備3:以太網交換機
(2)設備1的接口須要配置ip地址;設備1的IF1,IF2,IF3接口的ip地址分別是
192.168.1.254 192.168.1.1 192.168.1.65
(3)R須要提供NAT服務
(4)主機H4會接收該數據報