我對tcp的初步理解

2021-04-13 09:37:30 字數 1226 閱讀 9507

以前總聽說tcp/ip協議,感覺很叼,總搞不清是個什麼東西。

最近在看unix網路程式設計,似乎有點懂了,不就是源**麼。也就是核心的一部分,至於是誰規定出來的,是誰寫出來的,我想應該是n個牛人協議出來的吧。

以前看書的時候總有這樣的問題,為什麼有了tcp就可以實現網路的資料傳輸呢?(是不是我有點sb)。現在總算是有點感覺了。

我說個例子看看是不是這樣:

目的:實現兩台主機之間的簡單tcp通訊,就a和b吧。

過程:1 a想和b

通訊,那麼

a就要有

b的相關相關資訊,為什麼?你和別人打招呼都不用知道別人的類似名字之類的東西嗎!那

a為什麼能夠知道

b的相關資訊勒?這就是

tcp協議該幹的事了,別問我

tcp協議在哪兒?它就在你的

unix/linux

核心裡。具體

tcp要做的事是把b的

ip,port,

等一切相關的資訊寫到一定的結構裡,如

sockaddr_in

。這就是

a要做的基本的準備工作。2 那

b呢?它需要有什麼準備?你去和別人打招呼,別人準備什麼?等著唄,天知道你什麼時候和人家打招呼啊,只能等著。

~~他只需要有打招呼這個心理準備就行了。回到我們的

b上,它只需要聽著(

listen()

)有沒有外面的連線來就行了。至於

listen

之前的工作,我就不說了,網上很多詳細內容的。行了,

b也可以了。ps:

為什麼這樣就實現了端對端的通訊呢?我以前很納悶,答案是因為這就是

tcp規定的(當然前提是這兩個系統裡都有

tcp這部分的源**),它說行不就行了!想想自己真是太

…….

3 好了,現在可以通訊了。

再看看tcp

它到底幹什麼了?我的理解是:兩個老外,乙個會說德語和英語,乙個會說韓語和英語。他們兩個人交流時各自用自己的語言,肯定是不通的。此時要是有第三個人他說;「你們為什麼不用英語交流呢?」那麼他們就可以交流了。沒錯,

tcp充當的就是第三者,兩個老外就是a和

b,也許他們都有各自的很多通訊協議,什麼

tcp,udp

啊,只要找到乙個a和

b都有的通訊機制

,它們自然就通了。

簡單的說

tcp就是提供了乙個模式。

概念不准,但希望例子多少會有點用,看概念的話,書比我清楚,哈哈

對hashMap的初步理解

當我們建立乙個hashmap,往hashmap裡面put元素的時候,hashmap內部會建立乙個陣列,陣列如果不指定初始容量,那麼hashmap在建立物件時,在第一次put元素的時候會預設指定乙個陣列的初始長度,為16位 static final int default initial capaci...

對HashMap的初步理解

一 hashmap 1 用來儲存key value鍵值對的一種結構 2 底層由陣列 鍊錶實現 二 hash和map的理解 1 雜湊hash 雜湊演算法也叫雜湊演算法,就是把任意長度值 key 通過雜湊演算法變換成固定長度的key位址,通過這個位址進行訪問的資料結構。它通過把關鍵碼值對映到表中乙個位置...

TCP協議初步理解(一)

tcp作為傳輸控制協議,控制著傳輸層。為了保證資料可靠傳遞,主要有兩種方法保證資料傳輸可靠性。重新傳送也能處理超差問題,所以重試是很多通訊協議的基礎,包括了tcp。既然有重試,那傳送方必須知道什麼時候停止重試,也就是說需要接受者的響應,一般稱之為ack。這裡又會牽扯到新的問題。第乙個問題比較麻煩,t...