2009年7月30日 星期四

AS-path Regular expression

Regular express"" 代表 "or"
ex:2131 match "213 317 2316 31" 幾次?
match 4 次


[]代表任何一個在bracket裡的單一字元(single character). 代表任何單一字元- 代表範圍 Ex:[1-4] == [1234]
Ex:[1-3].[34] match "213 317 2316 31" 幾次? 解釋:第一個字元從1-3任何一個字元, 第二個字元是任何字元 第三個字元是3 or 4 字元match "213" and "3 3" 一共兩次

^ Match 開始的字元$ Match 最後的字元_ Match 控制字元 (逗點/空白/tab等)
Ex: ^21,31$,_31_ match "213 317 218 31 731" 幾次?^21 一次31$ 一次_31_ 一次(只match 31)

() parentheses 群組Ex:(213218)_31 match "213 317 1218 31 31"幾次?213 31218 31一共兩次

\ 用來移除特殊字元
Ex:^\(213_ 代表開頭從(213開始,因為(是特殊字元若要match (213 必須要把(當作一般字元,\之後接的特殊字元可以視為一般字元Ex: AS path 為 (213 317) 1218 316 31 若用^\(213_ 來match可以match出(213

* match 0個或多個前置字元 Ex: 1* 代表任何1的字串 (包含沒有任何字元) 1 or 11 or 111 etc..)) ? match 0個或1個前置字元 Ex: 1? 代表1 or 沒有任何字元

+ match 1個或多個前置字元 Ex: 1+ 代表任何1的字串 1 or 11 or 111 etc..))

練習:
_100_ Going through AS
100^100$ Directly connected to AS
100_100$ Originated in AS
100^100_. Networks behind AS 100
^[0-9]+$ AS paths one AS long
^([0-9]+)(_\1)*$ Prepending performed in neighboring originating AS
^$ Networks originated in local AS.* Matches everything

^([0-9]+)(_\1)*$ 比較難解釋,這個會match到相鄰的AS,以及相鄰且有做prepend的 AS
^([0-9]+)代表AS path只有一個的,也就是相鄰ASThe variable

“\1” is put into parentheses for the purpose of the multiplier operator“*”, meaning that this part can match any number of successive occurrences of the sameAS number that was matched by the “[0-9]+” expression. For example, this regularexpression matches AS paths “99 99 99”, “200”, “101 101”, or “5 5 5 5 5”, but it does notmatch the AS path “101 99”.

2009年7月27日 星期一

tcp flow control

TCP flow controlTCP flow control是透過window的控制來控制流量
sliding window主要有兩個,RWND(receiver window) and CWND(congestion window)以發送端而言,RWND是發送端收到接收端給的window大小,目的是在接收端告訴發送端所可以接受的最大window值,CWND是發送端根據演算法所算出來的window大小
實際所使用的window大小為min (CWND,RWND),實際上CWND控制了在傳送時實際的window數值
在sniffer的觀察中不容易看到實際的window大小,因為window為發送端主動控制所以這個數值不會在網路上傳遞,發送端只要確保所採用的window不要超過接收端所要求的window即可
控制congestion的三個方法(Congestion aviodance)
1.slow-start2.fast retransmission3.fast recovery
TCP在調整傳送端的傳送速度時,以slow-start threshold(簡稱ssthresh)與cwnd的值來區分slow-start phase和congestion avoidance phase
slow-start threshold值就是某個cwnd值,當cwnd值超過ssthresh時TCP就會進入congestion avoidance phase
當cwnd的值小於ssthresh時slow-start phase時,在每收到一個ACK,cwnd的值會增加一倍,因此每經過一個RTT時間,cwnd的值為上一個RTT時的cwnd值的2倍。此時的cwnd以2的指數的方式增加
當cwnd的值大於ssthresh時,TCP處於congestion avoidance phase。每經過一個RTT時間,cwnd的值才會增加一個segment,(一個segment應該指一個MTU大小)以避免cwnd增加太快而導致封包遺失。此時的cwnd以線性的方式增加。
ssthresh的決定方式:在傳送開始時是沒有ssthresh值的,TCP都是處於slow-start階段,一直到有掉包時TCP會將ssthresh值設定為當時Cwnd的一半
RTO(TCP time out)當RTT超過RTO時,會觸發re-transmission, RTO是變動的RTO=A+4D, A:average RTT, D=deviation
self-clocking收端使用ACK來通知送端已正確收到封包,同時也通知送端可以送出下批封包,收端可以控制送端何時要送的機制稱為self-clocking
Re-transmission發生後處理方式重送的處理方式跟不同TCP有關常見的TCP版本如下Tahoe Reno NewReno Vegas SACK
Tahoe具備TCP的基本架構1.slow-start (前面已敘述過)2.重傳遺失封包3.fast retransmit, fast retransmit 使用duplicate ACK做為重送封包的依據,遺失封包時收端會收到非期待的sequence number封包或者是封包順序不對,此時收端會發上一個正常ack的封包回去,稱做duplicate ACK.若傳送端收到3個duplicate ACK會將封包視為遺失,不待timeout便立即重送。避免slow-start機制產生(ssrhresh=cwnd/2,cwnd=1)。
Reno:1.修改Tahoe演算法並加上Fast Recovery的機制。2.Reno在使用Fast retransmit後,再使用fast recovery機制: Fast recovery機制: ssthresh設為cwnd/2, 重送遺失封包後 cwnd=ssthresh+34.在fast retransmit phase,當收到duplicate ACK,Reno還可以使用self-clocking的機制繼續送出新的封包以提高link的使用率。若封包遺失的情形能夠在不需使用timeout retransmit的情況下就將之回復,那麼Reno在收到duplicate ACK後就會進入congestion avoidance
comparsion table------------------------------------------------------------------ Tahoe Reno-------------------------------------------------------------------封 ssthresh=cwnd/2, Cwnd=1 ssthresh=cwnd/2, cwnd=ssthresh+3包 遺 重新進入slow-start phase 進入congestion avoidance phase失 時 平均吞吐量比較差 平均吞吐量比Tahoe佳
TCP NewReno:1.NewReno由Reno延伸而來,修改了TCP Reno裡的Fast recovery演算法。2.在Reno中,遇到有封包遺失時,得等到duplicate ack時,才開始重傳封包,並開始fast recovery。 3.若收到partial ack時就會結束fast recovery,但會造成只傳送部分已遺失的封包,仍有許多封包該傳卻未傳,並且必須等到timeout後才能再重傳封包,使得傳輸效能大大降低。註:partial ack的ACK碼較之前正常收到的ACK大,但比稍早收到out of sequence的封包 seq號碼小。4.在NewReno中,不會因為收到Partial ack時結束Fast recovery,傳送端會繼續重送封包,直到所有的遺失的封包都重送後才結束Fast recovery,不需等到timeout就能將所有的封包傳送。5.此版本大大改善因等待timeout才能重送封包時的效能降低,並且能持續傳送新的封包增加使用率
TCP SACK(selective Ack)SACK也是從TCP Reno延伸的版本,它改善了在NewReno裡一個RTT時間只能重傳一個封包的缺點。在SACK中,新加入一個SACK option,會將接收端裡已收到的封包範圍回傳給傳送端,其範圍間隔就是遺失的封包,故傳送端便可知道哪些封包遺失,並重傳此遺失的封包,所以可以在一個RTT時間內重送一個以上的封包。
Bandwidth * Delay Product (BDP)BDP是指在傳送過程中在網路傳輸中的packet,頻寬越大,RTT越久,BDP就越大BDP = Bandwidth * Delaywindows size 至少必須大於BDP,在實務上TCP buffer大約是3倍的BDP

2009年6月29日 星期一

MST note II

MST 成為一個Region的條件
1. domain name
2. revision
3. instance and vlan mapping table
當這三個都要一樣時就會看為同一個MST Region,相同的MST Region才能利用MST互相交換spanning-tree資訊,若MST Region不同,不同機器既使相同的instance也不能溝通,也就是說這個spanning-tree的演算無法透過MST來完成

每台跑MST的機器除了所設定的instance外,還有一個預設的instance 0,這個instance 0是所有沒有指派instance的vlan所用的instance,要跨domain時用instance 0來計算,在domain裡則用所指定的instance來計算spanning-tree

2009年6月22日 星期一

TCP sliding window

TCP sliding window每一個ack中間可以送多少byte,就是windows size的意思

假設有10,000byte的檔案要送,windows size是4000,送端TCP可以一次送4000 byte,然後收端再給一個ack確認,這4,000個byte用一個或多個packet來送都可以,若4,000 byte送出 ack正確,則可以把window往下移個4,000 byte,就好像窗戶在移動一樣

window size是收送同步的,送端會跟收端會議定一個數值,而且因需要而變動,所以是動態的當收端告訴送端window size=0 時,代表要送端不要再送了,送端會等到收到另一個非0的window size後才會再繼續送

若線路壅塞,代表送端送出的資料要等比較久才會收到ACK,送端在收到正確ack才會再送下面的資料,所以傳送速度自然就會便慢了

TCP Explicit Congestion Notification
在收送兩端的中間的router再偵測到網路壅塞時可以發出ECN給兩端的主機,通知他們網路即將發生阻塞,(我相信用TCP的ECN通知後,要不要做處理應該事APP的事情,在router端只負責告知)

TCP MSS Adjustment
在TCP的SYN裡會有TCP的最大size資訊,所以在3-way handshaking完成後TCP MSS已經固定這個功能是偵測TCP SYN內容,將TCP MSS做修改以確保兩端所收送的風包在中間的router可以被處理在收送兩端initial TCP時,預設會參考自己設定的MTU,扣掉3,2 層的header後當作TCP的
MSSTCP MSS的值是扣掉TCP header的數字

BGP conditional map
在BGP route產生時,通常用network or aggregate方式將BGP route放進BGP中,但這兩個方式必須有相對應的IGP或必須存在componet route,在BGP做aggregate時,會將小網段summary成大網段,但是若在這個大網段中仍然想要有specific route時可以利用這個指令將某些route放進BGP table中,通常這些例外的route會比原本大網段的prefix來的小

另外這個指令只要match某種條件就可以放bgp route,不再受到IGP才能放或aggregate的限制
BGP community 可以有很多組嗎? 可不可以transit AS ?

2009年6月21日 星期日

BGP Keep a life
BGP open message有以下幾個訊息
1.BGP version number
2. AS number of the local router
3. Holdtime
4. BGP router identifier
5. Optional parameters

Hold time是雙方在建立BGP session時議定的參數,
若有所以彼此的hold time雙方會知道,但不會交換keep a live timer

1 If the locally configured value of holdtime is selected (being the lower of two), the
peers use the locally used keepalive interval.
若holdtime是自己的holdtime,對方使用自己設定的keepalive interval

2 If the holdtime interval of the neighbor is selected, and the locally configured
keepalive interval is less than a third of the holdtime interval, the peers use the
locally configured keepalive.
若holdtime使用對方的設定,而且自己設定的keepalive interval比holdtime/3還小,對方使用自己設定的keepalive

3 If the holdtime interval of the neighbor is selected, and the locally configured
keepalive interval is more than a third of the holdtime interval, the peers use the
smaller integer value in relation to (holdtime / 3).

若holdtime使用對方的設定,而且自己設定的keepalive interval比holdtime/3還大則對方使用比較holdtime/3小的整數當keepalive

2009年2月6日 星期五

美國買電視


美國的電視實在太便宜了,實在讓人忍不住想買一台回家
美國一台幾乎是頂級的52吋sharp只要1600美金台幣不到6萬,台灣一台sharp 52吋電視一台至少10.5萬....

要怎麼從美國買電視?經過研究其中間哩哩摳摳要花的錢還不少

進口的程序跟費用大概如下:首先,你要有一個美國信用卡去買美國商品,當然台灣信用卡也可以,但是要多負擔1.5-2.5%的海外刷卡手續費打電話給報關行,或貨運公司跟他說你有一台電視要進口基本上要負擔的費用如下:
export document charge 出口文件費 : Usd30.00
airport transfer fee 機場轉運費 : Usd25.00/min., Usd0.15/k
handling fee 手續費 : Usd30.00
inland trucking 內陸運費 : as cost, need shipper address
FMC tariff filing fee 營業登記費 : Usd25.00 per filing (only first time per same item or revised)
A/F rate 空運費 : min. Usd125.00, Usd2.60/k (+45k), Usd1.25/k (+100k)
fuel surcharge 燃料附加費 : Usd0.65/ks
ecurity surcharge兵險附加費 : Usd0.10/k
carrier : CI - 中華航空
除此之外,若東西體積太大,用體積下去算價錢
台灣報關費用大約35美金,一些local charge大概也要個60美金
所以一台1500美金的電視,以shipping weight 50公斤來算
空運費大約125+5*2.6+50*0.75 = 175.5
兩地local charge = 30 + 25 +30 + 25 +35+60= 205 (usd)
這還不算台灣的關稅喔
電視來說關稅跟貨物稅是1.15*1.10 = 26.5%,如果你是個人進口,再加5%營業稅,一共是33%
所以加上關稅的金額變成usd$1880 * 1+(0.33 x 2/3) 約等於usd$2300
至於划不划算,自己判斷囉!
當然報關行在報關的時候可以不用你買的價格報關,因為海關也不知道你的貨到底是去哪弄得,是在亞瑪遜買還是跟sharp大盤商直接拉貨,所以在合理的範圍海關大概都可以接受
我所知到的大概是你買的最便宜零售價的2/3價格來報,大概都說的過去

過程中發現了一個好玩的現象
目前代購業者美國的運費最低是台幣380/KG
但就以航空貨運的價格來看100公斤以上每公斤才美金1.25,不到50塊台幣
當然代購公司宣稱的台幣380塊的價格包含了稅金(但買電視卻又不包含稅金)
代購公司為何運送時間都比較久?其實就是在等,在集貨,貨越多運費就越便宜,況且體積不大的東西在報關時混雜一起報,跟報關行熟了,很多都可以逃掉(電視太大了逃不掉,所以才說代購電視稅要外加)所以就運費的部分代購公司的利潤是很高的

另外一個情況是,為何Y拍上很多日本電視價格很便宜?比如說一台sharp 52吋電視,最便宜大約10.5萬台幣,若要照正常程序進口稅 打下來就算在kukuka.com上查到最便宜的店去買,回台灣再打上稅根本不止這個價格,為什麼會出現這種不合理的價格?
其實原因在於夾櫃...根據瞭解,這些高價的電視在進口時夾帶在貨櫃裡偷偷進來沒有申報,沒查到就過關了,當然少了關稅這關價格就差很多,這根走私沒兩樣,但是想要夾櫃偷渡除非你是做進出口這行的,或常常進出口大量物品才有可能搞夾櫃走私這套

若要避開稅金,另一個方法就是行李後送,但你必須要親自去美國一趟,回來時在入關查驗時申報你有後送行李,行李後送的條件之一是要自用,而且要是舊的,新品就算自用,還是會攔下來打稅,所以真要搞行李後送的最好把包裝拆拆,箱子弄得舊舊的,比較可以呼弄海關說是舊品帶回自用...免打33%的稅....

2009年2月4日 星期三

Load-balance mechanism

source-destination IP load-balance
根據每個source-destination pair指定不同的link,若某個source-destination兩台主機中有大量的packet,不會有分散流量的效果

source IP load-balance
根據每個source指定不同的link,若某個source有大量的packet,不會有分散流量的效果

destination IP load-balance
根據每個destination指定不同的link,若某個destination有大量的packet,不會有分散流量的效果

by packet...不用說了,最基本的load-balance方法