TCP相關面試題
Q1:TCP報文長度是在TCP三次握手中那一次確定的?
這個是關於TCP報文的最大報文段長度mss的相關問題。在TCP連線的前兩次握手中(SYN報文中),通訊雙方都會在選項欄位中告知對方自己期待收到最大報文長度(mss值),以雙方兩個SYN報文中最小的mss最為本次資料傳輸的mss值。通訊雙方以“協商”的方式來確定報文長度的,前兩次握手是告訴對方自己的mss值,在第三次握手確定mss值
Q2:TCP報文長度是由什麼確定的?
這個跟具體傳輸網路有關,乙太網的MTU為1500位元組,Internet的MTU為576位元組。
MTU是網路層的傳輸單元,那麼MSS = MTU - 20位元組(IP首部) - 20位元組(TCP首部)。所以乙太網的MSS為1460位元組,而Internet的MSS為536位元組。
Q3:TCP三次握手中,accept函式是發生在TCP三次握手的那個階段?
伺服器端的listen函式:int listen(int sockfd, int backlog);其中sockfd是與某個服務繫結的套介面,backlog是允許阻塞的最大請求個數。
在伺服器端存在著兩個佇列,一個是已經通過三次握手“建立連線的佇列“(FIFO with established state)處於Established狀態,另一個是“未完成連線的佇列”( FIFO with syn_rcvd state)處於SYN_RCVD狀態。這兩個佇列的長度之和就是backlog。在伺服器端的accept函式,相當於從“建立連線的佇列”中取出一個來進行後續的資料交換。
而三次握手是發生在connect函式中,connect函式執行成功就相當於已經建立三次握手。
Q4:如果TCP連線過程中,第三次握手失敗怎麼辦?
server端傳送了SYN+ACK報文後就會啟動一個定時器,等待client返回的ACK報文。如果第三次握手失敗的話client給server返回了ACK報文,server並不能收到這個ACK報文。那麼server端就會啟動超時重傳機制,超過規定時間後重新發送SYN+ACK,重傳次數根據/proc/sys/net/ipv4/tcp_synack_retries來指定,預設是5次。如果重傳指定次數到了後,仍然未收到ACK應答,那麼一段時間後,server自動關閉這個連線。但是client認為這個連線已經建立,如果client端向server寫資料,server端將以RST包響應,方能感知到server的錯誤。
Q5: 三次握手過程中有哪些不安全性
1)偽裝的IP向伺服器傳送一個SYN請求建立連線,然後伺服器向該IP回覆SYN和ACK,但是找不到該IP對應的主機,當超時時伺服器收不到ACK會重複傳送。當大量的攻擊者請求建立連線時,伺服器就會存在大量未完成三次握手的連線,伺服器主機backlog被耗盡而不能響應其它連線。即SYN泛洪攻擊
防範措施:
1、降低SYN timeout時間,使得主機儘快釋放半連線的佔用
2、採用SYN cookie設定,如果短時間內連續收到某個IP的重複SYN請求,則認為受到了該IP的攻擊,丟棄來自該IP的後續請求報文
3、在閘道器處設定過濾,拒絕將一個源IP地址不屬於其來源子網的包進行更遠的路由
2)當一個主機向伺服器傳送SYN請求連線,伺服器回覆ACK和SYN後,攻擊者截獲ACK和SYN。然後偽裝成原始主機繼續與伺服器進行通訊
Q6:哪些應用層協議是基於TCP的,哪些是基於UDP的
TCP: FTP、HTTP、Telnet、SMTP、POP3、HTTPS
UDP:DNS、SNMP、NF
待補充。。。
相關推薦
TCP相關面試題總結
1、TCP三次握手過程 wireshark抓包為:(wireshark會將seq序號和ACK自動顯示為相對值) 1)主機A傳送標誌syn=1,隨機產生seq =1234567的資料包到伺服器,主機B由syn=1知道,A要求建立連線; 此時狀態A為SYN_SENT,B為LISTE
TCP相關面試題
Q1:TCP報文長度是在TCP三次握手中那一次確定的? 這個是關於TCP報文的最大報文段長度mss的相關問題。在TCP連線的前兩次握手中(SYN報文中),通訊雙方都會在選項欄位中告知對方自己期待收到最大報文長度(mss值),以雙方兩個SYN報文中最小的mss最為本次資料傳輸
TCP協議-相關面試題
一、TCP協議簡介 一般問到TCP協議的時候 最常見的是TCP連線建立和斷開的過程,也就是三次握手和四次揮手,兩張圖足矣。 1.1 三次握手 1.2 四次揮手 二、常見面試題 2.1 TCP連線階段 2.1.1 傳送序號和確認序號問題 例: TCP建
每天五個java相關面試題(8)--spring篇
ioc 簡單 組件 print 提交數據 常常 spring容器 效果 用戶 首先呢,假設有從事前端開發的大神或者準備從事前端開發的小夥伴無意看到我這篇博客看到這段文字歡迎加我的QQ:【 845415745 】。即將走入社會的菜鳥大學生有關於前端開發的職
Java 泛型概念相關面試題
老版本 string 語言 值類型 新特性 exce cep bsp 組類型 問:Java 的泛型是什麽?有什麽好處和優點?JDK 不同版本的泛型有什麽區別? 答:泛型是 Java SE 1.5 的新特性,泛型的本質是參數化類型,這種參數類型可以用在類、接口和方法的創建中
第3章 Android基礎相關面試題
sch str adapt div 再次 點擊 相關 發現 amp 1、Activity問題講解 a) Activity的生命周期 1.Activity的4種狀態 running / paused / stopped / kil
promise 以及相關面試題
blog vda 異步操作 quest function cti AS AR reject https://www.cnblogs.com/lvdabao/p/es6-promise-1.html#!comments 特別好 Question:有一個url數組var ur
《STL源碼剖析》相關面試題總結
stl簡介 ash 看書 網上 散列 最大化 num 同時 自動調整 一、STL簡介 STL提供六大組件,彼此可以組合套用: 容器容器就是各種數據結構,我就不多說,看看下面這張圖回憶一下就好了,從實現角度看,STL容器是一種class template。 算法各種常見算法
hibernate相關面試題(不看後悔,一看必懂)
概述 hibernate框架應用在dao層,,hibernate的底層程式碼是jdbc,它是一個開源的輕量級的框架. hibernate通過orm思想對資料庫進行crud操作.orm中文翻譯過來就是物件關係對映,它讓實體類(就是通常所說的pojo)和資料庫表對應,讓實體類的欄位和表裡的欄
各大公司資料庫相關面試題集合NO2
✎✎✎第一小節>> 1. 舉出兩個判斷DDL改動的方法? 解答:你可以使用 Logminer 或 Streams 2.Coalescing做了什麼? 解答:Coalescing針對於字典管理的tablespace進行碎片整理,
各大公司資料庫相關面試題集合NO1
✎✎✎第一小節>> 1.你一定得利用備份恢復資料庫,但是你沒有控制檔案,該如何解決問題呢? 解答:重建控制檔案,用帶backup control file 子句的recover命令恢復資料庫。 2.如何轉換init.ora到spfile?
連結串列相關面試題
連結串列的基本操作在連結的部落格中已經有實現https://blog.csdn.net/Damn_Yang/article/details/83689944 下面我們來看看連結串列相關的面試題,非常重要 下面的題目都會一個一個實現 #include<stdio.h> type
java關於類(內部類,外部類,匿名類)的相關面試題
一個“.java”原始檔中是否可以包含多個類(不是內部類)?有什麼限制? 答:可以,但一個原始檔中最多隻能有一個公開類(public class)而且檔名必須和公開類的類名完全保持一 致。 Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面
Java 異常相關面試題
問:java 異常有哪幾種,特點是什麼? 答:異常是發生在程式執行過程中阻礙程式正常執行的錯誤操作,只要在 Java 語句執行中產生異常則一個異常物件就會被建立。Throwable 是所有異常的父類,它有兩個直接子類 Error 和 Exception,其中 Exception 又被繼續劃分為被
Java 字串相關面試題
問:下面程式的執行結果是什麼? String s1 = "abc"; StringBuffer s2 = new StringBuffer(s1); System.out.println(s1.equals(s2)); //1,false StringBuffer s3
Java clone 相關面試題
問:為什麼需要克隆? 答:因為在程式設計中會遇到一種情況,有一個 DemoBean 的物件例項 demo1 在某一時刻已經包含了一些有效值,此時可能會需要一個和 demo1 完全相同的新物件 demo2 且此後對 demo1 的任何改動都不影響到 demo1 中的值,在 Java 中用簡單的賦值
JVM相關面試題及答案
1、你知道哪些或者你們線上使⽤什麼GC策略?它有什麼優勢,適⽤於什麼場景? 參考 觸發JVM進行Full GC的情況及應對策略。 2、Java類載入器包括⼏種?它們之間的⽗⼦關係是怎麼樣的?雙親委派機制是什麼意思?有什麼好處? 啟動Bootstrap類載入、擴充套件Extens
js基礎及相關面試題
js基本資料型別: String,Object,number,undefined,boolean,function js陣列及其常用的方法: var arr =new Array(); arr[i]=1 // 新增資料 pop:刪除陣列的方法並返回刪除陣列的值 var a
從一道簡單的“SpringBoot配置檔案”相關面試題,我就能知道你的水平
面試要套路,也要技巧。別被背題目的兄弟們給忽悠了。 【你來發揮】你比較喜歡什麼技術,哪一種最熟? 一般自信的面試官都喜歡問這個問題,這次面試的小夥比較年輕,咱也裝回B,不然都對不起自己。 答: 我比較喜歡Spring,比較有趣。目的: 希望應聘者能夠有廣