以前總聽說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...