unix網路程式設計之一TCP UDP

2021-06-02 09:46:50 字數 549 閱讀 3954

網路通訊中最常用的就是tcp/udp。2種協議個有一些特點如下:

udp是一種簡單的傳輸協議。應用程式寫資料到udp套介面。然後由它封裝成ipv4或ipv6的資料報,再傳送到目的位址。它不提供可靠性。它與伺服器不存在長期的連線關係。

tcp是一種面向連線的協議。提供:可靠性(先連線,再傳輸資料。傳送資料後,沒有收到確認。就重傳,有重傳機制)。順序性(給每個資料報編號排序。防止接收資料後,資料順序錯亂)。流量控制(有通告視窗機制,相互告訴對方自己能接收的最大位元組數)。全雙工(客戶端和伺服器能同時接收和傳送資料)

tcp是面向連線的協議。通過如下機制來實現連線和斷開的正確行。

連線:通過3路握手(請求,(應答+請求),應答)

斷開:4路關閉(請求,應答,請求,應答)從圖可以看出下面第二步中,應答和請求沒有一起,是因為處理的函式不是同乙個。而tcp連線的基本模式是:請求+應答

tcp連線使用的一些選項:

mss,通知對方它的最大分節大小。能接收的每個tcp最大的資料量。

視窗規模:在連線的時候通知對方自己的能接收的最大位元組數

時間戳:接收和傳送的時間

unix網路程式設計之簡介和運輸層TCP UDP

前言 本文只介紹了有關unix網路程式設計的理論知識,具體的應用和例子在稍後的博文中將更新 第一章 簡介 乙個簡單的伺服器程式步驟 說明 1.建立tcp套介面 2.伺服器的眾所周知埠 3.把套介面變換成監聽套介面 4.接受客戶連線,傳送應答,伺服器程序在呼叫accept函式後處於睡眠狀態,它等待客戶...

UNIX網路程式設計學習日誌之(一)

已經退伍了,脫掉綠色軍裝,說的悲壯一點,這叫解甲歸田。這種生活是多少個軍人日夜夢想的結果啊。從軍保衛國家,捍衛和平。和平來了。於是軍人可以回家享受生活。平淡的生活就夠了。一直很忙,忙的沒時間學習,早就想看看夢寐以求的幾本書。第一本就是unix網路程式設計。如果說計算機網路程式設計是本科時期網路方向的...

UNIX網路程式設計之SO REUSEADDR關鍵字

1 一般來說 乙個埠釋放後會等待兩分鐘之後才能再被使用 so reuseaddr 是讓埠釋放後立即就可以被再次使用。so reuseaddr 用於對tcp 套接字處於 time wait 狀態下的 socket 才可以重複繫結使用。server 程式總是應該在呼叫 bind 之前設定 so reus...