天天看點

Linux高并發網絡程式設計開發——10-Linux系統程式設計-第10天(網絡程式設計基礎-socket)

在學習Linux高并發網絡程式設計開發總結了筆記,并分享出來。有問題請及時聯系部落客:​​Alliswell_WP​​,轉載請注明出處。

10-Linux系統程式設計-第10天(網絡程式設計基礎-socket)

一、Linux網絡程式設計階段

Linux高并發網絡程式設計開發——10-Linux系統程式設計-第10天(網絡程式設計基礎-socket)

二、網絡基礎

1、網絡開發兩種設計模式

》協定的概念

什麼是協定?

從應用的角度出發,協定可了解為“規則”,是資料傳輸和資料的解釋的規則。

假設,A、B雙方欲傳輸檔案。規定:

第一次,傳輸檔案名,接收方接收到檔案名,應答OK給傳輸方;

第二次,發送檔案的尺寸,接收方接收到該資料再次應答一個OK;

第三次,傳輸檔案内容。同樣,接收方接收資料完成後應答OK表示檔案内容接收成功。

由此,無論A、B之間傳遞何種檔案,都是通過三次資料傳輸來完成。A、B之間形成了一個最簡單的資料傳輸規則。雙方都按此規則發送、接收資料。A、B之間達成的這個互相遵守的規則即為協定。

這種僅在A、B之間被遵守的協定稱之為原始協定。當此協定被更多的人采用,不斷的增加、改進、維護、完善。最終形成一個穩定的、完整的檔案傳輸協定,被廣泛應用于各種檔案傳輸過程中。該協定就成為一個标準協定。最早的ftp協定就是由此衍生而來。

TCP協定注重資料的傳輸。http協定着重于資料的解釋。

》典型協定

傳輸層 常見協定有TCP/UDP協定。

應用層 常見的協定有HTTP協定,FTP協定。

網絡層 常見協定有IP協定、ICMP協定、IGMP協定。

網絡接口層 常見協定有ARP協定、RARP協定。

TCP​​傳輸控制協定​​​(Transmission Control Protocol)是一種面向連接配接的、可靠的、基于位元組流的​​傳輸層​​通信協定。

UDP使用者資料報協定(User Datagram Protocol)是​​OSI​​​參考模型中一種無連接配接的​​傳輸層​​協定,提供面向事務的簡單不可靠資訊傳送服務。

HTTP​​超文本傳輸協定​​​(Hyper Text Transfer Protocol)是​​網際網路​​​上應用最為廣泛的一種​​網絡協定​​。

FTP檔案傳輸協定(File Transfer Protocol)

IP協定是​​網際網路​​互聯協定(Internet Protocol)

ICMP協定是Internet控制​​封包​​​協定(Internet Control Message Protocol)它是​​TCP/IP協定族​​​的一個子協定,用于在IP​​主機​​​、​​路由​​器之間傳遞控制消息。

IGMP協定是 Internet 組管理協定(Internet Group Management Protocol),是網際網路協定家族中的一個多點傳播協定。該協定運作在主機群組播路由器之間。

​​ARP​​​協定是正向​​位址解析協定​​​(Address Resolution Protocol),通過已知的IP,尋找對應主機的​​MAC位址​​。

​​RARP​​是反向位址轉換協定,通過MAC位址确定IP位址。

2、網絡模型分層

3、以太網幀協定

4、IP協定

5、UDP協定

6、TCP協定