-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
Tcp命令(tcp命令大全)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于Tcp命令的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內免費在線使用,能給你生成想要的原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
你只需要給出你的關鍵詞,它就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端,官網:https://ai.de1919.com
本文目錄:
一、tcpdump 命令使用簡介
tcpdump 是一款強大的網絡抓包工具,運行在 linux 平臺上。熟悉 tcpdump 的使用能夠幫助你分析、調試網絡數據。
要想使用很好地掌握 tcpdump, 必須對網絡報文( TCP/IP 協(xié)議)有一定的了解。不過對于簡單的使用來說,只要有網絡基礎概念就行了。
tcpdump 是一個很復雜的命令,想了解它的方方面面非常不易,也不值得推薦,能夠使用它解決日常工作中的問題才是關鍵。
tcpdump 的選項也很多,要想知道所有選項的話,請參考 man tcpdump ,下面只記錄 tcpdump 最常用的選項。
完整的英文文檔: https://www.tcpdump.org/tcpdump_man.html
需要注意的是,tcpdump 默認只會截取前 96 字節(jié)的內容,要想截取所有的報文內容,可以使用 -s number , number 就是你要截取的報文字節(jié)數,如果是 0 的話,表示截取報文全部內容。
Frame = Ethernet Header + IP Header + TCP Header + TCP Segment Data
Ethernet Header 以下的IP數據報最大傳輸單位為 MTU (Maximum Transmission Unit,Effect of short board),對于大多數使用以太網的局域網來說, MTU=1500 。
TCP數據包每次能夠傳輸的最大數據分段為MSS,為了達到最佳的傳輸效能,在建立TCP連接時雙方將協(xié)商MSS值——雙方提供的MSS值中的最小值為這次連接的最大MSS值。MSS往往基于MTU計算出來,通常 MSS =MTU-sizeof(IP Header)-sizeof(TCP Header)=1500-20-20=1460。
這樣,數據經過本地TCP層分段后,交給本地IP層,在本地IP層就不需要分片了。但是在下一跳路由(Next Hop)的鄰居路由器上可能發(fā)生IP分片!因為路由器的網卡的MTU可能小于需要轉發(fā)的IP數據報的大小。
這時候,在路由器上可能發(fā)生兩種情況:
(1)如果源發(fā)送端設置了這個IP數據包可以分片(May Fragment,DF=0),路由器將IP數據報分片后轉發(fā)。
(2)如果源發(fā)送端設置了這個IP數據報不可以分片(Don’t Fragment,DF=1),路由器將IP數據報丟棄,并發(fā)送ICMP分片錯誤消息給源發(fā)送端。
默認啟動,普通情況下,直接啟動tcpdump將監(jiān)視第一個網絡接口上所有流過的數據包
監(jiān)聽所有端口,直接顯示 ip 地址。
顯示更詳細的數據報文,包括 tos, ttl, checksum 等。
顯示數據報的全部數據信息,用 hex 和 ascii 兩列對比輸出。
下面是抓取 ping 命令的請求和返回的兩個報文,可以看到全部的數據。
機器上的網絡報文數量異常的多,很多時候我們只關系和具體問題有關的數據報(比如訪問某個網站的數據,或者 icmp 超時的報文等等),而這些數據只占到很小的一部分。把所有的數據截取下來,從里面找到想要的信息無疑是一件很費時費力的工作。而 tcpdump 提供了靈活的語法可以精確地截取關心的數據報,簡化分析的工作量。這些選擇數據包的語句就是過濾器(filter)!
過濾器也可以簡單地分為三類: type , dir 和 proto 。
Type 讓你區(qū)分報文的類型,主要由 host (主機), net (網絡) 和 port (端口) 組成。 src 和 dst 也可以用來過濾報文的源地址和目的地址。
此外還有指定端口和數據報文范圍的過濾器:
過于過濾器的更多詳細信息,請訪問 tcpdump 官方 map page 的 PCAP-FILTER 部分
使用 tcpdump 截取數據報文的時候,默認會打印到屏幕的默認輸出,你會看到按照順序和格式,很多的數據一行行快速閃過,根本來不及看清楚所有的內容。不過,tcpdump 提供了把截取的數據保存到文件的功能,以便后面使用其他圖形工具(比如 wireshark,Snort)來分析。
-w 選項用來把數據報文輸出到文件,比如下面的命令就是把所有 80 端口的數據導入到文件
-r 可以讀取文件里的數據報文,顯示到屏幕上。
NOTE:保存到文件的數據不是屏幕上看到的文件信息,而是包含了額外信息的固定格式 pcap,需要特殊的軟件(如: Wireshark )來查看,使用 vim 或者 cat 命令會出現(xiàn)亂碼。
過濾的真正強大之處在于你可以隨意組合它們,而連接它們的邏輯就是常用的 與/AND/&& 、 或/OR/|| 和 非/not/! 。
從上面的例子就可以看出,你可以隨意地組合之前的過濾器來截取自己期望的數據報,最重要的就是知道自己要精確匹配的數據室怎樣的!
對于比較復雜的過濾器表達式,為了邏輯的清晰,可以使用括號。不過默認情況下,tcpdump 把 () 當做特殊的字符,所以必須使用單引號 ' 來消除歧義:
抓取所有經過eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP數
抓取所有經過eth1,目標MAC地址是00:01:02:03:04:05的ICMP數據
抓取所有經過eth1,目的網絡是192.168,但目的主機不是192.168.1.200的TCP數據
截取數據只是第一步,第二步就是理解這些數據,下面就解釋一下 tcpdump 命令輸出各部分的意義。
最基本也是最重要的信息就是數據報的源地址/端口和目的地址/端口,上面的例子第一條數據報中,源地址 ip 是 192.168.1.106 ,源端口是 56166 ,目的地址是 124.192.132.54 ,目的端口是 80 。 > 符號代表數據的方向。
此外,上面的三條數據還是 tcp 協(xié)議的三次握手過程,第一條就是 SYN 報文,這個可以通過 Flags [S] 看出。下面是常見的 TCP 報文的 Flags:
而第二條數據的 [S.] 表示 SYN-ACK ,就是 SYN 報文的應答報文。
如果是為了查看數據內容,建議用 tcpdump -s 0 -w filename 把數據包都保存下來,然后用wireshark的Follow TCP Stream/Follow UDP Stream來查看整個會話的內容。 -s 0 是抓取完整數據包,否則默認只抓68字節(jié)。用tcpflow也可以方便的獲取TCP會話內容,支持tcpdump的各種表達式。
-c 參數對于運維人員來說也比較常用,因為流量比較大的服務器,靠人工CTRL+C還是抓的太多,甚至導致服務器宕機,于是可以用 -c 參數指定抓多少個包。
上面的命令計算抓10000個SYN包花費多少時間,可以判斷訪問量大概是多少。
Wireshark(以前是ethereal)是Windows下非常簡單易用的抓包工具。但在Linux下很難找到一個好用的圖形化抓包工具。
還好有Tcpdump。我們可以用Tcpdump + Wireshark 的完美組合實現(xiàn):在 Linux 里抓包,然后在Windows 里分析包。
0x4745 為"GET"前兩個字母"GE"
0x4854 為"HTTP"前兩個字母"HT"
tcpdump 對截獲的數據并沒有進行徹底解碼,數據包內的大部分內容是使用十六進制的形式直接打印輸出的。顯然這不利于分析網絡故障,通常的解決辦法是先使用帶 -w 參數的tcpdump 截獲數據并保存到文件中,然后再使用其他程序(如 Wireshark )進行解碼分析。當然也應該定義過濾規(guī)則,以避免捕獲的數據包填滿整個硬盤。
基本上tcpdump總的的輸出格式為: 系統(tǒng)時間 來源主機.端口 > 目標主機.端口 數據包參數
二、如何使用命令查看當前活動的TCP連接、計算機偵聽的端口、以太網統(tǒng)計信息、IP路由表等信息
你好!
DOS命令:netstat
netstat 主機:查看主機當前的tcp/ip連接狀態(tài),如端口的狀態(tài)。
例子:netstat 192.168.1.1
返回值有 協(xié)議、本地端口地址、端口地址、端口狀態(tài)
輸入:netstat ?
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
-a 顯示所有連接和監(jiān)聽端口。
-b 顯示包含于創(chuàng)建每個連接或監(jiān)聽端口的
可執(zhí)行組件。在某些情況下已知可執(zhí)行組件
擁有多個獨立組件,并且在這些情況下
包含于創(chuàng)建連接或監(jiān)聽端口的組件序列
被顯示。這種情況下,可執(zhí)行組件名
在底部的 [] 中,頂部是其調用的組件,
等等,直到 TCP/IP 部分。注意此選項
可能需要很長時間,如果沒有足夠權限
可能失敗。
-e 顯示以太網統(tǒng)計信息。此選項可以與 -s
選項組合使用。
-n 以數字形式顯示地址和端口號。
-o 顯示與每個連接相關的所屬進程 ID。
-p proto 顯示 proto 指定的協(xié)議的連接;proto 可以是
下列協(xié)議之一: TCP、UDP、TCPv6 或 UDPv6。
如果與 -s 選項一起使用以顯示按協(xié)議統(tǒng)計信息,proto 可以是下列協(xié)議
之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 顯示路由表。
-s 顯示按協(xié)議統(tǒng)計信息。默認地,顯示 IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統(tǒng)計信息;
-p 選項用于指定默認情況的子集。
-v 與 -b 選項一起使用時將顯示包含于
為所有可執(zhí)行組件創(chuàng)建連接或監(jiān)聽端口的
組件。
interval 重新顯示選定統(tǒng)計信息,每次顯示之間
暫停時間間隔(以秒計)。按 CTRL+C 停止重新
顯示統(tǒng)計信息。如果省略,netstat 顯示當前
配置信息(只顯示一次)
希望我的回答對你有所幫助~
三、誰能給我講 TCP/IP
分類: 電腦/網絡 >> 互聯(lián)網
解析:
TCP/IP(圖片請參考我的參考資料網址)
1. 前言
本文用于介紹TCP/IP協(xié)議的最基本內容,十分簡單,也十分基本,如果希望了解詳細的內容,請參閱其它資料,這只是給初學者用的。
2. TCP/IP介紹
TCP/IP通常指的是關于TCP和IP的任何東西,它是一個統(tǒng)稱,它既可以包括其它協(xié)議,其它應用程序,還可以包括網絡介質。
2.1 基本結構
為了理解這個技術,最好稱理解下圖:
這個結構存在于Inter中計算機之中,它決定了計算機在網絡上的動作。
2.2 名詞
數據塊的名稱會因為它處于不同的協(xié)議棧而不同。這里給出一個總結:在以太網時,它稱為一個以太網幀,在IP上時,它稱為IP包,如果數據在IP和UPD之間一般稱為UDP數據報,而數據如果在IP和TCP之間,則稱為TCP段(或消息),而數據在應用程序中時,則稱為應用程序消息。這種定義不是絕對的,不同的文章會有不同的說法。
2.3 數據流
數據流從應用程序流向TCP或UDP,我們通常知道的FTP是應用TCP協(xié)議的,而SNMP協(xié)議卻是使用UDP協(xié)議的。數據由不同協(xié)議模塊流向同一個以太網適配器。由適配器將數據傳送到網絡介質上去。上面的過程在接收方反向發(fā)生。
以太幀傳送到ARP或IP模塊中,而以太幀中的數據決定此數據是由IP還是由ARP處理。如果是供IP處理的包,則由IP模塊直接傳送給TCP或UPD,具體傳送給誰這由IP包頭決定。而UDP包內的數據決定了應該由UPD協(xié)議上層的哪一個應用程序接收這個數據,這一點和TCP是一致的。數據在從應用程序下傳到網絡時,過程比較簡單,各層把在數據上加入自己的包頭信息,然后傳送給下一層就行了。雖然Inter支持多種網絡介質,但是一般我們都拿以太網范例。這里我們需要記住的是以太地址是唯一的,全球唯一的。計算機同時也擁有一個四個字節(jié)的IP地址,這個地址用于標記IP模塊的地址,但對于Inter來說,IP地址不見得是唯一的。一臺運行著的計算機通常知道自己的IP地址和以太地址。
2.4 兩個網絡接口
下圖中一臺計算機連接了兩個以太網。
請注意:上圖中的計算機擁有兩個IP地址和以太地址。這時IP模塊將對應于多個物理適配器。
多個IP模塊對應多個物理適配器時,情況要復雜一些。
上圖說明了IP轉發(fā)的過程,專用于轉發(fā)IP包的計算機我們稱為IP路由器。從上圖中我們可以看出,IP轉發(fā)的時候根本不需要TCP和UDP,所以有些IP路由器的實現(xiàn)中根本沒有TCP和UPD模塊。
2.5 IP創(chuàng)建信號邏輯網絡
數據在從應用程序向網絡介質傳送的過程中,被各種協(xié)議加上包頭,而由網絡介質向應用程序傳送時,這些加入的包頭被一個個取消,而IP層加入的信息構成了一個邏輯網絡,這個邏輯網絡是相對于多個物理網絡而言的。多個物理網絡相互連接,就是我們現(xiàn)在經常聽到的Inter的由來。
2.6 物理網絡獨立性
IP將下層的網絡結構對上層的應用程序隱藏起來,如果您發(fā)明了一種新的網絡,您只需要實現(xiàn)一種驅動程序,讓它能夠和IP進行通信就可以使您的網絡連接入Inter。
2.7 互連性
如果Inter上的兩臺計算機能夠進行通信,我們稱它們互連了。我們的計算機一般都具有互連性,因此我們購買的計算機一般都可以在網絡上相互通信。
3. Ether
下面我們看看以太技術,一個以太幀包括源地址,目的地址,類型域和數據。一個以太地址6個字節(jié),每個以太適配器都有唯一的以太地址,而地址"FF-FF-FF-FF-FF-FF"代表一個廣播地址。以太網使用CSMA/CD技術,這個技術使設備共享一條傳輸介質,某一時刻只能一臺設備傳送數據,如果兩臺同時傳送就會產生沖突,而解釋這種沖突的辦法就是兩個設備停一會兒(一個隨機的時間)再傳送數據。
我們可以把以太技術想成許多人在一個黑屋子里說話,如果每次只有一個人說,那么對這個話感興趣的人就會聽到,記錄下來,而不感興趣的人就不管它就是了。如果兩個人同時說,兩個人就會聽到自己在說話的時候還有另外一個人也在說,于是就停下來,過一會兒再說,這樣來達到傳送消息的目的。這里需要注意的是,屋子里的每個人有一個唯一的名字,這個名字就是以太地址,而如果某個人想對所有人說話,它就應用那個廣播地址傳送消息就可以了。
4. ARP
ARP是為了解決IP包發(fā)出后,目的以太地址如何確定的問題。ARP是用來將IP地址解釋為以太地址的協(xié)議,這個協(xié)議只對由IP傳出的數據有用。
4.1 ARP地址翻譯表
這個翻譯的過程中通過查詢一張表進行的,每個機器的IP地址和以太網卡號就在這個表中,如果我想向一個IP地址發(fā)送消息,只需要查詢一下這張表,知道目的以太地址是什么就可以了。下面就是一張這個的ARP表:
IP地址 以太地址
223.1.2.1 08-00-39-00-2F-C3
223.1.2.3 08-00-5A-21-A7-22
223.1.2.4 08-00-10-99-AC-54
圖1. ARP表
IP地址在機器內部是一個4字節(jié)數,而人類的表示是如上表中的表示方法,這種方法稱為點為十進制。這種翻譯表是必須的,因為IP地址的選擇和以太地址的選擇是獨立進行的。以太地址是生產廠商根據分配給它的地址空間直接燒結在網卡上的。
4.2 經典的翻譯過程
在通常網絡操作進行時,應用程序發(fā)送消息到TCP(或UDP),由TCP(或UDP)傳送消息到IP模塊,目的IP地址是已知的,在將這個包傳送到以太適配器時一定要查找這個翻譯表知道目的以太地址是什么。而這時ARP就管用了。
4.3 ARP請示/響應對
但是,ARP表如何從空變得那么充實呢?這是由ARP協(xié)議來完成填充工作的,它工作的基本過程是“需時再取”的原則。當ARP不能用于查詢以太地址時,會發(fā)生下面兩件事情:
1. ARP用以太廣播地址發(fā)送一個以太包到網絡上,所有的計算機都會接收到這個包;
2. 將需要發(fā)送的IP包放入發(fā)送隊列中;
發(fā)出的那個以太包就象一個問路的人一樣,它帶有如下信息:“如果您的IP地址和我想找的IP地址一樣,請告訴我您的以太地址”,下面是一個ARP請示包的例子:
發(fā)送者IP地址 223.1.2.1
發(fā)送者以太地址 08-00-39-00-2F-C3
目標IP地址 223.1.2.2
目標以太地址 (空)
表2. ARP請示包例子
每臺計算機的ARP模塊檢查自己的IP地址是不是和這個包內的IP地址一致,如果不一致,就什么也不干,如果一致,則返回一個響應,其中包括的信息指出了這個IP地址的以太地址。下面是一個響應包的例子:
發(fā)送者IP地址 223.1.2.2
發(fā)送者以太地址 08-00-28-00-38-A9
目標IP地址 223.1.2.1
目標以太地址 08-00-39-00-2F-C3
表3. ARP響應包例子
這個響應由原來發(fā)出請求的計算機接收,ARP就將相應的IP地址和以太地址加入ARP表中,這個過程不斷地發(fā)生,這個表也就不斷地加大了,更新過的ARP表如下圖所示:
IP地址 以太地址
223.1.2.1 08-00-39-00-2F-C3
223.1.2.2 08-00-28-00-38-A9
223.1.2.3 08-00-5A-21-A7-22
223.1.2.4 08-00-10-99-AC-54
表4. 更新后的ARP表
這個請求與響應的過程十分迅速,放入隊列的IP包現(xiàn)在可以取出發(fā)送了,因為所需要的以太地址已經有了,可以發(fā)送了。如果沒有目的主機,發(fā)出的請求就不會有回應,IP層拋棄需要發(fā)送的IP包,而上層協(xié)議也不清楚是網絡斷了,還是不存在目的主機,IP層不負責報告錯誤類型。
5. Inter協(xié)議
IP模塊是Inter技術的核心,而它的路由技術是它成為核心的基礎。了解路由需要也解互連是什么。
5.1 直接路由
下圖是一個只有三臺計算機的小網絡,每臺計算機有運行一個TCP/IP協(xié)議棧,每個計算機配有以太適配器,每個計算機都被指定一個獨立的IP地址。
當A發(fā)送IP包到B時,IP包頭包括A的IP地址(這是源地址)和A的以太地址(這是源以太地址);同時這個包也包括B的IP地址和以太地址作為目的地址。
地址 源 目的
IP頭 A B
以太頭 A B
表5. 從A到B的IP包
在這種情況下,使用IP是多余的,因為它根本沒有起到什么作用,用IP只能增加多余的處理時間,占用了多余的傳輸帶寬。B接收到這個包后,IP層檢查這個包內的目的地址是不是和自己的IP地址一致,如果一致則將數據返回給上層協(xié)議。這稱為直接路由。
5.2 間接路由
下面這個示意圖更接近Inter真實的情況。三個小的以太網,每個網絡中有三臺計算機,它們有唯一以太地址,IP地址,這三個網絡通過一臺路由器連接,這臺路由器有一個IP地址和三個以太地址,因為它和三個網絡連接,當然要三個了。這里一定要記住,IP地址只有一個。
計算機D是一臺路由器,它的TCP/IP協(xié)議棧內可能根本沒有TCP和UDP,而可能有多個ARP模塊和多個以太驅動程序(因為有多個以太適配器,所以要多個驅動程序才可以)。網絡管理員為每個子網(上圖中有三個子網)指定一個網絡號,是這個網絡的名稱,這個名稱在上圖是沒有表示。
如果計算機A希望和計算機B通信,采用直接路由就可以了。這個過程上面已經說過了。在同一個子網內均采用直接路由。如果計算機D希望和計算機A通信,這也是直接路由,直接通信就行了,D和其它所有計算機的通信都是直接通信。但是如果計算機A希望和非本子網內的計算機通信就不能采用直接路由了,它發(fā)送的IP包必須發(fā)到計算機D,由計算機D向其它網絡發(fā)送,這種通信就是非直接的。
路由對于IP協(xié)議上層的協(xié)議來說是透明的,它們根本不知道有什么路由存在。
請注意下面的圖,源地址是計算機A的,目的IP地址是計算機E,而目的以太地址卻是計算機D的,這是因為計算機A和計算機E不處于同一個子網內,不能直接通信,需要由計算機D進行轉發(fā),因此這包只能發(fā)往計算機。
地址 源 目的
IP頭 A E
以太頭 A D
表6. 從計算機A到計算機E以太幀示意圖
對于計算機D來說,它的以太幀地址如下:
地址 源 目的
IP頭 A E
以太頭 D E
表7. 從計算機D到計算機E以太幀示意圖
因為計算機D和計算機E可以直接通信。我們可以看到,在直接通信時,目的IP地址和以太地址都是接收者的,而在非直接通信時,目的IP地址是接收者的,而目的以太地址卻是路由器的。上面的例子比較簡單,真實的路由要比這個復雜得多,因為現(xiàn)實中的網絡十分大,要許多路由器同時工作,這時的情況就比較復雜了。
5.3 IP路由規(guī)則
對于要發(fā)出的IP包,IP必須決定如何發(fā)送,是采用直接發(fā)送還是非直接發(fā)送,這是在路由表的幫助下完成的。對于傳入的IP包,IP模塊必須能夠識別它是不是自己需要的包,如果是自己需要的,就把數據傳送到上一層協(xié)議中,如果不需要則進行轉發(fā)。在IP包達到目的地址后,它不再轉發(fā)了。
5.4 IP地址
IP地址是由網絡管理者為一臺計算機指定的地址,IP地址的一部分作為網絡號,另一部分作為網絡中的主機號。具體內容請大家查詢相關資料。IP地址是由NIC管理的,所有直接連接到Inter上的計算機如果需要IP地址,必須和NIC聯(lián)系,則它指定;如果您需要建立自己的網絡,那相應的網絡號也需要從NIC取得。
5.5 名稱
人們喜歡使用計算機的名稱,而不喜歡使用數字來標記一臺計算機,對于小型網絡,計算機名和IP地址的對應表可以保存在每臺計算機上,如果是一個大型網絡,則需要一臺專用的計算機來負責IP地址到計算機名的轉換。下面就是一個IP地址和計算機名的對應表。
223.1.2.1 alpha
223.1.2.2 beta
223.1.2.3 gamma
223.1.2.4 delta
223.1.3.2 epsilon
223.1.4.2 iota
前一列是IP地址,后一列是計算機名。您可以為一個計算機名指定多個IP地址,那么通過哪一個IP地址都可以訪問這臺計算機。這個擁有多個IP地址的計算機在接收到包后,可以根據目的地址知道是不是發(fā)向自己的包,這個目的地址可以是自己的任何一個地址。名稱也用于網絡號,下面就是一個例子:
223.1.2 development
223.1.3 accounting
223.1.4 factory
前一列是IP地址,后一列是網絡名。我們可以這個表上面的表對比一下,看看各個計算機屬于什么網絡。
5.6 IP路由表
我們上面已經提到過路由表這個名詞,下面我們就仔細看一下這張表。它通常是由下面幾列構成的:IP網絡號,直接/非直接標記,路由器IP地址和接口號。這張表一般由管理員負責維護,因為是他為你的計算機指定了IP地址。
5.7 直接路由
下面我們仔細看一下我們上面看過的直接路由的例子。
在計算機alpha內的路由表如下所示:
網絡 直接/非直接標記 路由器 接口號
development 直接 (空) 1
表8. 路由表范例
我們可能通過UNIX下的"stat -r"命令看到類似這樣的結果。
5.8 實例
Alpha發(fā)送IP包到beta,alpha中的IP包的目的地址是beta的地址(223.1.2.2)。IP取得網絡號部分,查詢路由表中的第一部分,看這個包應該包到什么地方,它發(fā)現(xiàn)這個網絡和表中的第一個項目一致。而這個項目中的其它信息表示,目的計算機可以直接通信,于是直接進行ARP翻譯(解析),通過接口1發(fā)送數據。
5.9 非直接路由
下面我們仔細看一下我們上面看過的非直接路由的例子。
計算機alpha內的路由表如下所示:
網絡 直接/非直接標記 路由器 接口號
development 直接 (空) 1
accounting 非直接 devrouter 1
factory 非直接 devrouter 1
表10. Alpha內的路由表
5.10 實例
Alpha發(fā)送IP包到epsilon,IP包內的目的地址是epsilon的(223.1.3.2)。IP分析目的地址的網絡號部分,查詢路由表中的第一列,發(fā)現(xiàn)第二個項目符合條件。此項目中的信息表示計算機可以由路由器devrouter達到,Alpha的IP模塊進行ARP解析,將數據通過接口1傳送到devrouter的IP地址上。這個包仍然包括著目的機IP地址223.1.3.2。這個包到達development網絡接口,傳送到delta計算機的IP模塊,delta計算機發(fā)現(xiàn)這個包不是給它的,于是決定轉發(fā)。Delta的IP模塊從目的地址中解析出網絡號,查詢路由表,Delta的路由表如下所示:
網絡 直接/非直接標記 路由器 接口號
development 直接 (空) 1
factory 直接 (空) 3
accounting 直接 (空) 2
表11. Delta的路由表
第二條符合條件,于是IP模塊接口3將數據發(fā)送到計算機epsilon,IP包到達epsilon時,epsilon的IP模塊發(fā)現(xiàn)目的地址和自己的一致,于是將接收到的數據向上一層協(xié)議傳送。
5.11 路由總結
在一個大型網絡中,IP包在到達目的計算機前一般需要經過多個路由器,它前進的路線不是事先定好的,而是在各個路由器上一步步查詢出來的,每個計算機只管一段,只保證把數據傳送到下一站,至于下一站怎么辦,它就不管了。
5.12 管理路由
在大型網絡的每臺機器上支持一張路由表可不是件容易事,路由器如果出了問題會對網絡傳輸不能進行。我們也可以使用ICMP協(xié)議對網絡進行監(jiān)控。一臺機器從一個地方移到另一個地方必須更改計算機的IP地址,如果要更新主機地址文件,這簡單是不可能的,而DNS幫助解決這個問題。
6. 用戶數據報協(xié)議(UDP)
UDP是在IP上的兩個重要協(xié)議之一,它為用戶的網絡應用程序提供服務,我們經常使用的NFS,SNMP就是使用UDP協(xié)議的。UDP協(xié)議不是面向連接的。這一點是和TCP協(xié)議不同的。UDP在IP包上加上了端口號和校驗碼兩個參數。
6.1 端口
一臺計算機上的客戶程序如何達到服務器呢?應用程序和UDP的通信線路是通過UDP端口一樣的,這些端口是數字的,以0開始,一個端口一般和一個服務對應。服務器和客戶就在這個端口等待對方的請求(或應答)。UDP保留由應用程序定義的消息邊界。它決不把兩個消息連接起來,或把一個消息分成兩部分。
6.2 校驗碼
如果接收到的IP包內有一個標記“UDP”,IP模塊就把數據傳送到UDP,UDP檢查校驗碼,如果運算得出的結果為0,數據是正確的。UDP的校驗碼可以產生也可以不產生。傳送來的UDP包如果超過了上層應用程序的處理能力,就會暫時保存起來,如果保存的數據已經超過一定限制,則把UDP丟棄。
7. 傳輸控制協(xié)議(TCP)
TCP提供的服務不同于UDP,它們的最大區(qū)別在于TCP是面向連接的,TCP保證數據一定傳送到接收者,而UDP可不保證。TCP用于一定要保證數據傳輸的場合,我們通常知道的FTP,TELNET是基于TCP協(xié)議的,而其它的一些TCP網絡應用程序包括X-Window系統(tǒng),rcp(遠程復制)和R系列命令也是使用TCP的,TCP提供這樣好的服務也是有代價的,它需要更多的CPU處理時間和網絡帶寬,TCP模塊的復雜度也比UDP大得多。
與UDP相同的是,應用程序必須和TCP端口連接請求服務,接收和發(fā)送數據。在應用程序開始運行時,服務器和客戶機上的TCP模塊開始相互通信,這兩個TCP包含了狀態(tài)信息,維持一條虛鏈路,這條虛鏈路是全雙工的。TCP可以任意打包數據,不必管什么邊界。例如,應用程序可以在一個端口寫5次,遠方的應用程序可以讀10次把數據讀完,這和UDP不同,在UDP下,在一個端口寫幾次,遠程應用程序就要讀幾次。
TCP支持滑動窗口協(xié)議,雙方都進行流量控制,因此不會讓緩沖區(qū)滿。這也和UDP不同,在UDP的情況下,緩沖區(qū)可能因為應用程序的處理能力不足而變滿。對于滑動窗口協(xié)議,它指定了一個窗口大小,這個大小指的是,在未接收到確認信息之前允許發(fā)送的數據數,在TCP中,窗口的大小是以字節(jié)為單位的。
8. 網絡應用程序
TCP和UDP提供不同的服務,不同的應用程序會選擇不同的協(xié)議,這里請您注意,如果您選擇使用UDP進行可靠傳輸,那只能在UDP上層來提供可靠性。下面我們舉出幾個常用的應用程序。
TELNET使用TCP提供遠程登錄。TELNET工作得非常好,它雖然古老,但是現(xiàn)在仍然在廣泛使用,它經常用于在不同的操作系統(tǒng)間進行互連。 FTP協(xié)議和TELNET歲數差不多大了,它也使用TCP服務,在FTP時,您好象登錄到遠程計算機上,但您能夠使用的命令卻不那么多,F(xiàn)TP提供用戶在計算機間復制文件的服務。UNIX中的遠程命令一般都以R開始,這些命令一般都通過網絡進行,我們就稱它們?yōu)镽系列命令,這些命令通常在UNIX系統(tǒng)中使用,它對安全性考慮不多,但是非常好用。NFS由Sun公司開發(fā),它使用UDP,它用于在不同的計算機上加載UNIX文件系統(tǒng),在這一點上它做得非常好。NFS為網絡加重了負擔,在慢速連接的網絡上工作得不好,但它的功能可卻是不錯。隨著網絡規(guī)模不斷擴大,原來的網絡管理協(xié)議ICMP已經不能提供滿意的服務了,于是在這一要求下提出了SNMP協(xié)議,它檢測網絡中各種設備的情況,根據這種情況對網絡進行監(jiān)控。X Window系統(tǒng)使用X Window協(xié)議,X Window協(xié)議也使用TCP服務
四、tcpdump抓包命令
1、tcpdump: 默認啟動。普通情況下,直接啟動tcpdump將監(jiān)視第一個網絡接口上所有流過的數據包。
2、tcpdump -i eth1:監(jiān)視指定網絡接口的數據包,如果不指定網卡,默認tcpdump只會監(jiān)視第一個網絡接口,一般是eth0,下面的例子都沒有指定網絡接口。
3、tcpdump host sundown:監(jiān)視指定主機的數據包。打印所有進入或離開sundown的數據包。
4、tcpdump -i eth0 src host hostname:截獲主機hostname發(fā)送的所有數據。
5、tcpdump -i eth0 dst host hostname:監(jiān)視所有送到主機hostname的數據包。
6、tcpdump tcp port 23 and host 210.27.48.1:如果想要獲取主機210.27.48.1接收或發(fā)出的telnet包。
7、tcpdump udp port 123:對本機的udp 123 端口進行監(jiān)視 123 為ntp的服務端口。
以上就是關于Tcp命令相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
寧波現(xiàn)代景觀設計咨詢公司(寧波現(xiàn)代景觀設計咨詢公司有哪些)