Protocol
Buffers的是一個高效且可擴展的格式結構化數據編碼的一種方式。
谷歌使用了Protocol
Buffers的幾乎所有它的內部RPC協議和文件格式
使用protobuf傳輸的好處有:二進制傳輸,安全、數據量小
.proto文件中我們伺服器定義需要傳輸的數據,及數據類型等。而傳輸的時候則是使用了通過官方工具生成的具體為.java的消息體
http://code.google.com/p/protobuf/
https://developers.google.com/protocol-buffers/docs/overview
可參考官方網上的具體使用
下面介紹如何用將.proto的文件轉換成.java的文件
1.http://code.google.com/p/protobuf/downloads/list
下載 protoc-2.4.1-win32.zip 至本地並解壓
2.通過命令行將.proto的文件生成為.java的文件官網上是這樣寫的
protoc -I=$SRC_DIR
--java_out=$DST_DIR $SRC_DIR/addressbook.proto
下面用圖形來說明如果操作。下載的部分就不說了
B. netstat命令妙用提高Win7安全
檢測網路連接
如果你懷疑自己的計算機上被別人安裝了木馬,或者是中了病毒,但是手裡沒有完善的工具來檢測是不是真有這樣的事情發生,那可以使用 Windows自帶的網路命令來看看誰在連接你的計算機。具體的命令格式是:netstat-an這個命令能看到所有和本地計算機建立連接的IP,它包含四個部分——proto(連接方式)、localaddress(本地連接地址)、foreignaddress(和本地建立連接的地址)、 state(當前埠狀態)。通過這個命令的詳細信息,我們就可以完全監控計算機上的連接,從而達到控制計算機的目的。
我們在命令提示符中輸入如下:netstat-a顯示出你的計算機當前所開放的所有埠,netstat-s-e比較詳細的顯示你的網路資料,包括TCP、UDP、ICMP和IP的統計等大家可能都見過了。那有沒有想過更勝層次的了解Vista、Windows7顯示協議統計和當前 TCP/IP網路連接的知識呢?
在這里,筆者特別整理netstat命令用法如下(提示:其中按有a-b的順序排列)——
NETSTAT:Vista/Windows7下顯示協議統計和當前TCP/IP網路連接譽薯。可以直接運行netstat不加參數,如圖:
NETSTAT[-a][-b][-e][-f][-n][-o][-pproto][-r][-s][-t][interval]
-a顯示所有連接和偵聽埠。
-b顯示在創建每個連接或偵聽埠時涉及的可執行程序。在某些情況下,已知可執行程序承載多個獨立的組件,這些情況下,顯示創建連接或偵聽埠時涉及的組件序列。此情況下,可執行程序的名稱位於底部[]中,它調用的組件位於頂部,直至達到TCP/IP。注意,此選項可能很耗時,並且在您沒有足夠許可權時可能失敗。
-e顯示乙太網統計。此選項可以與-s選項結合使用。
-f顯示外部地址的完全限定域名(FQDN)。
-n以數高虛配字形式顯示地址和埠號。
-o顯示擁有的與每個連接關聯的進程ID。
-pproto顯示proto指定的協議的連接;proto可以是下列任何一個:TCP、UDP、TCPv6或UDPv6。如果與-s選項一起用來顯示每個協議的統計,proto可以是下列任何一個:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或UDPv6。
-r顯示路由表。
-s顯示每個協議的統計。默認情況下,顯示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6的統計;-p選項可用於指定默認的子網。
-t顯示當前連接卸載狀態。
interval重新顯示選定的統計,各個顯示間暫停的間隔秒數。按CTRL+C停止重新顯示統計。
禁用不明服務
很多朋友在某天系統重新啟動後會發現計算機速度變慢了,這個時候很可能是別人通過入侵你的計算機後給你開放了特別的某種服務,比如IIS信息服務等。可以通過「netstart」來查看系統中究竟有什麼服務在開啟,如果發現了不是自己開放的服務,我們就可以有針對性地禁用這個服務了。方法就是直接輸入「netstart」來查看服務,再用「netstopserver」來禁止服務。
輕松檢查賬戶
很長一段時間,惡意的攻擊者非常喜歡使用克隆賬號的方法來控制你的計算機。他們採用的方法就是激活一個系統中的默認賬戶,但這個賬戶是不經常用的,然後使用工具把這個賬戶
提升到管理員許可權,從表面上看來這個賬戶還是和原來一樣,但是這個克隆的賬戶卻是系統中最大的安全隱患。惡戚指意的攻擊者可以通過這個賬戶任意地控制你的計算機。為了避免這種情況,可以用很簡單的方法對賬戶進行檢測。
首先在命令行下輸入netuser,查看計算機上有些什麼用戶,然後再使用「netuser+用戶名」查看這個用戶是屬於什麼許可權的,一般除了Administrator是administrators組的,其他都不是!如果你發現一個系統內置的用戶是屬於administrators組的,那幾乎肯定你被入侵了,而且別人在你的計算機上克隆了賬戶。快使用「netuser用戶名/del」來刪掉這個用戶吧。
C. netstat 命令的輸出內容詳解
列出所有埠的命令格式為netstat -lnp。此命令將展示本地監聽的網路埠及相關狀態信息。
第一部分介紹Proto、Recv-Q、Send-Q等列的含義:
Proto表示協議名稱,如TCP或UDP。
Recv-Q表示網路接收隊列,即已接收但未被進程取走的數據量。當此值非零時,可能遭遇了拒絕服務攻擊。
Send-Q表示網路發送隊列,即對方尚未收到或沒有Ack的數據,仍處於本地緩沖區。當此值長時間不歸零,可能是因為應用向外發送數據包過快或對方接收包不夠快。
當Recv-Q和Send-Q非零時,通常為異常狀態,應盡快排查原因。
接著是Local Address部分,它提供關於本地埠和IP地址的信息,如監聽所有IP地址的埠或特定IPv6地址等。
Foreign Address表示與本地埠通信的外部socket,其顯示規則與Local Address相同。
State列展示了鏈路狀態,總共有11種狀態。這包括監聽、等待連接請求、確認請求、建立連接、關閉等待等。
狀態參數包括:
LISTEN:服務端開始監聽特定埠。SYN_SENT:客戶端主動發起連接請求。SYN_RECV:服務端響應連接請求。ESTABLISHED:連接成功建立,可進行數據交互。FIN-WAIT-1和CLOSE-WAIT:表示關閉連接的主動或被動階段。FIN-WAIT-2、LAST-ACK和TIME-WAIT:連接關閉的後續狀態。CLOSING:不常見狀態,表示特定的連接中斷過程。CLOSED:連接已完全關閉。狀態參數補充包括同步序列編號、確認編號和結束標志,分別用於連接請求、確認數據接收和結束TCP對話。
最後,PID/Program部分提供與socket關聯的進程ID和應用名稱,方便追蹤使用特定埠的應用程序。