青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-162  評論-223  文章-30  trackbacks-0
   ICMP在IP系統間傳遞差錯和管理報文,是任何IP系統必須實現的組成部分。Linux 2.6.34中ICMP模塊的實現在linux/icmp.h,net/icmp.h和ipv4/icmp.c中,導出了icmp_err_convert數組和icmp_send函數,供其它網絡子系統使用。在其它網絡子系統中,當檢測到錯誤時,調用icmp_send產生并發送相應的ICMP差錯消息到源主機;當源主機收到ICMP不可達差錯消息,傳遞到原始套接字和傳輸層,而它們使用icmp_err_convert把對應的消息代碼轉換成套接字層比較容易理解的錯誤代碼。在內核空間中可發送的ICMP消息包括查詢應答和差錯報文,下面總結了產生這兩類消息的網絡子系統(及函數)與錯誤轉換。


應答消息
   應答消息由ICMP模塊的內部函數icmp_reply而非icmp_send發送。根據RFC1122 3.2.2.9規范, 除非一個主機作為地址掩碼代理,否則不能發送回復,這對應ICMP的icmp_address實現為空,因此上表沒有列出地址掩碼應答項(內核符號為ICMP_ADDRESSREPLY)。

差錯消息
   差錯消息由中間路由器或目的主機產生,當數據報不能成功提交給目的主機時。從上表可見,在IP層的接收、本地處理、轉發和輸出各過程中,都可能產生差錯消息;在傳輸層如果對應的端口沒有打開,那么UDP會產生ICMP端口不可達差錯,而TCP則會使用自己的差錯處理機制發送一個RST復位包,這也是上表沒有列出TCP子系統的原因。對于重定向差錯,由ICMP模塊的icmp_redirect調用ip_rt_redirect更新路由;其它差錯則由icmp_unreach處理。


錯誤轉換
   第2列為icmp_err_convert數組索引,第4列也就是調用socket API出錯時返回的errno,最后1列為icmp_err_convert中的fatal成員取值,0表示非致命錯誤,1表示致命錯誤,需要報告給用戶進程。錯誤轉換會被RAW的raw_err、TCP的tcp_v4_err和UDP的udp_err用到,對于ICMP_DEST_UNREACH類型的差錯,使用上表轉換;ICMP_SOURCE_QUENCH類型的忽略不處理;ICMP_PARAMETERPROB類型的轉換成EPROTO(協議錯誤);ICMP_TIME_EXCEEDED類型的轉換成EHOSTUNREACH。
   在這要注意,從ICMP_PORT_UNREACH到ECONNREFUSED的轉換,不適用于TCP,原因已在上節說明;而對于UDP的未連接套接字,如果主機在線而端口沒打開,調用sendto得不到ECONNREFUSED錯誤,但recvfrom會阻塞,這是因為雖然內核收到了ICMP差錯,但沒上報給應用進程。盡管如此,如果想得到ECONNREFUSED錯誤,那么可以寫個ICMP守護進程,應用進程先把它的套接字描述符通過unix域套接口傳遞到ICMP守護進程,而守護進程使用raw socket來接收ICMP差錯,再發給應用進程。


發送限速
   不論一般差錯消息還是重定向差錯消息,發送限速針對的都是特定目標主機。
   一般限速
   在使用icmp_send發送差錯消息(PMTU消息除外)時,為減少網絡擁塞而限制了發送的速率,限速由xrlim_allow函數實現,定義在ipv4/icmp.c中。
 1#define XRLIM_BURST_FACTOR 6
 2int xrlim_allow(struct dst_entry *dst, int timeout)
 3{
 4    unsigned long now, token = dst->rate_tokens;
 5    int rc = 0;
 6
 7    now = jiffies;
 8    token += now - dst->rate_last;
 9    dst->rate_last = now;
10    if (token > XRLIM_BURST_FACTOR * timeout)
11        token = XRLIM_BURST_FACTOR * timeout;
12    if (token >= timeout) {
13        token -= timeout;
14        rc = 1;
15    }

16    dst->rate_tokens = token;
17    return rc;
18}
   dst為目標路由緩存,timeout為允許發送的超時(單位為jiffies),dst->rate_tokens記錄令牌的個數,當令牌個數不小于timeout時,則減少timeout并允許發送一個消息;反之則不能發送,需等到令牌個數累積到大于timeout時才能發送,但是不能無限大,否則就會導致在一個可能很短的timeout內,發送遠多于6個的消息,引起ICMP風暴,所以這里限制了令牌的最大值為XRLIM_BURST_FACTOR*timeout即6倍的超時,也就是說在一個timeout內,最多能發送6個差錯消息。 
  
   重定向限速
   路由子系統使用ip_rt_send_redirect來發送重定向消息,定義在ipv4/route.c中,該函數內部調用icmp_send實現,在它的限速基礎上,使用指數回退算法控制發送速率。
 1void ip_rt_send_redirect(struct sk_buff *skb)
 2{
 3    struct rtable *rt = skb_rtable(skb);
 4    
   
 5
 6    /* No redirected packets during ip_rt_redirect_silence;
 7     * reset the algorithm.
 8     */

 9    if (time_after(jiffies, rt->u.dst.rate_last + ip_rt_redirect_silence))
10        rt->u.dst.rate_tokens = 0;
11
12    /* Too many ignored redirects; do not send anything
13     * set u.dst.rate_last to the last seen redirected packet.
14     */

15    if (rt->u.dst.rate_tokens >= ip_rt_redirect_number{
16        rt->u.dst.rate_last = jiffies;
17        return;
18    }

19
20    /* Check for load limit; set rate_last to the latest sent
21     * redirect.
22     */

23    if (rt->u.dst.rate_tokens == 0 || time_after(jiffies, (rt->u.dst.rate_last (ip_rt_redirect_load << rt->u.dst.rate_tokens)))) {
24        icmp_send(skb, ICMP_REDIRECT, ICMP_REDIR_HOST, rt->rt_gateway);
25        rt->u.dst.rate_last = jiffies;
26        ++rt->u.dst.rate_tokens;
27        
28    }

29}
   重定向差錯使用ip_rt_redirect_silence(默認為(HZ/50)<<10)、ip_rt_redirect_number(默認為9)和ip_rt_redirect_load(默認為HZ/50)3個量來控制發送的速率;rt->u.dst.rate_last記錄上次發送的時間,rt->u.dst.rate_tokens累計發送總數,最大值為ip_rt_redirect_number;當兩次發送的時間間隔超過ip_rt_redirect_silence或ip_rt_redirect_load<<rt->u.dst.rate_tokens,并且發送總數不超過ip_rt_redirect_number時,才允許發送一個,這樣一來,在ip_rt_redirect_silence間隔內,每次發送的超時呈2的指數增長,達到了變減速發送的效果,直到總數達到ip_rt_redirect_number時停止發送,這是因為源主機可能忽略了重定向消息所以停止發送;當ip_rt_redirect_silence時間過后,又允許發送了,這是因為認為源主機沒有更新路由所以又需要發送。
posted on 2015-05-18 19:52 春秋十二月 閱讀(2812) 評論(0)  編輯 收藏 引用 所屬分類: Network
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品视频在线观看一区二区| 午夜精品一区二区三区四区 | 欧美激情第一页xxx| 久久久久久久久久久一区| 欧美一级专区免费大片| 久久综合伊人77777| 欧美高清不卡| 欧美视频一区二区在线观看 | 欧美一区二区精品| 亚洲欧美国内爽妇网| 一区二区av在线| 亚洲第一在线| 狠狠入ady亚洲精品| 国产一区二区av| 国产日韩欧美综合| 国产美女精品免费电影| 国产精品亚洲产品| 国产日韩欧美| 在线成人黄色| 亚洲精品男同| 一区二区免费在线播放| 一区二区不卡在线视频 午夜欧美不卡在 | 久久婷婷久久一区二区三区| 国产精品三级久久久久久电影| 国产亚洲va综合人人澡精品| 亚洲韩国精品一区| 亚洲欧美日韩一区二区三区在线| 久久精品欧洲| 一本色道久久综合狠狠躁篇的优点| 欧美一区二区三区四区在线 | 在线视频中文亚洲| 久久伊人一区二区| 亚洲午夜视频| 免费人成网站在线观看欧美高清| 国产精品久久久一区麻豆最新章节| 在线精品国产欧美| 欧美亚洲三区| 一区二区高清| 欧美激情欧美激情在线五月| 国产永久精品大片wwwapp| 亚洲专区一区二区三区| 最近中文字幕日韩精品| 久久久久久久91| 国产精品揄拍500视频| 99国产精品99久久久久久| 欧美大片免费久久精品三p| 欧美一区二区三区视频在线| 国产精品久久久久久久久免费樱桃| 日韩亚洲欧美成人| 亚洲国产婷婷香蕉久久久久久| 久久精品国产亚洲5555| 国产一二精品视频| 欧美一区午夜视频在线观看| 一区二区三区四区蜜桃| 欧美喷潮久久久xxxxx| 欧美激情久久久久| 亚洲黄色视屏| 欧美激情亚洲激情| 欧美不卡高清| 日韩午夜免费视频| 亚洲精品视频二区| 欧美视频二区36p| 亚洲夜间福利| 亚洲一区视频在线| 国产一级精品aaaaa看| 久久免费精品视频| 久久一区二区三区四区| 亚洲高清视频在线观看| 久久婷婷国产综合国色天香| 性欧美videos另类喷潮| 国产欧美一区二区三区在线看蜜臀 | 欧美亚洲在线| 亚洲综合丁香| 国产一区在线免费观看| 蜜臀99久久精品久久久久久软件| 美日韩免费视频| 一本一本久久| 亚洲欧美春色| 亚洲丰满在线| 亚洲精品久久7777| 国产精品三区www17con| 久久精品最新地址| 欧美11—12娇小xxxx| 一区二区成人精品| 亚洲欧美色婷婷| 在线日韩成人| 在线一区二区三区四区五区| 国产香蕉久久精品综合网| 免费在线观看日韩欧美| 欧美乱妇高清无乱码| 欧美一区二区精品久久911| 久久久久久亚洲精品不卡4k岛国| 亚洲精品一区二| 亚洲曰本av电影| 亚洲人成7777| 性刺激综合网| 亚洲精选视频免费看| 亚洲欧美三级伦理| 日韩视频免费大全中文字幕| 欧美一区二区三区视频免费| 夜夜爽99久久国产综合精品女不卡| 亚洲欧美视频| 中文一区二区| 久久综合色播五月| 亚洲欧美成人在线| 女女同性女同一区二区三区91| 欧美夜福利tv在线| 欧美区国产区| 你懂的视频欧美| 国产精品五区| 日韩一级黄色大片| 亚洲欧洲一区二区在线播放 | 一本色道久久综合亚洲精品按摩 | 亚洲黑丝在线| 性欧美办公室18xxxxhd| 国产精品99久久久久久人| 美日韩精品视频| 久久综合影音| 韩国在线视频一区| 亚洲欧美日韩国产一区| 中文国产亚洲喷潮| 欧美韩日一区二区| 欧美电影在线| 亚洲国产毛片完整版| 久久精品三级| 久久美女艺术照精彩视频福利播放| 国产精品国产三级国产a| 亚洲精品在线二区| 日韩视频一区二区三区| 欧美插天视频在线播放| 欧美激情乱人伦| 亚洲第一中文字幕| 久久久精品免费视频| 欧美专区日韩专区| 国产精品日产欧美久久久久| 一区二区三区精品视频| 亚洲一区欧美二区| 国产精品日韩精品| 午夜视频在线观看一区| 久久国产黑丝| 国产综合色产| 久久精品一区二区| 欧美成年人视频| 最近中文字幕mv在线一区二区三区四区| 久久久久久久一区二区三区| 久久久综合香蕉尹人综合网| 在线观看日韩www视频免费 | 久久久国产精品一区二区三区| 久久资源av| 最近中文字幕日韩精品 | 欧美自拍偷拍午夜视频| 国产香蕉97碰碰久久人人| 欧美一区二视频| 男人的天堂成人在线| 亚洲精品色婷婷福利天堂| 欧美日韩国产va另类| 亚洲天堂网站在线观看视频| 久久久精品tv| 亚洲精品一区二区三区婷婷月| 欧美日韩在线一区二区| 亚洲欧美视频在线| 欧美成人一品| 亚洲影视在线播放| 狠狠色2019综合网| 欧美精品成人在线| 亚洲欧美在线观看| 亚洲国产成人久久| 欧美伊人久久| 亚洲人成亚洲人成在线观看| 国产精品国产三级国产普通话三级| 欧美一区二区三区日韩视频| 亚洲国产经典视频| 欧美亚洲午夜视频在线观看| 亚洲成色www8888| 欧美一区二区三区四区高清 | 欧美日韩亚洲激情| 午夜精品久久久| 亚洲激情自拍| 久久久久久亚洲精品不卡4k岛国| 亚洲精品欧美激情| 国内精品国语自产拍在线观看| 欧美麻豆久久久久久中文| 欧美在线二区| 亚洲视频专区在线| 亚洲黄色性网站| 久久野战av| 欧美一级黄色网| 日韩视频欧美视频| 在线国产精品播放| 国产午夜精品一区理论片飘花| 欧美日韩另类综合| 男人的天堂亚洲| 久久精品中文字幕一区| 亚洲欧美综合| 亚洲一区二区在线看| 亚洲精品视频在线| 亚洲国产日韩欧美| 欧美大胆成人| 另类国产ts人妖高潮视频| 羞羞色国产精品|