通訊的時候,雙方必須知道對方的標識,聯網上每個計算機的唯一標識就是ip位址,類似123.123.123.123。如果一台計算機同時接入到兩個或更多的網路,比如路由器,它就會有兩個或多個ip位址,所以,ip位址對應的實際上是計算機的網路介面,通常是網絡卡。
ip協議負責把資料從一台計算機通過網路傳送到另一台計算機。資料被分割成一小塊一小塊,然後通過ip包傳送出去。由於網際網路鏈路複雜,兩台計算機之間經常有多條線路,因此,路由器就負責決定如何把乙個ip包**出去。ip包的特點是按塊傳送,途徑多個路由,但不保證能到達,也不保證順序到達。
ip位址實際上是乙個32位整數(稱為ipv4),以字串表示的ip位址如192.168.0.1實際上是把32位整數按8位分組後的數字表示,目的是便於閱讀。
ipv6位址實際上是乙個128位整數,它是目前使用的ipv4的公升級版,以字串表示類似於2001:0db8:85a3:0042:1000:8a2e:0370:7334。
tcp協議則是建立在ip協議之上的。*tcp協議負責在兩台計算機之間建立可靠連線,保證資料報按順序到達。*tcp協議會通過握手建立連線,然後,對每個ip包編號,確保對方按順序收到,如果包丟掉了,就自動重發。
許多常用的更高階的協議都是建立在tcp協議基礎上的,比如用於瀏覽器的http協議、傳送郵件的smtp協議等。
乙個tcp報文除了包含要傳輸的資料外,還包含源ip位址和目標ip位址,源埠和目標埠。
埠有什麼作用?在兩台計算機通訊時,只發ip位址是不夠的,因為同一臺計算機上跑著多個網路程式。乙個tcp報文來了之後,到底是交給瀏覽器還是qq,就需要埠號來區分。每個網路程式都向作業系統申請唯一的埠號,這樣,兩個程序在兩台計算機之間建立網路連線就需要各自的ip位址和各自的埠號。
乙個程序也可能同時與多個計算機建立鏈結,因此它會申請很多埠。
**tcp/ip簡介
tcp ip 學習筆記
最近學習網路程式設計,看了周立發老師的blog 也模仿寫了乙個檔案管理併發伺服器。選擇多程序併發伺服器 技術難點 建立tcp 伺服器 fork 產生新的處理程序 使用getopt 函式使伺服器配置引數化,使用同一的linux風格 設定埠復用,瀏覽檔案系統,思路 1 首先建立乙個被動套接字 設定套接字...
Tcp ip學習筆記
分層 網路協議通常分不同層次進行開發,每一層分別負責不同的通訊功能。乙個協議族,比如t c p i p,是一組不同層次上的多個協議的組合。t c p i p通常被認為是乙個四層協議系統,如圖1 1所示。每一層負責不同的功能 1 鏈路層,有時也稱作資料鏈路層或網路介面層,通常包括作業系統中的裝置驅動程...
TCP IP 學習筆記
1 擁塞避免演算法 名稱解釋 報文段 tcp一次傳輸所傳送的一定長度的位元組段。tcp的滑動視窗機制,作為接收方管理傳送方傳送資料量的手段,以防止接收方的接收緩衝區因為滿而溢位。擁塞視窗 cwnd 接收端通知視窗 rwnd 慢啟動閥值 ssthresh 慢啟動的特徵 1 cwnd被初始化為乙個資料報...