內容簡介
《TCP/IP協定與網路編程》Interllet的核心技術是TCP/IP協定,由於當前Intemet的普及,TCP/IP程式設計已經成為當前最熱門和套用最廣泛的程式設計技術。《TCP/IP協定與網路編程》在內容的安排上注意系統性和循序漸進性,首先介紹了進行TCP/IP程式設計所必須掌握的’TCP/IP協定的有關知識,然後就網路程式設計的API進行了全面和系統的講解,並且每一章都有一些簡單易懂的實例,最後通過幾種典型的1'CP/IP程式設計實例的介紹和分析,使沒有TCP/IP知識或對TCP/IP知識了解較少的讀者通過《TCP/IP協定與網路編程》的學習,也能在短期內掌握TCP/IP知識,並能進行一些簡單實用的’rcPftP程式的開發工作。
目錄
目 錄
第1章Internet與TCP/IP協定
1.1Internet中的"世界語"——TCP/IP協定
1.1.1Internet——"冷戰"的產物
1.1.2網路互聯促成了TCP/IP協定的產生
1.2TCP/IP協定的體系結構
1.2.1網路體系結構的概念
1.2.2TCP/IP協定的四個層次
1.2.3TCP/IP協定模型中的作業系統邊界和地址邊界
1.3TCP/IP協定的工作過程
1.3.1TCP/IP協定通信模型
1.3.2數據的封裝與傳遞過程
本章小結
習題
第2章IP協定
2.1IP協定如何進行網路互聯
2.1.1網路互聯方式
2.1.2IP網際網路原理
2.1.3IP協定的地位與IP網際網路的特點
2.2IP位址
2.2.1IP位址的結構
2.2.2IP位址的表示格式
2.2.3IP位址的分類
2.2.4一些有特殊用途的IP位址
2.2.5子網與子網掩碼
2.3IP數據報格式
2.3.1IP數據報各欄位的功能
2.3.2IP數據報分片與重組
2.3.3IP數據報選項
2.4Internet控制報文協定(ICMP)
2.4.1ICMP報文的封裝與格式
2.4.2ICMP差錯報文
2.4.3ICMP控制報文
2.4.4ICMP請求與應答報文
2.5地址解析
2.5.1ARP協定
2.5.2RARP協定
2.6IP數據報的路由選擇
2.6.1路由表
2.6.2路由選擇算法
2.6.3路由表的建立與刷新
2.6.4路由選擇協定
本章小結
習題
第3章傳輸層協定UDP和TCP
3.1端到端通信和連線埠號
3.1.1端到端通信
3.1.2傳輸層連線埠的概念
3.2用戶數據報協定UDP
3.2.1UDP數據報的封裝及其格式
3.2.2UDP校驗和的計算方法
3.2.3UDP協定的特點
3.3傳輸控制協定TCP
3.3.1TCP報文段格式
3.3.2TCP連線的建立與關閉
3.3.3TCP的流量控制和擁塞控制機制
3.3.4TCP的逾時重發機制
3.4TCP與UDP的比較
本章小結
習題
第4章TCP/IP套用層常用協定
4.1Telnet協定
4.1.1遠程登錄
4.1.2Telnet的工作原理
4.1.3網路虛擬終端(NVT)的概念
4.1.4Telnet協定選項協商
4.1.5Telnet協定選項協商實例
4.2檔案傳輸協定FTP
4.2.1FTP簡介
4.2.2FTP支持的檔案類型和檔案結構
4.2.3FTP的工作原理
4.2.4FTP命令和應答
4.2.5FTP工作實例
4.3電子郵件的工作原理及其協定
4.3.1TCP/IP協定下E-mail的工作原理
4.3.2SMTP協定原理與工作實例
4.3.3POP3協定原理與工作實例
4.3.4電子郵件報文的格式與實例
4.3.5多用途網際網路郵件擴展MIME
4.4文本傳輸協定HTTP
4.4.1全球資訊網的工作過程
4.4.2超文本傳輸協定HTTP與套用實例
本章小結
習題
第5章TCP/IP協定代碼實例分析
5.1TCP/IP報文時序模型
5.2報文代碼及其分析
習題
第6章網路程式設計基本知識
6.1網路應用程式的概念
6.1.1什麼是網路應用程式
6.1.2網路應用程式的標識問題
6.1.3客戶朋艮務器模型
6.2TCP/IP應用程式工作模型與網路編程接口
6.2.1TCP/IP應用程式工作模型
6.2.2WindowsSockets簡介
6.2.3WindowsSockets規範的目標及幾個相關的概念
6.3套接口的概念及其編程原理
6.3.1套接口(Socket)
6.3.2套接口的分類
6.3.3套接口編程原理
6.3.4Winsock套接口編程時對錯誤的處理機制
6.3.5網路位元組順序
6.4WinsockAPI基本函式——套接口與連線的建立
6.4.1打開Winsock——WSAStartup()
6.4.2創建套接口——socket()或WSASocket()
6.4.3指定本地地址——bind()
6.4.4監聽連線——listen()
6.4.5請求連線——connect()或WSAConnect()
6.4.6接受連線——accept()或WSAAccept()
6.5WinsockAPI基本函式——數據傳輸
6.5.1帶外數據的概念
6.5.2在已建立連線的套接口上傳送數據
——send()或WSASend()
6.5.3在已建立連線的套接口上接收數據
——recv()或WSARecv()
6.5.4在無連線的套接口上接收數據
——recvfrom()或WSARecvFrom()
6.5.5在無連線的套接口上傳送數據
——sendto()或WSASendTo()
6.6WinsockAPI基本函式——連線與
套接口的關閉
6.6.1關閉讀寫通道——shutdown()
6.6.2關閉套接口——closesocket()
6.6.3終止使用Winsock
——WSACleanup()
本章小結
習題
第7章TCP/IP網路程式框架與實例
7.1網路應用程式的基本工作流程
7.1.1面向連線的客戶/伺服器程式工作流程
7.1.2無連線的客戶/伺服器程式工作流程
7.2基於TCP的客戶/伺服器通信程式實例
7.2.1實例程式說明
7.2.2伺服器端程式
7.2.3客戶端程式
7.2.4程式執行結果
7.3基於UDP的客戶與伺服器通信程式實例
7.3.1實例程式說明
7.3.2伺服器端程式
7.3.3客戶端程式
7.3.4程式執行結果
本章小結
習題
第8章WinsockAPI
8.1位元組排序函式
8.1.14位元組主機位元組順序的數轉化為
網路位元組順序——htonl()和WSAHtonl()
8.1.22位元組主機位元組順序的數轉化為
網路位元組順序——htons()和WSAHtons()
8.1.34位元組網路位元組順序的數轉化為
主機位元組順序——ntohl()和WSANtohl()
8.1.42位元組網路位元組順序的數轉化為
主機位元組順序——ntohs()和WSANtohs()
8.2IP位址轉換函式
8.2.1點分十進制數表示的IP位址轉換
為網路位元組順序的IP位址
——inet_addr()
8.2.2網路位元組順序的IP位址轉換為
點分十進制數表示的IP位址
——inet_ntoa()
8.3網路信息獲取函式(資料庫函式)
8.3.1獲得主機名——gethostname()
8.3.2獲得與套接口相連的遠程協定地址
——getpeername()
8.3.3獲得套接口本地協定地址
——getsockname()
8.3.4根據主機名取得主機信息
——gethostbyname()或
WSAAsyncGetHostByName()
8.3