以下內容的問題是從牛客網上獲取的,答案是我寫的,可能會有不足之處,希望大家諒解並給予指正
一面(電話面)
1 自我介紹(大概說了3分鍾)
2 熟悉linux?(不是很熟悉,只是看過相關的書籍)
3 簡單說5個linux的命令(mkdir,cd ,copy,mov,ls)
4 了解TCP/IP(不是很熟悉,只是看過相關的書籍)
TCP/IP是一個協議簇,是一個開放的協議標准,所有人都可以免費試用,並且是獨立於硬件和操作系統的。TCP/IP協議是不區分網絡硬件的,它在局域網,廣域網和互聯網中都被廣泛使用。TCP/IP協議使用統一的網絡地址分配的方案。網絡中的每台電腦都具有唯一的IP地址。TCP/IP協議是一個標准的高層協議,擁有極高的可靠性,可以為用戶提供可靠的服務。
5 講講TCP/IP的幾層(網絡接口層,網絡層,傳輸層,應用層)
TCP/IP共分為四層,分別是網絡接口層,網際層,傳輸層,應用層,其中網絡接口層對應OSI模型的物理層和數據鏈路層;網際層對應網際層,傳輸層對應傳輸層,應用層對應會話層,表示層,應用層。
層次名稱 | 功能 | 協議 |
網絡接口層 | 負責實際數據的傳輸 | HDLC(高級鏈路控制協議) PPP(點對點協議) SLIP(串行線路接口協議) |
網際層 | 負責網絡間的尋址 | IP(網際協議) ICMP(網際控制消息協議) ARP(地址解析協議) RARP(反向地址解析協議) |
傳輸層 | 負責提供可靠的傳輸服務 | TCP(控制傳輸協議) UDP(用戶數據報協議) |
應用層 | 負責實現一切與應用程序相關的功能 | FTP(文件傳輸協議) HTTP(超文本傳輸協議) DNS (域名解析協議) SNMP(簡單郵件傳輸協議) NFS(網絡文件系統協議) |
6 講講TCP三次握手(省略答上了)
- 第一次握手:建立連接。客戶端發送連接請求報文段,將SYN位置為1,Sequence Number為x;然后,客戶端進入SYN_SEND狀態,等待服務器的確認;
- 第二次握手:服務器收到SYN報文段。服務器收到客戶端的SYN報文段,需要對這個SYN報文段進行確認,設置Acknowledgment Number為x+1(Sequence Number+1);同時,自己自己還要發送SYN請求信息,將SYN位置為1,Sequence Number為y;服務器端將上述所有信息放到一個報文段(即SYN+ACK報文段)中,一並發送給客戶端,此時服務器進入SYN_RECV狀態;
- 第三次握手:客戶端收到服務器的SYN+ACK報文段。然后將Acknowledgment Number設置為y+1,向服務器發送ACK報文段,這個報文段發送完畢以后,客戶端和服務器端都進入ESTABLISHED狀態,完成TCP三次握手。
四次揮手
- 第一次分手:主機1(可以使客戶端,也可以是服務器端),設置Sequence Number和Acknowledgment Number,向主機2發送一個FIN報文段;此時,主機1進入FIN_WAIT_1狀態;這表示主機1沒有數據要發送給主機2了;
- 第二次分手:主機2收到了主機1發送的FIN報文段,向主機1回一個ACK報文段,Acknowledgment Number為Sequence Number加1;主機1進入FIN_WAIT_2狀態;主機2告訴主機1,我“同意”你的關閉請求;
- 第三次分手:主機2向主機1發送FIN報文段,請求關閉連接,同時主機2進入LAST_ACK狀態;
- 第四次分手:主機1收到主機2發送的FIN報文段,向主機2發送ACK報文段,然后主機1進入TIME_WAIT狀態;主機2收到主機1的ACK報文段以后,就關閉連接;此時,主機1等待2MSL后依然沒有收到回復,則證明Server端已正常關閉,那好,主機1也可以關閉連接了。
為什么要三次握手
為了防止已失效的連接請求報文段突然又傳送到了服務端,因而產生錯誤。