GB | BIG5
|
| 首頁 > 網絡管理 > 其它 > 正文 |
 |
| TCP會話詳析 |
| http://www.xici.net 作者: 大鷹 (2001-05-11 15:04:09) |
現在網上的許多服務程序都是基TCP連接的,它已成為一個標準,下面我們來詳細地看看一個TCP連接的過程,其實大家要學習一個詳細的TCP連接,可以運行網絡監聽工具,如NT裡的Network MornitorUNIX系統裡的snoop(sun solaris),tcpdump(freeBSD,linux,NetBSD,DEC UNIX),Sniffit等等。抓一個TCP包看看,可以學到很多。
TCP是一個可靠的,連接定向的發送服務,數據分段傳送。連接定向意味著在主機交換數據之前必須建立會話。TCP使用字節流(byte-stream)通信,這意味著數據被當作沒有邊界的字節序列。
可靠性是通過給傳送的段分配序號來實現的。如果一個TCP段被分裂為小片,接受主機知道是否所有的片都收到了,並通過答復的方法檢驗數據是否被其他主機接收到。對每一個發送的段,接收主機必須返回帶有特定時間段內接收到的字節數的答復(ACK)。
.如果沒接收到ACK,數據將重新發送。
.如果段在接收到的時候已經損壞,接收主機將廢棄它。因為沒有發回ACK,所以發送者將重新發送這段。
TCP端口
TCP端口為發送消息提供特定的定位,在256以下的端口號被定義為常用的端口。以下列出了常用的TCP端口:
端口號碼 描述
--------------------------------------
21 FTP
23 Telnet
53 域名服務器(DNS)
139 Netbios會話服務
TCP Three-Way Handshake
一次TCP會話通過Three-Way Handshake實行初始化。Three-Way Handshake的目的在:
1,合成發送和接收段。
2,同志另一主機能一次接受的數據量(窗口尺寸與段大小)。
3,建立虛擬連接。
下列步驟概括敘述了過程:
1,源主機通過發送帶有置為on的SYN標志的段要求會話。
2,桀紂主機通過發回具有以下特點的段表示同意接收:
.SYN標志置為on。
.有一個指示可能發送的段的開始字節序列號。
.帶有它等待接收的下一個段的字節序列號的許可。
3,請求的餓主機返回帶有許可的序列號和許可號碼的段。
TCP使用類似的握手過程結束連接。這保証兩台主機都結束傳送並且所有的數據收到了。
TCP滑動窗口。
TCP使用滑動窗口為兩台主機間傳送緩沖數據。每台TCP/IP主機支持兩個滑動窗口:一個用接收數據,另一個用發送數據。敞口尺寸表示計算機可以緩沖的數據量的大小。
滑動窗口的工作。
1,當TCP從文件中接收數據時,數據位send窗口。TCP將一個帶有序列號的報頭加入數據包並將其交給IP,由IP將它發送到目標主機。
2,當每一個數據包傳送時,客戶機設置重傳計時器,描述在重新發送數據包之前將等待ACK多久。在SEND窗口中有每一個數據包的備分,直到收到ACK。
3,當數據包到達服務器RECEIVE窗口,它們按照序列號放置。當接收到連續的段時間就向用戶機發送一個關數據的認可,其中帶有當前窗口尺寸。
4,一旦客戶機接收到認可,SEND窗口將由已獲得認可的數據滑動到等待發送的數據。如果在重發計時器設定的時間內,客戶機沒有接收到對現存數據的認可,數據將重新發送。重發數據包將加重網絡和客戶機的負擔。
5,如果數據包接收到時順序錯亂,那將強制延遲ACK計時器發送認可。
TCP數據包結構
所有TCP段有兩部分:數據和報頭。下面域被加在TCP報頭。
域 功能
-------------------------------------------------------------------------
源端口 發送主機的TCP端口
目標端口 目標主機的TCP端口,給通信提供終止點
序列號 在一個段中發送字節的順序。
數據長度 TCP數據段的長度
保留的 保留供以使用
標志 用表示段的內容
窗口 在TCP窗口中還有多少空間可用
校驗和 驗証報頭是否損壞
緊急指針 當發送緊急數據時,指針將指向緊急數據的結尾
-------------------------------------------------------------------------
呵呵,比較好懂吧?很抽象不是?上面是MCSE裡的TCP/IP這門課所學的,看來MCSE還是挺好的,它所學的很多,包括網絡的各個方面,但很多不會考你,象上面的就是,但確實很重要,呵呵。
Just you known,I am a eagle.
Which fly over Internet!
--------------------------------------------------------------------------------
回應人: shotgun 發表日期: 2000-04-16 12:56:28
沒錯,最好還是買本tcp/ip的書來看看,比如清華的tcp/ip網絡原理和技術;
關端口,是很重要,常用的50多個應該要記得(至少也要記得一二十個)
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |