應用層協議的具體應用:
NTP:做網絡時鐘(時間來源于互聯網,本地不用RTC)
DNS:
RTP、RTSP:視頻監控常用的協議
SNMP:簡單網絡管理協議(集中式管理)
FTP:
HTTP:
.......
先理解一下網絡的模型(linux、國嵌的PPT):

目的地址與源地址都是MAC(物理地址);
數據字段長度: 數據的類型(比如0x0800:表示幀里面的“數據”字段是一個IP包)
數據:這里面存放具體的數據包。
IP協議層:IP協議主要目的是為數據的輸入、輸出網絡提供基本算法,為高層協議提供無連接的傳送服務。
IP協議層的功能:數據傳送、尋址、路由選擇、數據報文的分段。
IP協議包格式:

TCP協議:TCP協議是重要的傳輸層協議,它的目的是為網絡上的各節點提供可靠的數據交換。它提供數據端口編號的譯碼,以識別主機的應用程序,完成數據的可靠傳送。
TCP包格式:
UDP協議:傳送層協議,它是無連接不可靠的傳送。當接收數據時它并不向發送方提供確認信息,它不提供輸入包的順序,如果出現丟失包或重份包的情況,也不會向發送方發出差錯報文,它的執行速度比TCP快,執行時具有較低的開銷。
UDP協議包格式:
基于TCP的網絡編程,基于UDP的網絡編程;【服務器、客戶端】
創建TCP服務器/客服端:
創建UDP服務器/客服端:
循環服務器:
上面介紹的TCP、UDP通信模型都是循環服務器,TCP的循環服務器與UDP的循環服務器又不同;TCP循環服務器一次只能處理一個客戶端的請求。所以一個客戶端占住服務器不放,其他的客戶端就沒法訪問服務器,所以在服務器端TCP服務器很少使用循環模式。但是UDP的循環服務器與TCP循環服務器不一樣,因為UDP不需要建立連接(TCP建立連接后完全占用服務器),所以UDP的循環服務器直接可以服務多個客戶端。
并發服務器:TCP需要使用并發服務器模型才能服務多個客戶端。
并發服務器的設計思路是每個客戶端的請求并不由服務器直接處理,而是由服務器創建一個子進程來處理。